X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/ecfc54246c2a6f42dc95b17a964a6048192067d2..ec53fe4f9e818e0863fdf95395e02d6b1741bcfd:/cflags.SH diff --git a/cflags.SH b/cflags.SH index bb0f216..1bd5c94 100755 --- a/cflags.SH +++ b/cflags.SH @@ -1,4 +1,4 @@ -case $CONFIG in +case $PERL_CONFIG_SH in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; @@ -21,13 +21,14 @@ echo "Extracting cflags (with variable substitutions)" : Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!. : Protect any dollar signs and backticks that you do not want interpreted : by putting a backslash in front. You may delete these comments. +rm -f cflags $spitshell >cflags <>cflags <<'!NO!SUBS!' -case $CONFIG in +case $PERL_CONFIG_SH in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; @@ -41,6 +42,13 @@ case $CONFIG in ;; esac +case "X$1" in +Xoptimize=*|X"optimize=*") + eval "$1" + shift + ;; +esac + perltype='' optdebug='' # ensure -g used if building a -DDEBUGGING libperl case $# in @@ -64,7 +72,7 @@ case $# in 0) set *.c; echo "The current C flags are:" ;; esac -set `echo "$* " | sed 's/\.[oc] / /g'` +set `echo "$* " | sed -e 's/\.[oc] / /g' -e 's/\.obj / /g' -e "s/\\$obj_ext / /g"` for file do @@ -75,7 +83,10 @@ for file do : allow variables like toke_cflags to be evaluated - eval 'eval ${'"${file}_cflags"'-""}' + if echo $file | grep -v / >/dev/null + then + eval 'eval ${'"${file}_cflags"'-""}' + fi : or customize here @@ -87,6 +98,7 @@ for file do POSIX) ;; SDBM_File) ;; av) ;; + byterun) ;; deb) ;; dl) ;; doio) ;; @@ -94,17 +106,21 @@ for file do dump) ;; gv) ;; hv) ;; + locale) ;; main) ;; malloc) ;; mg) ;; miniperlmain) ;; + numeric) ;; op) ;; perl) ;; + perlapi) ;; perlmain) ;; perly) ;; pp) ;; pp_ctl) ;; pp_hot) ;; + pp_pack) ;; pp_sys) ;; regcomp) ;; regexec) ;; @@ -122,8 +138,25 @@ for file do optimize="$optdebug" fi - echo "$cc -c $ccflags $optimize $perltype $large $split" - eval "$also "'"$cc -c $ccflags $optimize $perltype $large $split"' +# Add -Wall for the core and core modules iff gcc and not already -Wall +warn='' +case "$gccversion" in +'') ;; +*) case "$ccflags" in + *-Wall*) ;; +# Can't add -ansi here because it will fail e.g. in Solaris. +# Off_t/off_t is a struct in Solaris with largefiles, and with -ansi +# that struct cannot be compared with a flat integer, such as a STRLEN. +# The -ansi will also cause a lot of noise in Solaris because of: +# /usr/include/sys/resource.h:148: warning: `struct rlimit64' declared inside parameter list + *) warn='-Wall' ;; + esac + ;; +esac + + : Can we perhaps use $ansi2knr here + echo "$cc -c -DPERL_CORE $ccflags $optimize $warn $perltype" + eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $warn $perltype"' . $TOP/config.sh