| 1 | If you read this file _as_is_, just ignore the funny characters you | 
|---|
| 2 | see. It is written in the POD format (see perlpod manpage) which is | 
|---|
| 3 | specially designed to be readable as is. | 
|---|
| 4 |  | 
|---|
| 5 | =head1 NAME | 
|---|
| 6 |  | 
|---|
| 7 | perlamiga - Perl under Amiga OS | 
|---|
| 8 |  | 
|---|
| 9 | =head1 NOTE | 
|---|
| 10 |  | 
|---|
| 11 | B<Perl 5.8.0 cannot be built in AmigaOS.  You can use either the | 
|---|
| 12 | maintenance release Perl 5.6.1 or the development release Perl 5.7.2 | 
|---|
| 13 | in AmigaOS.  See L</"PERL 5.8.0 BROKEN IN AMIGAOS"> if you want to help | 
|---|
| 14 | fixing this problem.> | 
|---|
| 15 |  | 
|---|
| 16 | =head1 SYNOPSIS | 
|---|
| 17 |  | 
|---|
| 18 | One can read this document in the following formats: | 
|---|
| 19 |  | 
|---|
| 20 | man perlamiga | 
|---|
| 21 | multiview perlamiga.guide | 
|---|
| 22 |  | 
|---|
| 23 | to list some (not all may be available simultaneously), or it may | 
|---|
| 24 | be read I<as is>: either as F<README.amiga>, or F<pod/perlamiga.pod>. | 
|---|
| 25 |  | 
|---|
| 26 | A recent version of perl for the Amiga can be found at the Geek Gadgets | 
|---|
| 27 | section of the Aminet: | 
|---|
| 28 |  | 
|---|
| 29 | http://www.aminet.net/~aminet/dev/gg/index.html | 
|---|
| 30 |  | 
|---|
| 31 | =cut | 
|---|
| 32 |  | 
|---|
| 33 | Contents | 
|---|
| 34 |  | 
|---|
| 35 | perlamiga - Perl under Amiga OS | 
|---|
| 36 |  | 
|---|
| 37 | NAME | 
|---|
| 38 | SYNOPSIS | 
|---|
| 39 | DESCRIPTION | 
|---|
| 40 | -  Prerequisites | 
|---|
| 41 | -  Starting Perl programs under AmigaOS | 
|---|
| 42 | -  Shortcomings of Perl under AmigaOS | 
|---|
| 43 | INSTALLATION | 
|---|
| 44 | Accessing documentation | 
|---|
| 45 | -  Manpages | 
|---|
| 46 | -  HTML | 
|---|
| 47 | -  GNU info files | 
|---|
| 48 | -  LaTeX docs | 
|---|
| 49 | BUILD | 
|---|
| 50 | -  Build Prerequisites | 
|---|
| 51 | -  Getting the perl source | 
|---|
| 52 | -  Application of the patches | 
|---|
| 53 | -  Making | 
|---|
| 54 | -  Testing | 
|---|
| 55 | -  Installing the built perl | 
|---|
| 56 | AUTHOR | 
|---|
| 57 | SEE ALSO | 
|---|
| 58 |  | 
|---|
| 59 | =head1 DESCRIPTION | 
|---|
| 60 |  | 
|---|
| 61 | =head2 Prerequisites for Compiling Perl on AmigaOS | 
|---|
| 62 |  | 
|---|
| 63 | =over 6 | 
|---|
| 64 |  | 
|---|
| 65 | =item B<Unix emulation for AmigaOS: ixemul.library> | 
|---|
| 66 |  | 
|---|
| 67 | You need the Unix emulation for AmigaOS, whose most important part is | 
|---|
| 68 | B<ixemul.library>. For a minimum setup, get the latest versions | 
|---|
| 69 | of the following packages from the Aminet archives | 
|---|
| 70 | ( http://www.aminet.net/~aminet/ ): | 
|---|
| 71 |  | 
|---|
| 72 | ixemul-bin | 
|---|
| 73 | ixemul-env-bin | 
|---|
| 74 | pdksh-bin | 
|---|
| 75 |  | 
|---|
| 76 | Note also that this is a minimum setup; you might want to add other | 
|---|
| 77 | packages of B<ADE> (the I<Amiga Developers Environment>). | 
|---|
| 78 |  | 
|---|
| 79 | =item B<Version of Amiga OS> | 
|---|
| 80 |  | 
|---|
| 81 | You need at the very least AmigaOS version 2.0. Recommended is version 3.1. | 
|---|
| 82 |  | 
|---|
| 83 | =back | 
|---|
| 84 |  | 
|---|
| 85 | =head2 Starting Perl programs under AmigaOS | 
|---|
| 86 |  | 
|---|
| 87 | Start your Perl program F<foo> with arguments C<arg1 arg2 arg3> the | 
|---|
| 88 | same way as on any other platform, by | 
|---|
| 89 |  | 
|---|
| 90 | perl foo arg1 arg2 arg3 | 
|---|
| 91 |  | 
|---|
| 92 | If you want to specify perl options C<-my_opts> to the perl itself (as | 
|---|
| 93 | opposed to your program), use | 
|---|
| 94 |  | 
|---|
| 95 | perl -my_opts foo arg1 arg2 arg3 | 
|---|
| 96 |  | 
|---|
| 97 | Alternately, you can try to get a replacement for the system's B<Execute> | 
|---|
| 98 | command that honors the #!/usr/bin/perl syntax in scripts and set the s-Bit | 
|---|
| 99 | of your scripts. Then you can invoke your scripts like under UNIX with | 
|---|
| 100 |  | 
|---|
| 101 | foo arg1 arg2 arg3 | 
|---|
| 102 |  | 
|---|
| 103 | (Note that having *nixish full path to perl F</usr/bin/perl> is not | 
|---|
| 104 | necessary, F<perl> would be enough, but having full path would make it | 
|---|
| 105 | easier to use your script under *nix.) | 
|---|
| 106 |  | 
|---|
| 107 | =head2 Shortcomings of Perl under AmigaOS | 
|---|
| 108 |  | 
|---|
| 109 | Perl under AmigaOS lacks some features of perl under UNIX because of | 
|---|
| 110 | deficiencies in the UNIX-emulation, most notably: | 
|---|
| 111 |  | 
|---|
| 112 | =over 6 | 
|---|
| 113 |  | 
|---|
| 114 | =item * | 
|---|
| 115 |  | 
|---|
| 116 | fork() | 
|---|
| 117 |  | 
|---|
| 118 | =item * | 
|---|
| 119 |  | 
|---|
| 120 | some features of the UNIX filesystem regarding link count and file dates | 
|---|
| 121 |  | 
|---|
| 122 | =item * | 
|---|
| 123 |  | 
|---|
| 124 | inplace operation (the -i switch) without backup file | 
|---|
| 125 |  | 
|---|
| 126 | =item * | 
|---|
| 127 |  | 
|---|
| 128 | umask() works, but the correct permissions are only set when the file is | 
|---|
| 129 | finally close()d | 
|---|
| 130 |  | 
|---|
| 131 | =back | 
|---|
| 132 |  | 
|---|
| 133 | =head1 INSTALLATION | 
|---|
| 134 |  | 
|---|
| 135 | Change to the installation directory (most probably ADE:), and | 
|---|
| 136 | extract the binary distribution: | 
|---|
| 137 |  | 
|---|
| 138 | lha -mraxe x perl-$VERSION-bin.lha | 
|---|
| 139 |  | 
|---|
| 140 | or | 
|---|
| 141 |  | 
|---|
| 142 | tar xvzpf perl-$VERSION-bin.tgz | 
|---|
| 143 |  | 
|---|
| 144 | (Of course you need lha or tar and gunzip for this.) | 
|---|
| 145 |  | 
|---|
| 146 | For installation of the Unix emulation, read the appropriate docs. | 
|---|
| 147 |  | 
|---|
| 148 | =head1 Accessing documentation | 
|---|
| 149 |  | 
|---|
| 150 | =head2 Manpages for Perl on AmigaOS | 
|---|
| 151 |  | 
|---|
| 152 | If you have C<man> installed on your system, and you installed perl | 
|---|
| 153 | manpages, use something like this: | 
|---|
| 154 |  | 
|---|
| 155 | man perlfunc | 
|---|
| 156 | man less | 
|---|
| 157 | man ExtUtils.MakeMaker | 
|---|
| 158 |  | 
|---|
| 159 | to access documentation for different components of Perl. Start with | 
|---|
| 160 |  | 
|---|
| 161 | man perl | 
|---|
| 162 |  | 
|---|
| 163 | Note: You have to modify your man.conf file to search for manpages | 
|---|
| 164 | in the /ade/lib/perl5/man/man3 directory, or the man pages for the | 
|---|
| 165 | perl library will not be found. | 
|---|
| 166 |  | 
|---|
| 167 | Note that dot (F<.>) is used as a package separator for documentation | 
|---|
| 168 | for packages, and as usual, sometimes you need to give the section - C<3> | 
|---|
| 169 | above - to avoid shadowing by the I<less(1) manpage>. | 
|---|
| 170 |  | 
|---|
| 171 |  | 
|---|
| 172 | =head2 Perl HTML Documentation on AmigaOS | 
|---|
| 173 |  | 
|---|
| 174 | If you have some WWW browser available, you can build B<HTML> docs. | 
|---|
| 175 | Cd to directory with F<.pod> files, and do like this | 
|---|
| 176 |  | 
|---|
| 177 | cd /ade/lib/perl5/pod | 
|---|
| 178 | pod2html | 
|---|
| 179 |  | 
|---|
| 180 | After this you can direct your browser the file F<perl.html> in this | 
|---|
| 181 | directory, and go ahead with reading docs. | 
|---|
| 182 |  | 
|---|
| 183 | Alternatively you may be able to get these docs prebuilt from C<CPAN>. | 
|---|
| 184 |  | 
|---|
| 185 | =head2 Perl GNU Info Files on AmigaOS | 
|---|
| 186 |  | 
|---|
| 187 | Users of C<Emacs> would appreciate it very much, especially with | 
|---|
| 188 | C<CPerl> mode loaded. You need to get latest C<pod2info> from C<CPAN>, | 
|---|
| 189 | or, alternately, prebuilt info pages. | 
|---|
| 190 |  | 
|---|
| 191 | =head2 Perl LaTeX Documentation on AmigaOS | 
|---|
| 192 |  | 
|---|
| 193 | Can be constructed using C<pod2latex>. | 
|---|
| 194 |  | 
|---|
| 195 | =head1 BUILDING PERL ON AMIGAOS | 
|---|
| 196 |  | 
|---|
| 197 | Here we discuss how to build Perl under AmigaOS. | 
|---|
| 198 |  | 
|---|
| 199 | =head2 Build Prerequisites for Perl on AmigaOS | 
|---|
| 200 |  | 
|---|
| 201 | You need to have the latest B<ixemul> (Unix emulation for Amiga) | 
|---|
| 202 | from Aminet. | 
|---|
| 203 |  | 
|---|
| 204 | =head2 Getting the Perl Source for AmigaOS | 
|---|
| 205 |  | 
|---|
| 206 | You can either get the latest perl-for-amiga source from Ninemoons | 
|---|
| 207 | and extract it with: | 
|---|
| 208 |  | 
|---|
| 209 | tar xvzpf perl-$VERSION-src.tgz | 
|---|
| 210 |  | 
|---|
| 211 | or get the official source from CPAN: | 
|---|
| 212 |  | 
|---|
| 213 | http://www.cpan.org/src/5.0 | 
|---|
| 214 |  | 
|---|
| 215 | Extract it like this | 
|---|
| 216 |  | 
|---|
| 217 | tar xvzpf perl-$VERSION.tar.gz | 
|---|
| 218 |  | 
|---|
| 219 | You will see a message about errors while extracting F<Configure>. This | 
|---|
| 220 | is normal and expected. (There is a conflict with a similarly-named file | 
|---|
| 221 | F<configure>, but it causes no harm.) | 
|---|
| 222 |  | 
|---|
| 223 | =head2 Making Perl on AmigaOS | 
|---|
| 224 |  | 
|---|
| 225 | Remember to use a hefty wad of stack (I use 2000000) | 
|---|
| 226 |  | 
|---|
| 227 | sh configure.gnu --prefix=/gg | 
|---|
| 228 |  | 
|---|
| 229 | Now type | 
|---|
| 230 |  | 
|---|
| 231 | make depend | 
|---|
| 232 |  | 
|---|
| 233 | Now! | 
|---|
| 234 |  | 
|---|
| 235 | make | 
|---|
| 236 |  | 
|---|
| 237 | =head2 Testing Perl on AmigaOS | 
|---|
| 238 |  | 
|---|
| 239 | Now run | 
|---|
| 240 |  | 
|---|
| 241 | make test | 
|---|
| 242 |  | 
|---|
| 243 | Some tests will be skipped because they need the fork() function: | 
|---|
| 244 |  | 
|---|
| 245 | F<io/pipe.t>, F<op/fork.t>, F<lib/filehand.t>, F<lib/open2.t>, F<lib/open3.t>, | 
|---|
| 246 | F<lib/io_pipe.t>, F<lib/io_sock.t> | 
|---|
| 247 |  | 
|---|
| 248 | =head2 Installing the built Perl on AmigaOS | 
|---|
| 249 |  | 
|---|
| 250 | Run | 
|---|
| 251 |  | 
|---|
| 252 | make install | 
|---|
| 253 |  | 
|---|
| 254 | =head1 PERL 5.8.0 BROKEN IN AMIGAOS | 
|---|
| 255 |  | 
|---|
| 256 | As told above, Perl 5.6.1 was still good in AmigaOS, as was 5.7.2. | 
|---|
| 257 | After Perl 5.7.2 (change #11423, see the Changes file, and the file | 
|---|
| 258 | pod/perlhack.pod for how to get the individual changes) Perl dropped | 
|---|
| 259 | its internal support for vfork(), and that was very probably the step | 
|---|
| 260 | that broke AmigaOS (since the ixemul library has only vfork). | 
|---|
| 261 | The build finally fails when the ext/DynaLoader is being built, and | 
|---|
| 262 | PERL ends up as "0" in the produced Makefile, trying to run "0" does | 
|---|
| 263 | not quite work.  Also, executing miniperl in backticks seems to | 
|---|
| 264 | generate nothing: very probably related to the (v)fork problems. | 
|---|
| 265 | B<Fixing the breakage requires someone quite familiar with the ixemul | 
|---|
| 266 | library, and how one is supposed to run external commands in AmigaOS | 
|---|
| 267 | without fork().> | 
|---|
| 268 |  | 
|---|
| 269 | =head1 AUTHORS | 
|---|
| 270 |  | 
|---|
| 271 | Norbert Pueschel, pueschel@imsdd.meb.uni-bonn.de | 
|---|
| 272 | Jan-Erik Karlsson, trg@privat.utfors.se | 
|---|
| 273 |  | 
|---|
| 274 | =head1 SEE ALSO | 
|---|
| 275 |  | 
|---|
| 276 | perl(1). | 
|---|
| 277 |  | 
|---|
| 278 | =cut | 
|---|