summaryrefslogtreecommitdiff
path: root/Cross/cflags-cross-arm
diff options
context:
space:
mode:
Diffstat (limited to 'Cross/cflags-cross-arm')
-rwxr-xr-xCross/cflags-cross-arm157
1 files changed, 157 insertions, 0 deletions
diff --git a/Cross/cflags-cross-arm b/Cross/cflags-cross-arm
new file mode 100755
index 0000000000..9241d01cca
--- /dev/null
+++ b/Cross/cflags-cross-arm
@@ -0,0 +1,157 @@
+#!/bin/sh
+
+# Extra warnings, used e.g. for gcc.
+warn="-Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat"
+# Extra standardness.
+stdflags=" -std=c89"
+# Extra extra.
+extra=""
+
+# TODO - remove this Cross-config-xxx stuff
+
+case $PERL_CONFIG_SH in
+'')
+ if test -f Cross/config-arm.sh; then TOP=.;
+ elif test -f ../Cross/config-arm.sh; then TOP=..;
+ elif test -f ../../Cross/config-arm.sh; then TOP=../..;
+ elif test -f ../../../Cross/config-arm.sh; then TOP=../../..;
+ elif test -f ../../../../Cross/config-arm.sh; then TOP=../../../..;
+ else
+ echo "Can't find config-arm.sh."; exit 1
+ fi
+ . $TOP/Cross/config-arm.sh
+ ;;
+esac
+
+: syntax: cflags [optimize=XXX] [file[.suffix]]
+: displays the compiler command line for file
+
+case "X$1" in
+Xoptimize=*|X"optimize=*")
+ eval "$1"
+ shift
+ ;;
+esac
+
+also=': '
+case $# in
+1) also='echo 1>&2 " CCCMD = "'
+esac
+
+case $# in
+0) set *.c; echo "The current C flags are:" ;;
+esac
+
+set `echo "$* " | sed -e 's/\.[oc] / /g' -e "s/\.${CROSS_NAME}o / /g" -e 's/\.obj / /g' -e "s/\\$obj_ext / /g"`
+
+for file do
+
+ case "$#" in
+ 1) extra="-o $file.${CROSS_NAME}o $extra";;
+ *) echo $n " $file.c $c" ;;
+ esac
+
+ : allow variables like toke_cflags to be evaluated
+
+ if echo $file | grep -v / >/dev/null
+ then
+ eval 'eval ${'"${file}_cflags"'-""}'
+ fi
+
+ : or customize here
+
+ case "$file" in
+ DB_File) ;;
+ GDBM_File) ;;
+ NDBM_File) ;;
+ ODBM_File) ;;
+ POSIX) ;;
+ SDBM_File) ;;
+ av) ;;
+ byterun) ;;
+ deb) ;;
+ dl) ;;
+ doio) ;;
+ doop) ;;
+ dump) ;;
+ globals) ;;
+ gv) ;;
+ hv) ;;
+ locale) ;;
+ madly) ;;
+ main) ;;
+ malloc) ;;
+ mg) ;;
+ miniperlmain) ;;
+ numeric) ;;
+ op) ;;
+ opmini) ;;
+ pad) ;;
+ perl) ;;
+ perlapi) ;;
+ perlmain) ;;
+ perly) ;;
+ pp) ;;
+ pp_ctl) ;;
+ pp_hot) ;;
+ pp_pack) ;;
+ pp_sort) ;;
+ pp_sys) ;;
+ regcomp) ;;
+ regexec) ;;
+ run) ;;
+ scope) ;;
+ sv) ;;
+ taint) ;;
+ toke) ;;
+ universal) ;;
+ usersub) ;;
+ utf8) ;;
+ util) ;;
+ xsutils) ;;
+ *) ;;
+ esac
+
+case "$cc" in
+*g++*)
+ # Extra paranoia in case people have bad canned ccflags:
+ # bad in the sense that the flags are accepted by g++,
+ # but then whined about.
+ for f in -Wdeclaration-after-statement -std=c89
+ do
+ ccflags=`echo $ccflags|sed 's/$f/ /'`
+ done
+ ;;
+esac
+
+case "$cc" in
+*g++*)
+ # Without -Wno-unused-variable g++ 4.x compiles are rather unwatchable
+ # because of all the warnings about Perl___notused, and g++ doesn't do
+ # __attribute__((unused)) (and even if at some stage it may, people do
+ # have older gcc installations), and ((void)x) isn't enough to silence
+ # the noises about XS functions not using their cv parameter, so we need
+ # the -Wno-unused-parameter too.
+ # Yes, we lose some valid warnings, but hopefully other compilers
+ # (like gcc) will still pick up those warnings.
+ for o in -Wno-unused-variable -Wno-unused-parameter
+ do
+ case "$warn" in
+ *$o*) ;;
+ *) warn="$warn $o" ;;
+ esac
+ done
+ ;;
+esac
+
+if test -f .patch; then
+ ccflags="-DPERL_PATCHNUM=`cat .patch` $ccflags"
+fi
+
+ : Can we perhaps use $ansi2knr here
+ echo "$CROSSCC -c -DPERL_CORE $ccflags $stdflags $optimize $warn $extra"
+ eval "$also "'"$CROSSCC -DUSE_CROSS_COMPILE -DPERL_CORE -c $ccflags $stdflags $optimize $warn $extra"'
+
+ . $TOP/Cross/config-arm.sh
+
+done