| 1 |
root |
1.1 |
case $PERL_CONFIG_SH in |
| 2 |
|
|
'') |
| 3 |
|
|
if test -f config.sh; then TOP=.; |
| 4 |
|
|
elif test -f ../config.sh; then TOP=..; |
| 5 |
|
|
elif test -f ../../config.sh; then TOP=../..; |
| 6 |
|
|
elif test -f ../../../config.sh; then TOP=../../..; |
| 7 |
|
|
elif test -f ../../../../config.sh; then TOP=../../../..; |
| 8 |
|
|
else |
| 9 |
|
|
echo "Can't find config.sh."; exit 1 |
| 10 |
|
|
fi |
| 11 |
|
|
. $TOP/config.sh |
| 12 |
|
|
;; |
| 13 |
|
|
esac |
| 14 |
|
|
: This forces SH files to create target in same directory as SH file. |
| 15 |
|
|
: This is so that make depend always knows where to find SH derivatives. |
| 16 |
|
|
case "$0" in |
| 17 |
|
|
*/*) cd `expr X$0 : 'X\(.*\)/'` ;; |
| 18 |
|
|
esac |
| 19 |
|
|
echo "Extracting cflags (with variable substitutions)" |
| 20 |
|
|
: This section of the file will have variable substitutions done on it. |
| 21 |
|
|
: Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!. |
| 22 |
|
|
: Protect any dollar signs and backticks that you do not want interpreted |
| 23 |
|
|
: by putting a backslash in front. You may delete these comments. |
| 24 |
|
|
rm -f cflags |
| 25 |
|
|
$spitshell >cflags <<!GROK!THIS! |
| 26 |
|
|
$startsh |
| 27 |
|
|
!GROK!THIS! |
| 28 |
|
|
|
| 29 |
|
|
: In the following dollars and backticks do not need the extra backslash. |
| 30 |
|
|
$spitshell >>cflags <<'!NO!SUBS!' |
| 31 |
|
|
case $PERL_CONFIG_SH in |
| 32 |
|
|
'') |
| 33 |
|
|
if test -f config.sh; then TOP=.; |
| 34 |
|
|
elif test -f ../config.sh; then TOP=..; |
| 35 |
|
|
elif test -f ../../config.sh; then TOP=../..; |
| 36 |
|
|
elif test -f ../../../config.sh; then TOP=../../..; |
| 37 |
|
|
elif test -f ../../../../config.sh; then TOP=../../../..; |
| 38 |
|
|
else |
| 39 |
|
|
echo "Can't find config.sh."; exit 1 |
| 40 |
|
|
fi |
| 41 |
|
|
. $TOP/config.sh |
| 42 |
|
|
;; |
| 43 |
|
|
esac |
| 44 |
|
|
|
| 45 |
|
|
: syntax: cflags [optimize=XXX] [file[.suffix]] |
| 46 |
|
|
: displays the compiler command line for file |
| 47 |
|
|
|
| 48 |
|
|
case "X$1" in |
| 49 |
|
|
Xoptimize=*|X"optimize=*") |
| 50 |
|
|
eval "$1" |
| 51 |
|
|
shift |
| 52 |
|
|
;; |
| 53 |
|
|
esac |
| 54 |
|
|
|
| 55 |
|
|
also=': ' |
| 56 |
|
|
case $# in |
| 57 |
|
|
1) also='echo 1>&2 " CCCMD = "' |
| 58 |
|
|
esac |
| 59 |
|
|
|
| 60 |
|
|
case $# in |
| 61 |
|
|
0) set *.c; echo "The current C flags are:" ;; |
| 62 |
|
|
esac |
| 63 |
|
|
|
| 64 |
|
|
set `echo "$* " | sed -e 's/\.[oc] / /g' -e 's/\.obj / /g' -e "s/\\$obj_ext / /g"` |
| 65 |
|
|
|
| 66 |
|
|
for file do |
| 67 |
|
|
|
| 68 |
|
|
case "$#" in |
| 69 |
|
|
1) ;; |
| 70 |
|
|
*) echo $n " $file.c $c" ;; |
| 71 |
|
|
esac |
| 72 |
|
|
|
| 73 |
|
|
: allow variables like toke_cflags to be evaluated |
| 74 |
|
|
|
| 75 |
|
|
if echo $file | grep -v / >/dev/null |
| 76 |
|
|
then |
| 77 |
|
|
eval 'eval ${'"${file}_cflags"'-""}' |
| 78 |
|
|
fi |
| 79 |
|
|
|
| 80 |
|
|
: or customize here |
| 81 |
|
|
|
| 82 |
|
|
case "$file" in |
| 83 |
|
|
DB_File) ;; |
| 84 |
|
|
GDBM_File) ;; |
| 85 |
|
|
NDBM_File) ;; |
| 86 |
|
|
ODBM_File) ;; |
| 87 |
|
|
POSIX) ;; |
| 88 |
|
|
SDBM_File) ;; |
| 89 |
|
|
av) ;; |
| 90 |
|
|
byterun) ;; |
| 91 |
|
|
deb) ;; |
| 92 |
|
|
dl) ;; |
| 93 |
|
|
doio) ;; |
| 94 |
|
|
doop) ;; |
| 95 |
|
|
dump) ;; |
| 96 |
|
|
gv) ;; |
| 97 |
|
|
hv) ;; |
| 98 |
|
|
locale) ;; |
| 99 |
|
|
main) ;; |
| 100 |
|
|
malloc) ;; |
| 101 |
|
|
mg) ;; |
| 102 |
|
|
miniperlmain) ;; |
| 103 |
|
|
numeric) ;; |
| 104 |
|
|
op) ;; |
| 105 |
|
|
perl) ;; |
| 106 |
|
|
perlapi) ;; |
| 107 |
|
|
perlmain) ;; |
| 108 |
|
|
perly) ;; |
| 109 |
|
|
pp) ;; |
| 110 |
|
|
pp_ctl) ;; |
| 111 |
|
|
pp_hot) ;; |
| 112 |
|
|
pp_pack) ;; |
| 113 |
|
|
pp_sys) ;; |
| 114 |
|
|
regcomp) ;; |
| 115 |
|
|
regexec) ;; |
| 116 |
|
|
run) ;; |
| 117 |
|
|
scope) ;; |
| 118 |
|
|
sv) ;; |
| 119 |
|
|
taint) ;; |
| 120 |
|
|
toke) ;; |
| 121 |
|
|
usersub) ;; |
| 122 |
|
|
util) ;; |
| 123 |
|
|
*) ;; |
| 124 |
|
|
esac |
| 125 |
|
|
|
| 126 |
|
|
# Add -Wall for the core modules iff gcc and not already -Wall |
| 127 |
|
|
warn='' |
| 128 |
|
|
case "$gccversion" in |
| 129 |
|
|
'') ;; |
| 130 |
|
|
*) case "$ccflags" in |
| 131 |
|
|
*-Wall*) ;; |
| 132 |
|
|
*) warn="$warn -Wall" ;; |
| 133 |
|
|
esac |
| 134 |
|
|
case "$gccansipedantic" in |
| 135 |
|
|
define) |
| 136 |
|
|
case "$gccversion" in |
| 137 |
|
|
[12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this. |
| 138 |
|
|
*) case "$osname" in |
| 139 |
|
|
# Add -ansi -pedantic only for known platforms. |
| 140 |
|
|
aix|dec_osf|freebsd|hpux|irix|linux) |
| 141 |
|
|
ansipedantic="-ansi -pedantic" ;; |
| 142 |
|
|
solaris) |
| 143 |
|
|
# Can't add -ansi for Solaris. |
| 144 |
|
|
# Off_t/off_t is a struct in Solaris with largefiles, and with -ansi |
| 145 |
|
|
# that struct cannot be compared with a flat integer, such as a STRLEN. |
| 146 |
|
|
# The -ansi will also cause a lot of noise in Solaris because of: |
| 147 |
|
|
# /usr/include/sys/resource.h:148: warning: `struct rlimit64' declared inside parameter list |
| 148 |
|
|
ansipedantic="-pedantic" ;; |
| 149 |
|
|
esac |
| 150 |
|
|
for i in $ansipedantic |
| 151 |
|
|
do |
| 152 |
|
|
case "$ccflags" in |
| 153 |
|
|
*$i*) ;; |
| 154 |
|
|
*) warn="$warn $i" ;; |
| 155 |
|
|
esac |
| 156 |
|
|
done |
| 157 |
|
|
case "$warn$ccflags" in |
| 158 |
|
|
*-pedantic*) warn="$warn -DPERL_GCC_PEDANTIC" ;; |
| 159 |
|
|
esac |
| 160 |
|
|
;; |
| 161 |
|
|
esac |
| 162 |
|
|
;; |
| 163 |
|
|
esac |
| 164 |
|
|
;; |
| 165 |
|
|
esac |
| 166 |
|
|
|
| 167 |
|
|
: Can we perhaps use $ansi2knr here |
| 168 |
|
|
echo "$cc -c -DPERL_CORE $ccflags $optimize $warn" |
| 169 |
|
|
eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $warn"' |
| 170 |
|
|
|
| 171 |
|
|
. $TOP/config.sh |
| 172 |
|
|
|
| 173 |
|
|
done |
| 174 |
|
|
!NO!SUBS! |
| 175 |
|
|
chmod 755 cflags |
| 176 |
|
|
$eunicefix cflags |