1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#! /bin/sh
export LC_ALL=C
set -e
SH_DIR=$1
if [ -z "${SH_DIR}" ]; then
echo "Usage: $0 /usr/src/bin/sh" >&2
exit 1
fi
DESTDIR=external/sh
rm -rf "${DESTDIR}"
mkdir -p "${DESTDIR}"
DESTDIR_REAL="$(realpath "${DESTDIR}")"
ORIG_PWD="${PWD}"
cd "${SH_DIR}"
export WITHOUT_TESTS=yes
export WITHOUT_AUTO_OBJ=yes
make cleanobj
make clean cleandepend
make depend
paths=$(make -V '${.PATH:N.*bltin*}'|xargs realpath)
{
echo builtins.def
echo mkbuiltins
for src in *.h $(make -V SRCS); do
if [ -f "${src}" ]; then
echo "${PWD}/${src}"
else
for p in ${paths}; do
[ -f "${p}/${src}" ] && echo "${p}/${src}" && break
done
fi
done
} | sort -u | \
tar -c -T - \
--exclude bltin \
--exclude builtins.c \
--exclude builtins.h \
-s ",.*/,,g" -f - | tar -C "${DESTDIR_REAL}" -xf -
cp -R "${SH_DIR}/bltin" "${DESTDIR_REAL}/bltin"
make clean cleandepend
cd "${ORIG_PWD}"
# Fix backwards compat for st_mtim
sed -i '' -e 's,[[:<:]]st_mtim[[:>:]],st_mtimespec,g' "${DESTDIR}/test.c"
# Allow interaction with traps
sed -i '' -Ee 's,^static (char sigmode|char \*volatile trap|volatile sig_atomic_t gotsig),\1,' \
"${DESTDIR}/trap.c"
git add -A "${DESTDIR}"
{
cat <<EOF
external/sh_compat/strchrnul.c
external/sh_compat/utimensat.c
EOF
find "${DESTDIR}" -name '*.c' -o -name '*.h' -o -name '*.def' -o -name 'mk*'
} | sed -e 's,^, ,' | sort | \
{
echo "sh_SOURCES="
cat
} | sed -e '$ ! s,$, \\,' \
> external/sh/Makefile.sources
git add -f external/sh/Makefile.sources
find external/patches/sh -type f -exec git am {} +
|