source: trunk/third/perl/cflags.SH @ 20075

Revision 20075, 3.9 KB checked in by zacheiss, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20074, which included commits to RCS files with non-trunk default branches.
Line 
1case $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        ;;
13esac
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.
16case "$0" in
17*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
18esac
19echo "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.
24rm -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!'
31case $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        ;;
43esac
44
45: syntax: cflags [optimize=XXX] [file[.suffix]]
46: displays the compiler command line for file
47
48case "X$1" in
49Xoptimize=*|X"optimize=*")
50        eval "$1"
51        shift
52        ;;
53esac
54
55also=': '
56case $# in
571) also='echo 1>&2 "      CCCMD = "'
58esac
59
60case $# in
610) set *.c; echo "The current C flags are:" ;;
62esac
63
64set `echo "$* " | sed -e 's/\.[oc] / /g' -e 's/\.obj / /g' -e "s/\\$obj_ext / /g"`
65
66for 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
127warn=''
128case "$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    ;;
165esac
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
173done
174!NO!SUBS!
175chmod 755 cflags
176$eunicefix cflags
Note: See TracBrowser for help on using the repository browser.