ifeq ($(shell uname -r | sed 's@^\(.*\..*\)\..*@\1@'),2.4) #################################### OPTIONS ################################## # Change this to /usr/include if you get header file errors INCLUDEDIR = /lib/modules/`uname -r`/build/include ACFILE = $(INCLUDEDIR)/linux/autoconf.h CFLAGS = -D__KERNEL__ -DMODULE -DOUTSIDE_KERNEL -O2 -Wall -Wstrict-prototypes \ -fomit-frame-pointer -I$(INCLUDEDIR) # Detect modversions support ifneq ($(strip $(shell grep 'define CONFIG_MODVERSIONS 1' $(ACFILE))),) CFLAGS += -DMODVERSIONS -include $(INCLUDEDIR)/linux/modversions.h endif # Detect extra required CFLAGS EXTRA_CFLAGS := $(shell ./get_cflags.sh) CFLAGS += $(EXTRA_CFLAGS) CC = gcc LD = ld LD_RFLAG = -r SEN_OBJS = ovcamchip_core.o ov6x20.o ov6x30.o ov7x10.o ov7x20.o ov76be.o MODULES = ov511.o ovfx2.o ovcamchip.o saa7111-new.o tda7313.o # Enable OV511 Decompression CFLAGS += -DCONFIG_OV511_DECOMP COMP_OBJS += ov511_decomp.o # Enable OV518 Decompression CFLAGS += -DCONFIG_OV518_DECOMP COMP_OBJS += ov518_decomp.o #################################### TARGETS ################################## # tuner.o isn't in $(MODULES) since it would conflict with the kernel's tuner.o all: $(MODULES) tuner.o install: all ./do_install.sh $(MODULES) #################################### RULES #################################### ovcamchip_core.o: ovcamchip_core.c ovcamchip.h compat.h $(CC) -c $(CFLAGS) -o ovcamchip_core.o ovcamchip_core.c ov6x20.o: ov6x20.c ovcamchip.h compat.h $(CC) -c $(CFLAGS) ov6x20.c ov6x30.o: ov6x30.c ovcamchip.h compat.h $(CC) -c $(CFLAGS) ov6x30.c ov7x10.o: ov7x10.c ovcamchip.h compat.h $(CC) -c $(CFLAGS) ov7x10.c ov7x20.o: ov7x20.c ovcamchip.h compat.h $(CC) -c $(CFLAGS) ov7x20.c ov76be.o: ov76be.c ovcamchip.h compat.h $(CC) -c $(CFLAGS) ov76be.c ovcamchip.o: $(SEN_OBJS) $(LD) $(LD_RFLAG) -o ovcamchip.o $(SEN_OBJS) ov511_core.o: ov511_core.c ov511.h ovcamchip.h tuner.h audiochip.h id.h compat.h $(CC) -c $(CFLAGS) -o ov511_core.o ov511_core.c ov511.o: ov511_core.o $(COMP_OBJS) $(LD) $(LD_RFLAG) -o ov511.o ov511_core.o $(COMP_OBJS) ovfx2.o: ovfx2.c ovfx2.h ovcamchip.h compat.h $(CC) -c $(CFLAGS) -o ovfx2.o ovfx2.c ov511_decomp.o: ov511_decomp.c ov511.h compat.h $(CC) -c $(CFLAGS) ov511_decomp.c ov518_decomp.o: ov518_decomp.c ov511.h compat.h $(CC) -c $(CFLAGS) ov518_decomp.c saa7111-new.o: saa7111-new.c compat.h $(CC) -c $(CFLAGS) saa7111-new.c tuner.o: tuner.c tuner.h audiochip.h id.h compat.h $(CC) -c $(CFLAGS) tuner.c tda7313.o: tda7313.c audiochip.h id.h compat.h $(CC) -c $(CFLAGS) tda7313.c endif # End kernel version test ############################ 2.5 kernel compile ############################### ifeq ($(shell uname -r | sed 's@^\(.*\..*\)\..*@\1@'),2.5) ifneq ($(KERNELRELEASE),) # We were called by kbuild obj-m += ovcamchip.o obj-m += ov511.o obj-m += ovfx2.o obj-m += saa7111-new.o obj-m += tuner.o obj-m += tda7313.o ovcamchip-objs := ovcamchip_core.o ov6x20.o ov6x30.o ov7x10.o ov7x20.o ov76be.o ov511-objs := ov511_core.o ov511_decomp.o ov518_decomp.o EXTRA_CFLAGS = -DCONFIG_OV511_DECOMP -DCONFIG_OV518_DECOMP else # We were called from command line KDIR := /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) default: @echo ' Building OVCam drivers for 2.5 kernel.' @echo ' PLEASE IGNORE THE "Overriding SUBDIRS" WARNING' $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules install: ./do_install.sh *.ko endif # End kbuild check endif # End kernel version test ######################### Version independent targets ########################## clean: rm -f *.o *.ko *.mod.* .[a-z]* core *.i