Commit | Line | Data |
---|---|---|
8fde188e GS |
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. | |
9d116dd7 | 6 | |
8fde188e GS |
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 | |
9d116dd7 JH |
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 | ||
8fde188e GS |
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 | ||
9d116dd7 JH |
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 | ||
8fde188e GS |
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 * | |
9d116dd7 | 73 | |
8fde188e GS |
74 | You may see a "WHOA THERE!!!" message for $d_shmatprototype |
75 | it is OK to keep the recommended "define". | |
9d116dd7 | 76 | |
8fde188e | 77 | =item * |
9d116dd7 | 78 | |
8fde188e GS |
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. | |
9d116dd7 | 82 | |
8fde188e | 83 | =item * |
9d116dd7 | 84 | |
8fde188e GS |
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). | |
9d116dd7 | 92 | |
8fde188e GS |
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 | |
64d55c8a | 112 | |
9d116dd7 JH |
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 | |
a31a806a | 118 | of script invocation. |
9d116dd7 JH |
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 | ||
8fde188e GS |
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 | |
4375e838 | 145 | using perl on EBCDIC platforms. To subscribe, send a message of: |
9d116dd7 JH |
146 | |
147 | subscribe perl-mvs | |
148 | ||
149 | to majordomo@perl.org. | |
150 | ||
8fde188e GS |
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 |