ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/staticperl/perl/cflags.SH
Revision: 1.1
Committed: Thu Jun 30 14:26:41 2005 UTC (21 years, 4 months ago) by root
Content type: application/x-sh
Branch: MAIN
CVS Tags: PERL-5-8-7, HEAD
Branch point for: PERL
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.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     *) 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     ;;
165     esac
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    
173     done
174     !NO!SUBS!
175     chmod 755 cflags
176     $eunicefix cflags