diff options
Diffstat (limited to 'hints/os390.sh')
-rw-r--r-- | hints/os390.sh | 126 |
1 files changed, 99 insertions, 27 deletions
diff --git a/hints/os390.sh b/hints/os390.sh index d6f6821242..7a696348ac 100644 --- a/hints/os390.sh +++ b/hints/os390.sh @@ -15,53 +15,125 @@ # # To get ANSI C, we need to use c89, and ld doesn't exist -cc='c89' -ld='c89' -# To link via definition side decks we need the dll option -cccdlflags='-W 0,dll,"langlvl(extended)"' -# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again, +# You can override this with Configure -Dcc=gcc -Dld=ld. +case "$cc" in +'') cc='c89' ;; +esac +case "$ld" in +'') ld='c89' ;; +esac + +# -DMAXSIG=38 maximum signal number +# -DOEMVS is used in place of #ifdef __MVS__ in certain places. +# -D_OE_SOCKETS alters system headers. +# -D_XOPEN_SOURCE_EXTENDEDA alters system headers. +# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again. # YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant. -# -DEBCDIC should come from Configure. -ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' -# Turning on optimization breaks perl -optimize='none' +# -DEBCDIC should come from Configure and need not be mentioned here. +# Prepend your favorites with Configure -Dccflags=your_favorites +case "$ccflags" in +'') ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;; +*) ccflags="$ccflags -DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;; +esac + +# Turning on optimization breaks perl. +# You can override this with Configure -Doptimize='-O' or somesuch. +case "$optimize" in +'') optimize='none' ;; +esac + +# ccdlflags have yet to be determined. +#case "$ccdlflags" in +#'') ccdlflags='-c' ;; +#esac + +# To link via definition side decks we need the dll option +# You can override this with Configure -Ucccdlflags or somesuch. +case "$cccdlflags" in +'') cccdlflags='-W 0,dll,"langlvl(extended)"' ;; +esac + +# ldflags have yet to be determined. +#case "$ldflags" in +#'') ldflags='' ;; +#esac + +# lddlflags have yet to be determined. +#case "$lddlflags" in +#'') lddlflags='' ;; +#esac -alignbytes=8 +case "$so" in +'') so='a' ;; +esac -usemymalloc='n' +case "$alignbytes" in +'') alignbytes=8 ;; +esac -so='a' +case "$usemymalloc" in +'') usemymalloc='n' ;; +esac # On OS/390, libc.a doesn't really hold anything at all, # so running nm on it is pretty useless. -usenm='n' - -# Dynamic loading doesn't work on OS/390 quite yet -usedl='n' -dlext='none' +# You can override this with Configure -Dusenm. +case "$usenm" in +'') usenm='false' ;; +esac -# Configure can't figure this out for some reason -d_shmatprototype='define' +# Dynamic loading doesn't work on OS/390 quite yet. +# You can override this with +# Configure -Dusedl -Ddlext=.so -Ddlsrc=dl_dllload.xs. +case "$usedl" in +'') usedl='n' ;; +esac +case "$dlext" in +'') dlext='none' ;; +esac +#case "$dlsrc" in +#'') dlsrc='none' ;; +#esac +case "$ldlibpthname" in +'') ldlibpthname=LIBPATH ;; +esac -usenm='false' -i_time='define' -i_systime='define' +# Header files to include. +# You can override these with Configure -Ui_time -Ui_systime. +case "$i_time" in +'') i_time='define' ;; +esac +case "$i_systime" in +'') i_systime='define' ;; +esac # (from aix.sh) # uname -m output is too specific and not appropriate here # osname should come from Configure -# +# You can override this with Configure -Darchname='s390' but please don't. case "$archname" in '') archname="$osname" ;; esac -archobjs=ebcdic.o +# Architecture related object files. +# ebcdic.c contains special \cX mapping code for EBCDIC char sets. +# Prepend your preference with Configure -Darchobs=your_preference.o. +case "$archname" in +'') archobjs="ebcdic.o" ;; +*) archobjs="$archobjs ebcdic.o" ;; +esac -# We have our own cppstdin. -echo 'cat >.$$.c; '"$cc"' -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin +# We have our own cppstdin script. This is not a variable since +# Configure sees the presence of the script file. +# We put system header -D definitions in so that Configure +# can find the shmat() prototype in <sys/shm.h> and various +# other things. Unfortunately, cppflags occurs too late to be of +# value external to the script. This may need to be revisited +# under a compiler other than c89. +echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin # -# Note that Makefile.SH employs a bare yacc to generate +# Note that Makefile.SH employs a bare yacc command to generate # perly.[hc] and a2p.[hc], hence you may wish to: # # alias yacc='myyacc' |