ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/staticperl/perl/hints/os390.sh
Revision: 1.1
Committed: Thu Jun 30 14:27:07 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 # hints/os390.sh
2     #
3     # OS/390 hints by David J. Fiander <davidf@mks.com>
4     #
5     # OS/390 OpenEdition Release 3 Mon Sep 22 1997 thanks to:
6     #
7     # John Goodyear <johngood@us.ibm.com>
8     # John Pfuntner <pfuntner@vnet.ibm.com>
9     # Len Johnson <lenjay@ibm.net>
10     # Bud Huff <BAHUFF@us.oracle.com>
11     # Peter Prymmer <pvhp@forte.com>
12     # Andy Dougherty <doughera@lafayette.edu>
13     # Tim Bunce <Tim.Bunce@ig.co.uk>
14     #
15     # as well as the authors of the aix.sh file
16     #
17    
18     # To get ANSI C, we need to use c89, and ld doesn't exist
19     # You can override this with Configure -Dcc=gcc -Dld=ld.
20     case "$cc" in
21     '') cc='c89' ;;
22     esac
23     case "$ld" in
24     '') ld='c89' ;;
25     esac
26    
27     # -DMAXSIG=38 maximum signal number
28     # -DOEMVS is used in place of #ifdef __MVS__ in certain places.
29     # -D_OE_SOCKETS alters system headers.
30     # -D_XOPEN_SOURCE_EXTENDEDA alters system headers.
31     # c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again.
32     # YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant.
33     # -DEBCDIC should come from Configure and need not be mentioned here.
34     # Prepend your favorites with Configure -Dccflags=your_favorites
35     case "$ccflags" in
36     '') ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
37     *) ccflags="$ccflags -DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
38     esac
39    
40     # Turning on optimization breaks perl.
41     # You can override this with Configure -Doptimize='-O' or somesuch.
42     case "$optimize" in
43     '') optimize='none' ;;
44     esac
45    
46     # To link via definition side decks we need the dll option
47     # You can override this with Configure -Ucccdlflags or somesuch.
48     case "$cccdlflags" in
49     '') cccdlflags='-W 0,dll' ;;
50     esac
51    
52     case "$so" in
53     '') so='a' ;;
54     esac
55    
56     case "$alignbytes" in
57     '') alignbytes=8 ;;
58     esac
59    
60     case "$usemymalloc" in
61     '') usemymalloc='n' ;;
62     esac
63    
64     # On OS/390, libc.a doesn't really hold anything at all,
65     # so running nm on it is pretty useless.
66     # You can override this with Configure -Dusenm.
67     case "$usenm" in
68     '') usenm='false' ;;
69     esac
70    
71     # Setting ldflags='-Wl,EDIT=NO' will get rid of the symbol
72     # information at the end of the executable (=> smaller binaries).
73     # Override this option with -Dldflags='whatever else you wanted'.
74     case "$ldflags" in
75     '') ldflags='-Wl,EDIT=NO' ;;
76     esac
77    
78     # In order to build with dynamic be sure to specify:
79     # Configure -Dusedl
80     # Do not forget to add $archlibexp/CORE to your LIBPATH.
81     # You might want to override some of this with things like:
82     # Configure -Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs.
83     case "$usedl" in
84     '')
85     usedl='n'
86     case "$dlext" in
87     '') dlext='none' ;;
88     esac
89     ;;
90     define)
91     case "$useshrplib" in
92     '') useshrplib='true' ;;
93     esac
94     case "$dlsrc" in
95     '') dlsrc='dl_dllload.xs' ;;
96     esac
97     # For performance use 'so' at or beyond v2.8, 'dll' for 2.7 and prior versions
98     case "`uname -v`x`uname -r`" in
99     02x0[89].*|02x1[0-9].*|[0-9][3-9]x*)
100     so='so'
101     case "$dlext" in
102     '') dlext='so' ;;
103     esac
104     ;;
105     *)
106     so='dll'
107     case "$dlext" in
108     '') dlext='dll' ;;
109     esac
110     ;;
111     esac
112     libperl="libperl.$so"
113     ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll"
114     cccdlflags='-c -Wc,dll,EXPORTALL'
115     # The following will need to be modified for the installed libperl.x.
116     # The modification to Config.pm is done by the installperl script after the build and test.
117     ccdlflags="-W l,dll `pwd`/libperl.x"
118     lddlflags="-W l,dll `pwd`/libperl.x"
119     ;;
120     esac
121     # even on static builds using LIBPATH should be OK.
122     case "$ldlibpthname" in
123     '') ldlibpthname=LIBPATH ;;
124     esac
125    
126     # The folowing should always be used
127     d_oldpthreads='define'
128    
129     # Header files to include.
130     # You can override these with Configure -Ui_time -Ui_systime -Dd_pthread_atfork.
131     case "$i_time" in
132     '') i_time='define' ;;
133     esac
134     case "$i_systime" in
135     '') i_systime='define' ;;
136     esac
137     case "$d_pthread_atfork" in
138     '') d_pthread_atfork='undef' ;;
139     esac
140     case "$d_pthread_atfork" in
141     '') d_pthread_atfork='undef' ;;
142     esac
143    
144     # (from aix.sh)
145     # uname -m output is too specific and not appropriate here
146     # osname should come from Configure
147     # You can override this with Configure -Darchname='s390' but please don't.
148     case "$archname" in
149     '') archname="$osname" ;;
150     esac
151    
152     # We have our own cppstdin script. This is not a variable since
153     # Configure sees the presence of the script file.
154     # We put system header -D definitions in so that Configure
155     # can find the shmat() prototype in <sys/shm.h> and various
156     # other things. Unfortunately, cppflags occurs too late to be of
157     # value external to the script. This may need to be revisited
158     # under a compiler other than c89.
159     case "$usedl" in
160     define)
161     echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -D_SHR_ENVIRON -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
162     ;;
163     *)
164     echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
165     ;;
166     esac
167    
168     #
169     # Note that Makefile.SH employs a bare yacc command to generate
170     # perly.[hc] and a2p.[hc], hence you may wish to:
171     #
172     # alias yacc='myyacc'
173     #
174     # Then if you would like to use myyacc and skip past the
175     # following warnings try invoking Configure like so:
176     #
177     # sh Configure -Dbyacc=yacc
178     #
179     # This trick ought to work even if your yacc is byacc.
180     #
181     if test "X$byacc" = "Xbyacc" ; then
182     if test -e /etc/yyparse.c ; then
183     : we should be OK - perhaps do a test -r?
184     else
185     cat <<EOWARN >&4
186    
187     Warning. You do not have a copy of yyparse.c, the default
188     yacc parser template file, in place in /etc.
189     EOWARN
190     if test -e /samples/yyparse.c ; then
191     cat <<EOWARN >&4
192    
193     There does appear to be a template file in /samples though.
194     Please run:
195    
196     cp /samples/yyparse.c /etc
197    
198     before attempting to Configure the build of $package.
199    
200     EOWARN
201     else
202     cat <<EOWARN >&4
203    
204     There does not appear to be one in /samples either.
205     If you feel you can make use of an alternate yacc-like
206     parser generator then please read the comments in the
207     hints/os390.sh file carefully.
208    
209     EOWARN
210     fi
211     exit 1
212     fi
213     fi
214    
215     # Most of the time gcvt() seems to work fine but
216     # sometimes values like 0.1, 0.2, come out as "10", "20",
217     # a trivial Perl demonstration snippet is 'print 0.1'.
218     # The -W 0,float(ieee) seems to be the switch breaking gcvt().
219     # sprintf() seems to get things right(er).
220     gconvert_preference=sprintf
221    
222     cat >config.arch<<'__CONFIG_ARCH__'
223     # The '-W 0,float(ieee)' cannot be used during Configure as ldflags.
224    
225     ccflags="$ccflags -W 0,float(ieee)"
226    
227     __CONFIG_ARCH__