summaryrefslogtreecommitdiff
path: root/v4l
diff options
context:
space:
mode:
Diffstat (limited to 'v4l')
-rw-r--r--v4l/Make.config121
-rw-r--r--v4l/Makefile593
-rw-r--r--v4l/Makefile.ivtv25
-rw-r--r--v4l/Makefile.kern2428
-rwxr-xr-xv4l/scripts/make_kconfig.pl73
-rwxr-xr-xv4l/scripts/make_makefile.pl164
-rwxr-xr-xv4l/scripts/make_noconfig.pl63
-rw-r--r--v4l/versions.txt199
8 files changed, 698 insertions, 568 deletions
diff --git a/v4l/Make.config b/v4l/Make.config
deleted file mode 100644
index 98df1af83..000000000
--- a/v4l/Make.config
+++ /dev/null
@@ -1,121 +0,0 @@
-MDIR := v4l2
-snap := video4linux
-
-CONFIG_VIDEO_BTTV := m
-CONFIG_VIDEO_SAA7134 := m
-CONFIG_VIDEO_IR := m
-CONFIG_VIDEO_TUNER := m
-CONFIG_VIDEO_TVAUDIO := m
-CONFIG_VIDEO_CX88 := m
-
-CONFIG_TVP5150 := m
-
-#enable experimental support for xc3028 tuner
-CONFIG_XC3028 := m
-
-CONFIG_VIDEO_DECODER := m
-
-CONFIG_VIDEO_ALSA := y
-
-CONFIG_VIDEO_ADV_DEBUG := y
-
-CONFIG_VIDEO_PVRUSB2 := m
-CONFIG_VIDEO_PVRUSB2_SYSFS := y
-CONFIG_VIDEO_PVRUSB2_DEBUGIFC := y
-
-CONFIG_VIDEO_IVTV := n
-
-CONFIG_DVB_FIRESAT := n
-
-CONFIG_VIRTUAL_DEVICE := m
-CONFIG_VIDEO_CPIA2 := m
-
-CONFIG_VIDEO_CX88_IVTV := n
-
-CONFIG_VIDEO_MXB := m
-
-# doesn't build on older kernels
-
-CONFIG_DVB_CORE := n
-CONFIG_VIDEO_BUF_DVB := n
-CONFIG_VIDEO_CX88_DVB := n
-CONFIG_VIDEO_SAA7134_DVB := n
-
-# requires dvb-core
-
-CONFIG_DVB_BT8XX := n
-CONFIG_DVB_FRONTENDS := n
-CONFIG_DVB_B2C2_FLEXCOP := n
-CONFIG_DVB_B2C2_FLEXCOP_PCI := n
-CONFIG_DVB_B2C2_FLEXCOP_USB := n
-CONFIG_DVB_CINERGYT2 := n
-CONFIG_DVB_USB := n
-CONFIG_DVB_USB_VP7045 := n
-CONFIG_DVB_USB_VP702X := n
-CONFIG_DVB_USB_DTT200U := n
-CONFIG_DVB_USB_A800 := n
-CONFIG_DVB_USB_DIBUSB_MB := n
-CONFIG_DVB_USB_DIBUSB_MC := n
-CONFIG_DVB_USB_NOVA_T_USB2 := n
-CONFIG_DVB_USB_UMT_010 := n
-CONFIG_DVB_USB_DIGITV := n
-CONFIG_DVB_USB_CXUSB := n
-CONFIG_DVB_PLUTO2 := n
-CONFIG_DVB_BUDGET := n
-CONFIG_DVB_BUDGET_AV := n
-CONFIG_DVB_BUDGET_CI := n
-CONFIG_DVB_BUDGET_PATCH := n
-CONFIG_DVB_AV7110 := n
-CONFIG_DVB_TTUSB_BUDGET := n
-CONFIG_DVB_TTUSB_DEC := n
-CONFIG_VIDEO_SAA7146 := n
-CONFIG_VIDEO_SAA7146_VV := n
-
-ifneq ($(KERNELRELEASE),)
- CONFIG_DVB_CORE := $(shell test $(SUBLEVEL) -ge 10 -a $(PATCHLEVEL) -ge 6 && echo m)
- CONFIG_VIDEO_BUF_DVB := $(shell test $(SUBLEVEL) -ge 12 -a $(PATCHLEVEL) -ge 6 && echo m)
- CONFIG_VIDEO_DEV := $(shell test $(PATCHLEVEL) -ge 6 && echo m)
- CONFIG_EM28XX := $(shell test $(PATCHLEVEL) -ge 6 && echo m)
-endif
-
-ifeq ($(CONFIG_VIDEO_BUF_DVB),m)
- CONFIG_VIDEO_CX88_DVB := m
- CONFIG_VIDEO_SAA7134_DVB := m
-endif
-
-ifeq ($(CONFIG_DVB_CORE),m)
- CONFIG_DVB_BT8XX := m
- CONFIG_DVB_FRONTENDS := m
- CONFIG_DVB_B2C2_FLEXCOP := m
- CONFIG_DVB_B2C2_FLEXCOP_PCI := m
- CONFIG_DVB_B2C2_FLEXCOP_USB := m
- CONFIG_DVB_CINERGYT2 := m
- CONFIG_DVB_USB := m
- CONFIG_DVB_USB_VP7045 := m
- CONFIG_DVB_USB_VP702X := m
- CONFIG_DVB_USB_DTT200U := m
- CONFIG_DVB_USB_A800 := m
- CONFIG_DVB_USB_DIBUSB_MB := m
- CONFIG_DVB_USB_DIBUSB_MC := m
- CONFIG_DVB_USB_NOVA_T_USB2 := m
- CONFIG_DVB_USB_UMT_010 := m
- CONFIG_DVB_USB_DIGITV := m
- CONFIG_DVB_USB_CXUSB := m
- CONFIG_DVB_PLUTO2 := m
- CONFIG_DVB_BUDGET := m
- CONFIG_DVB_BUDGET_AV := m
- CONFIG_DVB_BUDGET_CI := m
- CONFIG_DVB_BUDGET_PATCH := m
- CONFIG_DVB_AV7110 := m
- CONFIG_DVB_AV7110_OSD := y
-# Uncomment the next two lines to compile the av7110 firmware into the driver.
-# CONFIG_DVB_AV7110_FIRMWARE := y
-# CONFIG_DVB_AV7110_FIRMWARE_FILE := /path/to/firmware/dvb-ttpci-01.fw
- CONFIG_DVB_TTUSB_BUDGET := m
- CONFIG_DVB_TTUSB_DEC := m
- CONFIG_VIDEO_SAA7146 := m
- CONFIG_VIDEO_SAA7146_VV := m
-endif
-
-CONFIG_VIDEO_IVTV := $(if $(wildcard $(src)/ivtv-svnversion.h),m)
-CONFIG_VIDEO_CX88_IVTV := $(if $(wildcard $(src)/cx88-ivtv.c),m)
diff --git a/v4l/Makefile b/v4l/Makefile
index 77843ed17..f24614634 100644
--- a/v4l/Makefile
+++ b/v4l/Makefile
@@ -3,176 +3,25 @@ obj = .
endif
#################################################
-# configuration
+# default compilation rule
-include $(obj)/Make.config
+default:: Makefile.media links .version
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules
-# symbol exports
-export-objs := video-buf.o v4l1-compat.o v4l2-common.o
-export-objs += ir-common.o
-ifeq ($(CONFIG_VIDEO_DEV),m)
-export-objs += videodev.o
-endif
-export-objs += bttv-if.o btcx-risc.o
-export-objs += cx88-cards.o cx88-core.o
-export-objs += saa7134-core.o saa7134-tvaudio.o
-
-# drivers objects
-ir-common-objs := ir-keymaps.o ir-functions.o
-bttv-objs := bttv-driver.o bttv-cards.o bttv-risc.o bttv-if.o \
- bttv-vbi.o bttv-i2c.o bttv-input.o
-saa7134-objs := saa7134-core.o saa7134-i2c.o saa7134-video.o \
- saa7134-vbi.o saa7134-tvaudio.o \
- saa7134-cards.o saa7134-ts.o saa7134-input.o
-
-
-cx88xx-objs := cx88-cards.o cx88-core.o cx88-i2c.o cx88-tvaudio.o \
- cx88-input.o
-cx8800-objs := cx88-video.o cx88-vbi.o
-cx8802-objs := cx88-mpeg.o
-tuner-objs := tuner-core.o tuner-types.o tuner-simple.o mt20xx.o tda8290.o tea5767.o
-ifeq ($(CONFIG_XC3028),m)
-tuner-objs += xc3028.o
-endif
-msp3400-objs := msp3400-driver.o msp3400-kthreads.o
-list-multi := bttv.o saa7134.o cx88xx.o cx8800.o cx88-alsa.o cx8802.o
-em28xx-objs := em28xx-video.o em28xx-i2c.o em28xx-cards.o em28xx-core.o \
- em28xx-input.o
-cx25840-objs := cx25840-core.o cx25840-audio.o cx25840-firmware.o \
- cx25840-vbi.o
-dvb-core-objs := dvbdev.o dmxdev.o dvb_demux.o dvb_filter.o \
- dvb_ca_en50221.o dvb_frontend.o \
- dvb_net.o dvb_ringbuffer.o
-b2c2-flexcop-objs := flexcop.o flexcop-fe-tuner.o flexcop-i2c.o \
- flexcop-sram.o flexcop-eeprom.o flexcop-misc.o \
- flexcop-hw-filter.o flexcop-dma.o
-b2c2-flexcop-pci-objs := flexcop-pci.o
-b2c2-flexcop-usb-objs := flexcop-usb.o
-dvb-usb-objs := dvb-usb-firmware.o dvb-usb-init.o dvb-usb-urb.o \
- dvb-usb-i2c.o dvb-usb-dvb.o dvb-usb-remote.o
-dvb-usb-vp7045-objs := vp7045.o vp7045-fe.o
-dvb-usb-vp702x-objs := vp702x.o vp702x-fe.o
-dvb-usb-dtt200u-objs := dtt200u.o dtt200u-fe.o
-dvb-usb-dibusb-common-objs := dibusb-common.o
-dvb-usb-a800-objs := a800.o
-dvb-usb-dibusb-mb-objs := dibusb-mb.o
-dvb-usb-dibusb-mc-objs := dibusb-mc.o
-dvb-usb-nova-t-usb2-objs := nova-t-usb2.o
-dvb-usb-umt-010-objs := umt-010.o
-dvb-usb-digitv-objs := digitv.o
-dvb-usb-cxusb-objs := cxusb.o
-dvb-ttpci-objs := av7110_hw.o av7110_v4l.o av7110_av.o \
- av7110_ca.o av7110.o av7110_ipack.o av7110_ir.o
-saa7146-objs := saa7146_i2c.o saa7146_core.o
-saa7146_vv-objs := saa7146_vv_ksyms.o saa7146_fops.o \
- saa7146_video.o saa7146_hlp.o saa7146_vbi.o
-pvrusb2-objs := pvrusb2-i2c-core.o pvrusb2-i2c-cmd-v4l2.o \
- pvrusb2-audio.o pvrusb2-i2c-chips-v4l2.o \
- pvrusb2-encoder.o pvrusb2-video-v4l.o \
- pvrusb2-eeprom.o pvrusb2-tuner.o pvrusb2-demod.o \
- pvrusb2-main.o pvrusb2-hdw.o pvrusb2-v4l2.o \
- pvrusb2-sysfs.o pvrusb2-context.o pvrusb2-io.o \
- pvrusb2-cx2584x-v4l.o pvrusb2-wm8775.o \
- pvrusb2-ioread.o pvrusb2-debugifc.o
-dvb-firesat-objs := firesat.o avc_api.o cmp.o firesat-rc.o
-ivtv-objs := ivtv-driver.o ivtv-fileops.o ivtv-i2c.o ivtv-streams.o \
- ivtv-firmware.o ivtv-reset.o ivtv-gpio.o ivtv-queue.o \
- ivtv-irq.o ivtv-mailbox.o ivtv-vbi.o ivtv-kthreads.o \
- ivtv-audio.o ivtv-ioctl.o ivtv-controls.o ivtv-video.o \
- ivtv-cards.o ivtv-yuv.o
-ivtv-fb-objs := ivtv-osd.o ivtv-queue.o
-cpia2-objs := cpia2_core.o cpia2_usb.o cpia2_v4l.o
-
-obj-m := video-buf.o v4l1-compat.o v4l2-common.o
-obj-m += compat_ioctl32.o
-ifeq ($(CONFIG_VIDEO_DEV),m)
-obj-m += videodev.o
-endif
+#################################################
+# Object specific rules
-obj-$(CONFIG_VIDEO_MXB) += mxb.o tea6420.o tea6415c.o tda9840.o
-obj-$(CONFIG_VIDEO_DPC) += dpc7146.o
-obj-$(CONFIG_VIDEO_HEXIUM_ORION)+= hexium_orion.o
-obj-$(CONFIG_VIDEO_HEXIUM_GEMINI)+= hexium_gemini.o
-obj-$(CONFIG_VIDEO_BTTV) += btcx-risc.o ir-common.o bttv.o tveeprom.o
-obj-$(CONFIG_VIDEO_CX88) += btcx-risc.o cx88xx.o cx8800.o cx8802.o \
- cx88-blackbird.o tveeprom.o
-obj-$(CONFIG_VIDEO_CX88_IVTV) += cx88-ivtv.o
-obj-$(CONFIG_TVP5150) += tvp5150.o
-obj-$(CONFIG_EM28XX) += em28xx.o tveeprom.o
-obj-$(CONFIG_VIDEO_DECODER) += saa7115.o cx25840.o saa7127.o bt832.o \
- upd64031a.o upd64083.o
-
-ifeq ($(CONFIG_VIDEO_ALSA),y)
- EXTRA_CFLAGS += -DUSING_CX88_ALSA=1
- obj-$(CONFIG_VIDEO_CX88) += cx88-alsa.o
- obj-$(CONFIG_VIDEO_SAA7134) += saa7134-alsa.o
-## This one is installed by ALSA as snd_bt87x
-# obj-$(CONFIG_VIDEO_BTTV) += bt87x.o
-endif
+-include $(obj)/.myconfig
+-include $(obj)/Makefile.media
+-include $(obj)/Makefile.ivtv
-obj-$(CONFIG_VIRTUAL_DEVICE) += vivi.o
-obj-$(CONFIG_VIDEO_SAA7134) += saa7134.o saa7134-empress.o saa6752hs.o
-obj-$(CONFIG_VIDEO_SAA7134) += saa7134-oss.o
-obj-$(CONFIG_VIDEO_IR) += ir-common.o
-obj-$(CONFIG_VIDEO_TUNER) += tuner.o tda9887.o saa6588.o
-obj-$(CONFIG_VIDEO_TVAUDIO) += msp3400.o tvaudio.o tvmixer.o wm8775.o \
- wm8739.o cs53l32a.o tda7432.o tda9875.o
-obj-$(CONFIG_VIDEO_CPIA2) += cpia2.o
-
-obj-$(CONFIG_VIDEO_CX88_DVB) += video-buf-dvb.o cx88-dvb.o cx88-vp3054-i2c.o
-obj-$(CONFIG_VIDEO_SAA7134_DVB) += video-buf-dvb.o saa7134-dvb.o
-obj-$(CONFIG_DVB_BT8XX) += bt878.o dvb-bt8xx.o dst.o dst_ca.o
-obj-$(CONFIG_DVB_FRONTENDS) += dvb-pll.o cx22702.o or51132.o lgdt330x.o \
- mt352.o tda1004x.o sp887x.o nxt6000.o \
- cx24110.o or51211.o nxt200x.o cx24123.o \
- mt312.o stv0299.o bcm3510.o \
- dib3000-common.o dib3000mb.o dib3000mc.o \
- ves1820.o cx22700.o tda8083.o ves1x93.o \
- stv0297.o sp8870.o l64781.o s5h1420.o \
- tda10021.o at76c651.o tda80xx.o zl10353.o \
- mt2060.o
-obj-$(CONFIG_DVB_CORE) += dvb-core.o
-obj-$(CONFIG_DVB_B2C2_FLEXCOP) += b2c2-flexcop.o
-obj-$(CONFIG_DVB_B2C2_FLEXCOP) += stv0297_cs2.o
-obj-$(CONFIG_DVB_B2C2_FLEXCOP_PCI) += b2c2-flexcop-pci.o
-obj-$(CONFIG_DVB_B2C2_FLEXCOP_USB) += b2c2-flexcop-usb.o
-obj-$(CONFIG_DVB_CINERGYT2) += cinergyT2.o
-obj-$(CONFIG_DVB_PLUTO2) += pluto2.o
-obj-$(CONFIG_DVB_TTUSB_BUDGET) += dvb-ttusb-budget.o
-obj-$(CONFIG_DVB_TTUSB_DEC) += ttusb_dec.o ttusbdecfe.o
-obj-$(CONFIG_DVB_USB) += dvb-usb.o
-obj-$(CONFIG_DVB_USB_VP7045) += dvb-usb-vp7045.o
-obj-$(CONFIG_DVB_USB_VP702X) += dvb-usb-vp702x.o
-obj-$(CONFIG_DVB_USB_DTT200U) += dvb-usb-dtt200u.o
-obj-$(CONFIG_DVB_USB_A800) += dvb-usb-dibusb-common.o dvb-usb-a800.o
-obj-$(CONFIG_DVB_USB_DIBUSB_MB) += dvb-usb-dibusb-common.o dvb-usb-dibusb-mb.o
-obj-$(CONFIG_DVB_USB_DIBUSB_MC) += dvb-usb-dibusb-common.o dvb-usb-dibusb-mc.o
-obj-$(CONFIG_DVB_USB_NOVA_T_USB2) += dvb-usb-dibusb-common.o \
- dvb-usb-nova-t-usb2.o
-obj-$(CONFIG_DVB_USB_UMT_010) += dvb-usb-dibusb-common.o dvb-usb-umt-010.o
-obj-$(CONFIG_DVB_USB_DIGITV) += dvb-usb-digitv.o
-obj-$(CONFIG_DVB_USB_CXUSB) += dvb-usb-cxusb.o
-obj-$(CONFIG_DVB_BUDGET) += budget-core.o budget.o ttpci-eeprom.o
-obj-$(CONFIG_DVB_BUDGET_AV) += budget-core.o budget-av.o ttpci-eeprom.o
-obj-$(CONFIG_DVB_BUDGET_CI) += budget-core.o budget-ci.o ttpci-eeprom.o
-obj-$(CONFIG_DVB_BUDGET_PATCH) += budget-core.o budget-patch.o ttpci-eeprom.o
-obj-$(CONFIG_DVB_AV7110) += dvb-ttpci.o ttpci-eeprom.o
-obj-$(CONFIG_VIDEO_SAA7146) += saa7146.o
-obj-$(CONFIG_VIDEO_SAA7146_VV) += saa7146_vv.o
-obj-$(CONFIG_VIDEO_PVRUSB2) += pvrusb2.o
-obj-$(CONFIG_DVB_FIRESAT) += dvb-firesat.o
-obj-$(CONFIG_VIDEO_IVTV) += ivtv.o ivtv-fb.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-i2c.o
- endif
- ifeq ($(CONFIG_VIDEO_SAA7134),m)
- obj-$(CONFIG_VIDEO_IR) += ir-kbd-i2c.o
- endif
-endif
+#################################################
+# CFLAGS configuration
+
+# for DVB
+EXTRA_CFLAGS += -DDVB_CVS=1
+EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core/
+EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends/
ifeq ($(CONFIG_VIDEO_ADV_DEBUG),y)
EXTRA_CFLAGS += -DCONFIG_VIDEO_ADV_DEBUG=1
@@ -182,13 +31,10 @@ ifeq ($(CONFIG_XC3028),m)
EXTRA_CFLAGS += -DCONFIG_XC3028=1
endif
-# for DVB
-EXTRA_CFLAGS += -DDVB_CVS=1
-EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/dvb-core/
-EXTRA_CFLAGS += -I$(srctree)/drivers/media/dvb/frontends/
ifeq ($(CONFIG_DVB_FIRESAT),m)
- EXTRA_CFLAGS += -I$(srctree)/drivers/ieee1394/
+ EXTRA_CFLAGS += -I$(srctree)/drivers/ieee1394/
endif
+
ifeq ($(CONFIG_VIDEO_CX88_DVB),m)
EXTRA_CFLAGS += -DCONFIG_VIDEO_CX88_DVB_MODULE=1
EXTRA_CFLAGS += -DHAVE_CX22702=1
@@ -200,29 +46,23 @@ ifeq ($(CONFIG_VIDEO_CX88_DVB),m)
EXTRA_CFLAGS += -DHAVE_CX24123=1
EXTRA_CFLAGS += -DHAVE_VP3054_I2C=1
endif
+
ifeq ($(CONFIG_VIDEO_SAA7134_DVB),m)
EXTRA_CFLAGS += -DHAVE_MT352=1
EXTRA_CFLAGS += -DHAVE_TDA1004X=1
EXTRA_CFLAGS += -DHAVE_NXT200X=1
endif
+
ifeq ($(CONFIG_VIDEO_BUF_DVB),m)
EXTRA_CFLAGS += -DHAVE_VIDEO_BUF_DVB=1
endif
+
ifeq ($(CONFIG_DVB_AV7110_OSD),y)
EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_OSD=1
endif
-ifeq ($(CONFIG_DVB_AV7110_FIRMWARE),y)
-src := $(PWD)
-
-$(src)/av7110.c: $(obj)/av7110_firm.h
-
-$(obj)/fdump:
- $(CC) -o $@ $(src)/fdump.c
-$(obj)/av7110_firm.h: $(obj)/fdump
- $(obj)/fdump $(CONFIG_DVB_AV7110_FIRMWARE_FILE) dvb_ttpci_fw $@
-
-EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_FIRMWARE_FILE
+ifeq ($(CONFIG_DVB_AV7110_FIRMWARE),y)
+ EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_FIRMWARE_FILE
endif
# for pvrusb2
@@ -236,17 +76,14 @@ ifeq ($(CONFIG_VIDEO_PVRUSB2_24XXX),y)
EXTRA_CFLAGS += -DCONFIG_VIDEO_PVRUSB2_24XXX
endif
-ifeq ($(ARCH),)
-ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
- -e s/arm.*/arm/ -e s/sa110/arm/ \
- -e s/s390x/s390/ -e s/parisc64/parisc/ )
-endif
+EXTRA_CFLAGS += -g
+
+EXTRA_CFLAGS += $(if $(wildcard $(srctree)/.mm), -DMM_KERNEL)
#################################################
-# compile modules
+# Kernel 2.4/2.6 specific rules
ifneq ($(KERNELRELEASE),)
-
ifeq ($(VERSION).$(PATCHLEVEL),2.6)
export-objs :=
list-multi :=
@@ -256,10 +93,15 @@ else
export-objs := $(filter $(int-m) $(obj-m),$(export-objs))
endif
-CC += -I$(obj)
-EXTRA_CFLAGS += -g
+include $(obj)/Makefile.kern24
+-include $(TOPDIR)/Rules.make
+else
+# take version info from last module build if available
+-include $(obj)/.version
+endif
-EXTRA_CFLAGS += $(if $(wildcard $(srctree)/.mm), -DMM_KERNEL)
+#################################################
+# Directories to be used
snapshot := $(wildcard $(obj)/.snapshot)
ifneq ($(snapshot),)
@@ -267,45 +109,17 @@ SNAPSHOT_CFLAGS := -DSNAPSHOT='$(shell cat $(snapshot))'
EXTRA_CFLAGS += $(SNAPSHOT_CFLAGS)
endif
-#
-# Need to compile with kernel 2.4
-#
-bttv.o: $(bttv-objs)
- $(LD) -r -o $@ $(bttv-objs)
-
-cx25840.o: $(cx25840-objs)
- $(LD) -g -r -o $@ $(cx25840-objs)
-
-cx8800.o: $(cx8800-objs)
- $(LD) -g -r -o $@ $(cx8800-objs)
-
-cx8802.o: $(cx8802-objs)
- $(LD) -g -r -o $@ $(cx8802-objs)
-
-cx88xx.o: $(cx88xx-objs)
- $(LD) -g -r -o $@ $(cx88xx-objs)
-
-em28xx.o: $(em28xx-objs)
- $(LD) -g -r -o $@ $(em28xx-objs)
-
-saa7134.o: $(saa7134-objs)
- $(LD) -g -r -o $@ $(saa7134-objs)
-
-tuner.o: $(tuner-objs)
- $(LD) -g -r -o $@ $(tuner-objs)
-
--include $(TOPDIR)/Rules.make
-else
-# take version info from last module build if available
--include $(obj)/.version
-endif
-
KDIR := /lib/modules/$(KERNELRELEASE)/build
PWD := $(shell pwd)
DEST := /lib/modules/$(KERNELRELEASE)/$(MDIR)
KDIR26 := /lib/modules/$(KERNELRELEASE)/kernel/drivers/media
KDIRUSB := /lib/modules/$(KERNELRELEASE)/kernel/drivers/usb/media
+#################################################
+# Compiler fixup rules
+
+CC += -I$(obj)
+
ifeq ($(VERSION).$(PATCHLEVEL),2.6)
CPPFLAGS := -I$(SUBDIRS)/../linux/include $(CPPFLAGS) -I$(SUBDIRS)/
MYCFLAGS :=
@@ -313,177 +127,162 @@ else
MYCFLAGS := CFLAGS="-I../linux/include -D__KERNEL__ -I$(KDIR)/include -DEXPORT_SYMTAB"
endif
+
+#################################################
# which files to install?
+
inst-m := $(wildcard *.ko)
ifeq ($(inst-m),)
inst-m := $(obj-m)
endif
-inst_common := ir-common.ko
-inst_video := btcx-risc.ko bttv.ko tda9887.ko tuner.ko tvaudio.ko tveeprom.ko saa6588.ko
-#inst_video += bt87x.ko
-inst_video += tvmixer.ko v4l1-compat.ko v4l2-common.ko wm8775.ko wm8739.ko cs53l32a.ko
-inst_video += video-buf.ko video-buf-dvb.ko
-inst_video += videodev.ko
-inst_video += ir-kbd-i2c.ko msp3400.ko
-inst_video += tvp5150.ko saa7134-alsa.ko saa7134-oss.ko
-inst_video += saa7115.ko cx25840.ko saa7127.ko compat_ioctl32.ko
-inst_video += upd64031a.ko upd64083.ko
-inst_cx88 := cx88xx.ko cx8800.ko cx8802.ko cx88-alsa.ko cx88-dvb.ko
-inst_video += vivi.ko
-inst_cx88 += cx88-blackbird.ko cx88-vp3054-i2c.ko cx88-ivtv.ko
-inst_saa7134 := saa6752hs.ko saa7134.ko saa7134-empress.ko saa7134-dvb.ko
-inst_em28xx := em28xx.ko
-inst_bt8xx := bt878.ko dvb-bt8xx.ko dst.ko dst_ca.ko
-inst_frontends := cx22702.ko dvb-pll.ko lgdt330x.ko or51132.ko tda1004x.ko
-inst_frontends += mt352.ko sp887x.ko nxt6000.ko cx24110.ko or51211.ko
-inst_frontends += nxt200x.ko cx24123.ko mt312.ko stv0299.ko bcm3510.ko
-inst_frontends += dib3000-common.ko dib3000mb.ko dib3000mc.ko ves1820.ko
-inst_frontends += cx22700.ko tda8083.ko ves1x93.ko stv0297.ko sp8870.ko
-inst_frontends += l64781.ko s5h1420.ko tda10021.ko at76c651.ko tda80xx.ko
-inst_frontends += stv0297_cs2.ko zl10353.ko mt2060.ko
-inst_dvb-core := dvb-core.ko
-inst_saa7146 := saa7146.ko saa7146_vv.ko
-inst_b2c2 := b2c2-flexcop.ko b2c2-flexcop-pci.ko b2c2-flexcop-usb.ko
-inst_cinergyT2 := cinergyT2.ko
-inst_dvb-usb := dvb-usb.ko dvb-usb-vp7045.ko dvb-usb-vp702x.ko
-inst_dvb-usb += dvb-usb-dtt200u.ko dvb-usb-a800.ko dvb-usb-nova-t-usb2.ko
-inst_dvb-usb += dvb-usb-dibusb-common.ko dvb-usb-dibusb-mc.ko dvb-usb-dibusb-mb.ko
-inst_dvb-usb += dvb-usb-umt-010.ko dvb-usb-digitv.ko dvb-usb-cxusb.ko
-inst_pluto2 := pluto2.ko
-inst_ttpci := budget-core.ko budget.ko ttpci-eeprom.ko budget-av.ko
-inst_ttpci += budget-ci.ko budget-patch.ko dvb-ttpci.ko
-inst_ttusb-budget := dvb-ttusb-budget.ko
-inst_ttusb-dec := ttusb_dec.ko ttusbdecfe.ko
-inst_pvrusb2 := pvrusb2.ko
-inst_firesat := dvb-firesat.ko
-inst_ivtv := ivtv.ko ivtv-fb.ko
-
v4l_modules := $(shell /sbin/lsmod|cut -d' ' -f1 ) $(patsubst %.ko,%,$(inst-m))
+#################################################
# locales seem to cause trouble sometimes.
LC_ALL = POSIX
export LC_ALL
-all:: default
-default:: links .version
- $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules
+#################################################
+# Generic wildcard rules
-xconfig:: links .version
- ./scripts/make_kconfig.pl $(ARCH)
- $(KDIR)/scripts/kconfig/qconf Kconfig
+%.asm: %.o
+ objdump -S $< > $@
-ivtv-checkout::
- @if [ ! -d ivtv ]; then \
- echo retrieving the latest ivtv sources from ivtvdriver.org; \
- echo this step requires subversion to be installed; \
- svn co http://ivtvdriver.org/svn/ivtv/trunk ivtv; \
- fi
+#################################################
+# all file compilation rule
-ivtv-update ivtv-up:: ivtv
- @svn up ivtv
+all:: allmodconfig default
-ivtv-links:: ivtv-checkout
- @echo creating ivtv symbolic links...
- @find ivtv/driver -name '*.[ch]' -type f -exec ln -sf '{}' . \;
- @find ivtv/i2c-drivers -name '*.[ch]' -type f -exec ln -sf '{}' . \;
+#################################################
+# Compiling preparation rules
-ivtv:: ivtv-links
- @echo '#define IVTV_DRIVER_VERSION_COMMENT ' \
- '"(v4l-dvb + ivtv virtual merge)' \
- "`svn info ivtv | grep Revision`"'"' > ivtv-svnversion.h
- @echo ivtv trunk merged. Run make to build the entire tree.
+Makefile.media::
+ scripts/make_makefile.pl
-cx88-ivtv::
- @echo creating cx88-ivtv symbolic links...
- @ln -sf ../v4l_experimental/cx88-ivtv.c .
+.version:
+ifneq ($(KERNELRELEASE),)
+ echo -e VERSION=$(VERSION)\\nPATCHLEVEL:=$(PATCHLEVEL)\\nSUBLEVEL:=$(SUBLEVEL)\\nKERNELRELEASE:=$(KERNELRELEASE) > $(obj)/.version
+else
+ echo "No version yet."
+ uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) { printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$$1,$$2,$$3,$$1,$$2,$$3,$$4); };' > $(obj)/.version
+endif
links::
@echo creating symbolic links...
@find ../linux/drivers/media -name '*.[ch]' -type f -exec ln -sf '{}' . \;
@find ../linux/sound -name '*.[ch]' -type f -exec ln -sf '{}' . \;
-# @find ../linux/include -name '*.[h]' -type f -exec ln -sf '{}' . \;
-
kernel-links makelinks::
cd ..; v4l/scripts/makelinks.sh $(KDIR)
-install:: v4l-install dvb-install
-
-v4l-install:: v4l-rminstall
- @echo -e "\nInstalling new V4L modules at corresponding Kernel dir..."
-
- @strip --strip-debug $(inst-m)
-
- -install -d $(KDIR26)/common
- -install -m 644 -c $(inst_common) $(KDIR26)/common
-
- -install -d $(KDIR26)/video
- -install -m 644 -c $(inst_video) $(KDIR26)/video
-
- -install -d $(KDIR26)/video/cx88
- -install -m 644 -c $(inst_cx88) $(KDIR26)/video/cx88
+#################################################
+# Cardlist updating rule
- -install -d $(KDIR26)/video/saa7134
- -install -m 644 -c $(inst_saa7134) $(KDIR26)/video/saa7134
+card cardlist cardlists:
+ scripts/cardlist
- -install -d $(KDIR26)/video/em28xx
- -install -m 644 -c $(inst_em28xx) $(KDIR26)/video/em28xx
+#################################################
+# Cleaning rules
- -install -d $(KDIR26)/video/pvrusb2
- -install -m 644 -c $(inst_pvrusb2) $(KDIR26)/video/pvrusb2
+clean::
+ @find . -name '*.c' -type l -exec rm '{}' \;
+ @find . -name '*.h' -type l -exec rm '{}' \;
+ -rm -f *~ *.o *.ko .*.o.cmd .*.ko.cmd *.mod.c av7110_firm.h fdump \
+ ivtv-svnversion.h
- -install -d $(KDIR26)/video/ivtv
- -install -m 644 -c $(inst_ivtv) $(KDIR26)/video/ivtv
+distclean:: clean
+ -rm -f .version .*.o.flags .*.o.d Makefile.media \
+ Kconfig Kconfig.kern .config .config.cmd
+ -rm -rf .tmp_versions
+ @find .. -name '*.orig' -exec rm '{}' \;
+ @find .. -name '*.rej' -exec rm '{}' \;
-# -install -d $(KDIRUSB)
-# -install -m 644 -c $(inst_usb) $(KDIRUSB)/
+#################################################
+# Kernel module insert/removal rules
- /sbin/depmod -a ${KERNELRELEASE}
+rmmodules::
+ rmmod -w $(shell echo "$(v4l_modules)"|sed s,' ','\n',g|sed s,'-','_',g|sort|uniq -d)
-dvb-install:: dvb-rminstall
- @echo -e "\nInstalling new DVB modules at corresponding Kernel dir..."
+insmod load::
+ scripts/insmod.sh load
- @strip --strip-debug $(inst-m)
+rmmod unload::
+ scripts/insmod.sh unload
- -install -d $(KDIR26)/common
- -install -m 644 -c $(inst_saa7146) $(KDIR26)/common
+reload::
+ scripts/insmod.sh reload
- -install -d $(KDIR26)/dvb/frontends
- -install -m 644 -c $(inst_frontends) $(KDIR26)/dvb/frontends
+#################################################
+# Configuration rules
- -install -d $(KDIR26)/dvb/bt8xx
- -install -m 644 -c $(inst_bt8xx) $(KDIR26)/dvb/bt8xx
+xconfig:: links .version
+ ./scripts/make_kconfig.pl
+ $(KDIR)/scripts/kconfig/qconf Kconfig
+ ./scripts/make_noconfig.pl
+
+gconfig:: links .version
+ ./scripts/make_kconfig.pl
+ $(KDIR)/scripts/kconfig/gconf Kconfig
+ ./scripts/make_noconfig.pl
+
+config:: links .version
+ ./scripts/make_kconfig.pl
+ $(KDIR)/scripts/kconfig/conf Kconfig
+ ./scripts/make_noconfig.pl
+
+menuconfig:: links .version
+ ./scripts/make_kconfig.pl
+ -rm scripts/lxdialog scripts/kconfig
+ -if [ -d $(KDIR)/scripts/lxdialog ]; then \
+ ln -s $(KDIR)/scripts/lxdialog scripts/lxdialog; \
+ fi
- -install -d $(KDIR26)/dvb/dvb-core
- -install -m 644 -c $(inst_dvb-core) $(KDIR26)/dvb/dvb-core
+ -if [ -d $(KDIR)/scripts/kconfig ]; then \
+ ln -s $(KDIR)/scripts/kconfig scripts/kconfig; \
+ fi
- -install -d $(KDIR26)/dvb/b2c2
- -install -m 644 -c $(inst_b2c2) $(KDIR26)/dvb/b2c2
+ $(KDIR)/scripts/kconfig/mconf Kconfig
+ ./scripts/make_noconfig.pl
- -install -d $(KDIR26)/dvb/cinergyT2
- -install -m 644 -c $(inst_cinergyT2) $(KDIR26)/dvb/cinergyT2
+allmodconfig:: links .version
+ ./scripts/make_kconfig.pl
+ $(KDIR)/scripts/kconfig/conf -m Kconfig
+ cat .config|grep -v CONFIG_DVB_AV7110_FIRMWARE >.config.new
+ mv .config.new .config
+ ./scripts/make_noconfig.pl
- -install -d $(KDIR26)/dvb/dvb-usb
- -install -m 644 -c $(inst_dvb-usb) $(KDIR26)/dvb/dvb-usb
+#################################################
+# IVTV link rules
- -install -d $(KDIR26)/dvb/pluto2
- -install -m 644 -c $(inst_pluto2) $(KDIR26)/dvb/pluto2
+ivtv-checkout::
+ @if [ ! -d ivtv ]; then \
+ echo retrieving the latest ivtv sources from ivtvdriver.org; \
+ echo this step requires subversion to be installed; \
+ svn co http://ivtvdriver.org/svn/ivtv/trunk ivtv; \
+ fi
- -install -d $(KDIR26)/dvb/ttpci
- -install -m 644 -c $(inst_ttpci) $(KDIR26)/dvb/ttpci
+ivtv-update ivtv-up:: ivtv
+ @svn up ivtv
- -install -d $(KDIR26)/dvb/ttusb-budget
- -install -m 644 -c $(inst_ttusb-budget) $(KDIR26)/dvb/ttusb-budget
+ivtv-links:: ivtv-checkout
+ @echo creating ivtv symbolic links...
+ @find ivtv/driver -name '*.[ch]' -type f -exec ln -sf '{}' . \;
+ @find ivtv/i2c-drivers -name '*.[ch]' -type f -exec ln -sf '{}' . \;
- -install -d $(KDIR26)/dvb/ttusb-dec
- -install -m 644 -c $(inst_ttusb-dec) $(KDIR26)/dvb/ttusb-dec
+ivtv:: ivtv-links
+ @echo '#define IVTV_DRIVER_VERSION_COMMENT ' \
+ '"(v4l-dvb + ivtv virtual merge)' \
+ "`svn info ivtv | grep Revision`"'"' > ivtv-svnversion.h
+ @echo ivtv trunk merged. Run make to build the entire tree.
- -install -d $(KDIR26)/dvb/firesat
- -install -m 644 -c $(inst_firesat) $(KDIR26)/dvb/firesat
+cx88-ivtv::
+ @echo creating cx88-ivtv symbolic links...
+ @ln -sf ../v4l_experimental/cx88-ivtv.c .
- /sbin/depmod -a ${KERNELRELEASE}
+#################################################
+# Old instalation rule
old-install:: rminstall
@echo -e "\nInstalling new V4L modules at $(DEST)..."
@@ -495,73 +294,8 @@ old-install:: rminstall
/sbin/depmod -a ${KERNELRELEASE}
-rminstall:: v4l-rminstall dvb-rminstall
-
-v4l-rminstall::
- @echo -e "\nEliminating old V4L modules (errors on this step is not a problem).."
-
- -@rm -r $(DEST) \
- $(addprefix $(KDIR26)/common/, $(inst_common)) \
- $(addprefix $(KDIR26)/video/, $(inst_video)) \
- $(addprefix $(KDIR26)/video/cx88/, $(inst_cx88)) \
- $(addprefix $(KDIR26)/video/saa7134/, $(inst_saa7134)) \
- $(addprefix $(KDIR26)/video/pvrusb2/, $(inst_pvrusb2)) \
- $(addprefix $(KDIR26)/video/ivtv/, $(inst_ivtv)) \
- $(addprefix $(KDIR26)/video/em28xx/, $(inst_em28xx)) \
- $(addprefix $(KDIRUSB)/, $(inst_em28xx)) \
- $(addprefix $(KDIR26)/common/, $(addsuffix .gz,$(inst_common))) \
- $(addprefix $(KDIR26)/video/, $(addsuffix .gz,$(inst_video))) \
- $(addprefix $(KDIR26)/video/cx88/, $(addsuffix .gz,$(inst_cx88))) \
- $(addprefix $(KDIR26)/video/saa7134/, $(addsuffix .gz,$(inst_saa7134))) 2>/dev/null \
- $(addprefix $(KDIR26)/video/pvrusb2/, $(addsuffix .gz,$(inst_pvrusb2))) 2>/dev/null \
- $(addprefix $(KDIR26)/video/ivtv/, $(addsuffix .gz,$(inst_ivtv))) 2>/dev/null \
- $(addprefix $(KDIR26)/video/em28xx/, $(addsuffix .gz,$(inst_em28xx))) 2>/dev/null \
- $(addprefix $(KDIRUSB)/, $(addsuffix .gz,$(inst_em28xx))) 2>/dev/null
- @echo
-
-dvb-rminstall::
- @echo -e "\nEliminating old DVB modules (errors on this step is not a problem).."
-
- -@rm -r $(DEST) \
- $(addprefix $(KDIR26)/dvb/bt8xx/, $(inst_bt8xx)) \
- $(addprefix $(KDIR26)/dvb/frontends/, $(inst_frontends)) \
- $(addprefix $(KDIR26)/dvb/dvb-core/, $(inst_dvb-core)) \
- $(addprefix $(KDIR26)/dvb/b2c2/, $(inst_b2c2)) \
- $(addprefix $(KDIR26)/dvb/cinergyT2/, $(inst_cinergyT2)) \
- $(addprefix $(KDIR26)/dvb/dvb-usb/, $(inst_dvb-usb)) \
- $(addprefix $(KDIR26)/dvb/pluto2/, $(inst_pluto2)) \
- $(addprefix $(KDIR26)/dvb/ttpci/, $(inst_ttpci)) \
- $(addprefix $(KDIR26)/dvb/ttusb-budget/, $(inst_ttusb-budget)) \
- $(addprefix $(KDIR26)/dvb/ttusb-dec/, $(inst_ttusb-dec)) \
- $(addprefix $(KDIR26)/dvb/firesat/, $(inst_firesat)) \
- $(addprefix $(KDIR26)/dvb/bt8xx/, $(addsuffix .gz,$(inst_bt8xx))) \
- $(addprefix $(KDIR26)/dvb/frontends/, $(addsuffix .gz,$(inst_frontends))) \
- $(addprefix $(KDIR26)/dvb/dvb-core/, $(addsuffix .gz,$(inst_dvb-core))) \
- $(addprefix $(KDIR26)/dvb/b2c2/, $(addsuffix .gz,$(inst_b2c2))) \
- $(addprefix $(KDIR26)/dvb/cinergyT2/, $(addsuffix .gz,$(inst_cinergyT2))) \
- $(addprefix $(KDIR26)/dvb/dvb-usb/, $(addsuffix .gz,$(inst_dvb-usb))) \
- $(addprefix $(KDIR26)/dvb/pluto2/, $(addsuffix .gz,$(inst_pluto2))) \
- $(addprefix $(KDIR26)/dvb/ttpci/, $(addsuffix .gz,$(inst_ttpci))) \
- $(addprefix $(KDIR26)/dvb/ttusb-budget/, $(addsuffix .gz,$(inst_ttusb-budget))) \
- $(addprefix $(KDIR26)/dvb/ttusb-dec/, $(addsuffix .gz,$(inst_ttusb-dec))) \
- $(addprefix $(KDIR26)/dvb/firesat/, $(addsuffix .gz,$(inst_firesat))) 2>/dev/null
- @echo
-
-rmmodules::
- rmmod -w $(shell echo "$(v4l_modules)"|sed s,' ','\n',g|sed s,'-','_',g|sort|uniq -d)
-
-clean::
- @find . -name '*.c' -type l -exec rm '{}' \;
- @find . -name '*.h' -type l -exec rm '{}' \;
- -rm -f *~ *.o *.ko .*.o.cmd .*.ko.cmd *.mod.c av7110_firm.h fdump \
- ivtv-svnversion.h \
- Kconfig Kconfig.kern .config .config.cmd
-
-distclean:: clean
- -rm -f .version .*.o.flags .*.o.d
- -rm -rf .tmp_versions
- @find .. -name '*.orig' -exec rm '{}' \;
- @find .. -name '*.rej' -exec rm '{}' \;
+#################################################
+# Tree management rules
change changes changelog::
make -C .. changelog
@@ -575,26 +309,8 @@ commit cvscommit hgcommit::
push::
make -C .. push
-insmod load::
- scripts/insmod.sh load
-
-rmmod unload::
- scripts/insmod.sh unload
-
-reload::
- scripts/insmod.sh reload
-
-.version:
-ifneq ($(KERNELRELEASE),)
- echo -e VERSION=$(VERSION)\\nPATCHLEVEL:=$(PATCHLEVEL)\\nSUBLEVEL:=$(SUBLEVEL)\\nKERNELRELEASE:=$(KERNELRELEASE) > $(obj)/.version
-else
- echo "No version yet."
- uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) { printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",$$1,$$2,$$3,$$1,$$2,$$3,$$4); };' > $(obj)/.version
-
-endif
-
#################################################
-# build tarballs
+# build tarballs rules
RPWD := $(shell cd .. && pwd)
thisdir := $(notdir $(RPWD))
@@ -612,14 +328,3 @@ snapshot snap tarball: update distclean
(cd ..; tar czf $(snapdir)/$(snap)-$(date).tar.gz .)
cp ChangeLog /$(snapdir)/$(snap)-ChangeLog-$(date)
$(MAKE) -C $(snapdir)
-
-
-#################################################
-# other stuff
-
-%.asm: %.o
- objdump -S $< > $@
-
-card cardlist cardlists:
- scripts/cardlist
-
diff --git a/v4l/Makefile.ivtv b/v4l/Makefile.ivtv
new file mode 100644
index 000000000..69962f9e4
--- /dev/null
+++ b/v4l/Makefile.ivtv
@@ -0,0 +1,25 @@
+#
+# ivtv build rules
+#
+CONFIG_VIDEO_IVTV := $(if $(wildcard $(src)/ivtv-svnversion.h),m)
+CONFIG_VIDEO_CX88_IVTV := $(if $(wildcard $(src)/cx88-ivtv.c),m)
+
+ivtv-objs := ivtv-driver.o ivtv-fileops.o ivtv-i2c.o \
+ ivtv-streams.o ivtv-firmware.o ivtv-reset.o \
+ ivtv-gpio.o ivtv-queue.o ivtv-irq.o ivtv-mailbox.o \
+ ivtv-vbi.o ivtv-kthreads.o ivtv-audio.o ivtv-ioctl.o \
+ ivtv-controls.o ivtv-video.o ivtv-cards.o ivtv-yuv.o
+ivtv-fb-objs := ivtv-osd.o ivtv-queue.o
+
+obj-$(CONFIG_VIDEO_IVTV) += ivtv.o ivtv-fb.o
+obj-$(CONFIG_VIDEO_CX88_IVTV) += cx88-ivtv.o
+
+ivtv-install::
+ @echo -e "\nInstalling $(KDIR26)/video/ivtv files:"
+ @install -d $(KDIR26)/video/ivtv
+ @files='ivtv.ko ivtv-fb.ko cx88-ivtv.ko '; for i in $$files;do if [ -e $$i ]; then echo -n "$$i "; install -m 644 -c $$i $(KDIR26)/video/ivtv; fi; done; echo;
+ /sbin/depmod -a ${KERNELRELEASE}
+
+ivtv-rminstall::
+ @echo -e "\nRemoving old $(KDIR26)/video/ivtv files:"
+ @files='ivtv.ko ivtv-fb.ko cx88-ivtv.ko '; for i in $$files;do if [ -e $(KDIR26)/video/ivtv/$$i ]; then echo -n "$$i "; rm $(KDIR26)/video/ivtv/$$i; fi; done; for i in $$files;do if [ -e $(KDIR26)/video/ivtv/$$i.gz ]; then echo -n "$$i.gz "; rm $(KDIR26)/video/ivtv/$$i.gz; fi; done; echo;
diff --git a/v4l/Makefile.kern24 b/v4l/Makefile.kern24
new file mode 100644
index 000000000..2bab09aee
--- /dev/null
+++ b/v4l/Makefile.kern24
@@ -0,0 +1,28 @@
+#
+# Need to compile with kernel 2.4
+#
+
+bttv.o: $(bttv-objs)
+ $(LD) -r -o $@ $(bttv-objs)
+
+cx25840.o: $(cx25840-objs)
+ $(LD) -g -r -o $@ $(cx25840-objs)
+
+cx8800.o: $(cx8800-objs)
+ $(LD) -g -r -o $@ $(cx8800-objs)
+
+cx8802.o: $(cx8802-objs)
+ $(LD) -g -r -o $@ $(cx8802-objs)
+
+cx88xx.o: $(cx88xx-objs)
+ $(LD) -g -r -o $@ $(cx88xx-objs)
+
+em28xx.o: $(em28xx-objs)
+ $(LD) -g -r -o $@ $(em28xx-objs)
+
+saa7134.o: $(saa7134-objs)
+ $(LD) -g -r -o $@ $(saa7134-objs)
+
+tuner.o: $(tuner-objs)
+ $(LD) -g -r -o $@ $(tuner-objs)
+
diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl
index 91c37693f..b1d6f5d53 100755
--- a/v4l/scripts/make_kconfig.pl
+++ b/v4l/scripts/make_kconfig.pl
@@ -1,10 +1,10 @@
#!/usr/bin/perl
use FileHandle;
-my $ARCH=shift;
-
my %depend = ();
+my %minver = ();
my %config = ();
+my $version, $level, $sublevel;
sub add_config($)
{
@@ -33,6 +33,7 @@ sub check_deps($)
sub open_kconfig($$) {
my ($dir,$file)=@_;
my $in = new FileHandle;
+ my $skip=0;
#print "opening $file\n";
open $in,"$file";
@@ -51,15 +52,78 @@ sub open_kconfig($$) {
check_deps ($1);
}
if (m|^\s*config (.*)\n|) {
+ my $key=$1;
+
add_config ($1);
+
+ my $min=$minver { $key };
+ my $minversion, $minlevel, $minsublevel;
+ if ($min =~ m/(\d+)\.(\d+)\.(\d+)/) {
+ $minversion=$1;
+ $minlevel=$2;
+ $minsublevel=$3;
+ } else {
+ die "Minimum version for $key not found at versions.txt";
+ }
+ if ( ($version < $minversion) |
+ ($level < $minlevel) |
+ ($sublevel < $minsublevel) ) {
+ $skip=1;
+ printf "$key requires version $minversion.$minlevel.$minsublevel\n";
+
+ print OUT "# $key disabled due to incorrect version\nconfig $key\n\ttristate\n\tdefault n\n\n";
+ next;
+ } else {
+# printf "OK: $key requires version $minversion.$minlevel.$minsublevel\n";
+ $skip=0;
+ }
}
s/^main(menu\s\"[^\"]+)/\1 - DON'T CHANGE IT!/;
- print OUT $_;
+ if (m/^[\w]/) {
+ $skip=0;
+ }
+ if (!$skip) {
+ print OUT $_;
+ }
+ }
+ close $in;
+}
+
+sub parse_versions ()
+{
+ my $in = new FileHandle;
+ my $ver;
+
+ open $in,"versions.txt";
+ while (<$in>) {
+ if (m/\[([\d.]*)\]/) {
+ $ver=$1;
+ next;
+ }
+ s/\n//;
+ if (m/^\s*([\w\d_]+)/) {
+ $minver { $1 } = $ver;
+# printf ("%s=%s\n",$1,$ver);
+ }
}
close $in;
}
+parse_versions;
+
+open IN,".version";
+while (<IN>) {
+ if (m/KERNELRELEASE\s*[:]*[=]+\s*(\d+)\.(\d+)\.(\d+)/) {
+ $version=$1;
+ $level=$2;
+ $sublevel=$3;
+ }
+}
+close IN;
+
+printf "Preparing to compile for kernel version %d.%d.%d\n",$version,$level,$sublevel;
+
open OUT,">Kconfig";
print OUT "mainmenu \"V4L/DVB menu\"\n";
@@ -73,6 +137,9 @@ while ( my ($key, $value) = each(%config) ) {
}
open OUT,">Kconfig.kern";
+
+print OUT "config MODULES\n\tboolean\n\tdefault y\n\n";
+
while ( my ($key, $value) = each(%depend) ) {
print OUT "# $key with $value refs\nconfig $key\n\ttristate\n\tdefault m\n\n";
}
diff --git a/v4l/scripts/make_makefile.pl b/v4l/scripts/make_makefile.pl
new file mode 100755
index 000000000..8371f6a4a
--- /dev/null
+++ b/v4l/scripts/make_makefile.pl
@@ -0,0 +1,164 @@
+#!/usr/bin/perl
+use FileHandle;
+
+my $instdir = ();
+
+sub check_line($$$)
+{
+ my $dir=shift;
+ my $obj=shift;
+ my $arg=shift;
+ my $arg2="";
+
+ my $idir = $dir;
+
+ $idir =~ s|^../linux/drivers/media/||;
+
+ $arg=$arg." ";
+
+ while ($arg ne "") {
+ if ($arg =~ m|^([^ /]+)/ |) {
+ my $newdir=$1;
+# print "include $dir/$newdir/Makefile\n";
+ open_makefile("$dir/$newdir/Makefile");
+ $arg =~ s/^[^ ]+ //;
+ } else {
+ $arg =~ s/^([^ ]+ )//;
+ my $cur=$1;
+ $arg2 = $arg2.$cur;
+
+ $cur =~ s/\s+$//;
+ $cur =~ s/\\$//;
+ $cur =~ s/\s+$//;
+ $cur =~ s/\.o$/.ko/;
+
+ if ( ($cur ne "") && (! ($instdir { $idir } =~ m/($cur) /))) {
+ $instdir { $idir } = $instdir { $idir }.$cur." ";
+ }
+ }
+ }
+ $arg2 =~ s/\s+$//;
+ if ($arg2 ne "") {
+# print "arg=$arg2\n";
+ print OUT "$obj$arg2\n";
+ }
+}
+
+sub remove_includes($$)
+{
+ my $obj=shift;
+ my $arg=shift;
+ my $arg2="";
+
+ $arg=$arg." ";
+
+ while ($arg ne "") {
+ if (!$arg =~ m|^(-I\s*[^ ]+) |) {
+ $arg2 = $arg2.$1;
+ $arg =~ s|^[^ ] ||;
+ } else {
+ $arg =~ s|^(-I\s*[^ ]+) ||;
+ }
+ }
+ if ($arg2 ne "") {
+ print OUT "$obj$arg2\n";
+ }
+}
+
+sub open_makefile($) {
+ my $file= shift;
+ my $in = new FileHandle;
+ my $dir= "";
+ my $count=0;
+
+ $file=~ m|^(.*)/[^/]*$|;
+ $dir=$1;
+
+#print "opening $file (dir=$dir)\n";
+ open $in,"$file";
+
+ while (<$in>) {
+ if (m|\s*#|) {
+ print OUT $_;
+ next;
+ }
+ if (m|^\s*include|) {
+ next;
+ }
+ if (count==1 || m|(^\s*EXTRA_CFLAGS.*=\s*)(.*/.*)\n|) {
+ remove_includes($1,$2);
+ if (m|[\\]\n|) {
+ $count=1;
+ } else {
+ $count=0;
+ }
+ next;
+ }
+# if (m|(^\s*obj.*=\s*)(.*/.*)\n|) {
+ if (count==2 || m|(^\s*obj.*=\s*)(.*)\n|) {
+ check_line($dir,$1,$2);
+ if (m|\\\n|) {
+ $count=1;
+ } else {
+ $count=0;
+ }
+ next;
+ }
+ print OUT $_;
+ }
+ close $in;
+}
+
+open OUT,">Makefile.media";
+open_makefile ("../linux/drivers/media/Makefile");
+
+# Creating Install rule
+printf OUT "install::\n";
+#printf OUT "\t@strip --strip-debug \$(inst-m)\n\n";
+
+while ( my ($key, $value) = each(%instdir) ) {
+ printf OUT "\t\@echo -e \"\\nInstalling \$(KDIR26)/$key files:\"\n";
+ printf OUT "\t\@install -d \$(KDIR26)/$key\n";
+
+ printf OUT "\t\@files='$value'; ";
+ printf OUT "for i in \$\$files;do if [ -e \$\$i ]; then echo -n \"\$\$i \";";
+ printf OUT " install -m 644 -c \$\$i \$(KDIR26)/$key; fi; done; echo;\n\n";
+}
+printf OUT "\t/sbin/depmod -a \${KERNELRELEASE}\n\n";
+
+# Creating Remove rule
+printf OUT "remove rminstall::\n";
+printf OUT "\t\@echo -e \"\\nRemoving old \$(DEST) files\\n\"\n";
+
+while ( my ($key, $value) = each(%instdir) ) {
+ printf OUT "\t\@echo -e \"\\nRemoving old \$(KDIR26)/$key files:\"\n";
+ printf OUT "\t\@files='$value'; ";
+
+ printf OUT "for i in \$\$files;do if [ -e \$(KDIR26)/$key/\$\$i ]; then ";
+ printf OUT "echo -n \"\$\$i \";";
+ printf OUT " rm \$(KDIR26)/$key/\$\$i; fi; done; ";
+
+ printf OUT "for i in \$\$files;do if [ -e \$(KDIR26)/$key/\$\$i.gz ]; then ";
+ printf OUT "echo -n \"\$\$i.gz \";";
+ printf OUT " rm \$(KDIR26)/$key/\$\$i.gz; fi; done; echo;\n\n";
+}
+
+close OUT;
+
+while ( my ($key, $value) = each(%config) ) {
+ delete $depend{$key};
+}
+
+open OUT,">Kconfig.kern";
+while ( my ($key, $value) = each(%depend) ) {
+ print OUT "# $key with $value refs\nconfig $key\n\ttristate\n\tdefault m\n\n";
+}
+close OUT;
+
+if (open OUT,".myconfig") {
+ close IN;
+} else {
+ system "make allmodconfig";
+}
+
+
diff --git a/v4l/scripts/make_noconfig.pl b/v4l/scripts/make_noconfig.pl
new file mode 100755
index 000000000..a47ca4acf
--- /dev/null
+++ b/v4l/scripts/make_noconfig.pl
@@ -0,0 +1,63 @@
+#!/usr/bin/perl
+
+my $config = ();
+
+open IN,".config";
+while (<IN>) {
+ if (m/\s*([\d\w_]+)[=](.*)\n/) {
+#printf "%s=%s\n",$1,$2;
+ $config { $1 } = $2;
+ }
+}
+close IN;
+
+open IN,".version";
+while (<IN>) {
+ if (m/KERNELRELEASE\s*[:]*[=]+\s*(\d+)\.(\d+)\.(\d+)/) {
+ $version=$1;
+ $level=$2;
+ $sublevel=$3;
+ }
+}
+close IN;
+
+open IN,"versions.txt";
+while (<IN>) {
+ if (m/\[(\d+)\.(\d+)\.(\d+)\]/) {
+ $minversion=$1;
+ $minlevel=$2;
+ $minsublevel=$3;
+ next;
+ }
+ s/\n//;
+
+ if (m/DVB_AV7110_FIRMWARE/) {
+ next;
+ }
+ if (m/DVB_AV7110_FIRMWARE_FILE/) {
+ next;
+ }
+ if (m/^\s*([\w\d_]+)/) {
+ if ( ($version < $minversion) |
+ ($level < $minlevel) |
+ ($sublevel < $minsublevel) ) {
+ $config { "CONFIG_$1" } = 'n';
+#print "CONFIG_$1 version is not supported\n";
+ next;
+ }
+ if (!($config { "CONFIG_$1" } ) ) {
+print "CONFIG_$1 is unset\n";
+ $config { "CONFIG_$1" } = 'n';
+ }
+ }
+}
+close IN;
+
+open OUT,">.myconfig";
+while ( my ($key, $value) = each(%config) ) {
+ if ($value eq "y") {
+ $value="m";
+ }
+ printf OUT "%-44s := %s\n",$key,$value;
+}
+close OUT;
diff --git a/v4l/versions.txt b/v4l/versions.txt
new file mode 100644
index 000000000..255a31b17
--- /dev/null
+++ b/v4l/versions.txt
@@ -0,0 +1,199 @@
+# Use this for stuff for drivers that don't compile
+[2.6.99]
+# This is broken for a long time
+VIDEO_ZR36120
+
+# This is also marked as broken
+VIDEO_PLANB
+
+# Those are architecture-dependent
+VIDEO_VINO
+VIDEO_M32R_AR_M64278
+
+[2.6.16]
+VIDEO_USBVIDEO
+USB_VICAM
+USB_IBMCAM
+USB_KONICAWC
+USB_ET61X251
+USB_PWC
+USB_SN9C102
+USB_ZC0301
+
+[2.6.14]
+VIDEO_ZORAN
+VIDEO_ZORAN_BUZ
+VIDEO_ZORAN_DC10
+VIDEO_ZORAN_DC30
+VIDEO_ZORAN_LML33
+VIDEO_ZORAN_LML33R10
+VIDEO_SAA5246A
+VIDEO_SAA5249
+VIDEO_BWQCAM
+VIDEO_CQCAM
+VIDEO_W9966
+VIDEO_PMS
+VIDEO_STRADIS
+VIDEO_CPIA
+VIDEO_CPIA_PP
+VIDEO_CPIA_USB
+VIDEO_MEYE
+VIDEO_MXB
+VIDEO_DPC
+TUNER_3036
+USB_DABUSB
+USB_DSBR
+USB_OV511
+USB_SE401
+USB_STV680
+USB_W9968CF
+VIDEO_M32R_AR
+RADIO_CADET
+RADIO_RTRACK
+RADIO_RTRACK_PORT
+RADIO_RTRACK2
+RADIO_RTRACK2_PORT
+RADIO_AZTECH
+RADIO_AZTECH_PORT
+RADIO_GEMTEK
+RADIO_GEMTEK_PORT
+RADIO_GEMTEK_PCI
+RADIO_MAXIRADIO
+RADIO_MAESTRO
+RADIO_MIROPCM20
+RADIO_MIROPCM20_RDS
+RADIO_SF16FMI
+RADIO_SF16FMR2
+RADIO_TERRATEC
+RADIO_TERRATEC_PORT
+RADIO_TRUST
+RADIO_TRUST_PORT
+RADIO_TYPHOON
+RADIO_TYPHOON_PROC_FS
+RADIO_TYPHOON_PORT
+RADIO_TYPHOON_MUTEFREQ
+RADIO_ZOLTRIX
+RADIO_ZOLTRIX_PORT
+
+[2.6.12]
+VIDEO_VIVI
+VIDEO_DEV
+VIDEO_V4L1
+VIDEO_V4L2
+VIDEO_V4L1_COMPAT
+VIDEO_ADV_DEBUG
+VIDEO_BT848
+VIDEO_BT848_DVB
+VIDEO_SAA6588
+VIDEO_CPIA2
+VIDEO_SAA7134
+VIDEO_SAA7134_ALSA
+VIDEO_SAA7134_OSS
+VIDEO_SAA7134_DVB
+VIDEO_SAA7134_DVB_ALL_FRONTENDS
+VIDEO_SAA7134_DVB_MT352
+VIDEO_SAA7134_DVB_TDA1004X
+VIDEO_SAA7134_DVB_NXT200X
+VIDEO_HEXIUM_ORION
+VIDEO_HEXIUM_GEMINI
+VIDEO_CX88_VP3054
+VIDEO_CX88
+VIDEO_CX88_ALSA
+VIDEO_CX88_DVB
+VIDEO_CX88_DVB_ALL_FRONTENDS
+VIDEO_CX88_DVB_MT352
+VIDEO_CX88_DVB_VP3054
+VIDEO_CX88_DVB_ZL10353
+VIDEO_CX88_DVB_OR51132
+VIDEO_CX88_DVB_CX22702
+VIDEO_CX88_DVB_LGDT330X
+VIDEO_CX88_DVB_NXT200X
+VIDEO_CX88_DVB_CX24123
+VIDEO_OVCAMCHIP
+VIDEO_MSP3400
+VIDEO_CS53L32A
+VIDEO_WM8775
+VIDEO_WM8739
+VIDEO_CX25840
+VIDEO_SAA711X
+VIDEO_SAA7127
+VIDEO_UPD64031A
+VIDEO_UPD64083
+VIDEO_PVRUSB2
+VIDEO_PVRUSB2_24XXX
+VIDEO_PVRUSB2_SYSFS
+VIDEO_PVRUSB2_DEBUGIFC
+VIDEO_EM28XX
+DVB
+DVB_CORE
+DVB_AV7110
+DVB_AV7110_FIRMWARE
+DVB_AV7110_FIRMWARE_FILE
+DVB_AV7110_OSD
+DVB_BUDGET
+DVB_BUDGET_CI
+DVB_BUDGET_AV
+DVB_BUDGET_PATCH
+DVB_USB
+DVB_USB_DEBUG
+DVB_USB_A800
+DVB_USB_DIBUSB_MB
+DVB_USB_DIBUSB_MB_FAULTY
+DVB_USB_DIBUSB_MC
+DVB_USB_UMT_010
+DVB_USB_CXUSB
+DVB_USB_DIGITV
+DVB_USB_VP7045
+DVB_USB_VP702X
+DVB_USB_NOVA_T_USB2
+DVB_USB_DTT200U
+DVB_TTUSB_BUDGET
+DVB_TTUSB_DEC
+DVB_CINERGYT2
+DVB_CINERGYT2_TUNING
+DVB_CINERGYT2_STREAM_URB_COUNT
+DVB_CINERGYT2_STREAM_BUF_SIZE
+DVB_CINERGYT2_QUERY_INTERVAL
+DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE
+DVB_CINERGYT2_RC_QUERY_INTERVAL
+DVB_B2C2_FLEXCOP
+DVB_B2C2_FLEXCOP_PCI
+DVB_B2C2_FLEXCOP_USB
+DVB_B2C2_FLEXCOP_DEBUG
+DVB_BT8XX
+DVB_PLUTO2
+DVB_STV0299
+DVB_CX24110
+DVB_CX24123
+DVB_TDA8083
+DVB_MT312
+DVB_VES1X93
+DVB_S5H1420
+DVB_SP8870
+DVB_SP887X
+DVB_CX22700
+DVB_CX22702
+DVB_L64781
+DVB_TDA1004X
+DVB_NXT6000
+DVB_MT352
+DVB_ZL10353
+DVB_DIB3000MB
+DVB_DIB3000MC
+DVB_VES1820
+DVB_TDA10021
+DVB_STV0297
+DVB_NXT200X
+DVB_OR51211
+DVB_OR51132
+DVB_BCM3510
+DVB_LGDT330X
+VIDEO_SAA7146
+VIDEO_SAA7146_VV
+VIDEO_VIDEOBUF
+VIDEO_TUNER
+VIDEO_BUF
+VIDEO_BUF_DVB
+VIDEO_BTCX
+VIDEO_IR
+VIDEO_TVEEPROM