[14489] | 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, [email protected]
|
---|
| 272 | Jan-Erik Karlsson, [email protected]
|
---|
| 273 |
|
---|
| 274 | =head1 SEE ALSO
|
---|
| 275 |
|
---|
| 276 | perl(1).
|
---|
| 277 |
|
---|
| 278 | =cut
|
---|