2 # User Andreas Oberritter <obi@linuxtv.org>
4 # Node ID 008dba7f69aa8461f3210919fdc2396941241013
5 # Parent 558dc662028e9ae5debcfb708da07ab67be8b3d8
6 Support CONFIG_LOCALVERSION by parsing UTS_RELEASE
8 diff --git a/v4l/Makefile b/v4l/Makefile
14 @echo "Searching in $(DIR)/Makefile for kernel version."
16 - -e '$$d="$(DIR)"; ' \
17 - -e 'S: open IN,"$$d/Makefile"; ' \
18 - -e 'while (<IN>) {' \
19 - -e ' if (/^VERSION\s*=\s*(\d+)/){ $$version=$$1; }' \
20 - -e ' elsif (/^PATCHLEVEL\s*=\s*(\d+)/){ $$level=$$1; }' \
21 - -e ' elsif (/^SUBLEVEL\s*=\s*(\d+)/){ $$sublevel=$$1; }' \
22 - -e ' elsif (/^EXTRAVERSION\s*=\s*(\S+)\n/){ $$extra=$$1; }' \
23 - -e ' elsif (/^KERNELSRC\s*:=\s*(\S.*)\n/ || /^MAKEARGS\s*:=\s*-C\s*(\S.*)\n/)' \
24 - -e ' { $$o=$$d; $$d=$$1; goto S; }' \
26 - -e 'printf ("VERSION=%s\nPATCHLEVEL:=%s\nSUBLEVEL:=%s\nKERNELRELEASE:=%s.%s.%s%s\n",' \
27 - -e ' $$version,$$level,$$sublevel,$$version,$$level,$$sublevel,$$extra);' \
28 - -e 'print "OUTDIR:=$$o\n" if($$o);' \
29 - -e 'print "SRCDIR:=$$d\n";' > $(obj)/.version
30 - @cat .version|grep KERNELRELEASE:|sed s,'KERNELRELEASE:=','Forcing compiling to version ',
31 + @perl scripts/generate-dot-version.pl "$(DIR)" > $(obj)/.version
32 + @grep KERNELRELEASE: $(obj)/.version | sed s,'KERNELRELEASE:=','Forcing compiling to version ',
34 @if [ ! -f $(DIR)/scripts/kallsyms ]; then \
35 echo "*** Warning: You should configure and build kernel before compiling V4L"; \
36 diff --git a/v4l/scripts/generate-dot-version.pl b/v4l/scripts/generate-dot-version.pl
39 +++ b/v4l/scripts/generate-dot-version.pl
46 + "generated/utsrelease.h",
47 + "linux/utsrelease.h",
52 + print "Usage: generate-dot-version <srcdir>\n";
56 +my $srcdir = $ARGV[0];
59 + print "Not a directory: $srcdir\n";
63 +sub print_uts_release($)
67 + open IN, "<$path" or die $!;
70 + if (m/#define\s+UTS_RELEASE\s+"(\d+)\.(\d+)\.(\d+)(.*)"/) {
71 + print "VERSION:=$1\n";
72 + print "PATCHLEVEL:=$2\n";
73 + print "SUBLEVEL:=$3\n";
74 + print "KERNELRELEASE:=$1.$2.$3$4\n";
82 +sub print_directories($)
87 + open IN, "<$srcdir/Makefile" or die $!;
90 + if (m/^KERNELSRC\s*:=\s*(\S.*)\n/ || m/^MAKEARGS\s*:=\s*-C\s*(\S.*)\n/) {
99 + if (defined $outdir) {
100 + print "OUTDIR:=$outdir\n";
103 + print "SRCDIR:=$srcdir\n";
107 + my $path = "$srcdir/include/$_";
109 + print_uts_release($path);
114 +print_directories($srcdir);