Blame view

scripts/mkcompile_h 2.47 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
3
  TARGET=$1
  ARCH=$2
  SMP=$3
bd5bdd875   Sam Ravnborg   kbuild: "PREEMPT"...
4
5
  PREEMPT=$4
  CC=$5
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  
  # If compile.h exists already and we don't own autoconf.h
  # (i.e. we're not the same user who did make *config), don't
  # modify compile.h
  # So "sudo make install" won't change the "compiled by <user>"
  # do "compiled by root"
  
  if [ -r $TARGET -a ! -O include/linux/autoconf.h ]; then
    echo "  SKIPPED $TARGET"
    exit 0
  fi
  
  # Do not expand names
  set -f
87c94bfb8   Sam Ravnborg   kbuild: override ...
20
21
22
23
24
25
26
27
28
29
30
  # Fix the language to get consistent output
  LC_ALL=C
  export LC_ALL
  
  if [ -z "$KBUILD_BUILD_VERSION" ]; then
  	if [ -r .version ]; then
  		VERSION=`cat .version`
  	else
  		VERSION=0
  		echo 0 > .version
  	fi
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
31
  else
87c94bfb8   Sam Ravnborg   kbuild: override ...
32
  	VERSION=$KBUILD_BUILD_VERSION
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
33
  fi
87c94bfb8   Sam Ravnborg   kbuild: override ...
34
35
36
37
38
  if [ -z "$KBUILD_BUILD_TIMESTAMP" ]; then
  	TIMESTAMP=`date`
  else
  	TIMESTAMP=$KBUILD_BUILD_TIMESTAMP
  fi
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
39
40
  
  UTS_VERSION="#$VERSION"
bd5bdd875   Sam Ravnborg   kbuild: "PREEMPT"...
41
42
43
  CONFIG_FLAGS=""
  if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
  if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
87c94bfb8   Sam Ravnborg   kbuild: override ...
44
  UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
45
46
47
48
49
50
51
52
53
  
  # Truncate to maximum length
  
  UTS_LEN=64
  UTS_TRUNCATE="sed -e s/\(.\{1,$UTS_LEN\}\).*/\1/"
  
  # Generate a temporary compile.h
  
  ( echo /\* This file is auto generated, version $VERSION \*/
bd5bdd875   Sam Ravnborg   kbuild: "PREEMPT"...
54
55
    if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi
    
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
56
57
58
    echo \#define UTS_MACHINE \"$ARCH\"
  
    echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
87c94bfb8   Sam Ravnborg   kbuild: override ...
59
    echo \#define LINUX_COMPILE_TIME \"`date +%T`\"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
60
61
62
63
64
65
66
67
68
69
    echo \#define LINUX_COMPILE_BY \"`whoami`\"
    echo \#define LINUX_COMPILE_HOST \"`hostname | $UTS_TRUNCATE`\"
  
    if [ -x /bin/dnsdomainname ]; then
      echo \#define LINUX_COMPILE_DOMAIN \"`dnsdomainname | $UTS_TRUNCATE`\"
    elif [ -x /bin/domainname ]; then
      echo \#define LINUX_COMPILE_DOMAIN \"`domainname | $UTS_TRUNCATE`\"
    else
      echo \#define LINUX_COMPILE_DOMAIN
    fi
87c94bfb8   Sam Ravnborg   kbuild: override ...
70
    echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
  ) > .tmpcompile
  
  # Only replace the real compile.h if the new one is different,
  # in order to preserve the timestamp and avoid unnecessary
  # recompilations.
  # We don't consider the file changed if only the date/time changed.
  # A kernel config change will increase the generation number, thus
  # causing compile.h to be updated (including date/time) due to the 
  # changed comment in the
  # first line.
  
  if [ -r $TARGET ] && \
        grep -v 'UTS_VERSION\|LINUX_COMPILE_TIME' $TARGET > .tmpver.1 && \
        grep -v 'UTS_VERSION\|LINUX_COMPILE_TIME' .tmpcompile > .tmpver.2 && \
        cmp -s .tmpver.1 .tmpver.2; then
     rm -f .tmpcompile
  else
     echo "  UPD     $TARGET"
     mv -f .tmpcompile $TARGET
  fi
  rm -f .tmpver.1 .tmpver.2