PERL 5.000 ========== Compilation DomainOS 10.4: -------------------------- cd ~/proj mkdir perl; cd perl tar xzf perl5*.tar.gz cd perl5*0 # source patch: # Apollo cc (bsd) generates wrong code for this particular switch statment # (see perl5.000.fix1). *** pp_ctl.c~ Tue Oct 18 00:13:48 1994 --- pp_ctl.c Fri Apr 21 18:29:38 1995 *************** *** 166,171 **** --- 166,172 ---- double value; bool gotsome; STRLEN len; + U16 tmpval; if (!SvCOMPILED(form)) { SvREADONLY_off(form); *************** *** 209,215 **** else fprintf(stderr, "%-16s\n", name); } ) ! switch (*fpc++) { case FF_LINEMARK: linemark = t; formmark = f; --- 210,218 ---- else fprintf(stderr, "%-16s\n", name); } ) ! tmpval = *fpc++; ! switch ( tmpval ) { ! case FF_LINEMARK: linemark = t; formmark = f; # patch it with patch -s <../perl5.000.fix1 # there are 2 variants: # BSD without POSIX extension # 2 tests are failing because they need # the POSIX module # BSD + SYS5 FAKED HEADER with POSIX extension, the exec. is 130K # larger # # All extension are statically linked to the perl executable. # # The compilation should be done in the BSD4.3 environment. # --------------------------------- BSD ------------------------------------ ./Configure ##### change follwoing options: # equivalent to -W0,-opt,3 What optimizer/debugger flag should be used? [-O2] Any additional cc flags? [-A cpu,mathchip] What is the file extension used for shared libraries? [none] # Don't use nm extraction. With nm extractino Configure would try to # investigate 2 libraries, but the script is only able to handle one path. # Even with one path not all really available symbols are found by Configure. # So we use here the C compiler variant to be sure that all symbols are catched. Shall I use nm to extract C symbols from the libraries? [y] n # The Configure script interprets "/lib/clib /lib/libc" as one path -> # so use only one of the given (I think this in actually not used if nm # extraction is suppressed). Where is your C library? [/lib/clib /lib/libc] /lib/libc Directory /usr/local/lib/perl5/apollo doesn't exist. Use that name anyway? [n] y # break the script with ^C (there is a question where you'll be asked for it) and # edit config.sh: useposix='false' # and remove ODBM and POSIX from the extension lists, because: # POSIX need the missing /usr/include/sys/utsname.h and # fcntl.h is not complete, # ODBM needs the function dbmclose which is not provided by the Apollo libs. # make.noposix.log (Configure -S; make depend; make) >& make.noposix.log & cp -p perl perl.noposix # test results: make test AutoSplitting perl library Making DynaLoader (static) Making Fcntl (static) Making NDBM_File (static) Making SDBM_File (static) cd t && chmod +x TEST */*.t cd t && (rm -f perl; /bin/ln -s ../perl perl) && ./perl TEST & make.posix.log & cp -p perl perl.posix # test results: make test AutoSplitting perl library Making DynaLoader (static) Making Fcntl (static) Making NDBM_File (static) Making POSIX (static) Making SDBM_File (static) cd t && chmod +x TEST */*.t cd t && (rm -f perl; /bin/ln -s ../perl perl) && ./perl TEST & make.log & # or announce a changed config.sh to all relevant subdirs Configure -S make depend >& make.log & make >>&make.log & # the last one but as background job (Configure -S; make depend; make) >& make.log & # test perl make test # or chmod +x t/TEST t/*/*.t; ln -s ../perl t/perl (cd t; ./perl TEST h2ph.new (cd //newton/ABT/USER/vta/jk/proj/perl/perl5.000/inc; //newton/ABT/USER/vta/jk/proj/perl/perl5.000/h2ph.new * sys/*) # or the original header files (perl without POSIX) (cd /usr/include; ~jk/proj/perl/perl5*0/h2ph * sys/*) # optionally install not automatically installed man pages and execs install -c -m 644 h2ph.man /usr/local/man/man1/h2ph.1 install -c -m 755 h2ph /usr/local/bin # remove old manpages (if desired) /bin/rm -f /usr/local/man/mann/{s2p,a2p,h2ph,perl}.n # man pages are shared among other hosts # make real local executable to prevent netpaging of the perl exec. foreach n (//*) if (-d $n/sys/node_data) then cp -p /usr/local/bin/perl $n/usr/local/lbin && strip $n/usr/local/lbin/perl ln -s /usr/local/lbin/perl $n/usr/bin if (! -d $n/usr/local/lib/perl5) ln -s //`hostname`/usr/local/lib/perl5 $n/usr/local/lib/perl5 endif end # make 2nd real copy of the perl5-library tree (cd //aa/usr/local/lib; mv perl5 perl5.link) cd /usr/local/lib tar cf - perl5 | (cd //aa/usr/local/lib; tar xpfB -) # html docs mkdir ../Http cd pod make html # directory for http access mv *.html ../../Http/