From a65cbc3b7aa2eaf072f20f362966f0b0055077b3 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 20 Jun 2006 20:01:22 -0300 Subject: Adjust distclean target to clean a few more files From: Trent Piepho distclean was not cleaning the v4l/.myconfig file, or the symlinks made for the lxdialog program. This caused problems especially if you were switching between different kernel versions for testing. Signed-off-by: Trent Piepho Signed-off-by: Mauro Carvalho Chehab --- v4l/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'v4l/Makefile') diff --git a/v4l/Makefile b/v4l/Makefile index d20e68d4e..5be5f40ba 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -216,8 +216,9 @@ clean:: distclean:: clean -rm -f .version .*.o.flags .*.o.d Makefile.media \ - Kconfig Kconfig.kern .config .config.cmd + Kconfig Kconfig.kern .config .config.cmd .myconfig -rm -rf .tmp_versions + -rm -f scripts/lxdialog scripts/kconfig @find .. -name '*.orig' -exec rm '{}' \; @find .. -name '*.rej' -exec rm '{}' \; -- cgit v1.2.3 From 74e1ed0781b35cfd53baba71c84dfbf6c59c5403 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 21 Jun 2006 10:04:08 -0300 Subject: Fixes circular dependencies at building system From: Mauro Carvalho Chehab There were a circular dependency at scripts/make_makefile.pl that were affecting mostly building with GNU make 3.81. Also, scripts/make_noconfig.pl is, in fact, building .myconfig file, so, better to name it as make_myconfig.pl. Signed-off-by: Mauro Carvalho Chehab --- v4l/Makefile | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'v4l/Makefile') diff --git a/v4l/Makefile b/v4l/Makefile index d20e68d4e..27a79a181 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -180,7 +180,9 @@ links:: @find ../linux/drivers/media -name '*.[ch]' -type f -exec ln -sf '{}' . \; @find ../linux/sound -name '*.[ch]' -type f -exec ln -sf '{}' . \; -config-compat.h:: .myconfig +config-compat.h:: + scripts/make_myconfig.pl + @echo \#ifndef __CONFIG_COMPAT_H__ > config-compat.h @echo \#define __CONFIG_COMPAT_H__ >> config-compat.h @echo >> config-compat.h @@ -253,26 +255,26 @@ LXDIALOG := $(KDIR)/scripts/$(LXDIALOG_DIR)lxdialog/lxdialog xconfig:: links .version $(QCONF) ./scripts/make_kconfig.pl $(QCONF) Kconfig - ./scripts/make_noconfig.pl + ./scripts/make_myconfig.pl gconfig:: links .version $(GCONF) ./scripts/make_kconfig.pl $(QCONF) Kconfig - ./scripts/make_noconfig.pl + ./scripts/make_myconfig.pl config:: links .version $(CONF) ./scripts/make_kconfig.pl $(CONF) Kconfig - ./scripts/make_noconfig.pl + ./scripts/make_myconfig.pl menuconfig:: links .version $(MCONF) lxdialog ./scripts/make_kconfig.pl $(MCONF) Kconfig - ./scripts/make_noconfig.pl + ./scripts/make_myconfig.pl allyesconfig allmodconfig:: links .version ./scripts/make_kconfig.pl 1 - ./scripts/make_noconfig.pl + ./scripts/make_myconfig.pl # rule to build kernel conf programs KMAKEVARS := config-targets=1 mixed-targets=0 dot-config=0 -- cgit v1.2.3 From 6cfc8eeff6261fb1153a67e5bc3c71616f332044 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 21 Jun 2006 12:23:13 -0300 Subject: Some improvements at the building system From: Mauro Carvalho Chehab Building system now looks kernel config.h and autoconf.h files, seeking for the compiled options at kernel. If something is missing, it will disable compilation for that driver, printing a warning message. Signed-off-by: Mauro Carvalho Chehab --- v4l/Makefile | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'v4l/Makefile') diff --git a/v4l/Makefile b/v4l/Makefile index 58354a035..881329d7d 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -17,7 +17,12 @@ else ifneq ($(SRCDIR),) KDIR := $(SRCDIR) else +ifneq ($(KERNELRELEASE),) KDIR := /lib/modules/$(KERNELRELEASE)/build +else +KDIR := /lib/modules/$(shell uname -r|perl -ne 'if (/^([0-9]*)\.([0-9])*\.([0-9]*)(.*)$$/) { printf ("%s.%s.%s%s\n",$$1,$$2,$$3,$$4); };')/build + +endif endif endif @@ -133,9 +138,6 @@ remove rminstall:: media-rminstall ivtv-rminstall ################################################# # Compiling preparation rules -Makefile.media:: .version - scripts/make_makefile.pl - .version:: ifneq ($(KERNELRELEASE),) @echo -e VERSION=$(VERSION)\\nPATCHLEVEL:=$(PATCHLEVEL)\\nSUBLEVEL:=$(SUBLEVEL)\\nKERNELRELEASE:=$(KERNELRELEASE) > $(obj)/.version @@ -147,6 +149,9 @@ else @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 +Makefile.media:: .version + scripts/make_makefile.pl $(KDIR) + release:: ifneq ($(VER),) @echo "Forcing compiling to version $(VER)." @@ -180,9 +185,7 @@ links:: @find ../linux/drivers/media -name '*.[ch]' -type f -exec ln -sf '{}' . \; @find ../linux/sound -name '*.[ch]' -type f -exec ln -sf '{}' . \; -config-compat.h:: - scripts/make_myconfig.pl - +config-compat.h:: .myconfig @echo \#ifndef __CONFIG_COMPAT_H__ > config-compat.h @echo \#define __CONFIG_COMPAT_H__ >> config-compat.h @echo >> config-compat.h @@ -253,29 +256,27 @@ LXDIALOG_DIR := $(shell if [ -d $(KDIR)/scripts/kconfig/lxdialog ]; then echo kc LXDIALOG_LNK := $(if $(LXDIALOG_DIR),scripts/kconfig,scripts/lxdialog) LXDIALOG := $(KDIR)/scripts/$(LXDIALOG_DIR)lxdialog/lxdialog +.myconfig : .config + ./scripts/make_myconfig.pl + xconfig:: links .version $(QCONF) - ./scripts/make_kconfig.pl + ./scripts/make_kconfig.pl $(KDIR) $(QCONF) Kconfig - ./scripts/make_myconfig.pl gconfig:: links .version $(GCONF) - ./scripts/make_kconfig.pl + ./scripts/make_kconfig.pl $(KDIR) $(QCONF) Kconfig - ./scripts/make_myconfig.pl config:: links .version $(CONF) - ./scripts/make_kconfig.pl + ./scripts/make_kconfig.pl $(KDIR) $(CONF) Kconfig - ./scripts/make_myconfig.pl menuconfig:: links .version $(MCONF) lxdialog - ./scripts/make_kconfig.pl + ./scripts/make_kconfig.pl $(KDIR) $(MCONF) Kconfig - ./scripts/make_myconfig.pl allyesconfig allmodconfig:: links .version - ./scripts/make_kconfig.pl 1 - ./scripts/make_myconfig.pl + ./scripts/make_kconfig.pl $(KDIR) 1 # rule to build kernel conf programs KMAKEVARS := config-targets=1 mixed-targets=0 dot-config=0 -- cgit v1.2.3 From ba915ac86439f7c2e134346710e2c95835fa8b68 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Wed, 21 Jun 2006 16:31:24 -0300 Subject: Some cleanups at the release script From: Mauro Carvalho Chehab Signed-off-by: Mauro Carvalho Chehab --- v4l/Makefile | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'v4l/Makefile') diff --git a/v4l/Makefile b/v4l/Makefile index 881329d7d..a034be061 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -158,12 +158,13 @@ ifneq ($(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"; \ + @echo "Seeking for a version at $(DIR)/Makefile." + @perl -e 'open IN,"$(DIR)/Makefile"; \ while () { \ - 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; }\ + if (/^VERSION\s*=\s*([0-9]+)/){ $$version=$$1; }\ + elsif (/^PATCHLEVEL\s*=\s*([0-9]+)/){ $$level=$$1; }\ + elsif (/^SUBLEVEL\s*=\s*([0-9]+)/){ $$sublevel=$$1; }\ + elsif (/^EXTRAVERSION\s*=\s*([^\s]+)\n/){ $$extra=$$1; }\ }; \ printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n", \ $$version,$$level,$$sublevel,$$version,$$level,$$sublevel,$$extra); \ -- cgit v1.2.3 From 443a49ca134a2691307741a3f7e4744f52d1eb49 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Thu, 22 Jun 2006 11:08:17 -0300 Subject: The new POSIX backslash behavior on GNU make 3.81 breaks make release From: Mauro Carvalho Chehab On make 3.81, backslash isn't removed anymore when inside of a single quotted string. This makes make release to fail, since perl won't understand the backslash. This patch just make all script into one line. Bad to understand, but, at least, it will work fine with both GNU make 3.80 and make 3.81. Signed-off-by: Mauro Carvalho Chehab --- v4l/Makefile | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) (limited to 'v4l/Makefile') diff --git a/v4l/Makefile b/v4l/Makefile index a034be061..0e90e13d8 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -159,22 +159,12 @@ ifneq ($(VER),) else ifneq ($(DIR),) @echo "Seeking for a version at $(DIR)/Makefile." - @perl -e 'open IN,"$(DIR)/Makefile"; \ - while () { \ - if (/^VERSION\s*=\s*([0-9]+)/){ $$version=$$1; }\ - elsif (/^PATCHLEVEL\s*=\s*([0-9]+)/){ $$level=$$1; }\ - elsif (/^SUBLEVEL\s*=\s*([0-9]+)/){ $$sublevel=$$1; }\ - elsif (/^EXTRAVERSION\s*=\s*([^\s]+)\n/){ $$extra=$$1; }\ - }; \ - 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 + @perl -e 'open IN,"$(DIR)/Makefile"; while () { if (/^VERSION\s*=\s*([0-9]+)/){ $$version=$$1; } elsif (/^PATCHLEVEL\s*=\s*([0-9]+)/){ $$level=$$1; } elsif (/^SUBLEVEL\s*=\s*([0-9]+)/){ $$sublevel=$$1; } elsif (/^EXTRAVERSION\s*=\s*([^\s]+)\n/){ $$extra=$$1; } }; 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 -- cgit v1.2.3 From d6f3e25616ac528ec4630545e5f5b7600f51c16f Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Fri, 23 Jun 2006 12:19:41 -0300 Subject: Have config-compat.h, undefine options turned off From: Trent Piepho Use a (make 3.81 safe!) in-line perl script to generate config-compat.h from .myconfig. The output will be more like the Kernel's output: Options set to 'm' will define CONFIG_WHATEVER_MODULE to 1, rather than define CONFIG_WHATEVER to m. Options set to 'y' to be defined to 1 instead of y. Options that are off will be #undef'ed, rather that omitted, so that they will override the settings from the kernel autoconf.h file. The last change will fix a problem where certain options, like CinergyT2 tuning and AV7110 firmware, wouldn't work properly if they were on in the kernel but off for v4l-dvb Hg. Signed-off-by: Trent Piepho Signed-off-by: Mauro Carvalho Chehab --- v4l/Makefile | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'v4l/Makefile') diff --git a/v4l/Makefile b/v4l/Makefile index 0e90e13d8..b162ddcc3 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -177,20 +177,19 @@ links:: @find ../linux/sound -name '*.[ch]' -type f -exec ln -sf '{}' . \; config-compat.h:: .myconfig - @echo \#ifndef __CONFIG_COMPAT_H__ > config-compat.h - @echo \#define __CONFIG_COMPAT_H__ >> config-compat.h - @echo >> config-compat.h - @echo \#include \ >> config-compat.h - @echo >> config-compat.h - @grep "CONFIG\_" .myconfig | grep -v "\:\= n" | \ - sed s/"CONFIG\_"/"\#undef CONFIG\_"/1 | \ - sed s/"\:\= .*"/""/1 >> config-compat.h >> config-compat.h - @echo >> config-compat.h - @grep "CONFIG\_" .myconfig | grep -v "\:\= n" | \ - sed s/"CONFIG\_"/"\#define CONFIG\_"/1 | \ - sed s/"\:\="/""/1 >> config-compat.h >> config-compat.h - @echo >> config-compat.h - @echo \#endif >> config-compat.h + @perl \ + -e 'print "#ifndef __CONFIG_COMPAT_H__\n";' \ + -e 'print "#define __CONFIG_COMPAT_H__\n\n";' \ + -e 'print "#include \n\n";' \ + -e 'while(<>) {'\ + -e ' next unless /^(\S+)\s*:= (\S+)$$/;' \ + -e ' print "#undef $$1\n";' \ + -e ' if($$2 eq "n") { next; }' \ + -e ' elsif($$2 eq "m") { print "#define $$1_MODULE 1\n"; }' \ + -e ' elsif($$2 eq "y") { print "#define $$1 1\n"; }' \ + -e ' else { print "#define $$1 $$2\n"; }' \ + -e '} print "\n#endif\n";' \ + < .myconfig > config-compat.h kernel-links makelinks:: cd ..; v4l/scripts/makelinks.sh $(KDIR) -- cgit v1.2.3 From 7bbcab1af264a64efd2772c7e078e2137a24e018 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Fri, 23 Jun 2006 13:26:14 -0300 Subject: Break make release into several lines keeping it work with make 3.81 From: Mauro Carvalho Chehab Also, fixes a trouble with make 3.81 introduced by the latest patch. make 3.81 doesn't work fine with something like: 'foo'\ It should be, instead: 'foo' \ Signed-off-by: Mauro Carvalho Chehab --- v4l/Makefile | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'v4l/Makefile') diff --git a/v4l/Makefile b/v4l/Makefile index b162ddcc3..663369674 100644 --- a/v4l/Makefile +++ b/v4l/Makefile @@ -159,7 +159,17 @@ ifneq ($(VER),) else ifneq ($(DIR),) @echo "Seeking for a version at $(DIR)/Makefile." - @perl -e 'open IN,"$(DIR)/Makefile"; while () { if (/^VERSION\s*=\s*([0-9]+)/){ $$version=$$1; } elsif (/^PATCHLEVEL\s*=\s*([0-9]+)/){ $$level=$$1; } elsif (/^SUBLEVEL\s*=\s*([0-9]+)/){ $$sublevel=$$1; } elsif (/^EXTRAVERSION\s*=\s*([^\s]+)\n/){ $$extra=$$1; } }; 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 + @perl \ + -e 'open IN,"$(DIR)/Makefile"; ' \ + -e 'while () {' \ + -e ' if (/^VERSION\s*=\s*([0-9]+)/){ $$version=$$1; }' \ + -e ' elsif (/^PATCHLEVEL\s*=\s*([0-9]+)/){ $$level=$$1; }' \ + -e ' elsif (/^SUBLEVEL\s*=\s*([0-9]+)/){ $$sublevel=$$1; }' \ + -e ' elsif (/^EXTRAVERSION\s*=\s*([^\s]+)\n/){ $$extra=$$1; }' \ + -e '};' \ + -e 'printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",' \ + -e ' $$version,$$level,$$sublevel,$$version,$$level,$$sublevel,$$extra);' \ + -e 'printf ("SRCDIR:=$(DIR)\n");' > $(obj)/.version @cat .version|grep KERNELRELEASE:|sed s,'KERNELRELEASE:=','Forcing compiling to version ', @if [ ! -f $(DIR)/scripts/kallsyms ]; then \ @@ -181,7 +191,7 @@ config-compat.h:: .myconfig -e 'print "#ifndef __CONFIG_COMPAT_H__\n";' \ -e 'print "#define __CONFIG_COMPAT_H__\n\n";' \ -e 'print "#include \n\n";' \ - -e 'while(<>) {'\ + -e 'while(<>) {' \ -e ' next unless /^(\S+)\s*:= (\S+)$$/;' \ -e ' print "#undef $$1\n";' \ -e ' if($$2 eq "n") { next; }' \ -- cgit v1.2.3