# Improved makefile for kernel CAPI modules/drivers

SED = sed
INSTALL = cp -vf

CFLAGS = -DMODULE -D__KERNEL__
CFLAGS += -I/usr/src/linux/include -Wall -Wstrict-prototypes 
CFLAGS += -pipe -O2 -fomit-frame-pointer -fno-strict-aliasing
CFLAGS += -march=i586 -xc
CFLAGS += $(shell if $(CC) -mpreferred-stack-boundary=2 -S -o /dev/null -xc >>/dev/null > /dev/null 2>&1; then echo "-mpreferred-stack-boundary=2"; fi)

KERNEL = $(shell echo `uname -r`)
MODULESDIR=/lib/modules/$(KERNEL)/misc

COMMON_MODULES = kernelcapi.o capiutil.o capi.o capifs.o capidrv.o
B1_MODULES = b1.o b1pcmcia.o b1dma.o b1isa.o b1pci.o
T1_MODULES = b1.o b1dma.o t1isa.o t1pci.o
C4_MODULES = c4.o

obj-export = kcapi.o capiutil.o capifs.o b1.o b1dma.o b1pcmcia.o
obj-noexport = capi.o capidrv.o b1isa.o b1pci.o avm_cs.o t1isa.o t1pci.o c4.o

common: $(COMMON_MODULES)
	mkdir -p $(MODULESDIR)
	$(INSTALL) $^ $(MODULESDIR)

b1: $(COMMON_MODULES) $(B1_MODULES)
	mkdir -p $(MODULESDIR)
	$(INSTALL) $^ $(MODULESDIR)

t1: $(COMMON_MODULES) $(T1_MODULES)
	mkdir -p $(MODULESDIR)
	$(INSTALL) $^ $(MODULESDIR)

c4: $(COMMON_MODULES) $(C4_MODULES)
	mkdir -p $(MODULESDIR)
	$(INSTALL) $^ $(MODULESDIR)

clean: ; rm -f *.o *.C

$(obj-export): %.o: %.C
	$(CC) -DEXPORT_SYMTAB $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<

$(obj-noexport): %.o: %.C
	$(CC) -DEXPORT_SYMBOLS $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<

%.C: %.c
	$(SED) -f patches $< > $@

kernelcapi.o: kcapi.o
	$(LD) -m elf_i386 -r -o $@ $<

