This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
windows build fixups from uniform DLL name change to perl56.dll
[perl5.git] / README.os390
1 This document is written in pod format hence there are punctuation 
2 characters in in odd places.  Do not worry, you've apparently got 
3 the ASCII->EBCDIC translation worked out correctly.  You can read 
4 more about pod in pod/perlpod.pod or the short summary in the 
5 INSTALL file.
6
7 =head1 NAME
8
9 README.os390 - building and installing Perl for OS/390.
10
11 =head1 SYNOPSIS
12
13 This document will help you Configure, build, test and install Perl
14 on OS/390 Unix System Services.
15
16 =head1 DESCRIPTION
17
18 This is a fully ported perl for OS/390 Release 3, 5 and 6.
19 It may work on other versions, but those are the ones we've 
20 tested it on.
21
22 You may need to carry out some system configuration tasks before 
23 running the Configure script for perl.  
24
25 =head2 Unpacking
26
27 Gunzip/gzip for OS/390 is discussed at:
28
29    http://www.s390.ibm.com/products/oe/bpxqp1.html
30
31 to extract an ASCII tar archive on OS/390, try this:
32
33    pax -o to=IBM-1047,from=ISO8859-1 -r < latest.tar
34
35 =head2 Setup and utilities
36
37 Be sure that your yacc installation is in place including any necessary
38 parser template files. If you have not already done so then be sure to:
39
40   cp /samples/yyparse.c /etc
41
42 This may also be a good time to ensure that your /etc/protocol file 
43 and either your /etc/resolv.conf or /etc/hosts files are in place.
44
45 GNU make for OS/390, which may be required for the build of perl, 
46 is available from:
47
48   http://www.mks.com/s390/gnu/index.htm
49
50 =head2 Configure
51
52 Once you've unpacked the distribution, run "sh Configure" (see INSTALL 
53 for a full discussion of the Configure options).  There is a "hints" file 
54 for os390 that specifies the correct values for most things.  Some things
55 to watch out for include:
56
57 =over 4
58
59 =item *
60
61 Some of the parser default template files in /samples are needed in /etc.
62 In particular be sure that you at least copy /samples/yyparse.c to /etc
63 before running perl's Configure.  This step ensures successful extraction
64 of EBCDIC versions of parser files such as perly.c.
65
66 =item *
67
68 This port doesn't support dynamic loading.  Although
69 OS/390 has support for DLLs, there are some differences
70 that cause problems for perl.
71
72 =item *
73
74 You may see a "WHOA THERE!!!" message for $d_shmatprototype
75 it is OK to keep the recommended "define".
76
77 =item *
78
79 Don't turn on the compiler optimization flag "-O".  There's
80 a bug in either the optimizer or perl that causes perl to
81 not work correctly when the optimizer is on.
82
83 =item *
84
85 Some of the configuration files in /etc used by the
86 networking APIs are either missing or have the wrong
87 names.  In particular, make sure that there's either
88 an /etc/resolv.conf or and /etc/hosts, so that
89 gethostbyname() works, and make sure that the file
90 /etc/proto has been renamed to /etc/protocol (NOT
91 /etc/protocols, as used by other Unix systems).
92
93 =back
94
95 =head2 Build, test, install
96
97 Simply put:
98
99     sh Configure
100     make
101     make test
102
103 if everything looks ok then:
104
105     make install
106
107 this last step may or may not require UID=0 privileges depending
108 on how you answered the questions that Configure asked and whether
109 or not you have write access to the directories you specified.
110
111 =head2 Usage Hints
112
113 When using perl on OS/390 please keep in mind that the EBCDIC and ASCII
114 character sets are different.  Perl builtin functions that may behave
115 differently under EBCDIC are mentioned in the perlport.pod document.
116
117 OpenEdition (UNIX System Services) does not (yet) support the #! means 
118 of script invokation.
119 See:
120
121     head `whence perldoc`
122
123 for an example of how to use the "eval exec" trick to ask the shell to
124 have perl run your scripts for you.
125
126 =head2 Extensions
127
128 You can build xs based extensions to Perl for OS/390 but will need to
129 follow the instructions in ExtUtils::MakeMaker for building statically
130 linked perl binaries.  In most cases people have reported better 
131 results with GNU make rather than the system's /bin/make.
132
133 =head1 AUTHORS
134
135 David Fiander and Peter Prymmer.
136
137 =head1 SEE ALSO
138
139 L<INSTALL>, L<perlport>, L<ExtUtils::MakeMaker>.
140
141 =head2 Mailing list
142
143 The Perl Institute (http://www.perl.org/) maintains a perl-mvs 
144 mailing list of interest to all folks building and/or
145 using perl on EBCDIC platforms.  To subscibe, send a message of:
146
147     subscribe perl-mvs
148
149 to majordomo@perl.org.
150
151 =head1 HISTORY
152
153 This document was originally written by David Fiander for the 5.005
154 release of Perl.
155
156 This document was podified for the 5.005_03 release of perl 11 March 1999.
157
158 =cut