Also the lib/Thread.pm itself needs to be ignored if
[p5sagit/p5-mst-13.2.git] / hints / os390.sh
CommitLineData
86339dc9 1# hints/os390.sh
9d116dd7 2#
3# OS/390 hints by David J. Fiander <davidf@mks.com>
4#
86339dc9 5# OS/390 OpenEdition Release 3 Mon Sep 22 1997 thanks to:
ac9901e0 6#
7# John Goodyear <johngood@us.ibm.com>
86339dc9 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@lafcol.lafayette.edu>
13# Tim Bunce <Tim.Bunce@ig.co.uk>
14#
15# as well as the authors of the aix.sh file
16#
17
9d116dd7 18# To get ANSI C, we need to use c89, and ld doesn't exist
5f912e1c 19# You can override this with Configure -Dcc=gcc -Dld=ld.
20case "$cc" in
21'') cc='c89' ;;
22esac
23case "$ld" in
24'') ld='c89' ;;
25esac
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.
9d116dd7 32# YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant.
5f912e1c 33# -DEBCDIC should come from Configure and need not be mentioned here.
34# Prepend your favorites with Configure -Dccflags=your_favorites
35case "$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" ;;
38esac
39
40# Turning on optimization breaks perl.
41# You can override this with Configure -Doptimize='-O' or somesuch.
42case "$optimize" in
43'') optimize='none' ;;
44esac
45
5f912e1c 46# To link via definition side decks we need the dll option
47# You can override this with Configure -Ucccdlflags or somesuch.
48case "$cccdlflags" in
ac9901e0 49'') cccdlflags='-W 0,dll' ;;
5f912e1c 50esac
51
5f912e1c 52case "$so" in
53'') so='a' ;;
54esac
9d116dd7 55
5f912e1c 56case "$alignbytes" in
57'') alignbytes=8 ;;
58esac
9d116dd7 59
5f912e1c 60case "$usemymalloc" in
61'') usemymalloc='n' ;;
62esac
9d116dd7 63
64# On OS/390, libc.a doesn't really hold anything at all,
65# so running nm on it is pretty useless.
5f912e1c 66# You can override this with Configure -Dusenm.
67case "$usenm" in
68'') usenm='false' ;;
69esac
9d116dd7 70
5f912e1c 71# Dynamic loading doesn't work on OS/390 quite yet.
ac9901e0 72# However the easiest way to experiment with dynamic loading is with:
73# Configure -Dusedl
74# You can even override some of this with things like:
75# Configure -Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs.
5f912e1c 76case "$usedl" in
ac9901e0 77'')
78 usedl='n'
79 case "$dlext" in
80 '') dlext='none' ;;
81 esac
82 ;;
83define)
84 case "$useshrplib" in
85 '') useshrplib='true' ;;
86 esac
87 case "$dlext" in
88 '') dlext='dll' ;;
89 esac
90 case "$dlsrc" in
91 '') dlsrc='dl_dllload.xs' ;;
92 esac
93 so='dll'
94 libperl='libperl.dll'
95 ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll"
96 cccdlflags='-c -Wc,dll,EXPORTALL'
97 # You might add '-Wl,EDIT=NO' to get rid of the symbol
98 # information at the end of the executable.
99 #
100 # The following will need to be modified for the installed libperl.x
101 ccdlflags="-W l,dll `pwd`/libperl.x"
102 ldflags=''
103 lddlflags='-W l,dll'
104 ;;
5f912e1c 105esac
ac9901e0 106# even on static builds using LIBPATH should be OK.
5f912e1c 107case "$ldlibpthname" in
108'') ldlibpthname=LIBPATH ;;
109esac
9d116dd7 110
5f912e1c 111# Header files to include.
112# You can override these with Configure -Ui_time -Ui_systime.
113case "$i_time" in
114'') i_time='define' ;;
115esac
116case "$i_systime" in
117'') i_systime='define' ;;
118esac
86339dc9 119
120# (from aix.sh)
121# uname -m output is too specific and not appropriate here
9d116dd7 122# osname should come from Configure
5f912e1c 123# You can override this with Configure -Darchname='s390' but please don't.
86339dc9 124case "$archname" in
125'') archname="$osname" ;;
126esac
127
5f912e1c 128# Architecture related object files.
129# ebcdic.c contains special \cX mapping code for EBCDIC char sets.
130# Prepend your preference with Configure -Darchobs=your_preference.o.
131case "$archname" in
132'') archobjs="ebcdic.o" ;;
133*) archobjs="$archobjs ebcdic.o" ;;
134esac
1cfa4ec7 135
5f912e1c 136# We have our own cppstdin script. This is not a variable since
137# Configure sees the presence of the script file.
138# We put system header -D definitions in so that Configure
139# can find the shmat() prototype in <sys/shm.h> and various
140# other things. Unfortunately, cppflags occurs too late to be of
141# value external to the script. This may need to be revisited
142# under a compiler other than c89.
143echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
23e2eca9 144
145#
5f912e1c 146# Note that Makefile.SH employs a bare yacc command to generate
23e2eca9 147# perly.[hc] and a2p.[hc], hence you may wish to:
148#
149# alias yacc='myyacc'
150#
151# Then if you would like to use myyacc and skip past the
152# following warnings try invoking Configure like so:
153#
154# sh Configure -Dbyacc=yacc
155#
156# This trick ought to work even if your yacc is byacc.
157#
158if test "X$byacc" = "Xbyacc" ; then
159 if test -e /etc/yyparse.c ; then
160 : we should be OK - perhaps do a test -r?
161 else
162 cat <<EOWARN >&4
163
164Warning. You do not have a copy of yyparse.c, the default
165yacc parser template file, in place in /etc.
166EOWARN
167 if test -e /samples/yyparse.c ; then
168 cat <<EOWARN >&4
169
170There does appear to be a template file in /samples though.
171Please run:
172
173 cp /samples/yyparse.c /etc
174
175before attempting to Configure the build of $package.
176
177EOWARN
178 else
179 cat <<EOWARN >&4
180
181There does not appear to be one in /samples either.
182If you feel you can make use of an alternate yacc-like
183parser generator then please read the comments in the
184hints/os390.sh file carefully.
185
186EOWARN
187 fi
188 exit 1
189 fi
190fi
191