blob: 88bad3bbb4f287938420278963e291cf165805f6 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -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
xf.li1baec692023-04-25 02:38:36 -070047#xf.li@2023.04.14 modify for ZXW-25 start
48 LINUX_COMPILE_BY=${USER}
49
lh9ed821d2023-04-07 01:36:19 -070050else
51 LINUX_COMPILE_BY=$KBUILD_BUILD_USER
52fi
53if test -z "$KBUILD_BUILD_HOST"; then
xf.li1baec692023-04-25 02:38:36 -070054 LINUX_COMPILE_HOST=`uname -n`
lh9ed821d2023-04-07 01:36:19 -070055else
56 LINUX_COMPILE_HOST=$KBUILD_BUILD_HOST
57fi
xf.li1baec692023-04-25 02:38:36 -070058#xf.li@2023.04.10 modify for ZXW-25 end
lh9ed821d2023-04-07 01:36:19 -070059
60UTS_VERSION="#$VERSION"
61#zhouguopo modify begin
62UTS_VERSION="#2"
63#zhouguopo modify end
xf.li1baec692023-04-25 02:38:36 -070064#xf.li@2023.04.20 modify for ZXW-25 start
65LYNQ_VERSION="$(echo $COMMITID $LYNQ_VERSION)"
66#xf.li@2023.04.20 modify for ZXW-25 end
lh9ed821d2023-04-07 01:36:19 -070067CONFIG_FLAGS=""
68if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
69if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
70if [ -n "$RT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS RT"; fi
71UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS $TIMESTAMP"
72
73# Truncate to maximum length
74
75UTS_LEN=64
76UTS_TRUNCATE="cut -b -$UTS_LEN"
77
78# Generate a temporary compile.h
79
80( echo /\* This file is auto generated, version $VERSION \*/
81 if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi
82
83 echo \#define UTS_MACHINE \"$ARCH\"
84
85 echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
xf.li1baec692023-04-25 02:38:36 -070086#xf.li@2023.04.14 modify for ZXW-25 start
87 printf '#define LYNQ_VERSION "%s"\n' "$LYNQ_VERSION"
88#xf.li@2023.04.14 modify for ZXW-25 end
lh9ed821d2023-04-07 01:36:19 -070089 echo \#define LINUX_COMPILE_BY \"`echo $LINUX_COMPILE_BY | $UTS_TRUNCATE`\"
90 echo \#define LINUX_COMPILE_HOST \"`echo $LINUX_COMPILE_HOST | $UTS_TRUNCATE`\"
91
92 echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
93) > .tmpcompile
94
95# Only replace the real compile.h if the new one is different,
96# in order to preserve the timestamp and avoid unnecessary
97# recompilations.
98# We don't consider the file changed if only the date/time changed.
99# A kernel config change will increase the generation number, thus
100# causing compile.h to be updated (including date/time) due to the
101# changed comment in the
102# first line.
103
104if [ -r $TARGET ] && \
105 grep -v 'UTS_VERSION' $TARGET > .tmpver.1 && \
106 grep -v 'UTS_VERSION' .tmpcompile > .tmpver.2 && \
107 cmp -s .tmpver.1 .tmpver.2; then
108 rm -f .tmpcompile
109else
110 vecho " UPD $TARGET"
111 mv -f .tmpcompile $TARGET
112fi
113rm -f .tmpver.1 .tmpver.2