diff options
author | Nicholas Clark <nick@ccl4.org> | 2012-03-28 17:15:15 +0200 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2012-06-19 10:29:20 +0200 |
commit | 5729ffdda207fd02149cc5ed14dbfdce8c47cac3 (patch) | |
tree | 1e907a5be677d3a4e394bda028cd370f4e148d7b | |
parent | cdc1aa425ff891f079f6e8b0787d0d9aa145bd47 (diff) | |
download | perl-5729ffdda207fd02149cc5ed14dbfdce8c47cac3.tar.gz |
In cflags.SH trim the case statement of file basenames.
Add examples showing how to use cflags.SH to tweak the compiler flags used
for individual object files.
Previously cflags.SH contained a somewhat stale pre-canned list of file
basenames including removed files such as usersub (deleted before 5.000
shipped), and a partial list of 5.000 XS extensions. Whilst it's possible
to generate the correct list in cflags by parsing MANIFEST (and adding a few
fixups), it's still not actually *useful*, as cflags gets overwritten as
soon as config.sh changes. Hence the most end-user useful solution with
minimal maintenance is to eliminate the list entirely, and document how the
user should add to it as necessary.
-rw-r--r-- | INSTALL | 13 | ||||
-rwxr-xr-x | cflags.SH | 61 |
2 files changed, 24 insertions, 50 deletions
@@ -1269,9 +1269,16 @@ lost. If you have any additional changes to make to the C compiler command line, they can be made in cflags.SH. For instance, to turn off the -optimizer on toke.c, find the line in the switch structure for -toke.c and put the command optimize='-g' before the ;; . You -should not edit the generated file cflags directly, as your changes will +optimizer on toke.c, find the switch structure marked 'or customize here', +and add a line for toke.c ahead of the catch-all *) so that it now reads: + + : or customize here + + case "$file" in + toke) optimize='-g' ;; + *) ;; + +You should not edit the generated file cflags directly, as your changes will be lost the next time you run Configure, or if you edit config.sh. To explore various ways of changing ccflags from within a hint file, @@ -273,56 +273,23 @@ for file do : or customize here case "$file" in - DB_File) ;; - GDBM_File) ;; - NDBM_File) ;; - ODBM_File) ;; - POSIX) ;; - SDBM_File) ;; - av) ;; - byterun) ;; - deb) ;; - dl) ;; - doio) ;; - doop) ;; - dump) ;; - globals) ;; - gv) ;; - hv) ;; - locale) ;; - madly) ;; - main) ;; - malloc) ;; - mg) ;; - miniperlmain) ;; - numeric) ;; - op) ;; - opmini) ;; - pad) ;; - perl) ;; - perlapi) ;; - perlmain) ;; - perly) ;; - pp) ;; - pp_ctl) ;; - pp_hot) ;; - pp_pack) ;; - pp_sort) ;; - pp_sys) ;; - regcomp) ;; - regexec) ;; - run) ;; - scope) ;; - sv) ;; - taint) ;; - toke) ;; - universal) ;; - usersub) ;; - utf8) ;; - util) ;; *) ;; + + *) : Customization examples follow: ;; + av) ccflags=`echo $ccflags | sed -e s/-pipe//` ;; + deb) ccflags="$ccflags -fno-jump-tables" ;; + hv) warn=`echo $warn | sed -e s/-Wextra//` ;; + toke) optimize=-O0 ;; esac + : The examples are intentionally unreachable as the '*)' case always + : matches. To use them, move before the '*)' and edit as appropriate. + : It is not a good idea to set ccflags to an absolute value here, as it + : often contains general -D defines which are needed for correct + : compilation. It is better to edit ccflags as shown, using interpolation + : to add flags, or sed to remove flags. + + case "$cc" in *g++*) # Extra paranoia in case people have bad canned ccflags: |