#!/bin/bash
set -eu
cd "$(dirname "$0")"
-cd ..
-declare -a NOWARN=(
- -Wno-field-redeclared
- -Wno-unused-variable
- -Wno-implicit-function-pointer
+WORKDIR=../.tmp
+
+CPP="cc -xc -E"
+QCC=../../../../gmqcc/gmqcc
+
+declare -a QCCDEFS=(
+ -DNDEBUG=1
)
-declare QCC=../../../gmqcc/gmqcc
+QCCDEFS="${QCCDEFS[@]}"
-declare -a QCC_FLAGS=(
+declare -a QCCFLAGS=(
-std=gmqcc
-Wall -Werror
-fftepp -fftepp-predefs -Wcpp
-frelaxed-switch
-Ooverlap-locals
)
+declare -a NOWARN=(
+ -Wno-field-redeclared
+ -Wno-unused-variable
+ -Wno-implicit-function-pointer
+ -Wno-missing-return-values
+)
+QCCFLAGS="${QCCFLAGS[@]} ${NOWARN[@]}"
+
+. qcc.sh
+cd ..
function check() {
declare -l base="${1}"
- declare -la predefs=("-D${2}" "lib/_all.inc" "${base}/_all.qh")
- find "$base" -type f -name '*.qc' -print0 | sort -z | while read -r -d '' file; do
- echo "$file"
- ${QCC} "${QCC_FLAGS[@]}" "${NOWARN[@]}" "${predefs[@]}" "$file" >/dev/null
+ MODE=${2}
+ find ${base} -type f -name '*.qc' -print0 | sort -z | while read -r -d '' file; do
+ qpp ${file} test.dat \
+ -include lib/_all.inc -include ${base}/_all.qh \
+ -I. ${QCCIDENT} ${QCCDEFS} -D${MODE} > ${WORKDIR}/${MODE}.qc
+ qcc ${QCCFLAGS} -o ../${WORKDIR}/test.dat ../${WORKDIR}/${MODE}.qc >/dev/null
done
}