[12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
Intel*) ;; # # Is that you, Intel C++?
#
-# NOTE 1: the -std=c89 without -pedantic is a bit pointless,
-# so we will not add it here. You will have to use e.g.
-# Configure -Accflags=-std=c89
-#
+# NOTE 1: the -std=c89 without -pedantic is a bit pointless.
# Just -std=c89 means "if there is room for interpretation,
# interpret the C89 way." It does NOT mean "strict C89" on its own.
# You need to add the -pedantic for that. To do this with Configure,
# do -Dgccansipedantic (note that the -ansi is included in any case,
# the option is a bit oddly named, for historical reasons.)
#
-# Furthermore, -std=c89 disables/hides/makes harder to use certain
-# non-C89 features like long long.
-#
# NOTE 2: -pedantic necessitates adding a couple of flags:
# * -PERL_GCC_PEDANTIC so that the perl code can adapt: there's nothing
# added by gcc itself to indicate pedanticness.
# longer then the ANSI minimum of 509 bytes.
#
# NOTE 3: the relative order of these options matters:
-# -Wextra before -W, and -pedantic* before -Werror=d-a-s.
+# -Wextra before -W
+# -std=c89 before -ansi
+# -pedantic* before -Werror=d-a-s
#
-*) for opt in -ansi $pedantic \
+*) for opt in -std=c89 -ansi $pedantic \
-Werror=declaration-after-statement \
-Wextra -W \
-Wc++-compat -Wwrite-strings
echo "cflags.SH: Adding $opt."
stdflags="$stdflags $opt"
;;
+ -ansi)
+ # -std=c89 is the modern form of -ansi, so add
+ # -ansi only if -std=c89 is not there already.
+ case " $stdflags " in
+ *-std=c89*) ;;
+ *)
+ echo "cflags.SH: Adding $opt."
+ stdflags="$stdflags $opt"
+ ;;
+ esac
+ ;;
*) case "$opt" in
-W)
# -Wextra is the modern form of -W, so add