Add elc target to to makefile
[p5sagit/p5-mst-13.2.git] / README.vms
index 40de6ac..628c461 100644 (file)
@@ -1,6 +1,12 @@
-Last Revised 11-September-1997 by Dan Sugalski <sugalsd@lbcc.cc.or.us>
+Last Revised 02-June-1998 by Dan Sugalski <sugalskd@ous.edu>
 Originally by Charles Bailey <bailey@newman.upenn.edu>
 
+* Important safety tip
+
+The build and install procedures have changed significantly from the 5.004
+releases! Make sure you read the "Building Perl" and "Installing Perl"
+sections before you build or install.
+
 * Intro
 
 The VMS port of Perl is as functionally complete as any other Perl port
@@ -38,72 +44,44 @@ In addition to VMS, you'll need:
 If you want to include socket support, you'll need a TCP stack and either
 Dec C, or socket libraries. See the Socket Support topic for more details.
 
-* Compiling Perl
-
->From the top level of the Perl source directory, do this:
-
-MMS/DESCRIP=[.VMS]DESCRIP.MMS
-
-If you're on an Alpha, add /Macro=("__AXP__=1","decc=1")
-If you're using Dec C as your C compiler (you are on all alphas), add
-/Macro=("decc=1")
-If Vac C is your default C compiler and you want to use Dec C, add
-/Macro=("CC=CC/DECC") (Don't forget the /macro=("decc=1")
-If Dec C is your default C compiler and you want to use Vax C, add
-/Macro=("CC=CC/VAXC")
-If you want Socket support and are using the SOCKETSHR socket library, add
-/Macro=("SOCKETSHR_SOCKETS=1")
-If you want Socket support and are using the Dec C RTL socket interface
-(You must be using Dec C for this), add /Macro=("DECC_SOCKETS=1")
-
-If you have multiple /macro= items, combine them together in one /Macro=()
-switch, with all the options inside the parentheses separated by commas.
-
-Samples:
-
-VMS AXP, with Socketshr sockets:
-
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("decc=1","__AXP__=1","SOCKETSHR_SOCKETS=1")
-
-VMS AXP with no sockets
-
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("decc=1","__AXP__=1")
+* Building Perl
 
-VMS AXP with the Dec C RTL sockets
+Building perl has two steps, configuration and compilation.
 
-$MMS/DESCRIP=[.VMS]/Macro=("decc=1","__AXP__=1","DECC_SOCKETS=1")
+To configure perl (a necessary first step), issue the command
 
-VMS VAX with default system compiler, no sockets
+@CONFIGURE
 
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS
+from the top of an unpacked perl directory. You'll be asked a series of
+questions, and the answers to them (along with the capabilities of your C
+compiler and network stack) will determine how perl's built.
 
-VMS VAX with Dec C compiler, no sockets
-
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("CC=CC/DECC","decc=1")
-
-VMS VAX with Dec C compiler, Dec C RTL sockets
-
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("CC=CC/DECC","decc=1","DECC_SOCKETS=1")
-
-VMS VAX with Dec C compiler, Socketshr sockets
-
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("CC=CC/DECC","decc=1","SOCKETSHR_SOCKETS=1")
-
-Using Dec C is recommended over Vax C. The compiler is newer, and
-supported. (Vax C was decommisioned around 1993) Various older versions had
-some gotchas, so if you're using a version older than 5.2, check the Dec C
-Issues section.
+If you've got multiple C compilers installed, you'll have your choice of
+which one to use. Using Dec C is recommended over Vax C--the compiler is
+newer, and supported. (Vax C was decommisioned around 1993) Various older
+versions had some gotchas, so if you're using a version older than 5.2,
+check the Dec C Issues section.
 
 We'll also point out that Dec C will get you at least a ten-fold increase
 in line-oriented IO over Vax C. The optimizer is amazingly better, too. If
 you can use Dec C, then you *really*, *really* should.
 
+The configuration script will print out, at the very end, the MMS or MMK
+command you need to compile perl. Issue it (exactly as printed) to start
+the build.
 
 Once you issue your MMS command, sit back and wait. Perl should build and
 link without a problem. If it doesn't, check the Gotchas to watch out for
 section. If that doesn't help, send some mail to the VMSPERL mailing list.
 Instructions are in the Mailing Lists section.
 
+As a handy shortcut, the command:
+
+@CONFIGURE "-des"
+
+(note the quotes and case) will choose reasonable defaults. (It takes Dec C
+over Vax C, Dec C sockets over SOCKETSHR sockets, and either over no sockets)
+
 * Testing Perl
 
 Once Perl has built cleanly, you need to test it to make sure things work.
@@ -116,11 +94,11 @@ compile Perl and add the word "test" to the end, like this:
 
 Compile Command:
 
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1")
+$MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1")
 
 Test Command:
 
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1") test
+$MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1") test
 
 MMS will run all the tests. This may take some time, as there are a lot of
 tests. If any tests fail, there will be a note made on-screen. At the end
@@ -137,16 +115,14 @@ confident you are, make a bug report to the VMSPerl mailing list.
 If one or more tests fail, you can get more info on the failure by issuing
 this command sequence:
 
-$ SET DEFAULT [.T]
-$ @[-.VMS]TEST .typ -v [.subdir]test.T
+$ @[.VMS]TEST .typ "-v" [.subdir]test.T
 
 where ".typ" is the file type of the Perl images you just built (if you
 didn't do anything special, use .EXE), and "[.subdir]test.T" is the test
 that failed. For example, with a normal Perl build, if the test indicated
 that [.op]time failed, then you'd do this:
 
-$ SET DEFAULT [.T]
-$ @[-.VMS]TEST .EXE -v [.OP]TIME.T
+$ @[.VMS]TEST .EXE "-v" [.OP]TIME.T
 
 When you send in a bug report for failed tests, please include the output
 from this command, which is run from the main source directory:
@@ -164,11 +140,11 @@ compile and add "realclean" at the end, like this:
 
 Compile Command:
 
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1")
+$MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1")
 
 Cleanup Command:
 
-$MMS/DESCRIP=[.VMS]DESCRIP.MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1") realclean
+$MMS/Macro=("__AXP__=1","decc=1","DECCRTL_SOCKETS=1") realclean
 
 If you don't do this, things may behave erratically. They might not, too,
 so it's best to be sure and do it.
@@ -176,38 +152,37 @@ so it's best to be sure and do it.
 * Installing Perl
 
 There are several steps you need to take to get Perl installed and
-running. At some point we'll have a working install in DESCRIP.MMS, but for
-right now the procedure's manual, and goes like this.
+running.
 
 1) Create a directory somewhere and define the concealed logical PERL_ROOT
 to point to it. For example, DEFINE/TRANS=(CONC,TERM) PERL_ROOT dka200:[perl.]
 
-2) Copy perl.exe into PERL_ROOT:[000000]
+2) Run the install script via:
+
+MMS install
+
+or
 
-3) Copy everything in [.LIB] and [.UTILS] (including all the
-subdirectories!) to PERL_ROOT:[LIB] and PERL_ROOT:[UTILS].
+MMK install
 
-4) Either copy PERLSHR.EXE to SYS$SHARE, or to somewhere globally accessble
-and define the logical PERLSHR to point to it (DEFINE PERLSHR
-PERL_ROOT:[000000]PERLSHR.EXE or something like that). The PerlShr image
-should have W:RE protections on it. (Just W:E triggers increased security in
-the image activator. Not a huge problem, but Perl will need to have any
-other shared image it accesses INSTALLed. It's a huge pain, so don't unless
-you know what you're doing)
+If for some reason it complains about target INSTALL being up to date,
+throw a /FORCE switch on the MMS or MMK command.
 
-5) Either define the symbol PERL somewhere, such as
+3) Either define the symbol PERL somewhere, such as
 SYS$MANAGER:SYLOGIN.COM, to be "PERL :== $PERL_ROOT:[000000]PERL.EXE", or
-install Perl into DCLTABLES.EXE )Check out the section "Installing Perl
+install Perl into DCLTABLES.EXE (Check out the section "Installing Perl
 into DCLTABLES" for more info), or put the image in a directory that's in
 your DCL$PATH (if you're using VMS 6.2 or higher).
 
-6) Optionally define the command PERLDOC as 
+4) Optionally define the command PERLDOC as 
 PERLDOC :== $PERL_ROOT:[000000]PERL PERL_ROOT:[LIB.POD]PERLDOC.COM -T
+Note that if you wish to use most as a pager please see
+ftp://space.mit.edu/pub/davis/ for both most and slang.
 
-7) Optionally define the command PERLBUG (the Perl bug report generator) as
+5) Optionally define the command PERLBUG (the Perl bug report generator) as
 PERLBUG :== $PERL_ROOT:[000000]PERL PERL_ROOT:[LIB]PERLBUG.COM"
 
-8) Optionally define the command POD2MAN (Converts POD files to nroff
+6) Optionally define the command POD2MAN (Converts POD files to nroff
 source suitable for converting to man pages. Also quiets complaints during
 module builds) as
 
@@ -290,17 +265,16 @@ PERLBUG@PERL.COM.
 * Gotchas to watch out for
 
 Probably the single biggest gotcha in compiling Perl is giving the wrong
-switches to MMS/MMK when you build. If Perl's building oddly, double-check
-your switches. If you're on a VAX, be sure to add a /Macro=("decc=1") if
-you're using Dec C, and if you're on an alpha and using MMS, you'll need a
-/Macro=("__AXP__=1")
+switches to MMS/MMK when you build. Use *exactly* what the configure script
+prints!
 
 The next big gotcha is directory depth. Perl can create directories four
 and five levels deep during the build, so you don't have to be too deep to
 start to hit the RMS 8 level point. It's best to do a
 $DEFINE/TRANS=(CONC,TERM) PERLSRC disk:[dir.dir.dir.perldir.]"  (note the
 trailing period) and $SET DEFAULT PERLSRC:[000000] before building. Perl
-modules can be just as bad (or worse), so watch out for them, too.
+modules can be just as bad (or worse), so watch out for them, too. The
+configuration script will warn if it thinks you're too deep.
 
 Finally, the third thing that bites people is leftover pieces from a failed
 build. If things go wrong, make sure you do a "(MMK|MMS|make) realclean"