mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 09:44:18 +08:00
bd5bdd875b
From: Matt Mackall <mpm@selenic.com> Add PREEMPT to UTS_VERSION where enabled as is done for SMP to make preempt kernels easily identifiable. Added SMP PREEMPT as comment in compile.h to force it to be updated when they change (sam). Signed-off-by: Matt Mackall <mpm@selenic.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
83 lines
2.3 KiB
Plaintext
Executable File
83 lines
2.3 KiB
Plaintext
Executable File
TARGET=$1
|
|
ARCH=$2
|
|
SMP=$3
|
|
PREEMPT=$4
|
|
CC=$5
|
|
|
|
# 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
|
|
|
|
if [ -r .version ]; then
|
|
VERSION=`cat .version`
|
|
else
|
|
VERSION=0
|
|
echo 0 > .version
|
|
fi
|
|
|
|
|
|
UTS_VERSION="#$VERSION"
|
|
CONFIG_FLAGS=""
|
|
if [ -n "$SMP" ] ; then CONFIG_FLAGS="SMP"; fi
|
|
if [ -n "$PREEMPT" ] ; then CONFIG_FLAGS="$CONFIG_FLAGS PREEMPT"; fi
|
|
UTS_VERSION="$UTS_VERSION $CONFIG_FLAGS `LC_ALL=C LANG=C date`"
|
|
|
|
# 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 \*/
|
|
if [ -n "$CONFIG_FLAGS" ] ; then echo "/* $CONFIG_FLAGS */"; fi
|
|
|
|
echo \#define UTS_MACHINE \"$ARCH\"
|
|
|
|
echo \#define UTS_VERSION \"`echo $UTS_VERSION | $UTS_TRUNCATE`\"
|
|
|
|
echo \#define LINUX_COMPILE_TIME \"`LC_ALL=C LANG=C date +%T`\"
|
|
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
|
|
|
|
echo \#define LINUX_COMPILER \"`$CC -v 2>&1 | tail -n 1`\"
|
|
) > .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
|