summaryrefslogtreecommitdiff
path: root/src/generate_mpers_am.sh
blob: 58063319a8424604a221ac3a4dd032b0aead3896 (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
#!/bin/sh -e
#
# Copyright (c) 2015-2023 The strace developers.
# All rights reserved.
#
# SPDX-License-Identifier: LGPL-2.1-or-later

[ "x${D:-0}" != x1 ] || set -x

cd "$(dirname "$0")"

list="$(sed -E -n '/^strace_SOURCES[[:space:]]*=/,/^[[:space:]]*# end of strace_SOURCES/ s/^[[:space:]]*([[:alnum:]][^.]*\.c)[[:space:]]*\\$/\1/p' Makefile.am |
	xargs -r grep -Elx '#[[:space:]]*include[[:space:]]+MPERS_DEFS' |
	tr '\n' ' ')"

[ -n "$list" ] || {
	echo >&2 "$0: error: the list of mpers source files is empty"
	exit 1
}

cat > mpers.am <<EOF
# Generated by $0; do not edit.
mpers_source_files = $list
EOF

sed -E -n 's/^#[[:space:]]*include[[:space:]]*"xlat\/([a-z][a-z_0-9]*)\.h".*/extern const struct xlat \1[];/p' \
	$list > mpers_xlat.h