blob: ce1fdc50e7f0d8bbfe06a0fe3e96c1954c73b814 (
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
|
#!/bin/sh
set -eu
dir="${TMPDIR-/tmp}/mcpu-cpp-userconf-$$"
mkdir -p "$dir/home/.mcpu/etc" "$dir/include" "$dir/system/as" "$dir/old-system/as"
trap 'rm -rf "$dir"' EXIT HUP INT TERM
cat > "$dir/home/.mcpu/mcpu-cpp.conf" <<EOT
MCPU_CPP_SYSTEM_INCLUDE_PATH = $dir/old-system;
MCPU_CPP_OLD_USER_CONFIG = must-not-be-read;
EOT
cat > "$dir/home/.mcpu/etc/mcpu-cpp.conf" <<EOT
MCPU_CPP_INCLUDE_PATH = $dir/include;
MCPU_CPP_SYSTEM_INCLUDE_PATH = $dir/system;
EOT
cat > "$dir/include/userconf.h" <<'EOT'
int from_user_mcpu_configuration;
EOT
cat > "$dir/system/as/system-userconf.h" <<'EOT'
int from_user_system_root;
EOT
cat > "$dir/main.c" <<'EOT'
#include <userconf.h>
#lang "as"
#include <system-userconf.h>
#endlang
EOT
HOME="$dir/home" "$MCPU_CPP" "$dir/main.c" -o "$dir/out"
grep 'from_user_mcpu_configuration' "$dir/out" >/dev/null
grep 'from_user_system_root' "$dir/out" >/dev/null
HOME="$dir/home" "$MCPU_CPP" -dconfig > "$dir/config.out"
grep "^MCPU_CPP_SYSTEM_INCLUDE_PATH = $dir/system;$" "$dir/config.out" >/dev/null
if grep '^MCPU_CPP_OLD_USER_CONFIG = ' "$dir/config.out" >/dev/null; then
echo 'obsolete $HOME/.mcpu/mcpu-cpp.conf was read' >&2
exit 1
fi
|