-# MPE/IX does not have nm, and the linker doesn't complain
-# about unresolved symbols, so these are all filled in by hand.
+# The MPE/iX linker doesn't complain about unresolved symbols, and so the only
+# way to test for unresolved symbols in a program is by attempting to run it.
+# But this is slow, and fraught with problems, so the better solution is to use
+# nm.
+#
+# MPE/iX lacks a fully functional native nm, so we need to use our fake nm
+# script which will extract the symbol info from the native link editor and
+# reformat into something nm-like.
+#
+# Created for 5.003 by Mark Klein, mklein@dis.com.
+# Substantially revised for 5.004_01 by Mark Bixby, markb@cccd.edu.
+# Revised again for 5.004_69 by Mark Bixby, markb@cccd.edu.
+# Revised for 5.6.0 by Mark Bixby, mbixby@power.net.
+# Revised for 5.7.3 by Mark Bixby, mark@bixby.org.
+#
osname='mpeix'
-osvers='5.0'
-alignbytes='8'
-ccflags='-D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL'
-cc='c89'
-optimize='-g'
-d_safebcpy='undef'
-d_safemcpy='undef'
-intsize='8'
-usemymalloc='y'
-d_casti32='undef'
-d_castneg='undef'
-prefix='/PERL'
-privlib='/PERL/PERL/lib'
-archlib='/PERL/PERL/lib/mpeix'
-clocktype='clock_t'
-gidtype='gid_t'
-groupstype='gid_t'
-lseektype='off_t'
-modetype='mode_t'
-randbits='15'
-ssizetype='ssize_t'
-uidtype='uid_t'
-d_stdstdio='undef'
-i_pwd='undef'
-i_grp='undef'
-#d_fd_set='undef'
-#d_fds_bits='undef'
-d_chroot='undef'
-d_fchmod='undef'
-d_fchown='undef'
-d_flock='undef'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_getpgrp2='undef'
-d_getprior='undef'
-d_killpg='undef'
-d_lstat='undef'
-d_seekdir='undef'
-d_telldir='undef'
-d_setpgrp2='undef'
-d_setprior='undef'
-d_setresgid='undef'
-d_setresuid='undef'
-d_setrgid='undef'
-d_setruid='undef'
-d_syscall='undef'
-d_truncate='undef'
-d_setregid='undef'
-d_setreuid='undef'
-d_setpgrp='undef'
-d_chsize='undef'
-d_group='undef'
-d_bcmp='undef'
-d_bcopy='undef'
-d_bzero='undef'
-d_attrib='undef'
-d_dirnamlen='define'
+osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'`
+#
+# Force Configure to use our wrapper mpeix/nm script
+#
+PATH="$PWD/mpeix:$PATH"
+nm="$PWD/mpeix/nm"
+_nm=$nm
+nm_opt='-configperl'
+usenm='true'
+#
+# Work around the broken inline cat bug that corrupts here docs
+#
+alias -x cat=/bin/cat
+#
+# Various directory locations.
+#
+# Which ones of these does Configure get wrong?
+test -z "$prefix" && prefix="/$HPACCOUNT/$HPGROUP"
+archname='PA-RISC1.1'
+bin="$prefix"
+installman1dir="$prefix/man/man1"
+installman3dir="$prefix/man/man3"
+man1dir="$prefix/man/man1"
+man3dir="$prefix/man/man3"
+perlpath="$prefix/PERL"
+scriptdir="$prefix"
+startperl="#!$prefix/perl"
+startsh='#!/bin/sh'
+#
+# Compiling.
+#
+test -z "$cc" && cc='gcc'
+cccdlflags='none'
+ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL -DIS_SOCKET_CLIB_ITSELF"
+locincpth="$locincpth /usr/local/include /usr/contrib/include /BINDFW/CURRENT/include /SYSLOG/PUB"
+test -z "$optimize" && optimize="-O2"
+ranlib='/bin/true'
+# Special compiling options for certain source files.
+# But what if you want -g?
+regcomp_cflags='optimize=-O'
+toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
+#
+# Linking.
+#
+lddlflags='-b'
+# Delete bsd and BSD from the library list. Remove other randomly ordered
+# libraries and then re-add them in their proper order (the MPE linker is
+# order-sensitive). Add additional MPE-specific libraries.
+for mpe_remove in bind bsd BSD c curses m socket str svipc syslog; do
+ set `echo " $libswanted " | sed -e 's/ / /g' -e "s/ $mpe_remove //"`
+ libswanted="$*"
+done
+libswanted="$libswanted bind syslog curses svipc socket str m c"
+loclibpth="$loclibpth /usr/local/lib /usr/contrib/lib /BINDFW/CURRENT/lib /SYSLOG/PUB"
+#
+# External functions and data items.
+#
+# Q: Does Configure *really* get *all* of these wrong?
+#
+# A: Yes. There are two MPE problems here. The 'undef' functions exist on MPE,
+# but are merely dummy routines that return ENOTIMPL or ESYSERR. Since they're
+# useless, let's just tell Perl to avoid them. Also, a few data items are
+# 'undef' because while they may exist in structures, they are uninitialized.
+#
+# The 'define' cases are a bit weirder. MPE has a libc.a, libc.sl, and two
+# special kernel shared libraries, /SYS/PUB/XL and /SYS/PUB/NL. Much of what
+# is in libc.a is duplicated within XL and NL, so when we created libc.sl, we
+# omitted the duplicated functions. Since Configure end ups scanning libc.sl,
+# we need to 'define' the functions that had been removed.
+#
+# We don't want to scan XL or NL because we would find way too many POSIX or
+# Unix named functions that are really vanilla MPE functions that do something
+# completely different than on POSIX or Unix.
+d_crypt='define'
+d_dbmclose='undef'
+d_difftime='define'
+d_dlerror='undef'
+d_dlopen='undef'
+d_Gconvert='gcvt((x),(n),(b))'
+d_gettimeod='undef'
+d_inetaton='undef'
d_link='undef'
-d_passwd='undef'
+d_mblen='define'
+d_mbstowcs='define'
+d_mbtowc='define'
+d_memchr='define'
+d_memcmp='define'
+d_memcpy='define'
+d_memmove='define'
+d_memset='define'
+d_pwage='undef'
d_pwcomment='undef'
+d_pwgecos='undef'
+d_pwpasswd='undef'
+d_setegid='undef'
+d_seteuid='undef'
+d_setitimer='undef'
+d_setpgid='undef'
+d_setsid='undef'
+d_setvbuf='define'
d_statblks='undef'
-libs='-lsvipc -lsocket -lm -lc'
-ranlib='/bin/true'
-d_nice='undef'
-d_cuserid='undef'
-i_termios='undef'
-d_tcgetpgrp='undef'
-d_tcsetpgrp='undef'
+d_strchr='define'
+d_strcoll='define'
+d_strerrm='strerror(e)'
+d_strerror='define'
+d_strtod='define'
+d_strtol='define'
+d_strtoul='define'
+d_strxfrm='define'
+d_syserrlst='define'
+d_time='define'
+d_wcstombs='define'
+d_wctomb='define'
+#
+# Include files.
+#
+i_gdbm='undef' # the port is currently incomplete
+i_termios='undef' # we have termios, but not the full set (just tcget/setattr)
+i_time='define'
+i_systime='undef'
+i_systimek='undef'
+timeincl='/usr/include/time.h'
+#
+# Data types.
+#
+timetype='time_t'
+#
+# Functionality.
+#
+uselargefiles="$undef"
+#
+# Expected functionality provided in mpeix.c.
+#
+archobjs='mpeix.o'
+
+# Help gmake find mpeix.c
+test -h mpeix.c || ln -s mpeix/mpeix.c mpeix.c
+
+d_gettimeod='define'
+d_truncate='define'