home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-06-11 | 49.3 KB | 1,861 lines |
- Newsgroups: comp.sources.misc
- From: lwall@netlabs.com (Larry Wall)
- Subject: v30i031: perl - The perl programming language, Patch20
- Message-ID: <csm-v30i031=perl.125733@sparky.IMD.Sterling.COM>
- X-Md4-Signature: c17f22ad664883ebe959c0a05e81fb0c
- Date: Thu, 11 Jun 1992 17:58:52 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: lwall@netlabs.com (Larry Wall)
- Posting-number: Volume 30, Issue 31
- Archive-name: perl/patch20
- Environment: UNIX, MS-DOS, OS2
- Patch-To: perl: Volume 18, Issue 19-54
-
- System: perl version 4.0
- Patch #: 20
- Priority: highish
-
- Description:
- ENHANCEMENTS
- Subject: relaxed requirement for semicolon at the end of a block
- Subject: scalar keys %array now counts keys for you
- Subject: added ... as variant on ..
- Subject: get*by* routines now return something useful in a scalar context
- Subject: form feed for formats is now specifiable via $^L
- Subject: PERLLIB now supports multiple directories
- Subject: paragraph mode now skips extra newlines automatically
-
- MANPAGE
- Subject: documented that numbers may contain underline
- Subject: clarified that DATA may only be read from main script
- Subject: documented need for 1; at the end of a required file
- Subject: extended bracket-style quotes to two-arg operators: s()() and tr()()
- Subject: documented PERLLIB and PERLDB
- Subject: documented limit on size of regexp
-
- CONFIGURATION
- Subject: bcopy() and memcpy() now tested for overlap safety
- Subject: isascii() may now be supplied by a library routine
- Subject: Configure now allows optional continuation with files missing
- Subject: many more hints files added
- Subject: many more hints added
- Subject: hints now auto selected on uname -s as well as uname -m
- Subject: OSF/1 support added
- Subject: Configure growing-library-list bug fixed
- Subject: seekdir(), telldir() and rewinddir() now checked for independently
- Subject: cray didn't give enough memory to /bin/sh
- Subject: perl -P now uses location of sed determined by Configure
- Subject: SH files didn't work well with symbolic links
- Subject: makefiles now display new shift/reduce expectations
- Subject: support added to installperl for cross-compilation
- Subject: a2p was installed unexecutable
- Subject: installperl didn't warn on failed manpage installation
- Subject: disabled cpp test if cppstdin not yet installed
-
- PORTABILITY
- Subject: O_PIPE conflicted with Atari
- Subject: config.H updated to reflect more recent config.h
- Subject: removed implicit int declarations on functions
- Subject: added Atari ST portability
- Subject: some machines don't define ENOTSOCK in errno.h
- Subject: added explicit time_t support
- Subject: alternate config.h files upgraded
- Subject: new OS/2 support
-
- COMPILER
- Subject: various error messages have been clarified
- Subject: the switch optimizer didn't do anything in subroutines
- Subject: clarified debugging output for literals and double-quoted strings
- Subject: new warning for use of x with non-numeric right operand
- Subject: illegal lvalue message could be followed by core dump
- Subject: new warning for ambiguous use of unary operators
- Subject: eval "1 #comment" didn't work
- Subject: semantic compilation errors didn't abort execution
- Subject: an expression may now start with a bareword
- Subject: if {block} {block} didn't work any more
- Subject: "$var{$foo'bar}" didn't scan subscript correctly
- Subject: an EXPR may now start with a bareword
- Subject: print $fh EXPR can now expect term rather than operator in EXPR
- Subject: new warning on spurious backslash
- Subject: new warning on missing $ for foreach variable
- Subject: "foo"x1024 now legal without space after x
- Subject: new warning on print accidentally used as function
- Subject: 2. now eats the dot
- Subject: <@ARGV> now notices @ARGV
- Subject: tr/// now lets you say \-
-
- RUNTIME
- Subject: an eval block containing a null block or statement could dump core
- Subject: modulus with highest bit in left operand set didn't always work
- Subject: join() now pre-extends target string to avoid excessive copying
- Subject: subroutines didn't localize $`, $&, $', $1 et al correctly
- Subject: usersub routines didn't reclaim temp values soon enough
- Subject: ($<,$>) = ... didn't work on some architectures
- Subject: fixed memory leak on system() for vfork() machines
- Subject: @ in unpack failed too often
- Subject: slice on null list in scalar context returned random value
- Subject: splice with negative offset didn't work with $[ = 1
- Subject: fixed some memory leaks in splice
- Subject: dbmclose(%array) didn't work
- Subject: delete could cause %array to give too low a count of buckets filled
- Subject: hash tables now split only if the memory is available to do so
- Subject: realloc(0, size) now does malloc in case library routines call it
- Subject: running taintperl explicitly now does checks even if $< == $>
- Subject: fixed memory leak in doube-quote interpretation
- Subject: a splice on non-existent array elements could dump core
- Subject: tr/stuff// wasn't working right
-
- I/O
- Subject: new warnings for failed use of stat operators on filenames with \n
- Subject: wait failed when STDOUT or STDERR reopened to a pipe
- Subject: end of file latch not reset on reopen of STDIN
- Subject: seek(HANDLE, 0, 1) went to eof because of ancient Ultrix workaround
- Subject: h_errno now accessible via $?
-
- REGEXP
- Subject: pattern modifiers i and o didn't interact right
- Subject: g pattern modifer sometimes returned extra values
- Subject: m/$pattern/g didn't work
- Subject: /^stuff/ wrongly assumed an implicit $* == 1
- Subject: /x{0}/ was wrongly interpreted as /x{0,}/
- Subject: added \W, \S and \D inside /[...]/
- Subject: pattern modifiers i and g didn't interact right
- Subject: in some cases $` and $' didn't get set by match
- Subject: made /\$$foo/ look for literal '$foo'
-
- LIBRARIES
- Subject: big*.pl library files upgraded
- Subject: better support in chat2 for multiple children
- Subject: &ctime didn't handle $[ != 0
- Subject: find.pl got confused by unreadable directories
- Subject: new version of newgetopt.pl
- Subject: Tom's famous double-ended pipe opener, open2(), is now included
- Subject: support added to pwd.pl to strip automounter crud
- Subject: &shellwords looped on bad input, and used inefficient regular exprs
- Subject: termcap.pl didn't parse termcap terminal names right
- Subject: timelocal could loop on bad input
- Subject: timelocal now calculates DST itself
- Subject: &getcap eventually dumped core in bsdcurses
-
- DEBUGGER
- Subject: support for MSDOS folded into perldb.pl
- Subject: perldb couldn't debug file containing '-', such as STDIN designator
- Subject: the debugger now warns you on lines that can't set a breakpoint
- Subject: the debugger made perl forget the last pattern used by //
- Subject: fixed double debug break in foreach with implicit array assignment
- Subject: debugger sometimes displayed wrong source line
-
- INTERSTICES
- Subject: Perl now distinguishes overlapped copies from non-overlapped
- Subject: fixed confusion between a *var's real name and its effective name
- Subject: deleted some minor memory leaks
- Subject: couldn't require . files
- Subject: -e 'cmd' no longer fails silently if /tmp runs out of space
- Subject: function key support added to curses.mus
-
- TRANSLATORS
- Subject: find2perl assumed . in PATH
- Subject: find2perl didn't output portable startup code
- Subject: find2perl didn't always stat at the right time
- Subject: s2p didn't output portable startup code
- Subject: s2p didn't translate s/pat/\&/ or s/pat/\$/ or s/pat/\\1/ right
- Subject: in a2p, getline should allow variable to be array element
- Subject: in a2p, now warns about spurious backslashes
- Subject: in a2p, now allows [ to be backslashed in pattern
- Subject: in a2p, now allows numbers of the form 2.
- Subject: in a2p, simplified the filehandle model
- Subject: in a2p, made RS="" translate to $/ = "\n\n"
- Subject: in a2p, do {...} while ... was missing some reconstruction code
-
- Fix: From rn, say "| patch -p -N -d DIR", where DIR is your perl source
- directory. Outside of rn, say "cd DIR; patch -p -N <thisarticle".
- If you don't have the patch program, apply the following by hand,
- or get patch (version 2.0, latest patchlevel).
-
- After patching:
- *** DO NOTHING--INSTALL ALL PATCHES UP THROUGH #33 FIRST ***
-
- If patch indicates that patchlevel is the wrong version, you may need
- to apply one or more previous patches, or the patch may already
- have been applied. See the patchlevel.h file to find out what has or
- has not been applied. In any event, don't continue with the patch.
-
- If you are missing previous patches they can be obtained from me:
-
- Larry Wall
- lwall@netlabs.com
-
- If you send a mail message of the following form it will greatly speed
- processing:
-
- Subject: Command
- @SH mailpatch PATH perl 4.0 LIST
- ^ note the c
-
- where PATH is a return path FROM ME TO YOU either in Internet notation,
- or in bang notation from some well-known host, and LIST is the number
- of one or more patches you need, separated by spaces, commas, and/or
- hyphens. Saying 35- says everything from 35 to the end.
-
-
- Index: patchlevel.h
- Prereq: 19
- 1c1
- < #define PATCHLEVEL 19
- ---
- > #define PATCHLEVEL 20
-
- Index: hints/3b1.sh
- *** hints/3b1.sh.old Mon Jun 8 17:47:38 1992
- --- hints/3b1.sh Mon Jun 8 17:47:39 1992
- ***************
- *** 1,4 ****
- d_voidsig='undef'
- ! d_tosignal='int';
- ! echo "If you're going to use shared libraries, don't include -lmalloc, and"
- ! echo "change cc to '/bin/ccc' when editing config.sh at the end."
- --- 1,15 ----
- d_voidsig='undef'
- ! d_tosignal='int'
- ! gidtype='int'
- ! groupstype='int'
- ! uidtype='int'
- ! # Note that 'Configure' is run from 'UU', hence the strange 'ln'
- ! # command.
- ! for i in .. ../x2p
- ! do
- ! rm -f $i/3b1cc
- ! ln ../hints/3b1cc $i
- ! done
- ! echo "\nIf you want to use the 3b1 shared libraries, complete this script then"
- ! echo "read the header in 3b1cc. [Type carriage return to continue]\c"
- ! read vch
-
- Index: hints/3b1cc
- *** hints/3b1cc.old Mon Jun 8 17:47:40 1992
- --- hints/3b1cc Mon Jun 8 17:47:41 1992
- ***************
- *** 0 ****
- --- 1,86 ----
- + # To incorporate the 7300/3b1 shared library, run this script in place
- + # of 'CC'.
- + # First: Run 'Configure' through to the end and run 'make depend'.
- + # Second: Edit 'makefile' ( not Makefile ) and set CC = 3b1cc.
- + # Third: Edit 'x2p/makefile' and set CC = 3b1cc.
- + #
- + # Do not use '3b1cc' as the default compiler. The call to the default
- + # compiler is used by 'perl' and will not be available when running
- + # 'perl'.
- + #
- + # Note: This script omits libraries which are redundant in the shared
- + # library. It is an excerpt from a grander version available upon
- + # request from "zebra!vern" or "vern@zebra.alphacdc.com".
- +
- + CC="cc"
- + LIBS=
- + INCL=
- +
- + LD="ld"
- + SHAREDLIB="/lib/crt0s.o /lib/shlib.ifile"
- +
- + # Local variables
- + COBJS=
- + LOBJS=
- + TARG=
- + FLAGS=
- + CMD=
- +
- + # These are libraries which are incorporated in the shared library
- + OMIT="-lmalloc"
- +
- + # These routines are in libc.a but not in the shared library
- + if [ ! -f vsprintf.o -o ! -f doprnt.o ]
- + then
- + echo "Extracting vsprintf.o from libc.a"
- + ar -x /lib/libc.a vsprintf.o doprnt.o
- + fi
- +
- + CMD="$CC"
- + while [ $# -gt 0 ]
- + do
- + case $1 in
- + -c) CFLAG=$1;;
- + -o) CFLAG=$1
- + shift
- + TARG="$1";;
- + -l*) match=false
- + for i in $OMIT
- + do
- + [ "$i" = "$1" ] && match=true
- + done
- + [ "$match" != false ] || LIBS="$LIBS $1";;
- + -*) FLAGS="$FLAGS $1";;
- + *.c) COBJS="$COBJS $1";;
- + *.o) LOBJS="$LOBJS $1";;
- + *) TARG="$1";;
- + esac
- + shift
- + done
- +
- + if [ -n "$COBJS" ]
- + then
- + CMD="$CMD $FLAGS $INCL $LPATHS $LIBS $COBJS $CFLAG $TARG"
- + elif [ -n "$LOBJS" ]
- + then
- + LOBJS="$LOBJS vsprintf.o doprnt.o"
- + CMD="$LD -r $LOBJS $LPATHS $LIBS -o temp.o"
- + echo "\t$CMD"
- + $CMD
- + CMD="$LD -s temp.o $SHAREDLIB -o $TARG"
- + echo "\t$CMD"
- + $CMD
- + ccrslt=$?
- + if [ $ccrslt -ne 0 ]
- + then
- + exit $ccrslt
- + fi
- + CMD="rm -f temp.o"
- + else
- + exit 1
- + fi
- + echo "\t$CMD"
- + $CMD
- + ccrslt=$?
- + rm -f $$.c
- + exit $ccrslt
-
- Index: Configure
- Prereq: 4.0.1.6
- *** Configure.old Mon Jun 8 17:34:06 1992
- --- Configure Mon Jun 8 17:34:08 1992
- ***************
- *** 8,14 ****
- # and edit it to reflect your system. Some packages may include samples
- # of config.h for certain machines, so you might look for one of those.)
- #
- ! # $RCSfile: Configure,v $$Revision: 4.0.1.6 $$Date: 91/11/11 16:26:51 $
- #
- # Yes, you may rip this off to use in other distribution packages.
- # (Note: this Configure script was generated automatically. Rather than
- --- 8,14 ----
- # and edit it to reflect your system. Some packages may include samples
- # of config.h for certain machines, so you might look for one of those.)
- #
- ! # $RCSfile: Configure,v $$Revision: 4.0.1.7 $$Date: 92/06/08 11:38:16 $
- #
- # Yes, you may rip this off to use in other distribution packages.
- # (Note: this Configure script was generated automatically. Rather than
- ***************
- *** 49,54 ****
- --- 49,55 ----
- echo "(I see you are using the Korn shell. Some ksh's blow up on Configure," && \
- echo "especially on exotic machines. If yours does, try the Bourne shell instead.)"
-
- + unset CDPATH
- if test ! -d ../UU; then
- if test ! -d UU; then
- mkdir UU
- ***************
- *** 132,137 ****
- --- 133,139 ----
- cppminus=''
- d_bcmp=''
- d_bcopy=''
- + d_safebcpy=''
- d_bzero=''
- d_castneg=''
- castflags=''
- ***************
- *** 154,163 ****
- --- 156,169 ----
- d_getprior=''
- d_htonl=''
- d_index=''
- + d_isascii=''
- d_killpg=''
- d_lstat=''
- d_memcmp=''
- d_memcpy=''
- + d_safemcpy=''
- + d_memmove=''
- + d_memset=''
- d_mkdir=''
- d_msg=''
- d_msgctl=''
- ***************
- *** 169,175 ****
- --- 175,183 ----
- d_open3=''
- d_readdir=''
- d_rename=''
- + d_rewindir=''
- d_rmdir=''
- + d_seekdir=''
- d_select=''
- d_sem=''
- d_semctl=''
- ***************
- *** 202,207 ****
- --- 210,216 ----
- d_strerror=''
- d_symlink=''
- d_syscall=''
- + d_telldir=''
- d_truncate=''
- d_vfork=''
- d_voidsig=''
- ***************
- *** 340,346 ****
- attrlist="$attrlist u3b2 u3b20 u3b200 u3b5 ultrix unix vax venix xenix"
- attrlist="$attrlist z8000"
- boPATH=""
- ! eoPATH="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /usr/plx /usr/5bin /vol/local/bin /etc /usr/lib /lib /usr/local/lib /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/bin /bsd4.3/usr/ucb /bsd43/usr/bin"
- d_newshome="/usr/NeWS"
- errnolist=errnolist
- h_fcntl=false
- --- 349,355 ----
- attrlist="$attrlist u3b2 u3b20 u3b200 u3b5 ultrix unix vax venix xenix"
- attrlist="$attrlist z8000"
- boPATH=""
- ! eoPATH="/usr/ucb /bin /usr/bin /usr/local /usr/local/bin /usr/lbin /usr/plx /usr/5bin /vol/local/bin /etc /usr/lib /lib /usr/local/lib /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/bin /bsd4.3/usr/ucb /bsd43/usr/bin /usr/ccs/lib /opt/SUNWste/bin /usr/opt/SUNWste/bin"
- d_newshome="/usr/NeWS"
- errnolist=errnolist
- h_fcntl=false
- ***************
- *** 354,375 ****
- d_ndir=ndir
- voidwant=1
- voidwant=7
- ! libswanted="c_s net_s net socket nsl_s nsl nm ndir ndbm dbm PW malloc sun m bsd BSD x posix ucb"
- inclwanted='/usr/include /usr/netinclude /usr/include/sun /usr/include/bsd /usr/include/lan /usr/ucbinclude'
-
- : Now test for existence of everything in MANIFEST
-
- echo "First let's make sure your kit is complete. Checking..."
- ! awk '$1 !~ /PACKINGLIST/ {print $1}' ../MANIFEST | split -200
- rm -f missing
- for filelist in x??; do
- (cd ..; ls `cat UU/$filelist` >/dev/null 2>>UU/missing)
- done
- if test -s missing; then
- cat missing
- ! kill $$
- fi
- - echo "Looks good..."
-
- : some greps do not return status, grrr.
- echo "grimblepritz" >contains.txt
- --- 363,387 ----
- d_ndir=ndir
- voidwant=1
- voidwant=7
- ! libswanted="c_s net_s net socket nsl_s nsl nm ndir dir ndbm dbm PW malloc sun m bsd BSD x posix ucb"
- inclwanted='/usr/include /usr/netinclude /usr/include/sun /usr/include/bsd /usr/include/lan /usr/ucbinclude'
-
- : Now test for existence of everything in MANIFEST
-
- echo "First let's make sure your kit is complete. Checking..."
- ! awk '$1 !~ /PACKINGLIST/ {print $1}' ../MANIFEST | split -100
- rm -f missing
- for filelist in x??; do
- (cd ..; ls `cat UU/$filelist` >/dev/null 2>>UU/missing)
- done
- if test -s missing; then
- + echo "WARNING: the following files are missing:"
- cat missing
- ! echo "INTERRUPT NOW, OR HIT RETURN TO PROCEED AT YOUR OWN RISK"
- ! read junk
- ! else
- ! echo "Looks good..."
- fi
-
- : some greps do not return status, grrr.
- echo "grimblepritz" >contains.txt
- ***************
- *** 778,785 ****
- --- 790,800 ----
- mips*) dflt="$dflt mips";;
- [23]100) dflt="$dflt mips";;
- next*) dflt="$dflt next" ;;
- + 6000) dflt="$dflt mc6000";;
- esac
-
- + test -f "../hints/$1.sh" && dflt="$dflt $1"
- +
- case "$1" in
- aix) dflt="$dflt aix_rs" ;;
- sunos) case "$3" in
- ***************
- *** 789,800 ****
- 4.0.2) dflt="$dflt sunos_4_0_2" ;;
- esac
- ;;
- ! dnix) dflt="$dflt dnix" ;;
- ! genix) dflt="$dflt genix" ;;
- ! hp*ux) dflt="$dflt hpux" ;;
- ! next) dflt="$dflt next" ;;
- irix) dflt="$dflt sgi" ;;
- ultrix) case "$3" in
- 3*) dflt="$dflt ultrix_3" ;;
- 4*) dflt="$dflt ultrix_4" ;;
- esac
- --- 804,817 ----
- 4.0.2) dflt="$dflt sunos_4_0_2" ;;
- esac
- ;;
- ! hp*ux) dflt="$dflt hpux"
- ! extra_hints="hp"`echo $5 | sed -e s#/#_#g -e s/..$/00/`
- ! if test -f ../hints/$extra_hints.sh; then
- ! dflt="$dflt $extra_hints"
- ! fi;;
- irix) dflt="$dflt sgi" ;;
- ultrix) case "$3" in
- + 1*) dflt="$dflt ultrix_1" ;;
- 3*) dflt="$dflt ultrix_3" ;;
- 4*) dflt="$dflt ultrix_4" ;;
- esac
- ***************
- *** 801,807 ****
- ;;
- uts) dflt="$dflt uts" ;;
- $2) if test -f /etc/systemid; then
- ! set `echo $3 | sed 's/\./ /` $4
- if test -f ../hints/sco_$1_$2_$3.sh; then
- dflt="$dflt sco_$1_$2_$3"
- elif test -f ../hints/sco_$1_$2.sh; then
- --- 818,824 ----
- ;;
- uts) dflt="$dflt uts" ;;
- $2) if test -f /etc/systemid; then
- ! set `echo $3 | sed 's/\./ /'` $4
- if test -f ../hints/sco_$1_$2_$3.sh; then
- dflt="$dflt sco_$1_$2_$3"
- elif test -f ../hints/sco_$1_$2.sh; then
- ***************
- *** 871,877 ****
- echo "If you don't want the manual sources installed, answer 'none'."
- case "$mansrc" in
- '')
- ! dflt=`./loc . none /usr/man/local/man1 /usr/man/man.L /usr/man/manl /usr/man/mann /usr/man/u_man/man1 /usr/man/man1`
- ;;
- *) dflt="$mansrc"
- ;;
- --- 888,894 ----
- echo "If you don't want the manual sources installed, answer 'none'."
- case "$mansrc" in
- '')
- ! dflt=`./loc . none /usr/man/local/man1 /usr/man/man.L /usr/man/manl /usr/man/mann /usr/man/u_man/man1 /usr/man/man1 /usr/local/man/man1`
- ;;
- *) dflt="$mansrc"
- ;;
- ***************
- *** 991,1016 ****
-
- : make some quick guesses about what we are up against
- echo " "
- cat $usrinclude/signal.h $usrinclude/sys/signal.h >guess.txt 2>/dev/null
- if test "$usrinclude" = "/bsd43/usr/include" ; then
- echo "Looks kind of like a SysV MIPS running BSD, but we'll see..."
- echo exit 0 >bsd
- ! echo exit 1 >usg
- ! echo exit 1 >v7
- elif test `echo abc | tr a-z A-Z` = Abc ; then
- echo "Looks kind of like a USG system, but we'll see..."
- - echo exit 1 >bsd
- echo exit 0 >usg
- - echo exit 1 >v7
- elif $contains SIGTSTP guess.txt >/dev/null 2>&1 ; then
- echo "Looks kind of like a BSD system, but we'll see..."
- echo exit 0 >bsd
- - echo exit 1 >usg
- - echo exit 1 >v7
- else
- echo "Looks kind of like a version 7 system, but we'll see..."
- - echo exit 1 >bsd
- - echo exit 1 >usg
- echo exit 0 >v7
- fi
- case "$eunicefix" in
- --- 1008,1035 ----
-
- : make some quick guesses about what we are up against
- echo " "
- + echo exit 1 >bsd
- + echo exit 1 >usg
- + echo exit 1 >v7
- + echo exit 1 >osf1
- + echo exit 1 >eunice
- + echo exit 1 >xenix
- + echo exit 1 >venix
- cat $usrinclude/signal.h $usrinclude/sys/signal.h >guess.txt 2>/dev/null
- if test "$usrinclude" = "/bsd43/usr/include" ; then
- echo "Looks kind of like a SysV MIPS running BSD, but we'll see..."
- echo exit 0 >bsd
- ! elif test -f /osf_boot || $contains "OSF/1" /usr/include/ctype.h; then
- ! echo "Looks like an OSF/1 system, but we'll see..."
- ! echo exit 0 >osf1
- elif test `echo abc | tr a-z A-Z` = Abc ; then
- echo "Looks kind of like a USG system, but we'll see..."
- echo exit 0 >usg
- elif $contains SIGTSTP guess.txt >/dev/null 2>&1 ; then
- echo "Looks kind of like a BSD system, but we'll see..."
- echo exit 0 >bsd
- else
- echo "Looks kind of like a version 7 system, but we'll see..."
- echo exit 0 >v7
- fi
- case "$eunicefix" in
- ***************
- *** 1026,1032 ****
- echo " "
- echo "Congratulations. You aren't running Eunice."
- d_eunice="$undef"
- - echo "exit 1" >eunice
- ;;
- esac
- if test -f /xenix; then
- --- 1045,1050 ----
- ***************
- *** 1035,1041 ****
- else
- echo " "
- echo "It's not Xenix..."
- - echo "exit 1" >xenix
- fi
- chmod +x xenix
- $eunicefix xenix
- --- 1053,1058 ----
- ***************
- *** 1049,1057 ****
- else
- echo "Nor is it Venix..."
- fi
- - echo "exit 1" >venix
- fi
- ! chmod +x bsd usg v7 eunice venix
- $eunicefix bsd usg v7 eunice venix
-
- : see what memory models we can support
- --- 1066,1073 ----
- else
- echo "Nor is it Venix..."
- fi
- fi
- ! chmod +x bsd usg v7 osf1 eunice venix
- $eunicefix bsd usg v7 eunice venix
-
- : see what memory models we can support
- ***************
- *** 1261,1267 ****
- cc="$ans"
- fi
- case "$cc" in
- ! gcc*) cpp=`./loc gcc-cpp $cpp $pth`
- case "$nativegcc" in
- '') case "$ccflags" in
- *-fpcc-struct-return*) dflt=n;;
- --- 1277,1283 ----
- cc="$ans"
- fi
- case "$cc" in
- ! *gcc*) cpp=`./loc gcc-cpp $cpp $pth`
- case "$nativegcc" in
- '') case "$ccflags" in
- *-fpcc-struct-return*) dflt=n;;
- ***************
- *** 1349,1360 ****
- case "$dflt" in
- *LANGUAGE_C*);;
- *) dflt="$dflt -DLANGUAGE_C";;
- esac
- fi
- if $contains '_NO_PROTO' $usrinclude/signal.h >/dev/null 2>&1; then
- case "$dflt" in
- *_NO_PROTO*);;
- ! *) dflt="$dflt -D_NO_PROTO";;
- esac
- fi
- case "$dflt" in
- --- 1365,1382 ----
- case "$dflt" in
- *LANGUAGE_C*);;
- *) dflt="$dflt -DLANGUAGE_C";;
- + *) if osf1; then
- + dflt="$dflt -D__LANGUAGE_C__"
- + else
- + dflt="$dflt -DLANGUAGE_C"
- + fi
- + ;;
- esac
- fi
- if $contains '_NO_PROTO' $usrinclude/signal.h >/dev/null 2>&1; then
- case "$dflt" in
- *_NO_PROTO*);;
- ! *) osf1 || dflt="$dflt -D_NO_PROTO";;
- esac
- fi
- case "$dflt" in
- ***************
- *** 1365,1371 ****
- Your C compiler may want other flags. For this question you should
- include -I/whatever and -DWHATEVER flags and any other flags used by
- the C compiler, but you should NOT include libraries or ld flags like
- ! -lwhatever. To use no flags, specify the word "none".
-
- EOH
- rp="Any additional cc flags? [$dflt]"
- --- 1387,1394 ----
- Your C compiler may want other flags. For this question you should
- include -I/whatever and -DWHATEVER flags and any other flags used by
- the C compiler, but you should NOT include libraries or ld flags like
- ! -lwhatever. For instance, this would be a good place to specify
- ! -DDEBUGGING. To use no flags, specify the word "none".
-
- EOH
- rp="Any additional cc flags? [$dflt]"
- ***************
- *** 1434,1440 ****
- if test -f $xxx; then
- echo "Found -l$thislib."
- case "$dflt" in
- ! *"-l$thislib "*|*"-l$thatlib "*);;
- *) dflt="$dflt -l$thislib ";;
- esac
- else
- --- 1457,1463 ----
- if test -f $xxx; then
- echo "Found -l$thislib."
- case "$dflt" in
- ! *-l$thislib\ *|*-l$thatlib\ *);;
- *) dflt="$dflt -l$thislib ";;
- esac
- else
- ***************
- *** 1450,1456 ****
- if test -f $xxx; then
- echo "Found -l$thislib."
- case "$dflt" in
- ! *"-l$thislib "*|*"-l$thatlib "*);;
- *) dflt="$dflt -l$thislib ";;
- esac
- else
- --- 1473,1479 ----
- if test -f $xxx; then
- echo "Found -l$thislib."
- case "$dflt" in
- ! *-l$thislib\ *|*-l$thatlib\ *);;
- *) dflt="$dflt -l$thislib ";;
- esac
- else
- ***************
- *** 1458,1464 ****
- if test -f $xxx; then
- echo "Found -l$thislib as a shared object only."
- case "$dflt" in
- ! *"-l$thislib "*|*"-l$thatlib "*);;
- *) dflt="$dflt -l$thislib ";;
- esac
- else
- --- 1481,1487 ----
- if test -f $xxx; then
- echo "Found -l$thislib as a shared object only."
- case "$dflt" in
- ! *-l$thislib\ *|*-l$thatlib\ *);;
- *) dflt="$dflt -l$thislib ";;
- esac
- else
- ***************
- *** 1572,1577 ****
- --- 1595,1613 ----
- fi
- done
-
- + case "$bin" in
- + ?????????????????????????)
- + cat <<EOF
- +
- + NOTE: you have a fairly long path name there. Some systems have trouble
- + executing a script if the #! line ends up longer than 32 characters. If
- + you have this trouble you may have to reinstall somewhere else, or make
- + a symbolic link from someplace with a shorter name.
- +
- + EOF
- + ;;
- + esac
- +
- case "$installbin" in
- '')
- dflt=`echo $bin | sed 's#^/afs/#/afs/.#'`
- ***************
- *** 1628,1636 ****
- } u;
-
- if (sizeof(long) > 4)
- ! u.l = (0x08070605 << 32) | 0x04030201;
- else
- ! u.l = 0x04030201;
- for (i=0; i < sizeof(long); i++)
- printf("%c",u.c[i]+'0');
- printf("\n");
- --- 1664,1672 ----
- } u;
-
- if (sizeof(long) > 4)
- ! u.l = (0x08070605L << 32) | 0x04030201L;
- else
- ! u.l = 0x04030201L;
- for (i=0; i < sizeof(long); i++)
- printf("%c",u.c[i]+'0');
- printf("\n");
- ***************
- *** 1864,1869 ****
- --- 1900,1906 ----
- esac
- set /usr/ccs/lib/libc.so
- test -f $1 || set /usr/lib/libc.so
- + test -f $1 || set /usr/shlib/libc.so
- test -f $1 || set /usr/lib/libc.so.[0-9]*
- test -f $1 || set /lib/libsys_s.a
- eval set \$$#
- ***************
- *** 1955,1960 ****
- --- 1992,2001 ----
- <libc.tmp >libc.list; \
- $contains '^printf$' libc.list >/dev/null 2>&1; then
- echo done
- + elif $sed -n -e 's/^[ ]*[0-9][0-9a-f]*[ ]*Def. Text[ ]*//p' \
- + < libc.tmp | $sed -e 's/\[.*\]//' > libc.list; \
- + $contains '^printf$' libc.list >/dev/null 2>&1; then
- + echo done
- else
- nm -p $* 2>/dev/null >libc.tmp
- $sed -n -e 's/^.* [AT] *_[_.]*//p' -e 's/^.* [AT] //p' <libc.tmp >libc.list
- ***************
- *** 1997,2003 ****
- if $contains "^$1\$" libc.list >/dev/null 2>&1;
- then echo "$1() found";
- eval "case \"\$$2\" in undef) . whoa; esac"; eval "$2=\$td";
- ! else echo "$1() not found";
- eval "case \"\$$2\" in define) . whoa; esac"; eval "$2=\$tu"; fi'
-
- : see if bcmp exists
- --- 2038,2044 ----
- if $contains "^$1\$" libc.list >/dev/null 2>&1;
- then echo "$1() found";
- eval "case \"\$$2\" in undef) . whoa; esac"; eval "$2=\$td";
- ! else echo "$1() NOT found";
- eval "case \"\$$2\" in define) . whoa; esac"; eval "$2=\$tu"; fi'
-
- : see if bcmp exists
- ***************
- *** 2008,2013 ****
- --- 2049,2100 ----
- set bcopy d_bcopy
- eval $inlibc
-
- + case "$d_safebcpy" in
- + '')
- + : assume the worst
- + d_safebcpy=undef
- + case "$d_bcopy" in
- + define)
- + echo "Checking to see if your bcopy() can do overlapping copies..."
- + $cat >safebcpy.c <<'EOCP'
- + main()
- + {
- + char buf[128];
- + register char *b;
- + register int len;
- + register int off;
- + register int align;
- +
- + for (align = 7; align >= 0; align--) {
- + for (len = 36; len; len--) {
- + b = buf+align;
- + bcopy("abcdefghijklmnopqrstuvwxyz0123456789", b, len);
- + for (off = 1; off <= len; off++) {
- + bcopy(b, b+off, len);
- + bcopy(b+off, b, len);
- + if (bcmp(b, "abcdefghijklmnopqrstuvwxyz0123456789", len))
- + exit(1);
- + }
- + }
- + }
- + exit(0);
- + }
- + EOCP
- + if $cc safebcpy.c -o safebcpy $ccflags >/dev/null 2>&1 ; then
- + if ./safebcpy; then
- + echo "It can."
- + d_safebcpy=define
- + else
- + echo "It can't."
- + fi
- + else
- + echo "(I can't compile the test program, so we'll assume not...)"
- + fi
- + ;;
- + esac
- + ;;
- + esac
- +
- : see if bzero exists
- set bzero d_bzero
- eval $inlibc
- ***************
- *** 2061,2067 ****
- val2="$define"
- fi
- else
- ! echo 'vprintf() not found.'
- val="$undef"
- val2="$undef"
- fi
- --- 2148,2154 ----
- val2="$define"
- fi
- else
- ! echo 'vprintf() NOT found.'
- val="$undef"
- val2="$undef"
- fi
- ***************
- *** 2099,2105 ****
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- ! echo 'crypt() not found.'
- val="$undef"
- else
- val="$define"
- --- 2186,2192 ----
- cryptlib=-lcrypt
- fi
- if $test -z "$cryptlib"; then
- ! echo 'crypt() NOT found.'
- val="$undef"
- else
- val="$define"
- ***************
- *** 2294,2300 ****
- : index or strcpy
- echo " "
- case "$d_index" in
- ! undef) dflt=n;;
- *) if $test -f /unix; then
- dflt=n
- else
- --- 2381,2388 ----
- : index or strcpy
- echo " "
- case "$d_index" in
- ! undef) dflt=y;;
- ! define) dflt=n;;
- *) if $test -f /unix; then
- dflt=n
- else
- ***************
- *** 2326,2331 ****
- --- 2414,2423 ----
- fi
- fi
-
- + : see if isascii exists
- + set isascii d_isascii
- + eval $inlibc
- +
- : see if killpg exists
- set killpg d_killpg
- eval $inlibc
- ***************
- *** 2342,2347 ****
- --- 2434,2493 ----
- set memcpy d_memcpy
- eval $inlibc
-
- + case "$d_safemcpy" in
- + '')
- + : assume the worst
- + d_safemcpy=undef
- + case "$d_memcpy" in
- + define)
- + echo "Checking to see if your memcpy() can do overlapping copies..."
- + $cat >safemcpy.c <<'EOCP'
- + main()
- + {
- + char buf[128];
- + register char *b;
- + register int len;
- + register int off;
- + register int align;
- +
- + for (align = 7; align >= 0; align--) {
- + for (len = 36; len; len--) {
- + b = buf+align;
- + memcpy(b,"abcdefghijklmnopqrstuvwxyz0123456789", len);
- + for (off = 1; off <= len; off++) {
- + memcpy(b+off, b, len);
- + memcpy(b, b+off, len);
- + if (memcmp(b, "abcdefghijklmnopqrstuvwxyz0123456789", len))
- + exit(1);
- + }
- + }
- + }
- + exit(0);
- + }
- + EOCP
- + if $cc safemcpy.c -o safemcpy $ccflags >/dev/null 2>&1 ; then
- + if ./safemcpy; then
- + echo "It can."
- + d_safemcpy=define
- + else
- + echo "It can't."
- + fi
- + else
- + echo "(I can't compile the test program, so we'll assume not...)"
- + fi
- + ;;
- + esac
- + ;;
- + esac
- +
- + : see if memmove exists
- + set memmove d_memmove
- + eval $inlibc
- +
- + : see if memset exists
- + set memset d_memset
- + eval $inlibc
- +
- : see if mkdir exists
- set mkdir d_mkdir
- eval $inlibc
- ***************
- *** 2433,2439 ****
- *) mallocsrc='';
- mallocobj='';
- mallocptrtype=void
- ! val="$define"
- ;;
- esac
- set d_mymalloc
- --- 2579,2585 ----
- *) mallocsrc='';
- mallocobj='';
- mallocptrtype=void
- ! val="$undef"
- ;;
- esac
- set d_mymalloc
- ***************
- *** 2447,2453 ****
- echo "ndbm.h found."
- else
- val="$undef"
- ! echo "ndbm.h not found."
- fi
- set d_ndbm
- eval $setvar
- --- 2593,2599 ----
- echo "ndbm.h found."
- else
- val="$undef"
- ! echo "ndbm.h NOT found."
- fi
- set d_ndbm
- eval $setvar
- ***************
- *** 2460,2466 ****
- echo "dbm.h found."
- else
- val="$undef"
- ! echo "dbm.h not found."
- fi
- set d_odbm
- eval $setvar
- --- 2606,2612 ----
- echo "dbm.h found."
- else
- val="$undef"
- ! echo "dbm.h NOT found."
- fi
- set d_odbm
- eval $setvar
- ***************
- *** 2631,2640 ****
- --- 2777,2794 ----
- set rename d_rename
- eval $inlibc
-
- + : see if rewindir exists
- + set rewinddir d_rewindir
- + eval $inlibc
- +
- : see if rmdir exists
- set rmdir d_rmdir
- eval $inlibc
-
- + : see if seekdir exists
- + set seekdir d_seekdir
- + eval $inlibc
- +
- : see if select exists
- set select d_select
- eval $inlibc
- ***************
- *** 2969,2974 ****
- --- 3123,3132 ----
- echo "ICK, NOTHING WORKED!!! You may have to diddle the includes.";;
- esac
-
- + : see if telldir exists
- + set telldir d_telldir
- + eval $inlibc
- +
- : see if signal is declared as pointer to function returning int or void
- echo " "
- $cppstdin $cppflags $cppminus < $usrinclude/signal.h >d_voidsig.txt
- ***************
- *** 3470,3476 ****
- echo "gdbm.h found."
- else
- val="$undef"
- ! echo "gdbm.h not found."
- fi
- set i_gdbm
- eval $setvar
- --- 3628,3634 ----
- echo "gdbm.h found."
- else
- val="$undef"
- ! echo "gdbm.h NOT found."
- fi
- set i_gdbm
- eval $setvar
- ***************
- *** 3531,3537 ****
- echo "sys/ioctl.h found."
- else
- val="$undef"
- ! echo "sys/ioctl.h not found, assuming ioctl args are defined in sgtty.h."
- fi
- set i_sysioctl
- eval $setvar
- --- 3689,3695 ----
- echo "sys/ioctl.h found."
- else
- val="$undef"
- ! echo "sys/ioctl.h NOT found, assuming ioctl args are defined in sgtty.h."
- fi
- set i_sysioctl
- eval $setvar
- ***************
- *** 3660,3665 ****
- --- 3818,3824 ----
- cppminus='$cppminus'
- d_bcmp='$d_bcmp'
- d_bcopy='$d_bcopy'
- + d_safebcpy='$d_safebcpy'
- d_bzero='$d_bzero'
- d_castneg='$d_castneg'
- castflags='$castflags'
- ***************
- *** 3682,3691 ****
- --- 3841,3854 ----
- d_getprior='$d_getprior'
- d_htonl='$d_htonl'
- d_index='$d_index'
- + d_isascii='$d_isascii'
- d_killpg='$d_killpg'
- d_lstat='$d_lstat'
- d_memcmp='$d_memcmp'
- d_memcpy='$d_memcpy'
- + d_safemcpy='$d_safemcpy'
- + d_memmove='$d_memmove'
- + d_memset='$d_memset'
- d_mkdir='$d_mkdir'
- d_msg='$d_msg'
- d_msgctl='$d_msgctl'
- ***************
- *** 3697,3703 ****
- --- 3860,3868 ----
- d_open3='$d_open3'
- d_readdir='$d_readdir'
- d_rename='$d_rename'
- + d_rewindir='$d_rewindir'
- d_rmdir='$d_rmdir'
- + d_seekdir='$d_seekdir'
- d_select='$d_select'
- d_sem='$d_sem'
- d_semctl='$d_semctl'
- ***************
- *** 3730,3735 ****
- --- 3895,3901 ----
- d_strerror='$d_strerror'
- d_symlink='$d_symlink'
- d_syscall='$d_syscall'
- + d_telldir='$d_telldir'
- d_truncate='$d_truncate'
- d_vfork='$d_vfork'
- d_voidsig='$d_voidsig'
-
- Index: atarist/FILES
- *** atarist/FILES.old Mon Jun 8 17:43:00 1992
- --- atarist/FILES Mon Jun 8 17:43:00 1992
- ***************
- *** 0 ****
- --- 1,48 ----
- +
- + Shipping list for the perl 4.019 atariST port:
- +
- + perl.diffs contains diffs from the following perl 4.019 files:
- +
- + perl.h arg.h handy.h doarg.c doio.c eval.c malloc.c perl.c regcomp.c
- + str.c toke.c util.c
- +
- + the file `explain' contains a brief explaination of the diffs in
- + `perl.diffs'
- +
- + The following files are supplied whole (not as diffs) and replace files with
- + the same name from the perl 4.019 distribution:
- +
- + config.h usersub.c
- +
- + The following files are specific to this atariST port:
- +
- + atarist.c echo.c wildmat.c perlglob.c
- + makefile.sm makefile.st
- +
- + The following files are in usub/
- +
- + makefile.st README.ATARI usersub.c acurses.mus
- +
- + The following files should be added to the perl 4.019 library:
- +
- + osbind.pl perldb.diff (diffs against perldb.pl in perl 4.019 lib)
- +
- + AtariST specific tests
- +
- + test/*
- +
- + Misc:
- +
- + FILES README.ST (read this) RESULTS (explains results of tests)
- + explain (explains perl.diffs)
- +
- + Some binary distributions will also contain:
- + perl.ttp uperl.a cperl.ttp (cursesperl) perld.ttp
- + (these are all buildable using the material above).
- +
- + If you are missing any of the files on this list, please mail me. Please
- + dont ask me to mail binaries. Some of the binaries are available at
- + various atari archives, including atari.archive.umich.edu in
- + atari/languages/perl4019.zoo.
- +
- + ++jrb bammi@cadence.com
-
- Index: MANIFEST
- *** MANIFEST.old Mon Jun 8 11:07:49 1992
- --- MANIFEST Mon Jun 8 11:07:49 1992
- ***************
- *** 7,12 ****
- --- 7,13 ----
- Makefile.SH Precursor to Makefile
- PACKINGLIST Which files came from which kits
- README The Instructions
- + README.ncr Special instructions for NCR
- README.uport Special instructions for Microports
- README.xenix Special instructions for Xenix
- Wishlist Some things that may or may not happen
- ***************
- *** 13,18 ****
- --- 14,50 ----
- arg.h Public declarations for the above
- array.c Numerically subscripted arrays
- array.h Public declarations for the above
- + atarist/FILES
- + atarist/README.ST
- + atarist/RESULTS
- + atarist/atarist.c
- + atarist/config.h
- + atarist/echo.c
- + atarist/explain
- + atarist/makefile.sm
- + atarist/makefile.st
- + atarist/osbind.pl
- + atarist/perldb.diff
- + atarist/perlglob.c
- + atarist/test/binhandl
- + atarist/test/ccon
- + atarist/test/dbm
- + atarist/test/err
- + atarist/test/gdbm
- + atarist/test/gdbm.t
- + atarist/test/glob
- + atarist/test/osexample.pl
- + atarist/test/pi.pl
- + atarist/test/printenv
- + atarist/test/readme
- + atarist/test/sig
- + atarist/test/tbinmode
- + atarist/usersub.c
- + atarist/usub/README.ATARI
- + atarist/usub/acurses.mus
- + atarist/usub/makefile.st
- + atarist/usub/usersub.c
- + atarist/wildmat.c
- c2ph.SH program to translate dbx stabs to perl
- c2ph.doc documentation for c2ph
- cflags.SH A script that emits C compilation flags per file
- ***************
- *** 92,97 ****
- --- 124,130 ----
- hash.c Associative arrays
- hash.h Public declarations for the above
- hints/3b1.sh
- + hints/3b1cc
- hints/3b2.sh
- hints/aix_rs.sh
- hints/aix_rt.sh
- ***************
- *** 99,104 ****
- --- 132,139 ----
- hints/apollo_C6_7.sh
- hints/apollo_C6_8.sh
- hints/aux.sh
- + hints/cray.sh
- + hints/dgux.sh
- hints/dnix.sh
- hints/dynix.sh
- hints/fps.sh
- ***************
- *** 106,127 ****
- hints/greenhills.sh
- hints/hp9000_300.sh
- hints/hp9000_400.sh
- hints/hp9000_800.sh
- hints/hpux.sh
- hints/i386.sh
- hints/isc_3_2_2.sh
- hints/mips.sh
- hints/mpc.sh
- hints/ncr_tower.sh
- hints/next.sh
- hints/opus.sh
- ! hints/osf_1.sh
- hints/sco_2_3_0.sh
- hints/sco_2_3_1.sh
- hints/sco_2_3_2.sh
- hints/sco_2_3_3.sh
- hints/sco_3.sh
- hints/sgi.sh
- hints/stellar.sh
- hints/sunos_3_4.sh
- hints/sunos_3_5.sh
- --- 141,166 ----
- hints/greenhills.sh
- hints/hp9000_300.sh
- hints/hp9000_400.sh
- + hints/hp9000_700.sh
- hints/hp9000_800.sh
- hints/hpux.sh
- hints/i386.sh
- hints/isc_3_2_2.sh
- + hints/mc6000.sh
- hints/mips.sh
- hints/mpc.sh
- hints/ncr_tower.sh
- hints/next.sh
- hints/opus.sh
- ! hints/osf1.sh
- hints/sco_2_3_0.sh
- hints/sco_2_3_1.sh
- hints/sco_2_3_2.sh
- hints/sco_2_3_3.sh
- + hints/sco_2_3_4.sh
- hints/sco_3.sh
- hints/sgi.sh
- + hints/solaris_2_0.sh
- hints/stellar.sh
- hints/sunos_3_4.sh
- hints/sunos_3_5.sh
- ***************
- *** 129,136 ****
- --- 168,179 ----
- hints/sunos_4_0_2.sh
- hints/svr4.sh
- hints/ti1500.sh
- + hints/titan.sh
- + hints/ultrix_1.sh
- hints/ultrix_3.sh
- hints/ultrix_4.sh
- + hints/unisysdynix.sh
- + hints/utekv.sh
- hints/uts.sh
- hints/vax.sh
- installperl Perl script to do "make install" dirty work
- ***************
- *** 156,161 ****
- --- 199,205 ----
- lib/importenv.pl Perl routine to get environment into variables
- lib/look.pl A "look" equivalent
- lib/newgetopt.pl A perl library supporting long option parsing
- + lib/open2.pl
- lib/perldb.pl Perl debugging routines
- lib/pwd.pl Routines to keep track of PWD environment variable
- lib/shellwords.pl Perl library to split into words with shell quoting
- ***************
- *** 189,194 ****
- --- 233,239 ----
- os2/alarm.c An implementation of alarm()
- os2/alarm.h Header file for same
- os2/config.h Configuration file for OS/2
- + os2/crypt.c
- os2/dir.h Directory header
- os2/director.c Directory routines
- os2/eg/alarm.pl Example of alarm code
- ***************
- *** 211,216 ****
- --- 256,262 ----
- os2/selfrun.bat A self running perl script for DOS
- os2/selfrun.cmd Example of extproc feature
- os2/suffix.c Code for creating backup filenames
- + os2/tests.dif
- patchlevel.h The current patch level of perl
- perl.c main()
- perl.h Global declarations
- ***************
- *** 218,223 ****
- --- 264,270 ----
- perlsh A poor man's perl shell
- perly.fixer A program to remove yacc stack limitations
- perly.y Yacc grammar for perl
- + pstruct
- regcomp.c Regular expression compiler
- regcomp.h Private declarations for above
- regexec.c Regular expression evaluator
-
- Index: os2/Makefile
- *** os2/Makefile.old Mon Jun 8 17:49:35 1992
- --- os2/Makefile Mon Jun 8 17:49:35 1992
- ***************
- *** 1,124 ****
- #
- # Makefile for compiling Perl under OS/2
- #
- ! # Needs a Unix compatible make.
- ! # This makefile works for an initial compilation. It does not
- ! # include all dependencies and thus is unsuitable for serious
- ! # development work. Hey, I'm just inheriting what Diomidis gave me.
- #
- - # Originally by Diomidis Spinellis, March 1990
- - # Adjusted for OS/2 port by Raymond Chen, June 1990
- - #
-
- ! # Source files
- ! SRC = array.c cmd.c cons.c consarg.c doarg.c doio.c dolist.c dump.c \
- ! eval.c form.c hash.c perl.y perly.c regcomp.c regexec.c \
- ! stab.c str.c toke.c util.c os2.c popen.c director.c
-
- ! # Object files
- ! OBJ = perl.obj array.obj cmd.obj cons.obj consarg.obj doarg.obj doio.obj \
- ! dolist.obj dump.obj eval.obj form.obj hash.obj perly.obj regcomp.obj \
- ! regexec.obj stab.obj str.obj toke.obj util.obj os2.obj popen.obj \
- ! director.obj suffix.obj
-
- ! # Files in the OS/2 distribution
- ! DOSFILES=config.h director.c makefile os2.c popen.c suffix.c readme.os2
-
- ! # Yacc flags
- YFLAGS=-d
-
- ! # Manual pages
- ! MAN=perlman.1 perlman.2 perlman.3 perlman.4
-
- ! CC=cl
- ! # CBASE = flags everybody gets
- ! # CPLAIN = flags for modules that give the compiler indigestion
- ! # CFLAGS = flags for milder modules
- ! # PERL = which version of perl to build
- ! #
- ! # For preliminary building: No optimization, DEBUGGING set, symbols included.
- ! #CBASE=-AL -Zi -G2 -Gs -DDEBUGGING
- ! #CPLAIN=$(CBASE) -Od
- ! #CFLAGS=$(CBASE) -Od
- ! #PERL=perlsym.exe
-
- ! # For the final build: Optimization on, no DEBUGGING, symbols stripped.
- ! CBASE=-AL -Zi -G2 -Gs
- ! CPLAIN=$(CBASE) -Oilt
- ! CFLAGS=$(CBASE) -Ox
- ! PERL=perl.exe
-
- ! # Destination directory for executables
- ! DESTDIR=\usr\bin
-
- ! # Deliverables
- ! #
- ! all: $(PERL) glob.exe
-
- ! perl.exe: $(OBJ) perl.arp
- ! link @perl.arp,perl,nul,/stack:32767 /NOE;
- ! exehdr /nologo /newfiles /pmtype:windowcompat perl.exe >nul
-
- ! perlsym.exe: $(OBJ) perl.arp
- ! link @perl.arp,perlsym,nul,/stack:32767 /NOE /CODE;
- ! exehdr /nologo /newfiles /pmtype:windowcompat perlsym.exe >nul
-
- ! perl.arp:
- ! echo array+cmd+cons+consarg+doarg+doio+dolist+dump+ >perl.arp
- ! echo eval+form+hash+perl+perly+regcomp+regexec+stab+suffix+ >>perl.arp
- ! echo str+toke+util+os2+popen+director+\c600\lib\setargv >>perl.arp
-
- ! glob.exe: glob.c
- ! $(CC) glob.c \c600\lib\setargv.obj -link /NOE
- ! exehdr /nologo /newfiles /pmtype:windowcompat glob.exe >nul
-
- ! array.obj: array.c
- ! $(CC) $(CPLAIN) -c array.c
- ! cmd.obj: cmd.c
- ! cons.obj: cons.c perly.h
- ! consarg.obj: consarg.c
- ! # $(CC) $(CPLAIN) -c consarg.c
- ! doarg.obj: doarg.c
- ! doio.obj: doio.c
- ! dolist.obj: dolist.c
- ! dump.obj: dump.c
- ! eval.obj: eval.c evalargs.xc
- ! $(CC) /B3 \c600\binp\c3l $(CFLAGS) -c eval.c
- ! form.obj: form.c
- ! hash.obj: hash.c
- ! perl.obj: perl.y
- ! perly.obj: perly.c
- ! regcomp.obj: regcomp.c
- ! regexec.obj: regexec.c
- ! stab.obj: stab.c
- ! $(CC) $(CPLAIN) -c stab.c
- ! str.obj: str.c
- ! suffix.obj: suffix.c
- ! toke.obj: toke.c
- ! $(CC) /B3 \c600\binp\c3l $(CFLAGS) -c toke.c
- ! util.obj: util.c
- ! # $(CC) $(CPLAIN) -c util.c
- ! perly.h: ytab.h
- ! cp ytab.h perly.h
- ! director.obj: director.c
- ! popen.obj: popen.c
- ! os2.obj: os2.c
-
- ! perl.1: $(MAN)
- ! nroff -man $(MAN) >perl.1
-
- ! install: all
- ! exepack perl.exe $(DESTDIR)\perl.exe
- ! exepack glob.exe $(DESTDIR)\glob.exe
-
- ! clean:
- ! rm -f *.obj *.exe perl.1 perly.h perl.arp
-
- ! tags:
- ! ctags *.c *.h *.xc
- !
- ! dosperl:
- ! mv $(DOSFILES) ../perl30.new
- !
- ! doskit:
- ! mv $(DOSFILES) ../os2
- --- 1,65 ----
- #
- # Makefile for compiling Perl under OS/2
- #
- ! # Needs Microsoft C 6.00 and NMAKE
- #
-
- ! EXP = c:\ms\lib\setargv.obj -link /noe
-
- ! DEF = os2\perl.def
- ! BAD = os2\perl.bad
-
- ! OBJ = array.obj cmd.obj cons.obj consarg.obj doarg.obj doio.obj \
- ! dolist.obj dump.obj eval.obj form.obj hash.obj perl.obj perly.obj \
- ! regcomp.obj regexec.obj stab.obj str.obj toke.obj util.obj
- ! OBJO = os2.obj popen.obj suffix.obj director.obj alarm.obj crypt.obj
-
- ! LIBS = lgdbm.lib
- !
- ! YACC=bison
- YFLAGS=-d
-
- ! CC=cl -nologo
- ! CCL=cl -nologo -B2C2L -B3C3L
-
- ! CFLAGS=-W1 -AL -Zep -J -G2s -Olt -Gt 2048 -DDEBUGGING
- ! #CFLAGS=-W1 -AL -Ziep -J -G2 -Od -Gt 2048 -DDEBUGGING
-
- ! LDFLAGS=-AL -Lp -F 8000
- ! #LDFLAGS=-AL -Lp -Zi -Li -F 8000
-
- ! STRIP=bind -nologo
- ! #STRIP=rem
-
- ! .c.obj:
- ! $(CC) -c $(CFLAGS) $<
-
- ! {os2}.c{}.obj:
- ! $(CC) -c $(CFLAGS) -I. -Ios2 $<
-
- ! all: perl.exe perlglob.exe
-
- ! perl.exe: $(OBJ) $(OBJO)
- ! $(CC) $(LDFLAGS) $(OBJ) $(OBJO) $(LIBS) os2\perl.def -o $@ $(EXP)
- ! $(STRIP) $@ -n @$(BAD)
-
- ! $(OBJ) $(OBJO): config.h
- ! perl.obj str.obj cons.obj toke.obj: perly.h
-
- ! config.h: os2\config.h
- ! cp os2\config.h config.h
-
- ! perly.c perly.h: perly.y
- ! $(YACC) $(YFLAGS) -o $*.c $*.y
-
- ! eval.obj: eval.c
- ! $(CCL) -c $(CFLAGS) $*.c
- ! toke.obj: toke.c
- ! $(CCL) -c $(CFLAGS) $*.c
-
- ! perlglob.exe: os2\glob.c os2\director.c
- ! $(CC) -Zep -G2s -Olt -Lp os2\glob.c $(DEF) -o $@ $(EXP)
- ! $(STRIP) $@ -n @$(BAD)
-
- ! clean:
- ! -rm perly.c perly.h config.h *.obj >nul
-
- Index: Makefile.SH
- *** Makefile.SH.old Mon Jun 8 17:34:36 1992
- --- Makefile.SH Mon Jun 8 17:34:37 1992
- ***************
- *** 24,33 ****
- esac
-
- echo "Extracting Makefile (with variable substitutions)"
- cat >Makefile <<!GROK!THIS!
- ! # $RCSfile: Makefile.SH,v $$Revision: 4.0.1.3 $$Date: 91/11/05 15:48:11 $
- #
- # $Log: Makefile.SH,v $
- # Revision 4.0.1.3 91/11/05 15:48:11 lwall
- # patch11: saberized perl
- # patch11: added support for dbz
- --- 24,38 ----
- esac
-
- echo "Extracting Makefile (with variable substitutions)"
- + rm -f Makefile
- cat >Makefile <<!GROK!THIS!
- ! # $RCSfile: Makefile.SH,v $$Revision: 4.0.1.4 $$Date: 92/06/08 11:40:43 $
- #
- # $Log: Makefile.SH,v $
- + # Revision 4.0.1.4 92/06/08 11:40:43 lwall
- + # patch20: cray didn't give enough memory to /bin/sh
- + # patch20: various and sundry fixes
- + #
- # Revision 4.0.1.3 91/11/05 15:48:11 lwall
- # patch11: saberized perl
- # patch11: added support for dbz
- ***************
- *** 66,71 ****
- --- 71,78 ----
-
- public = perl taintperl $suidperl
-
- + shellflags = $shellflags
- +
- # To use an alternate make, set $altmake in config.sh.
- MAKE = ${altmake-make}
-
- ***************
- *** 73,79 ****
-
- cat >>Makefile <<'!NO!SUBS!'
-
- ! CCCMD = `sh cflags $@`
-
- private =
-
- --- 80,86 ----
-
- cat >>Makefile <<'!NO!SUBS!'
-
- ! CCCMD = `sh $(shellflags) cflags $@`
-
- private =
-
- ***************
- *** 299,308 ****
- touch perly.h
-
- perly.c: perly.y perly.fixer
- ! @ echo 'Expect either' 29 shift/reduce and 59 reduce/reduce conflicts...
- ! @ echo ' or' 27 shift/reduce and 61 reduce/reduce conflicts...
- $(YACC) -d perly.y
- ! sh ./perly.fixer y.tab.c perly.c
- mv y.tab.h perly.h
- echo 'extern YYSTYPE yylval;' >>perly.h
-
- --- 306,318 ----
- touch perly.h
-
- perly.c: perly.y perly.fixer
- ! @ \
- ! case "$(YACC)" in \
- ! *bison*) echo 'Expect' 25 shift/reduce and 59 reduce/reduce conflicts;; \
- ! *) echo 'Expect' 27 shift/reduce and 57 reduce/reduce conflicts;; \
- ! esac
- $(YACC) -d perly.y
- ! sh $(shellflags) ./perly.fixer y.tab.c perly.c
- mv y.tab.h perly.h
- echo 'extern YYSTYPE yylval;' >>perly.h
-
- ***************
- *** 313,319 ****
- ./perl installperl
-
- clean:
- ! rm -f *.o all perl taintperl suidperl
- cd x2p; $(MAKE) clean
-
- realclean: clean
- --- 323,329 ----
- ./perl installperl
-
- clean:
- ! rm -f *.o all perl taintperl suidperl perly.c
- cd x2p; $(MAKE) clean
-
- realclean: clean
- ***************
- *** 339,345 ****
-
- test: perl
- - cd t && chmod +x TEST */*.t
- ! - cd t && (rm -f perl; $(SLN) ../perl .) && ./perl TEST </dev/tty
-
- clist:
- echo $(c) | tr ' ' '\012' >.clist
- --- 349,355 ----
-
- test: perl
- - cd t && chmod +x TEST */*.t
- ! - cd t && (rm -f perl; $(SLN) ../perl perl) && ./perl TEST </dev/tty
-
- clist:
- echo $(c) | tr ' ' '\012' >.clist
- ***************
- *** 354,360 ****
- $(obj) hash.o:
- @ echo "You haven't done a "'"make depend" yet!'; exit 1
- makedepend: makedepend.SH
- ! /bin/sh makedepend.SH
- !NO!SUBS!
- $eunicefix Makefile
- case `pwd` in
- --- 364,370 ----
- $(obj) hash.o:
- @ echo "You haven't done a "'"make depend" yet!'; exit 1
- makedepend: makedepend.SH
- ! /bin/sh $(shellflags) makedepend.SH
- !NO!SUBS!
- $eunicefix Makefile
- case `pwd` in
-
- Index: atarist/usub/README.ATARI
- *** atarist/usub/README.ATARI.old Mon Jun 8 17:45:29 1992
- --- atarist/usub/README.ATARI Mon Jun 8 17:45:29 1992
- ***************
- *** 0 ****
- --- 1 ----
- + For the atariST bsd derived curses use acurses.mus (its got its own wrinkles!)
-
- Index: Wishlist
- *** Wishlist.old Mon Jun 8 17:34:43 1992
- --- Wishlist Mon Jun 8 17:34:43 1992
- ***************
- *** 1,3 ****
- --- 1,9 ----
- built-in cpp
- perl to C translator
- multi-threading
- + make more easily embeddable
- + built-in globbing
- + compile to threaded code
- + rewrite regexp parser for better integrated optimization
- + add structured types and objects
- + allow for lexical scoping
-
- Index: os2/a2p.cs
- *** os2/a2p.cs.old Mon Jun 8 17:49:40 1992
- --- os2/a2p.cs Mon Jun 8 17:49:41 1992
- ***************
- *** 2,8 ****
- (-W1 -Od -Ocgelt hash.c str.c util.c walk.c)
-
- setargv.obj
- ! ..\os2\a2p.def
- a2p.exe
-
- -AL -LB -S0x9000
- --- 2,8 ----
- (-W1 -Od -Ocgelt hash.c str.c util.c walk.c)
-
- setargv.obj
- ! ..\os2\perl.def
- a2p.exe
-
- -AL -LB -S0x9000
-
- Index: os2/a2p.def
- *** os2/a2p.def.old Mon Jun 8 17:49:43 1992
- --- os2/a2p.def Mon Jun 8 17:49:43 1992
- ***************
- *** 1,2 ****
- ! NAME AWK2PERL WINDOWCOMPAT NEWFILES
- ! DESCRIPTION 'AWK to PERL translator - for MS-DOS and OS/2'
- --- 1 ----
- ! (deprecated)
-
- Index: hints/aix_rs.sh
- *** hints/aix_rs.sh.old Mon Jun 8 17:47:45 1992
- --- hints/aix_rs.sh Mon Jun 8 17:47:46 1992
- ***************
- *** 1,7 ****
- eval_cflags='optimize=""'
- - toke_cflags='optimize=""'
- teval_cflags='optimize=""'
- ttoke_cflags='optimize=""'
- ccflags="$ccflags -D_NO_PROTO"
- ! cppstdin='/lib/cpp -D_AIX -D_IBMR2'
- cppminus=''
- --- 1,18 ----
- + d_setregid='undef'
- + d_setreuid='undef'
- + d_setrgid='undef'
- + d_setruid='undef'
- + d_setegid='undef'
- + d_seteuid='undef'
- + alignbytes=8
- + dolist_cflags='optimize=""'
- + tdolist_cflags='optimize=""'
- + regexec_cflags='optimize=""'
- + tregexec_cflags='optimize=""'
- eval_cflags='optimize=""'
- teval_cflags='optimize=""'
- + toke_cflags='optimize=""'
- ttoke_cflags='optimize=""'
- ccflags="$ccflags -D_NO_PROTO"
- ! cppstdin='/lib/cpp -D_AIX -D_IBMR2 -U__STR__'
- cppminus=''
-
- *** End of Patch 20 ***
- exit 0 # Just in case...
-