summaryrefslogtreecommitdiff
path: root/v4l/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'v4l/Makefile')
-rw-r--r--v4l/Makefile151
1 files changed, 151 insertions, 0 deletions
diff --git a/v4l/Makefile b/v4l/Makefile
new file mode 100644
index 000000000..e376afeb9
--- /dev/null
+++ b/v4l/Makefile
@@ -0,0 +1,151 @@
+
+ifeq ($(obj),)
+obj = .
+endif
+
+
+#################################################
+# configuration
+
+include $(obj)/Make.config
+
+# symbol exports
+export-objs := video-buf.o v4l1-compat.o v4l2-common.o
+export-objs += ir-common.o
+export-objs += bttv-if.o btcx-risc.o
+export-objs += cx88-cards.o cx88-core.o
+
+# drivers objects
+bttv-objs := bttv-driver.o bttv-cards.o bttv-risc.o bttv-if.o \
+ bttv-vbi.o bttv-i2c.o
+saa7134-objs := saa7134-core.o saa7134-i2c.o saa7134-video.o \
+ saa7134-vbi.o saa7134-tvaudio.o saa7134-oss.o \
+ saa7134-cards.o saa7134-ts.o
+cx88xx-objs := cx88-cards.o cx88-core.o
+cx8800-objs := cx88-video.o cx88-vbi.o cx88-tvaudio.o cx88-i2c.o
+list-multi := bttv.o saa7134.o cx88xx.o cx8800.o
+
+# what to build
+obj-m := video-buf.o v4l1-compat.o v4l2-common.o
+obj-$(CONFIG_VIDEO_BTTV) += btcx-risc.o ir-common.o bttv.o
+obj-$(CONFIG_VIDEO_CX88) += btcx-risc.o cx88xx.o cx8800.o
+obj-$(CONFIG_VIDEO_SAA7134) += saa7134.o saa6752hs.o
+obj-$(CONFIG_VIDEO_IR) += ir-common.o
+obj-$(CONFIG_VIDEO_TUNER) += tuner.o tda9887.o
+obj-$(CONFIG_VIDEO_TVAUDIO) += msp3400.o tvaudio.o tvmixer.o
+
+# 2.6-only stuff
+ifeq ($(VERSION).$(PATCHLEVEL),2.6)
+ ifeq ($(CONFIG_VIDEO_BTTV),m)
+ bttv-objs += bttv-gpio.o
+ obj-$(CONFIG_VIDEO_IR) += ir-kbd-gpio.o ir-kbd-i2c.o
+ endif
+endif
+
+# ir for saa7134
+ifeq ($(CONFIG_VIDEO_IR),m)
+ EXTRA_CFLAGS += -DCONFIG_VIDEO_IR=1
+ saa7134-objs += saa7134-input.o
+endif
+
+
+#################################################
+# compile modules
+
+ifneq ($(KERNELRELEASE),)
+# recursive call from kernel build system
+dummy := $(shell echo $(KERNELRELEASE) > $(obj)/.version)
+
+ifeq ($(VERSION).$(PATCHLEVEL),2.6)
+ export-objs :=
+ list-multi :=
+else
+ multi-m := $(filter $(list-multi), $(obj-m))
+ int-m := $(sort $(foreach m, $(multi-m), $($(basename $(m))-objs)))
+ export-objs := $(filter $(int-m) $(obj-m),$(export-objs))
+endif
+
+CC += -I$(obj)
+EXTRA_CFLAGS += -g
+
+snapshot := $(wildcard $(obj)/.snapshot)
+ifneq ($(snapshot),)
+SNAPSHOT_CFLAGS := -DSNAPSHOT='$(shell cat $(snapshot))'
+EXTRA_CFLAGS += $(SNAPSHOT_CFLAGS)
+endif
+
+bttv.o: $(bttv-objs)
+ $(LD) -r -o $@ $(bttv-objs)
+
+cx8800.o: $(cx8800-objs)
+ $(LD) -g -r -o $@ $(cx8800-objs)
+
+cx88xx.o: $(cx88xx-objs)
+ $(LD) -g -r -o $@ $(cx88xx-objs)
+
+saa7134.o: $(saa7134-objs)
+ $(LD) -g -r -o $@ $(saa7134-objs)
+
+-include $(TOPDIR)/Rules.make
+else
+# take version info from last module build if available
+KERNELRELEASE := $(shell cat $(obj)/.version 2>/dev/null || uname -r)
+endif
+
+KDIR := /lib/modules/$(KERNELRELEASE)/build
+PWD := $(shell pwd)
+DEST := /lib/modules/$(KERNELRELEASE)/$(MDIR)
+
+# which files to install?
+inst-m := $(wildcard *.ko)
+ifeq ($(inst-m),)
+ inst-m := $(obj-m)
+endif
+
+# locales seem to cause trouble sometimes.
+LC_ALL = POSIX
+export LC_ALL
+
+default::
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
+
+install::
+ strip --strip-debug $(inst-m)
+ -su -c "mkdir -p $(DEST); cp -v $(inst-m) $(DEST); depmod -a"
+
+clean::
+ -rm -f *~ *.o *.ko *.mod.c
+ -rm -f .version .*.o.flags .*.o.d .*.o.cmd .*.ko.cmd
+
+
+#################################################
+# build tarballs
+
+thisdir := $(notdir $(PWD))
+name := $(shell echo $(thisdir) | sed 's/-.*//')
+ver := $(shell echo $(thisdir) | sed 's/.*-//')
+date := $(shell date +%Y%m%d)
+tardest ?= .
+
+snapdir := $(HOME)/snapshot
+snap ?= $(name)
+
+release: clean
+ rm -f .snapshot
+ (cd ..; tar cvzf $(tardest)/$(name)-$(ver).tar.gz $(thisdir))
+
+snapshot snap tarball: clean
+ echo $(date) > .snapshot
+ (cd ..; tar czf $(snapdir)/$(snap)-$(date).tar.gz $(thisdir))
+ $(MAKE) -C $(snapdir)
+
+
+#################################################
+# other stuff
+
+%.asm: %.o
+ objdump -S $< > $@
+
+cardlists:
+ scripts/cardlist
+