This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update .gitignore with new flat extension path
[perl5.git] / Cross / cflags-cross-arm
CommitLineData
8ed6d636
VK
1#!/bin/sh
2
3# Extra warnings, used e.g. for gcc.
4warn="-Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat"
5# Extra standardness.
6stdflags=" -std=c89"
7# Extra extra.
8extra=""
9
10# TODO - remove this Cross-config-xxx stuff
11
12case $PERL_CONFIG_SH in
13'')
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=../../../..;
19 else
20 echo "Can't find config-arm.sh."; exit 1
21 fi
22 . $TOP/Cross/config-arm.sh
23 ;;
24esac
25
26: syntax: cflags [optimize=XXX] [file[.suffix]]
27: displays the compiler command line for file
28
29case "X$1" in
30Xoptimize=*|X"optimize=*")
31 eval "$1"
32 shift
33 ;;
34esac
35
36also=': '
37case $# in
381) also='echo 1>&2 " CCCMD = "'
39esac
40
41case $# in
420) set *.c; echo "The current C flags are:" ;;
43esac
44
45set `echo "$* " | sed -e 's/\.[oc] / /g' -e "s/\.${CROSS_NAME}o / /g" -e 's/\.obj / /g' -e "s/\\$obj_ext / /g"`
46
47for file do
48
49 case "$#" in
50 1) extra="-o $file.${CROSS_NAME}o $extra";;
51 *) echo $n " $file.c $c" ;;
52 esac
53
54 : allow variables like toke_cflags to be evaluated
55
56 if echo $file | grep -v / >/dev/null
57 then
58 eval 'eval ${'"${file}_cflags"'-""}'
59 fi
60
61 : or customize here
62
63 case "$file" in
64 DB_File) ;;
65 GDBM_File) ;;
66 NDBM_File) ;;
67 ODBM_File) ;;
68 POSIX) ;;
69 SDBM_File) ;;
70 av) ;;
71 byterun) ;;
72 deb) ;;
73 dl) ;;
74 doio) ;;
75 doop) ;;
76 dump) ;;
77 globals) ;;
78 gv) ;;
79 hv) ;;
80 locale) ;;
81 madly) ;;
82 main) ;;
83 malloc) ;;
84 mg) ;;
85 miniperlmain) ;;
86 numeric) ;;
87 op) ;;
88 opmini) ;;
89 pad) ;;
90 perl) ;;
91 perlapi) ;;
92 perlmain) ;;
93 perly) ;;
94 pp) ;;
95 pp_ctl) ;;
96 pp_hot) ;;
97 pp_pack) ;;
98 pp_sort) ;;
99 pp_sys) ;;
100 regcomp) ;;
101 regexec) ;;
102 run) ;;
103 scope) ;;
104 sv) ;;
105 taint) ;;
106 toke) ;;
107 universal) ;;
108 usersub) ;;
109 utf8) ;;
110 util) ;;
111 xsutils) ;;
112 *) ;;
113 esac
114
115case "$cc" in
116*g++*)
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
121 do
122 ccflags=`echo $ccflags|sed 's/$f/ /'`
123 done
124 ;;
125esac
126
127case "$cc" in
128*g++*)
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
138 do
139 case "$warn" in
140 *$o*) ;;
141 *) warn="$warn $o" ;;
142 esac
143 done
144 ;;
145esac
146
147if test -f .patch; then
148 ccflags="-DPERL_PATCHNUM=`cat .patch` $ccflags"
149fi
150
151 : Can we perhaps use $ansi2knr here
5a20539c 152 echo "$CROSSCC -c -DUSE_CROSS_COMPILE -DPERL_CORE $ccflags $stdflags $optimize $warn $extra"
8ed6d636
VK
153 eval "$also "'"$CROSSCC -DUSE_CROSS_COMPILE -DPERL_CORE -c $ccflags $stdflags $optimize $warn $extra"'
154
155 . $TOP/Cross/config-arm.sh
156
157done