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