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 | Intel*) ;;
|
---|
131 | *) case "$ccflags" in
|
---|
132 | *-Wall*) ;;
|
---|
133 | *) warn="$warn -Wall" ;;
|
---|
134 | esac
|
---|
135 | case "$gccansipedantic" in
|
---|
136 | define)
|
---|
137 | case "$gccversion" in
|
---|
138 | [12]*) ;; # gcc versions 1 (gasp!) and 2 are not good for this.
|
---|
139 | *) case "$osname" in
|
---|
140 | # Add -ansi -pedantic only for known platforms.
|
---|
141 | aix|dec_osf|freebsd|hpux|irix|linux)
|
---|
142 | ansipedantic="-ansi -pedantic" ;;
|
---|
143 | solaris)
|
---|
144 | # Can't add -ansi for Solaris.
|
---|
145 | # Off_t/off_t is a struct in Solaris with largefiles, and with -ansi
|
---|
146 | # that struct cannot be compared with a flat integer, such as a STRLEN.
|
---|
147 | # The -ansi will also cause a lot of noise in Solaris because of:
|
---|
148 | # /usr/include/sys/resource.h:148: warning: `struct rlimit64' declared inside parameter list
|
---|
149 | ansipedantic="-pedantic" ;;
|
---|
150 | esac
|
---|
151 | for i in $ansipedantic
|
---|
152 | do
|
---|
153 | case "$ccflags" in
|
---|
154 | *$i*) ;;
|
---|
155 | *) warn="$warn $i" ;;
|
---|
156 | esac
|
---|
157 | done
|
---|
158 | case "$warn$ccflags" in
|
---|
159 | *-pedantic*) warn="$warn -DPERL_GCC_PEDANTIC" ;;
|
---|
160 | esac
|
---|
161 | ;;
|
---|
162 | esac
|
---|
163 | ;;
|
---|
164 | esac
|
---|
165 | ;;
|
---|
166 | esac
|
---|
167 |
|
---|
168 | : Can we perhaps use $ansi2knr here
|
---|
169 | echo "$cc -c -DPERL_CORE $ccflags $optimize $warn"
|
---|
170 | eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $warn"'
|
---|
171 |
|
---|
172 | . $TOP/config.sh
|
---|
173 |
|
---|
174 | done
|
---|
175 | !NO!SUBS!
|
---|
176 | chmod 755 cflags
|
---|
177 | $eunicefix cflags
|
---|