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
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.
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.
13 # Revised for 5.6.0 by Mark Bixby, mbixby@power.net.
14 # Revised for 5.7.3 by Mark Bixby, mark@bixby.org.
17 osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'`
19 # Force Configure to use our wrapper mpeix/nm script
21 PATH="$PWD/mpeix:$PATH"
27 # Work around the broken inline cat bug that corrupts here docs
31 # Various directory locations.
33 # Which ones of these does Configure get wrong?
34 test -z "$prefix" && prefix="/$HPACCOUNT/$HPGROUP"
37 installman1dir="$prefix/man/man1"
38 installman3dir="$prefix/man/man3"
39 man1dir="$prefix/man/man1"
40 man3dir="$prefix/man/man3"
41 perlpath="$prefix/PERL"
43 startperl="#!$prefix/perl"
48 test -z "$cc" && cc='gcc'
50 ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL -DIS_SOCKET_CLIB_ITSELF"
51 locincpth="$locincpth /usr/local/include /usr/contrib/include /BINDFW/CURRENT/include /SYSLOG/PUB"
52 test -z "$optimize" && optimize="-O2"
54 # Special compiling options for certain source files.
55 # But what if you want -g?
56 regcomp_cflags='optimize=-O'
57 toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
62 # Delete bsd and BSD from the library list. Remove other randomly ordered
63 # libraries and then re-add them in their proper order (the MPE linker is
64 # order-sensitive). Add additional MPE-specific libraries.
65 for mpe_remove in bind bsd BSD c curses m socket str svipc syslog; do
66 set `echo " $libswanted " | sed -e 's/ / /g' -e "s/ $mpe_remove //"`
69 libswanted="$libswanted bind syslog curses svipc socket str m c"
70 loclibpth="$loclibpth /usr/local/lib /usr/contrib/lib /BINDFW/CURRENT/lib /SYSLOG/PUB"
72 # External functions and data items.
74 # Q: Does Configure *really* get *all* of these wrong?
76 # A: Yes. There are two MPE problems here. The 'undef' functions exist on MPE,
77 # but are merely dummy routines that return ENOTIMPL or ESYSERR. Since they're
78 # useless, let's just tell Perl to avoid them. Also, a few data items are
79 # 'undef' because while they may exist in structures, they are uninitialized.
81 # The 'define' cases are a bit weirder. MPE has a libc.a, libc.sl, and two
82 # special kernel shared libraries, /SYS/PUB/XL and /SYS/PUB/NL. Much of what
83 # is in libc.a is duplicated within XL and NL, so when we created libc.sl, we
84 # omitted the duplicated functions. Since Configure end ups scanning libc.sl,
85 # we need to 'define' the functions that had been removed.
87 # We don't want to scan XL or NL because we would find way too many POSIX or
88 # Unix named functions that are really vanilla MPE functions that do something
89 # completely different than on POSIX or Unix.
95 d_Gconvert='gcvt((x),(n),(b))'
120 d_strerrm='strerror(e)'
133 i_gdbm='undef' # the port is currently incomplete
134 i_termios='undef' # we have termios, but not the full set (just tcget/setattr)
138 timeincl='/usr/include/time.h'
146 bincompat5005="$undef"
147 uselargefiles="$undef"
149 # Expected functionality provided in mpeix.c.
153 # Help gmake find mpeix.c
154 test -h mpeix.c || ln -s mpeix/mpeix.c mpeix.c