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