#-------------------------------------------------------------------------
# Nothing user configurable.  'make modules' automatically runs a
# configuration script.  Do 'make config' to force a reconfiguration.
#-------------------------------------------------------------------------
SHELL 		= /bin/sh
MODNAME		= rlmod.o
include		config.mk

#-------------------------------------------------------------------------
# Revision info
#-------------------------------------------------------------------------
VERSION		= 1.5.3
MKDATE		= 1/15/00
OWNER		= Dave Koberstein \(davek@komacke.com\)
DISTNAME        = rl2-${VERSION}

#-------------------------------------------------------------------------
# Compiler stuff
#-------------------------------------------------------------------------
CFLAGS = -D__KERNEL__ -DCPU=386 -DMODULE
CFLAGS += -O2 -fomit-frame-pointer -pipe -m486
# These are #defines based on the config.mk file
CFLAGS += -I${LINUXH} -DCARDTYPE=${CARDTYPEVAL} -DRL2VERSION=\"${VERSION}\"
CFLAGS += $(shell if [ ${BUFFER} = y -o ${BUFFER} = Y ]; then echo "-DBUFFER"; fi)
CFLAGS += $(shell if [ ${PCCARD} = y -o ${PCCARD} = Y ]; then echo "-DPCCARD -I${PCCARDH}"; fi)
CFLAGS += $(shell if [ "${CONFIG_NET_RADIO}" = y -o "${CONFIG_NET_RADIO}" = Y ]; then echo "-DNET_CONFIG_RADIO"; fi)
CFLAGS += $(shell if [ "${CONFIG_PCI}" = y -o "${CONFIG_PCI}" = Y ]; then echo "-DCONFIG_PCI"; fi)
CFLAGS += $(shell if [ "${MODVERSIONS}" = y -o "${MODVERSIONS}" = Y ]; then echo "-DMODVERSIONS -include $(LINUXH)/linux/modversions.h"; fi)

usage:
	@echo "make <option>"
	@echo "Options:"
	@echo "  config                 Configure environment for your distribution."
	@echo "  modules                Make the modules and the configuration executable."
	@echo "  modules_install        Install the modules and executables."
	@echo "  clean                  Remove *.o and executables."
	@echo "  real_clean             As above but do library also."
	@echo "  distribution           Make a distribution tar ball."
	@echo "  usage                  This screen."

modules: ${MODNAME} proxcfg

modules: ${MODNAME} proxnet

${MODNAME}: liblld.a version.h lls.o asm.o
	ld -r -o ${MODNAME} lls.o asm.o -L. -llld

proxcfg.o: proxcfg.h asm.h lld.h

proxnet.o: proxcfg.h asm.h lld.h

lls.o: lls.h lld.h asm.h proxcfg.h

asm.o: asm.h

liblld:
	@if [ -d library ]; then \
		echo "I need to make the $@ ..."; \
		cd library; \
		${MAKE}; \
	else \
		echo "You are missing $@.  Better get the distribution again ..."; \
		exit 1; \
	fi

clean:
	rm -f *.o proxcfg proxnet version.h

real_clean: clean
	@if [ -d library ]; then cd library; ${MAKE} clean; fi;

modules_install:
	@if [ "fooREDHAT" = "foo${MODDIR}" ]; then \
		install -d -g root -m 755 /lib/modules/"`uname -r`"/net; \
		echo "install -d -g root -m 755 /lib/modules/`uname -r`/net"; \
		install -g root -m 644 ${MODNAME} /lib/modules/"`uname -r`"/net; \
		echo "install -g root -m 644 ${MODNAME} /lib/modules/`uname -r`/net"; \
	else \
		install -d -g root -m 755 ${MODDIR}; \
		echo "install -d -g root -m 755 ${MODDIR}"; \
		install -g root -m 644 ${MODNAME} ${MODDIR}/${MODNAME}; \
		echo "install -g root -m 644 ${MODNAME} ${MODDIR}/${MODNAME}"; \
	fi
	install -g root -m 755 proxcfg ${BINDIR}/proxcfg
	rm -f $(BINDIR)/rl2cfg
	ln -s ${BINDIR}/proxcfg $(BINDIR)/rl2cfg
	install -g root -m 755 proxnet ${BINDIR}/proxnet
	install -g root -m 644 docs/proxcfg.1 ${MANDIR}/man1/proxcfg.1

distribution: clean lls.c lls.h lld.h asm.c asm.h proxcfg.c proxcfg.h
	@if [ ! -d $(DISTNAME) ]; then mkdir $(DISTNAME); fi; \
	if [ ! -d $(DISTNAME)/docs ]; then mkdir $(DISTNAME)/docs; fi; \
	rm -f $(DISTNAME)/*; \
	rm -f $(DISTNAME)/docs/*; \
	rm -f *.tgz; \
	(cp -f * .* $(DISTNAME) 2> /dev/null; exit 0); \
	(cp -f docs/* docs/.* $(DISTNAME)/docs 2> /dev/null; exit 0); \
	cp -f /lib/modules/"`uname -r`"/net/$(MODNAME) $(DISTNAME); \
	rm -f $(DISTNAME)/config.mk; \
	tar vzcf $(DISTNAME).tgz $(DISTNAME)

config.mk: .config.mk
	@echo "Apparently this is the first time you have run 'make config'."; \
	./Configure; \
	echo "'make config' is completed.  You must rerun make with other"; \
	echo "targets for this config to take effect properly."; \
	echo; \
	echo "Ignore the error that follows."; \
	echo; \
	exit 1

config: 
	@./Configure; \
	echo "'make config' is completed.  You must rerun make with other"; \
	echo "targets for this config to take effect properly."; \
	echo; \
	echo "Ignore the error that follows."; \
	echo; \
	exit 1

version.h:
	@echo static const char *version = \"rlmod.o: \
		 v$(VERSION), $(MKDATE), $(OWNER)\\n\"\; > version.h
