X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fmpeix.sh;h=afa6cf8de1c9cdec58920a2bea28760027d904d6;hb=4e73d6a402bc493d66d19c409c41e1e271c6450b;hp=e952f0e0023ed015bbcd9aca565200aaa64142f9;hpb=e48b0b0ae89e3a437a15360f8ee2c2d54a628b37;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/mpeix.sh b/hints/mpeix.sh index e952f0e..afa6cf8 100644 --- a/hints/mpeix.sh +++ b/hints/mpeix.sh @@ -1,70 +1,136 @@ -# MPE/IX does not have nm, and the linker doesn't complain -# about unresolved symbols, so these are all filled in by hand. +# 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. +# Revised for 5.8.0 by Mark Bixby, mark@bixby.org. +# Revised for 5.8.8/5.9.3 by Ken Hirsch, kenhirsch@ftml.net +# osname='mpeix' -osvers='5.0' -alignbytes='8' -ccflags='-D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL' -cc='c89' -optimize='none' -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' -d_link='undef' -d_passwd='undef' +osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'` + +# +# Don't use nm. Instead, we'll use the MPEAUTOCONF environment variable +# to force error for unresolved externals. +# This is slower than nm (about 70 minutes instead of 35 minutes), +# but much more reliable. + +usenm='false' +export AUTOCONF=1 MPEAUTOCONF=1 + +# 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' +ccdlflags='-Xlinker -WL,xl=/usr/lib/libcurses.sl,/lib/libsvipc.sl,/usr/lib/libsocket.sl,/usr/lib/libstr.sl,/lib/libm.sl,/lib/libc.sl' +ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL" +locincpth="$locincpth /usr/local/include /usr/contrib/include /BIND/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. +# +# Build a fixed sigsetjmp that can be used in dynamic libraries +# This needs to be compiled with -O2, so I do it here, rather +# than with make +gcc -c -O2 mpeix/mpeix_setjmp.c +lddlflags="-b $PWD/mpeix_setjmp.o" + +# 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 /BIND/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. + +d_Gconvert='gcvt((x),(n),(b))' + +d_inetaton='undef' + +# these fields exist, but are uninitialized +d_pwage='undef' d_pwcomment='undef' +d_pwgecos='undef' +d_pwpasswd='undef' 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' + +# These functions exist, +# but either return ENOSYS/ESYSERR/ENOSYS or work so differently +# that it is not helpful to include them + +d_lchown='undef' +d_link='undef' +d_setegid='undef' +d_seteuid='undef' +d_setitimer='undef' +d_setpgid='undef' +d_setsid='undef' + + +# These are defined in mpeix/mpeix.c +d_gettimeod='define' +d_truncate='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. +# + +# Help gmake find mpeix.c +test -h mpeix.c || ln -s mpeix/mpeix.c mpeix.c + +archobjs='mpeix.o mpeix_setjmp.o'