2019-10-08 21:05:55 +09:00
|
|
|
#!/bin/sh
|
2019-04-26 15:04:29 -04:00
|
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
|
|
|
|
|
# This script generates an archive consisting of kernel headers
|
2019-05-15 17:35:51 -04:00
|
|
|
# for CONFIG_IKHEADERS.
|
2019-04-26 15:04:29 -04:00
|
|
|
set -e
|
|
|
|
|
tarfile=$1
|
2025-06-09 01:59:55 +09:00
|
|
|
srclist=$2
|
|
|
|
|
objlist=$3
|
2025-06-09 01:59:56 +09:00
|
|
|
timestamp=$4
|
2019-04-26 15:04:29 -04:00
|
|
|
|
2025-06-09 01:59:55 +09:00
|
|
|
dir=$(dirname "${tarfile}")
|
|
|
|
|
tmpdir=${dir}/.tmp_dir
|
|
|
|
|
depfile=${dir}/.$(basename "${tarfile}").d
|
2019-04-26 15:04:29 -04:00
|
|
|
|
2025-06-09 01:59:55 +09:00
|
|
|
# generate dependency list.
|
|
|
|
|
{
|
|
|
|
|
echo
|
|
|
|
|
echo "deps_${tarfile} := \\"
|
|
|
|
|
sed 's:\(.*\): \1 \\:' "${srclist}"
|
|
|
|
|
sed -n '/^include\/generated\/autoconf\.h$/!s:\(.*\): \1 \\:p' "${objlist}"
|
|
|
|
|
echo
|
|
|
|
|
echo "${tarfile}: \$(deps_${tarfile})"
|
|
|
|
|
echo
|
|
|
|
|
echo "\$(deps_${tarfile}):"
|
2019-04-26 15:04:29 -04:00
|
|
|
|
2025-06-09 01:59:55 +09:00
|
|
|
} > "${depfile}"
|
2019-04-26 15:04:29 -04:00
|
|
|
|
2024-12-18 19:37:07 +09:00
|
|
|
rm -rf "${tmpdir}"
|
|
|
|
|
mkdir "${tmpdir}"
|
2019-04-26 15:04:29 -04:00
|
|
|
|
2025-06-09 01:59:55 +09:00
|
|
|
# shellcheck disable=SC2154 # srctree is passed as an env variable
|
2025-07-29 15:24:55 +02:00
|
|
|
sed "s:^${srctree}/::" "${srclist}" | ${TAR} -c -f - -C "${srctree}" -T - | ${TAR} -xf - -C "${tmpdir}"
|
|
|
|
|
${TAR} -c -f - -T "${objlist}" | ${TAR} -xf - -C "${tmpdir}"
|
2019-04-26 15:04:29 -04:00
|
|
|
|
|
|
|
|
# Remove comments except SDPX lines
|
2024-12-18 20:20:11 +00:00
|
|
|
# Use a temporary file to store directory contents to prevent find/xargs from
|
|
|
|
|
# seeing temporary files created by perl.
|
|
|
|
|
find "${tmpdir}" -type f -print0 > "${tmpdir}.contents.txt"
|
|
|
|
|
xargs -0 -P8 -n1 \
|
|
|
|
|
perl -pi -e 'BEGIN {undef $/;}; s/\/\*((?!SPDX).)*?\*\///smg;' \
|
|
|
|
|
< "${tmpdir}.contents.txt"
|
|
|
|
|
rm -f "${tmpdir}.contents.txt"
|
2019-04-26 15:04:29 -04:00
|
|
|
|
2019-10-09 13:42:14 +00:00
|
|
|
# Create archive and try to normalize metadata for reproducibility.
|
2025-07-29 15:24:55 +02:00
|
|
|
${TAR} "${timestamp:+--mtime=$timestamp}" \
|
2024-05-28 11:32:43 +00:00
|
|
|
--owner=0 --group=0 --sort=name --numeric-owner --mode=u=rw,go=r,a+X \
|
2025-06-09 01:59:57 +09:00
|
|
|
-I "${XZ}" -cf "${tarfile}" -C "${tmpdir}/" . > /dev/null
|
2019-04-26 15:04:29 -04:00
|
|
|
|
2024-12-18 19:37:07 +09:00
|
|
|
rm -rf "${tmpdir}"
|