This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
To make arithmetic on tainted dualvars work properly requires that
[perl5.git] / hints / mpeix.sh
CommitLineData
1d84e8df
JH
1# Created for 5.003 by Mark Klein, mklein@dis.com.
2# Substantially revised for 5.004_01 by Mark Bixby, markb@cccd.edu.
3# Revised again for 5.004_69 by Mark Bixby, markb@cccd.edu.
f6e660f0 4# Revised for 5.6.0 by Mark Bixby, mbixby@power.net.
feb33499 5# Revised for 5.7.3 by Mark Bixby, mark@bixby.org.
6b7580e5 6# Revised for 5.8.0 by Mark Bixby, mark@bixby.org.
f382e41b 7# Revised for 5.8.8/5.9.3 by Ken Hirsch, kenhirsch@ftml.net
1d84e8df 8#
1aef975c 9osname='mpeix'
f6e660f0 10osvers=`uname -r | sed -e 's/.[A-Z]\.\([0-9]\)\([0-9]\)\.[0-9][0-9]/\1.\2/'`
f382e41b 11
1d84e8df 12#
f382e41b
KH
13# Don't use nm. Instead, we'll use the MPEAUTOCONF environment variable
14# to force error for unresolved externals.
15# This is slower than nm (about 70 minutes instead of 35 minutes),
16# but much more reliable.
17
18usenm='false'
19export AUTOCONF=1 MPEAUTOCONF=1
20
b62e3068
JH
21# Work around the broken inline cat bug that corrupts here docs
22#
23alias -x cat=/bin/cat
24#
1d84e8df
JH
25# Various directory locations.
26#
c22e42be 27# Which ones of these does Configure get wrong?
feb33499 28test -z "$prefix" && prefix="/$HPACCOUNT/$HPGROUP"
1d84e8df
JH
29archname='PA-RISC1.1'
30bin="$prefix"
31installman1dir="$prefix/man/man1"
32installman3dir="$prefix/man/man3"
33man1dir="$prefix/man/man1"
34man3dir="$prefix/man/man3"
35perlpath="$prefix/PERL"
36scriptdir="$prefix"
203df805 37startperl="#!$prefix/perl"
1d84e8df 38startsh='#!/bin/sh'
f382e41b 39
1d84e8df
JH
40#
41# Compiling.
42#
c22e42be 43test -z "$cc" && cc='gcc'
1d84e8df 44cccdlflags='none'
f382e41b
KH
45ccdlflags='-Xlinker -WL,xl=/usr/lib/libcurses.sl,/lib/libsvipc.sl,/usr/lib/libsocket.sl,/usr/lib/libstr.sl,/lib/libm.sl,/lib/libc.sl'
46ccflags="$ccflags -DMPE -D_POSIX_SOURCE -D_SOCKET_SOURCE -D_POSIX_JOB_CONTROL"
47locincpth="$locincpth /usr/local/include /usr/contrib/include /BIND/CURRENT/include /SYSLOG/PUB"
c22e42be 48test -z "$optimize" && optimize="-O2"
1d84e8df
JH
49ranlib='/bin/true'
50# Special compiling options for certain source files.
c22e42be 51# But what if you want -g?
1d84e8df
JH
52regcomp_cflags='optimize=-O'
53toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
f382e41b 54
1d84e8df
JH
55#
56# Linking.
57#
f382e41b
KH
58# Build a fixed sigsetjmp that can be used in dynamic libraries
59# This needs to be compiled with -O2, so I do it here, rather
60# than with make
61gcc -c -O2 mpeix/mpeix_setjmp.c
62lddlflags="-b $PWD/mpeix_setjmp.o"
63
f6e660f0
JH
64# Delete bsd and BSD from the library list. Remove other randomly ordered
65# libraries and then re-add them in their proper order (the MPE linker is
66# order-sensitive). Add additional MPE-specific libraries.
67for mpe_remove in bind bsd BSD c curses m socket str svipc syslog; do
68 set `echo " $libswanted " | sed -e 's/ / /g' -e "s/ $mpe_remove //"`
69 libswanted="$*"
70done
71libswanted="$libswanted bind syslog curses svipc socket str m c"
f382e41b 72loclibpth="$loclibpth /usr/local/lib /usr/contrib/lib /BIND/CURRENT/lib /SYSLOG/PUB"
1d84e8df
JH
73#
74# External functions and data items.
75#
f6e660f0 76# Q: Does Configure *really* get *all* of these wrong?
c22e42be 77#
f6e660f0
JH
78# A: Yes. There are two MPE problems here. The 'undef' functions exist on MPE,
79# but are merely dummy routines that return ENOTIMPL or ESYSERR. Since they're
80# useless, let's just tell Perl to avoid them. Also, a few data items are
81# 'undef' because while they may exist in structures, they are uninitialized.
f382e41b 82
1d84e8df 83d_Gconvert='gcvt((x),(n),(b))'
f382e41b 84
1d84e8df 85d_inetaton='undef'
f382e41b
KH
86
87# these fields exist, but are uninitialized
1d84e8df 88d_pwage='undef'
1aef975c 89d_pwcomment='undef'
1d84e8df
JH
90d_pwgecos='undef'
91d_pwpasswd='undef'
f382e41b
KH
92d_statblks='undef'
93
94# These functions exist,
95# but either return ENOSYS/ESYSERR/ENOSYS or work so differently
96# that it is not helpful to include them
97
98d_lchown='undef'
99d_link='undef'
b62e3068
JH
100d_setegid='undef'
101d_seteuid='undef'
102d_setitimer='undef'
1d84e8df
JH
103d_setpgid='undef'
104d_setsid='undef'
f382e41b
KH
105
106
107# These are defined in mpeix/mpeix.c
108d_gettimeod='define'
109d_truncate='define'
110
1d84e8df
JH
111# Include files.
112#
f382e41b
KH
113#??i_gdbm='undef' # the port is currently incomplete
114
f6e660f0 115i_termios='undef' # we have termios, but not the full set (just tcget/setattr)
f382e41b 116
1d84e8df
JH
117i_time='define'
118i_systime='undef'
119i_systimek='undef'
120timeincl='/usr/include/time.h'
121#
122# Data types.
123#
124timetype='time_t'
f382e41b 125
f6e660f0
JH
126# Functionality.
127#
f6e660f0 128uselargefiles="$undef"
f382e41b 129
feb33499
JH
130# Expected functionality provided in mpeix.c.
131#
feb33499
JH
132
133# Help gmake find mpeix.c
134test -h mpeix.c || ln -s mpeix/mpeix.c mpeix.c
135
f382e41b 136archobjs='mpeix.o mpeix_setjmp.o'