3 # Extra warnings, used e.g. for gcc.
4 warn="-Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat"
10 # TODO - remove this Cross-config-xxx stuff
12 case $PERL_CONFIG_SH in
14 if test -f Cross/config-arm.sh; then TOP=.;
15 elif test -f ../Cross/config-arm.sh; then TOP=..;
16 elif test -f ../../Cross/config-arm.sh; then TOP=../..;
17 elif test -f ../../../Cross/config-arm.sh; then TOP=../../..;
18 elif test -f ../../../../Cross/config-arm.sh; then TOP=../../../..;
20 echo "Can't find config-arm.sh."; exit 1
22 . $TOP/Cross/config-arm.sh
26 : syntax: cflags [optimize=XXX] [file[.suffix]]
27 : displays the compiler command line for file
30 Xoptimize=*|X"optimize=*")
38 1) also='echo 1>&2 " CCCMD = "'
42 0) set *.c; echo "The current C flags are:" ;;
45 set `echo "$* " | sed -e 's/\.[oc] / /g' -e "s/\.${CROSS_NAME}o / /g" -e 's/\.obj / /g' -e "s/\\$obj_ext / /g"`
50 1) extra="-o $file.${CROSS_NAME}o $extra";;
51 *) echo $n " $file.c $c" ;;
54 : allow variables like toke_cflags to be evaluated
56 if echo $file | grep -v / >/dev/null
58 eval 'eval ${'"${file}_cflags"'-""}'
117 # Extra paranoia in case people have bad canned ccflags:
118 # bad in the sense that the flags are accepted by g++,
119 # but then whined about.
120 for f in -Wdeclaration-after-statement -std=c89
122 ccflags=`echo $ccflags|sed 's/$f/ /'`
129 # Without -Wno-unused-variable g++ 4.x compiles are rather unwatchable
130 # because of all the warnings about Perl___notused, and g++ doesn't do
131 # __attribute__((unused)) (and even if at some stage it may, people do
132 # have older gcc installations), and ((void)x) isn't enough to silence
133 # the noises about XS functions not using their cv parameter, so we need
134 # the -Wno-unused-parameter too.
135 # Yes, we lose some valid warnings, but hopefully other compilers
136 # (like gcc) will still pick up those warnings.
137 for o in -Wno-unused-variable -Wno-unused-parameter
141 *) warn="$warn $o" ;;
147 if test -f .patch; then
148 ccflags="-DPERL_PATCHNUM=`cat .patch` $ccflags"
151 : Can we perhaps use $ansi2knr here
152 echo "$CROSSCC -c -DPERL_CORE $ccflags $stdflags $optimize $warn $extra"
153 eval "$also "'"$CROSSCC -DUSE_CROSS_COMPILE -DPERL_CORE -c $ccflags $stdflags $optimize $warn $extra"'
155 . $TOP/Cross/config-arm.sh