diff options
Diffstat (limited to 'v4l')
-rw-r--r-- | v4l/Makefile | 173 | ||||
-rw-r--r-- | v4l/compat.h | 13 | ||||
-rwxr-xr-x | v4l/scripts/make_kconfig.pl | 51 | ||||
-rwxr-xr-x | v4l/scripts/make_makefile.pl | 9 | ||||
-rwxr-xr-x | v4l/scripts/make_noconfig.pl | 6 | ||||
-rw-r--r-- | v4l/versions.txt | 8 |
6 files changed, 164 insertions, 96 deletions
diff --git a/v4l/Makefile b/v4l/Makefile index e932eeb65..58b160397 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -3,9 +3,30 @@ obj = . endif ################################################# +# Version Check + +ifneq ($(KERNELRELEASE),) + +-include $(TOPDIR)/Rules.make + +else + +# take version info from last module build if available +-include $(obj)/.version + +ifneq ($(SRCDIR),) +KDIR := $(SRCDIR) +else +KDIR := /lib/modules/$(KERNELRELEASE)/build +endif + +endif + +################################################# # default compilation rule default:: Makefile.media links .version + echo srcdir $(SRCDIR) $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) $(MYCFLAGS) modules ################################################# @@ -18,15 +39,6 @@ default:: Makefile.media links .version ################################################# # 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 -endif - ifeq ($(CONFIG_XC3028),m) EXTRA_CFLAGS += -DCONFIG_XC3028=1 endif @@ -35,28 +47,6 @@ 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 -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 @@ -65,17 +55,6 @@ ifeq ($(CONFIG_DVB_AV7110_FIRMWARE),y) EXTRA_CFLAGS += -DCONFIG_DVB_AV7110_FIRMWARE_FILE endif -# for pvrusb2 -ifeq ($(CONFIG_VIDEO_PVRUSB2_SYSFS),y) - EXTRA_CFLAGS += -DCONFIG_VIDEO_PVRUSB2_SYSFS -endif -ifeq ($(CONFIG_VIDEO_PVRUSB2_DEBUGIFC),y) - EXTRA_CFLAGS += -DCONFIG_VIDEO_PVRUSB2_DEBUGIFC -endif -ifeq ($(CONFIG_VIDEO_PVRUSB2_24XXX),y) - EXTRA_CFLAGS += -DCONFIG_VIDEO_PVRUSB2_24XXX -endif - EXTRA_CFLAGS += -g EXTRA_CFLAGS += $(if $(wildcard $(srctree)/.mm), -DMM_KERNEL) @@ -84,20 +63,18 @@ EXTRA_CFLAGS += $(if $(wildcard $(srctree)/.mm), -DMM_KERNEL) # Kernel 2.4/2.6 specific rules ifneq ($(KERNELRELEASE),) + ifeq ($(VERSION).$(PATCHLEVEL),2.6) export-objs := list-multi := else +include $(obj)/Makefile.kern24 + 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 -include $(obj)/Makefile.kern24 --include $(TOPDIR)/Rules.make -else -# take version info from last module build if available --include $(obj)/.version endif ################################################# @@ -109,15 +86,14 @@ SNAPSHOT_CFLAGS := -DSNAPSHOT='$(shell cat $(snapshot))' EXTRA_CFLAGS += $(SNAPSHOT_CFLAGS) endif -KDIR := /lib/modules/$(KERNELRELEASE)/build PWD := $(shell pwd) -DEST := /lib/modules/$(KERNELRELEASE)/$(MDIR) +DEST := /lib/modules/$(KERNELRELEASE)/v4l2 KDIR26 := /lib/modules/$(KERNELRELEASE)/kernel/drivers/media -KDIRUSB := /lib/modules/$(KERNELRELEASE)/kernel/drivers/usb/media ################################################# # Compiler fixup rules +HOSTCC:=$(CC) CC += -I$(obj) ifeq ($(VERSION).$(PATCHLEVEL),2.6) @@ -156,17 +132,55 @@ export LC_ALL all:: allmodconfig default ################################################# +# installation invocation rules + +install:: media-install ivtv-install + +remove rminstall:: media-rminstall ivtv-rminstall + +################################################# # Compiling preparation rules -Makefile.media:: +Makefile.media:: .version scripts/make_makefile.pl -.version: +.version:: ifneq ($(KERNELRELEASE),) - echo -e VERSION=$(VERSION)\\nPATCHLEVEL:=$(PATCHLEVEL)\\nSUBLEVEL:=$(SUBLEVEL)\\nKERNELRELEASE:=$(KERNELRELEASE) > $(obj)/.version + @echo -e VERSION=$(VERSION)\\nPATCHLEVEL:=$(PATCHLEVEL)\\nSUBLEVEL:=$(SUBLEVEL)\\nKERNELRELEASE:=$(KERNELRELEASE) > $(obj)/.version +ifneq ($(SRCDIR),) + @echo -e SRCDIR=$(SRCDIR)\\n >> $(obj)/.version +endif 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 + @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 + +release:: +ifneq ($(VER),) + @echo "Forcing compiling to version $(VER)." + @echo $(VER)|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 +else +ifneq ($(DIR),) + @perl -e 'open IN,"<$(DIR)/Makefile"; \ + while (<IN>) { \ + if (/^VERSION\s*=\s*([0-9]+)/){ $$version=$$1; next; }\ + if (/^PATCHLEVEL\s*=\s*([0-9]+)/){ $$level=$$1; next; }\ + if (/^SUBLEVEL\s*=\s*([0-9]+)/){ $$sublevel=$$1; next; }\ + if (/^EXTRAVERSION\s*=\s*([^\s]+)\n/){ $$extra=$$1; next; }\ + }; \ + printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n", \ + $$version,$$level,$$sublevel,$$version,$$level,$$sublevel,$$extra); \ + printf ("SRCDIR:=$(DIR)\n");' > $(obj)/.version + @cat .version|grep KERNELRELEASE:|sed s,'KERNELRELEASE:=','Forcing compiling to version ', + + @if [ ! -f $(DIR)/scripts/kallsyms ]; then \ + echo "*** Warning: You should configure and build kernel before compiling V4L"; \ + fi + +else + @echo "No version specified. Using `uname -r`." + @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 endif links:: @@ -180,7 +194,7 @@ kernel-links makelinks:: ################################################# # Cardlist updating rule -card cardlist cardlists: +card cardlist cardlists:: scripts/cardlist ################################################# @@ -202,9 +216,6 @@ distclean:: clean ################################################# # Kernel module insert/removal rules -rmmodules:: - rmmod -w $(shell echo "$(v4l_modules)"|sed s,' ','\n',g|sed s,'-','_',g|sort|uniq -d) - insmod load:: scripts/insmod.sh load @@ -217,17 +228,33 @@ reload:: ################################################# # Configuration rules +# SHELL used by kbuild +CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ + else if [ -x /bin/bash ]; then echo /bin/bash; \ + else echo sh; fi ; fi) + +build := srctree=$(KDIR) HOSTCXX="$(CXX)" HOSTCC="$(HOSTCC)" CONFIG_SHELL="$(CONFIG_SHELL)" -f $(KDIR)/scripts/Makefile.build obj + xconfig:: links .version + -if [ ! -f $(KDIR)/scripts/kconfig/qconf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig qconf-target=1 scripts/kconfig/qconf; \ + fi ./scripts/make_kconfig.pl $(KDIR)/scripts/kconfig/qconf Kconfig ./scripts/make_noconfig.pl gconfig:: links .version + -if [ ! -f $(KDIR)/scripts/kconfig/gconf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/gconf; \ + fi ./scripts/make_kconfig.pl $(KDIR)/scripts/kconfig/gconf Kconfig ./scripts/make_noconfig.pl config:: links .version + -if [ ! -f $(KDIR)/scripts/kconfig/conf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/conf; \ + fi ./scripts/make_kconfig.pl $(KDIR)/scripts/kconfig/conf Kconfig ./scripts/make_noconfig.pl @@ -236,21 +263,29 @@ menuconfig:: links .version ./scripts/make_kconfig.pl -rm scripts/lxdialog scripts/kconfig -if [ -d $(KDIR)/scripts/lxdialog ]; then \ + if [ ! -f $(KDIR)/scripts/lxdialog/lxdialog ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/lxdialog; \ + fi; \ ln -s $(KDIR)/scripts/lxdialog scripts/lxdialog; \ fi -if [ -d $(KDIR)/scripts/kconfig ]; then \ + if [ -d $(KDIR)/scripts/kconfig/lxdialog ]; then \ + if [ ! -f $(KDIR)/scripts/kconfig/lxdialog ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig/lxdialog; \ + fi; \ + fi; \ + if [ ! -f $(KDIR)/scripts/kconfig/mconf ]; then \ + $(MAKE) -C $(KDIR) $(build)=scripts/kconfig scripts/kconfig/mconf; \ + fi; \ ln -s $(KDIR)/scripts/kconfig scripts/kconfig; \ fi $(KDIR)/scripts/kconfig/mconf 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 +allyesconfig allmodconfig:: links .version + ./scripts/make_kconfig.pl 1 ./scripts/make_noconfig.pl ################################################# @@ -297,9 +332,6 @@ old-install:: rminstall ################################################# # Tree management rules -change changes changelog:: - make -C .. changelog - update:: make -C .. update @@ -310,6 +342,11 @@ push:: make -C .. push ################################################# +# Help +help:: + @cat ../INSTALL + +################################################# # build tarballs rules RPWD := $(shell cd .. && pwd) @@ -321,7 +358,7 @@ tardest ?= . snapdir := $(HOME)/snapshot snap := $(name) -snapshot snap tarball: update distclean +snapshot snap tarball:: update distclean echo $(thisdir) echo $(name) echo $(date) > .snapshot diff --git a/v4l/compat.h b/v4l/compat.h index 9efcfebd1..0bcb238fb 100644 --- a/v4l/compat.h +++ b/v4l/compat.h @@ -131,19 +131,6 @@ static inline unsigned long msleep_interruptible(unsigned int msecs) } #endif -#ifndef DVB_CVS -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) -#undef HAVE_LGDT330X -#undef HAVE_TDA1004X -#endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) -#undef HAVE_NXT200X -#endif -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) -#undef HAVE_CX24123 -#endif -#endif - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) /* some keys from 2.6.x which are not (yet?) in 2.4.x */ # define KEY_PLAY 207 diff --git a/v4l/scripts/make_kconfig.pl b/v4l/scripts/make_kconfig.pl index b1d6f5d53..aebf2a950 100755 --- a/v4l/scripts/make_kconfig.pl +++ b/v4l/scripts/make_kconfig.pl @@ -4,8 +4,27 @@ use FileHandle; my %depend = (); my %minver = (); my %config = (); +my %tristate = (); my $version, $level, $sublevel; +my $force_kconfig=shift; + +sub add_bool($) +{ + my $arg=shift; + + $tristate{$arg}="bool"; +# printf "Boolean:%s\n",$arg; +} + +sub add_tristate($) +{ + my $arg=shift; + + $tristate{$arg}="tristate"; +# printf "Tristate:%s\n",$arg; +} + sub add_config($) { my $arg=shift; @@ -34,6 +53,7 @@ sub open_kconfig($$) { my ($dir,$file)=@_; my $in = new FileHandle; my $skip=0; + my $key; #print "opening $file\n"; open $in,"$file"; @@ -51,9 +71,14 @@ sub open_kconfig($$) { if (m|^\s+select (.*)\n|) { check_deps ($1); } + if (m|^\s*bool\s+|) { + add_bool($key); + } + if (m|^\s*tristate\s+|) { + add_tristate($key); + } if (m|^\s*config (.*)\n|) { - my $key=$1; - + $key=$1; add_config ($1); my $min=$minver { $key }; @@ -129,7 +154,6 @@ print OUT "mainmenu \"V4L/DVB menu\"\n"; print OUT "source Kconfig.kern\n"; open_kconfig ("../linux","../linux/drivers/media/Kconfig"); - close OUT; while ( my ($key, $value) = each(%config) ) { @@ -139,9 +163,30 @@ while ( my ($key, $value) = each(%config) ) { open OUT,">Kconfig.kern"; print OUT "config MODULES\n\tboolean\n\tdefault y\n\n"; +$tristate{"MODULES"}="bool"; while ( my ($key, $value) = each(%depend) ) { print OUT "# $key with $value refs\nconfig $key\n\ttristate\n\tdefault m\n\n"; } close OUT; +if (($force_kconfig eq 1) || !open IN,".config") { + open OUT,">.config"; + while ( my ($key, $value) = each(%depend) ) { + printf "CONFIG_%s=m\n",$key; + printf OUT "CONFIG_%s=m\n",$key; + } + while ( my ($key,$value) = each(%tristate) ) { + + if ($key eq "DVB_AV7110_FIRMWARE") { + printf OUT "CONFIG_%s=n\n",$key; + } else { + if ($value eq "tristate") { + printf OUT "CONFIG_%s=m\n",$key; + } else { + printf OUT "CONFIG_%s=y\n",$key; + } + } + } + close OUT; +} diff --git a/v4l/scripts/make_makefile.pl b/v4l/scripts/make_makefile.pl index 8371f6a4a..238c5082f 100755 --- a/v4l/scripts/make_makefile.pl +++ b/v4l/scripts/make_makefile.pl @@ -113,8 +113,9 @@ 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"; +printf OUT "media-install::\n"; +printf OUT "\t\@echo \"Stripping debug info from files:\"\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"; @@ -127,7 +128,7 @@ while ( my ($key, $value) = each(%instdir) ) { printf OUT "\t/sbin/depmod -a \${KERNELRELEASE}\n\n"; # Creating Remove rule -printf OUT "remove rminstall::\n"; +printf OUT "media-rminstall::\n"; printf OUT "\t\@echo -e \"\\nRemoving old \$(DEST) files\\n\"\n"; while ( my ($key, $value) = each(%instdir) ) { @@ -160,5 +161,3 @@ if (open OUT,".myconfig") { } else { system "make allmodconfig"; } - - diff --git a/v4l/scripts/make_noconfig.pl b/v4l/scripts/make_noconfig.pl index a47ca4acf..a81e157e2 100755 --- a/v4l/scripts/make_noconfig.pl +++ b/v4l/scripts/make_noconfig.pl @@ -31,9 +31,6 @@ while (<IN>) { } s/\n//; - if (m/DVB_AV7110_FIRMWARE/) { - next; - } if (m/DVB_AV7110_FIRMWARE_FILE/) { next; } @@ -55,9 +52,6 @@ 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 index 255a31b17..b642f60da 100644 --- a/v4l/versions.txt +++ b/v4l/versions.txt @@ -17,8 +17,9 @@ USB_IBMCAM USB_KONICAWC USB_ET61X251 USB_PWC -USB_SN9C102 +USB_PWC_DEBUG USB_ZC0301 +VIDEO_ZORAN_AVS6EYES [2.6.14] VIDEO_ZORAN @@ -75,6 +76,9 @@ RADIO_TYPHOON_MUTEFREQ RADIO_ZOLTRIX RADIO_ZOLTRIX_PORT +[2.6.13] +USB_SN9C102 + [2.6.12] VIDEO_VIVI VIDEO_DEV @@ -188,6 +192,8 @@ DVB_OR51211 DVB_OR51132 DVB_BCM3510 DVB_LGDT330X +DVB_LNBP21 +DVB_ISL6421 VIDEO_SAA7146 VIDEO_SAA7146_VV VIDEO_VIDEOBUF |