Fixed workaround of Red Hat kernels <linux/version.h> for 2.6.x Linux kernels.
[lufs.git] / kernel / Linux / prepmod.in
index 4543aea..4ddf71b 100755 (executable)
@@ -186,11 +186,15 @@ my($kernel,$uname_r,$destmodule)=@_;
 
        my $config=_readfile "$kernel/.config","optional";
        my $autoconf=_readfile "$kernel/include/linux/autoconf.h","optional";
-       $cmdline.=" -DMODVERSIONS -include $kernel/include/linux/version.h -include $kernel/include/linux/modversions.h"
-                       if 0
-                                       || $config=~/^CONFIG_MODVERSIONS=y\b/m
-                                       || $autoconf=~/^#define CONFIG_MODVERSIONS\b/m
-                                       || (!$config && !$autoconf);    # assume modversions if not known
+       if (0
+                       || $config=~/^CONFIG_MODVERSIONS=y\b/m
+                       || $autoconf=~/^#define CONFIG_MODVERSIONS\b/m
+                       || (!$config && !$autoconf)) {  # assume modversions if not known
+               $cmdline.=" -DMODVERSIONS";
+               $cmdline.=" -include $kernel/include/linux/version.h"
+                               if -f "$kernel/include/linux/version.h";
+               $cmdline.=" -include $kernel/include/linux/modversions.h";
+               }
 
        my @objects=map({ my $o=$_; $o=~s/[.]c$/.o/; $o; } @sources);
        return !_system "set -e; /bin/mkdir -p `dirname $destmodule`; /bin/rm -f $destmodule;"
@@ -218,9 +222,11 @@ my($kernel,$uname_r,$destmodule,%args)=@_;
                                .($quiet ? ' &>/dev/null' : '')
                        if !$args{"nodep"};
        # Workaround a bug in at least Red Hat 2.4.18-18.8.0
-       for ("$kernel/include/linux/modversions.h") {
-               _system "cp -p $_ $_-orig" if ! -f "$_-orig";
-               _writefile $_,"#include <linux/version.h>\t/* lufs */\n"._readfile $_;
+       if (-f "$kernel/include/linux/version.h") {
+               for ("$kernel/include/linux/modversions.h") {
+                       _system "cp -p $_ $_-orig" if ! -f "$_-orig";
+                       _writefile $_,"#include <linux/version.h>\t/* lufs */\n"._readfile $_;
+                       }
                }
        my $cmdline="make -C $kernel"
                        ." SUBDIRS=\"$predir\" modules"