summaryrefslogtreecommitdiff
path: root/miniany/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'miniany/build.sh')
-rwxr-xr-xminiany/build.sh20
1 files changed, 15 insertions, 5 deletions
diff --git a/miniany/build.sh b/miniany/build.sh
index 72a702c..68124b0 100755
--- a/miniany/build.sh
+++ b/miniany/build.sh
@@ -30,22 +30,29 @@ case "${COMPILER}" in
;;
esac
-case "${LEVEL}" in
- 0|1|2|3|s)
+case "${COMPILER}:${LEVEL}" in
+ *:0|*:1|*:2|*:3|*:s)
CFLAGS+=" -O${LEVEL}"
;;
- d)
+ pcc:d)
+ CFLAGS+=" -g -O0"
+ DEBUG=1
+ ;;
+ *:d)
CFLAGS+=" -g -Og"
DEBUG=1
;;
*)
- echo "ERROR: Unknown compilation level '${LEVEL}' (use one of 0123 for -O<n>, or d for -O0 and debugging)" 1>&2
+ echo "ERROR: Unknown compilation level '${LEVEL}' (use one of 0123s for -O<n>, or d for '-Og -g' and debugging)" 1>&2
exit 1
;;
esac
case "${MODE}" in
- freestanding|hosted)
+ freestanding)
+ CFLAGS+=" -D__FREESTANDING__"
+ ;;
+ hosted)
;;
*)
echo "ERROR: Unknown environment '${MODE}' (use 'freestanding' or 'hosted')" 1>&2
@@ -67,6 +74,9 @@ case "${COMPILER}:${MODE}" in
CFLAGS+=" -fno-bultin -nostdlib"
MODULES+=("_start-stub.c")
;;
+ pcc:hosted)
+ CFLAGS+=" -Wl,-emain"
+ ;;
*:hosted)
#~ CFLAGS+=" -lbsd"
;;