X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=cflags.SH;h=1bd5c947f4e265e7fbe0f9e73012491d10645e0a;hb=726d7ae441a72088bad1d8a88f5e5a5f713513be;hp=4a17475cb09afd8161ca3f47358ab85c951ddc25;hpb=a0d0e21ea6ea90a22318550944fe6cb09ae10cda;p=p5sagit%2Fp5-mst-13.2.git diff --git a/cflags.SH b/cflags.SH index 4a17475..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,12 +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=..; @@ -40,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 @@ -63,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 @@ -74,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 @@ -86,6 +98,7 @@ for file do POSIX) ;; SDBM_File) ;; av) ;; + byterun) ;; deb) ;; dl) ;; doio) ;; @@ -93,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) ;; @@ -121,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