#
# Makefile version = "$Id: Makefile.in,v 1.9 2003/10/08 14:55:41 scottk Exp $"
#

# Compiler and flags to use when compiling the driver itself.
KCC = gcc
CC = gcc
KCFLAGS = -O2 -march=i486 -falign-loops=2 -falign-jumps=2 -falign-functions=2 -DCPU=586
KINC = -I/usr/src/linux-2.4.22/include
LINUXSRC = /usr/src/linux-2.4.22
SMP = SMP

MODDIR = $(shell echo $(BUILDROOT)/lib/modules/2.4.22/misc)

include Makefile.inc

#
# variables
#

RPMNAME := $(shell /bin/sh ./specinfo RPMNAME < $(PACKAGE).spec)
PARTNUM := $(shell /bin/sh ./specinfo PARTNUM < $(PACKAGE).spec)
RELNOTES := $(shell /bin/sh ./specinfo RELNOTES < $(PACKAGE).spec)

INCLUDES = -I$(LINUXSRC)/include -I./includes

KCFLAGS += -O2 -D__KERNEL__ -DMODULE  -DLINUX \
           -DDG_NAME=\"$(RPMNAME)\" -DDG_PART=\"$(PARTNUM)\" $(INCLUDES) \
           -Wall -Wstrict-prototypes -pipe -fno-strength-reduce\
           -DNO_DISTRO

LDFLAGS = -s -N

ifeq ($(SMP),SMP)
	KCFLAGS += -D__SMP__ -DCONFIG_X86_LOCAL_APIC
endif

MODULES= $(PACKAGE).o
OBJECTS= $(PACKAGE).o



all:  build

build: $(PACKAGE).o
	cd digiConf && make $@;
	cd ditty && make $@;
	cd dl && make $@;
	cd dpa && make -f dpalinux.mk $@;

clean: 
	-rm -f *~ *.o depend.mk
	cd digiConf && make $@;
	cd ditty && make $@;
	cd dl && make $@;
	cd dpa && make -f dpalinux.mk $@;

clobber: clean
	-rm -f *.i *.s
	-rm -rf RPM drv dpa.seperate scripts
	cd digiConf && make $@;
	cd ditty && make $@;
	cd dl && make $@;
	cd dpa && make -f dpalinux.mk $@;
	rm -rf Makefile config.h config.cache config.log config.status

copy-fep:
	install -m 755 cxfepbin/cxbios.bin dl/firmware/cxbios.bin
	install -m 755 cxfepbin/cxcon.bin  dl/firmware/cxcon.bin
	install -m 755 cxfepbin/cxfep.bin  dl/firmware/cxfep.bin
	install -m 755 mipsfepbin/cxpbios.bin dl/firmware/cxpbios.bin
	install -m 755 mipsfepbin/cxpfep.bin  dl/firmware/cxpfep.bin
	install -m 755 mipsfepbin/fxcon.bin  dl/firmware/fxcon.bin
	install -m 755 mipsfepbin/sxbios.bin dl/firmware/sxbios.bin
	install -m 755 mipsfepbin/sxfep.bin  dl/firmware/sxfep.bin
	install -m 755 mipsfepbin/xrbios.bin dl/firmware/xrbios.bin
	install -m 755 mipsfepbin/xrfep.bin  dl/firmware/xrfep.bin
	install -m 755 pcxxfepbin/xabios.bin dl/firmware/xxbios.bin
	install -m 755 pcxxfepbin/xacook.bin dl/firmware/xxfep.bin
	install -m 755 cxfepbin/ibmcxcon.bin  dl/firmware/ibmcxcon.bin
	install -m 755 cxfepbin/ibmencon.bin  dl/firmware/ibmencon.bin
	cd includes && make -f ../Makefile.includes $@;

install: build .lastinstall
	install -m 0755 -d $(MODDIR)
	install -m 0755 -d $(RCDIR)
	install -m 0755 -d $(BINDIR)
	install -m 0755 -d $(DRVLIBDIR)
	install -m 0755 -d $(DEVDIR)
	install -m 0644 $(MODULES) $(MODDIR)
	install -m 0755 $(PACKAGE).rc $(RCDIR)/$(PACKAGE)
	cd digiConf && make $@;
	cd ditty && make $@;
	cd dl && make $@;
	cd dpa && make -f dpalinux.mk $@;

copymod:
	install -m 0644 $(MODULES) $(MODDIR)

postinstall:
	/sbin/depmod -a

preuninstall:

uninstall: unload
	rm -f $(MODDIR)/$(PACKAGE).o
	rm -f $(RCDIR)/$(PACKAGE)
	cd digiConf && make $@;
	cd ditty && make $@;
	cd dl && make $@;
	cd dpa && make -f dpalinux.mk $@;
	rm -rf $(DRVLIBDIR)

unload:
	if [ "`lsmod | grep -c $(PACKAGE)`" -gt "0" ] ; then \
		rmmod $(PACKAGE); \
	fi

$(PACKAGE).o: $(PACKAGE).c
	$(KCC) $(KCFLAGS) -c $(PACKAGE).c

# convenient target alias
$(PACKAGE): $(PACKAGE).o
	-touch $(PACKAGE)
	-rm $(PACKAGE)


#
# Build RPM
#
srpm: $(RPMDIR)/SOURCES/$(RPMNAME).tar.gz $(RPMDIR)/SRPMS/$(RPMNAME).src.rpm
	cp $(RPMDIR)/SOURCES/$(RPMNAME).tar.gz /tmp/$(PARTNUM).tar.gz
	cp $(RPMDIR)/SRPMS/$(RPMNAME).src.rpm /tmp/$(PARTNUM).src.rpm
	cp $(SRCDIR)/drv/linux/release.notes /tmp/$(RELNOTES).txt
 
$(RPMDIR)/SOURCES/$(RPMNAME).tar.gz: install-src clean-src
	mv $(SRCDIR)/drv/linux $(SRCDIR)/drv/$(RPMNAME)
	(cd $(SRCDIR)/drv ; tar cfvz $(RPMNAME).tar.gz $(RPMNAME))
	mv $(SRCDIR)/drv/$(RPMNAME) $(SRCDIR)/drv/linux
	mv $(SRCDIR)/drv/$(RPMNAME).tar.gz $(RPMDIR)/SOURCES

install-src: .lastinstall $(PACKAGE).spec
	install -m 0755 -d $(SRCDIR)/drv/linux/includes
	install -m 0755 -d $(SRCDIR)/drv/linux/digiConf
	install -m 0755 -d $(SRCDIR)/drv/linux/dl
	install -m 0755 -d $(SRCDIR)/drv/linux/ditty
	install -m 0755 -d $(SRCDIR)/drv/linux/dpa
	install -m 0644 *.[ch] Makefile Makefile.in Makefile.inc $(SRCDIR)/drv/linux
	install -m 0755 configure configure.in  $(SRCDIR)/drv/linux
	install -m 0644 COPYING $(PACKAGE).spec $(SRCDIR)/drv/linux
	install -m 0755 $(PACKAGE).rc.in specinfo $(SRCDIR)/drv/linux
	install -m 0644 includes/*.h $(SRCDIR)/drv/linux/includes
	install -m 0644 *.h.in $(SRCDIR)/drv/linux/
	install -m 0644 ditty/Makefile $(SRCDIR)/drv/linux/ditty/Makefile
	if [ -x prep-install ] ; then \
		./prep-install INSTALL $(RPMNAME) $(PARTNUM) $(RELNOTES) \
	                     $(SRCDIR)/drv/linux/INSTALL; \
		./prep-install release.notes $(RPMNAME) $(PARTNUM) $(RELNOTES) \
	                     $(SRCDIR)/drv/linux/release.notes; \
	else \
		install -m 0644 INSTALL README $(SRCDIR)/drv/linux; \
	fi
	chown -R root:0 $(SRCDIR)
	cd digiConf && make $@;
	cd ditty && make $@;
	cd dl && make $@;
	cd dpa && make -f dpalinux.mk $@;
	chown -R root:0 $(SRCDIR)
 
clean-src:
	cd $(SRCDIR)/drv/linux && make clean;
 
$(RPMDIR)/SRPMS/$(RPMNAME).src.rpm: .lastinstall $(PACKAGE).spec $(RPMDIR)/SOURCES/$(RPMNAME).tar.gz
	rpmbuild -ba $(SRCDIR)/drv/linux/$(PACKAGE).spec

.lastinstall:
	touch .lastinstall
 
epca.o: epca.h

depend.mk:
