From b1b60bd8cb71f7010c0dca555f027e84ec657947 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Fri, 14 Aug 2020 18:53:56 -0400 Subject: prevent comparisons againt the empty string and error out if the compiler is not correct for the environment --- mkh.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'mkh.sh') diff --git a/mkh.sh b/mkh.sh index b8ccf25e..c4c4d6d4 100755 --- a/mkh.sh +++ b/mkh.sh @@ -41,6 +41,18 @@ for i in $(cat "${TOPDIR}/.deps/h/${HEADERNAME}.deps" | sort -u); do printf '%s <%s> (%s)\n' "$i" "$HEADER" "$version" >&2 done +### +### TODO: prevent _XOPEN_SOURCE expanding to empty string +### +if grep -Fq -e '_XOPEN_SOURCE <' -e '< _XOPEN_SOURCE' $(cat $(HEADER.*/*); then +cat <<-EOF + #if defined _XOPEN_SOURCE && _XOPEN_SOURCE - 1 < 0 + # undef _XOPEN_SOURCE + # define _XOPEN_SOURCE 400 + #endif +EOF +fi + if grep -Fq 'POSIX(' $(cat $HEADER.*/*); then cat <<-EOF #if defined _XOPEN_SOURCE && !defined _POSIX_C_SOURCE @@ -62,6 +74,18 @@ cat <<-EOF EOF fi +if grep -Fq -e 'POSIX(' -e 'XOPEN(' $(cat $HEADER.*/*); then +cat <<-EOF + #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 19901L + # if (defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 200112L) + # error POSIX.1-2001 and later require a C99 compiler + # elif(defined _XOPEN_SOURCE && _XOPEN_SOURCE >= 600) + # error XOPEN Issue 6 and later require a C99 compiler + # endif + #endif +EOF +fi + for type in REFERENCE MACRO TYPE TYPE_LONG RECORD FNTYPE EXTERN; do if [ -d $HEADER.$type ]; then for v in $HEADER.$type/*; do -- cgit v1.2.1