diff options
Diffstat (limited to 'miniany/build.sh')
-rwxr-xr-x | miniany/build.sh | 20 |
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" ;; |