Welcome to mirror list, hosted at ThFree Co, Russian Federation.

update_sh.sh « external - github.com/freebsd/poudriere.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5156869697e7f51291465d6c3a4b6e8a5a76b2ce (plain)
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 {} +