extra code in pp_concat, Take 2
[p5sagit/p5-mst-13.2.git] / hints / mpeix.sh
CommitLineData
1d84e8df 1# The MPE/iX linker doesn't complain about unresolved symbols, and so the only
2# way to test for unresolved symbols in a program is by attempting to run it.
3# But this is slow, and fraught with problems, so the better solution is to use
4# nm.
5#
6# MPE/iX lacks a fully functional native nm, so we need to use our fake nm
7# script which will extract the symbol info from the native link editor and
8# reformat into something nm-like.
9#
10# Created for 5.003 by Mark Klein, mklein@dis.com.
11# Substantially revised for 5.004_01 by Mark Bixby, markb@cccd.edu.
12# Revised again for 5.004_69 by Mark Bixby, markb@cccd.edu.
f6e660f0 13# Revised for 5.6.0 by Mark Bixby, mbixby@power.net.
feb33499 14# Revised for 5.7.3 by Mark Bixby, mark@bixby.org.
6b7580e5 15# Revised for 5.8.0 by Mark Bixby, mark@bixby.org.
1d84e8df 16#
1aef975c 17osname='mpeix'
f6e660f0 18osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'`
1d84e8df 19#
20# Force Configure to use our wrapper mpeix/nm script
21#
22PATH="$PWD/mpeix:$PATH"
23nm="$PWD/mpeix/nm"
24_nm=$nm
25nm_opt='-configperl'
26usenm='true'
27#
b62e3068 28# Work around the broken inline cat bug that corrupts here docs
29#
30alias -x cat=/bin/cat
31#
1d84e8df 32# Various directory locations.
33#
c22e42be 34# Which ones of these does Configure get wrong?
feb33499 35test -z "$prefix" && prefix="/$HPACCOUNT/$HPGROUP"
1d84e8df 36archname='PA-RISC1.1'
37bin="$prefix"
38installman1dir="$prefix/man/man1"
39installman3dir="$prefix/man/man3"
40man1dir="$prefix/man/man1"
41man3dir="$prefix/man/man3"
42perlpath="$prefix/PERL"
43scriptdir="$prefix"
203df805 44startperl="#!$prefix/perl"
1d84e8df 45startsh='#!/bin/sh'
46#
47# Compiling.
48#
c22e42be 49test -z "$cc" && cc='gcc'
1d84e8df 50cccdlflags='none'
c22e42be 51ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL -DIS_SOCKET_CLIB_ITSELF"
b62e3068 52locincpth="$locincpth /usr/local/include /usr/contrib/include /BINDFW/CURRENT/include /SYSLOG/PUB"
c22e42be 53test -z "$optimize" && optimize="-O2"
1d84e8df 54ranlib='/bin/true'
55# Special compiling options for certain source files.
c22e42be 56# But what if you want -g?
1d84e8df 57regcomp_cflags='optimize=-O'
58toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
59#
60# Linking.
61#
62lddlflags='-b'
f6e660f0 63# Delete bsd and BSD from the library list. Remove other randomly ordered
64# libraries and then re-add them in their proper order (the MPE linker is
65# order-sensitive). Add additional MPE-specific libraries.
66for mpe_remove in bind bsd BSD c curses m socket str svipc syslog; do
67 set `echo " $libswanted " | sed -e 's/ / /g' -e "s/ $mpe_remove //"`
68 libswanted="$*"
69done
70libswanted="$libswanted bind syslog curses svipc socket str m c"
b62e3068 71loclibpth="$loclibpth /usr/local/lib /usr/contrib/lib /BINDFW/CURRENT/lib /SYSLOG/PUB"
1d84e8df 72#
73# External functions and data items.
74#
f6e660f0 75# Q: Does Configure *really* get *all* of these wrong?
c22e42be 76#
f6e660f0 77# A: Yes. There are two MPE problems here. The 'undef' functions exist on MPE,
78# but are merely dummy routines that return ENOTIMPL or ESYSERR. Since they're
79# useless, let's just tell Perl to avoid them. Also, a few data items are
80# 'undef' because while they may exist in structures, they are uninitialized.
81#
82# The 'define' cases are a bit weirder. MPE has a libc.a, libc.sl, and two
83# special kernel shared libraries, /SYS/PUB/XL and /SYS/PUB/NL. Much of what
84# is in libc.a is duplicated within XL and NL, so when we created libc.sl, we
85# omitted the duplicated functions. Since Configure end ups scanning libc.sl,
86# we need to 'define' the functions that had been removed.
87#
88# We don't want to scan XL or NL because we would find way too many POSIX or
89# Unix named functions that are really vanilla MPE functions that do something
90# completely different than on POSIX or Unix.
1d84e8df 91d_crypt='define'
b62e3068 92d_dbmclose='undef'
1d84e8df 93d_difftime='define'
94d_dlerror='undef'
95d_dlopen='undef'
96d_Gconvert='gcvt((x),(n),(b))'
6b7580e5 97d_getnbyaddr='define'
98d_getnbyname='define'
99d_getpbyname='define'
100d_getpbynumber='define'
101d_getsbyname='define'
102d_getsbyport='define'
b62e3068 103d_gettimeod='undef'
1d84e8df 104d_inetaton='undef'
1aef975c 105d_link='undef'
1d84e8df 106d_mblen='define'
107d_mbstowcs='define'
108d_mbtowc='define'
611857da 109d_memchr='define'
1d84e8df 110d_memcmp='define'
111d_memcpy='define'
112d_memmove='define'
113d_memset='define'
114d_pwage='undef'
1aef975c 115d_pwcomment='undef'
1d84e8df 116d_pwgecos='undef'
117d_pwpasswd='undef'
b62e3068 118d_setegid='undef'
119d_seteuid='undef'
120d_setitimer='undef'
1d84e8df 121d_setpgid='undef'
122d_setsid='undef'
123d_setvbuf='define'
1aef975c 124d_statblks='undef'
1d84e8df 125d_strchr='define'
126d_strcoll='define'
127d_strerrm='strerror(e)'
128d_strerror='define'
129d_strtod='define'
130d_strtol='define'
131d_strtoul='define'
132d_strxfrm='define'
133d_syserrlst='define'
134d_time='define'
135d_wcstombs='define'
136d_wctomb='define'
137#
138# Include files.
139#
b62e3068 140i_gdbm='undef' # the port is currently incomplete
f6e660f0 141i_termios='undef' # we have termios, but not the full set (just tcget/setattr)
1d84e8df 142i_time='define'
143i_systime='undef'
144i_systimek='undef'
145timeincl='/usr/include/time.h'
146#
147# Data types.
148#
149timetype='time_t'
f6e660f0 150#
151# Functionality.
152#
f6e660f0 153uselargefiles="$undef"
feb33499 154#
155# Expected functionality provided in mpeix.c.
156#
157archobjs='mpeix.o'
158
159# Help gmake find mpeix.c
160test -h mpeix.c || ln -s mpeix/mpeix.c mpeix.c
161
162d_gettimeod='define'
163d_truncate='define'