summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.hgignore1
-rw-r--r--v4l/Make.config121
-rw-r--r--v4l/Makefile274
-rw-r--r--v4l/Makefile.kern2428
-rwxr-xr-xv4l/scripts/make_kconfig.pl73
-rw-r--r--v4l/scripts/make_makefile.pl109
-rw-r--r--v4l/scripts/make_noconfig.pl60
-rw-r--r--v4l/versions.txt152
8 files changed, 451 insertions, 367 deletions
diff --git a/.hgignore b/.hgignore
index a0e27c274..84f7584b4 100644
--- a/.hgignore
+++ b/.hgignore
@@ -7,6 +7,7 @@ v4l/.kconfig.d
v4l/.tmpconfig.h
v4l/Kconfig
v4l/Kconfig.kern
+v4l/Makefile.media
.*[.]rej
.*[.]orig
.*[~]
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 a66036f68..1f9cfa05b 100644
--- a/v4l/Makefile
+++ b/v4l/Makefile
@@ -5,223 +5,23 @@ endif
#################################################
# configuration
-include $(obj)/Make.config
-
-# 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
-
-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
-
-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
-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
-
-ifeq ($(CONFIG_VIDEO_ADV_DEBUG),y)
- EXTRA_CFLAGS += -DCONFIG_VIDEO_ADV_DEBUG=1
-endif
-
-ifeq ($(CONFIG_XC3028),m)
- EXTRA_CFLAGS += -DCONFIG_XC3028=1
-endif
+-include $(obj)/.myconfig
+-include $(obj)/Makefile.media
# 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/
-endif
-ifeq ($(CONFIG_VIDEO_CX88_DVB),m)
- EXTRA_CFLAGS += -DCONFIG_VIDEO_CX88_DVB_MODULE=1
- EXTRA_CFLAGS += -DHAVE_CX22702=1
- EXTRA_CFLAGS += -DHAVE_OR51132=1
- EXTRA_CFLAGS += -DHAVE_LGDT330X=1
- EXTRA_CFLAGS += -DHAVE_MT352=1
- EXTRA_CFLAGS += -DHAVE_ZL10353=1
- EXTRA_CFLAGS += -DHAVE_NXT200X=1
- 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
+ EXTRA_CFLAGS += -I$(srctree)/drivers/ieee1394/
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
@@ -235,17 +35,10 @@ 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
-
#################################################
# compile modules
ifneq ($(KERNELRELEASE),)
-
ifeq ($(VERSION).$(PATCHLEVEL),2.6)
export-objs :=
list-multi :=
@@ -266,33 +59,7 @@ 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 $(obj)/Makefile.kern24
-include $(TOPDIR)/Rules.make
else
# take version info from last module build if available
@@ -366,12 +133,33 @@ export LC_ALL
all:: default
-default:: links .version
+Makefile.media::
+ scripts/make_makefile.pl
+
+default:: Makefile.media links .version
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules
xconfig:: links .version
- ./scripts/make_kconfig.pl $(ARCH)
+ ./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
+
+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
ivtv-checkout::
@if [ ! -d ivtv ]; then \
@@ -557,7 +345,7 @@ clean::
Kconfig Kconfig.kern .config .config.cmd
distclean:: clean
- -rm -f .version .*.o.flags .*.o.d
+ -rm -f .version .*.o.flags .*.o.d Makefile.media
-rm -rf .tmp_versions
@find .. -name '*.orig' -exec rm '{}' \;
@find .. -name '*.rej' -exec rm '{}' \;
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 100644
index 000000000..135b8bdb1
--- /dev/null
+++ b/v4l/scripts/make_makefile.pl
@@ -0,0 +1,109 @@
+#!/usr/bin/perl
+use FileHandle;
+
+sub check_line($$$)
+{
+ my $dir=shift;
+ my $obj=shift;
+ my $arg=shift;
+ my $arg2="";
+
+ $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/^([^ ]+ )//;
+ $arg2 = $arg2.$1;
+ }
+ }
+ $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");
+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;
+
diff --git a/v4l/scripts/make_noconfig.pl b/v4l/scripts/make_noconfig.pl
new file mode 100644
index 000000000..503653a4f
--- /dev/null
+++ b/v4l/scripts/make_noconfig.pl
@@ -0,0 +1,60 @@
+#!/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) ) {
+ 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..b4e4809af
--- /dev/null
+++ b/v4l/versions.txt
@@ -0,0 +1,152 @@
+# Use this for stuff not yet at V4L/DVB tree
+[2.6.99]
+VIDEO_ZORAN
+VIDEO_ZORAN_BUZ
+VIDEO_ZORAN_DC10
+VIDEO_ZORAN_DC30
+VIDEO_ZORAN_LML33
+VIDEO_ZORAN_LML33R10
+VIDEO_ZR36120
+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_PLANB
+VIDEO_VINO
+VIDEO_M32R_AR_M64278
+VIDEO_M32R_AR
+
+[2.6.12]
+VIDEO_DEV
+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