perlamiga - Perl under Amiga OS
+=head1 NOTE
+
+B<Perl 5.8.0 cannot be built in AmigaOS. You can use either the
+maintenance release Perl 5.6.1 or the development release Perl 5.7.2
+in AmigaOS. See L</"PERL 5.8.0 BROKEN IN AMIGAOS"> if you want to help
+fixing this problem.>
+
=head1 SYNOPSIS
One can read this document in the following formats:
A recent version of perl for the Amiga can be found at the Geek Gadgets
section of the Aminet:
-
- http://www.aminet.net/~aminet/dirs/dev_gg.html
+
+ http://www.aminet.net/~aminet/dev/gg
=cut
- GNU info files
- LaTeX docs
BUILD
- - Prerequisites
+ - Build Prerequisites
- Getting the perl source
- Application of the patches
- Making
=head1 DESCRIPTION
-=head2 Prerequisites
+=head2 Prerequisites for Compiling Perl on AmigaOS
=over 6
You need the Unix emulation for AmigaOS, whose most important part is
B<ixemul.library>. For a minimum setup, get the latest versions
-of the following packages from the Aminet archives (http://www.aminet.net/~aminet/):
+of the following packages from the Aminet archives
+( http://www.aminet.net/~aminet/ ):
ixemul-bin
ixemul-env-bin
perl foo arg1 arg2 arg3
If you want to specify perl options C<-my_opts> to the perl itself (as
-opposed to to your program), use
+opposed to your program), use
perl -my_opts foo arg1 arg2 arg3
=over 6
-=item fork()
+=item *
+
+fork()
+
+=item *
+
+some features of the UNIX filesystem regarding link count and file dates
+
+=item *
-=item some features of the UNIX filesystem regarding link count and file dates
+inplace operation (the -i switch) without backup file
-=item inplace operation (the -i switch) without backup file
+=item *
-=item umask() works, but the correct permissions are only set when the file is
- finally close()d
+umask() works, but the correct permissions are only set when the file is
+finally close()d
=back
=head1 Accessing documentation
-=head2 Manpages
+=head2 Manpages for Perl on AmigaOS
If you have C<man> installed on your system, and you installed perl
manpages, use something like this:
above - to avoid shadowing by the I<less(1) manpage>.
-=head2 B<HTML>
+=head2 Perl HTML Documentation on AmigaOS
If you have some WWW browser available, you can build B<HTML> docs.
Cd to directory with F<.pod> files, and do like this
Alternatively you may be able to get these docs prebuilt from C<CPAN>.
-=head2 B<GNU> C<info> files
+=head2 Perl GNU Info Files on AmigaOS
Users of C<Emacs> would appreciate it very much, especially with
C<CPerl> mode loaded. You need to get latest C<pod2info> from C<CPAN>,
or, alternately, prebuilt info pages.
-=head2 C<LaTeX> docs
+=head2 Perl LaTeX Documentation on AmigaOS
-can be constructed using C<pod2latex>.
+Can be constructed using C<pod2latex>.
-=head1 BUILD
+=head1 BUILDING PERL ON AMIGAOS
Here we discuss how to build Perl under AmigaOS.
-=head2 Prerequisites
+=head2 Build Prerequisites for Perl on AmigaOS
You need to have the latest B<ixemul> (Unix emulation for Amiga)
from Aminet.
-=head2 Getting the perl source
+=head2 Getting the Perl Source for AmigaOS
You can either get the latest perl-for-amiga source from Ninemoons
and extract it with:
or get the official source from CPAN:
- http://www.perl.com/CPAN/src/5.0
+ http://www.cpan.org/src/5.0
Extract it like this
is normal and expected. (There is a conflict with a similarly-named file
F<configure>, but it causes no harm.)
-=head2 Making
-
-=over 4
-
-=item *
-
-remember to use a healthy sized stack (I used 2000000)
-
-=item *
-
-your PATH environment variable must include /bin (e.g. ".:/bin" is good)
-(or, more precisely, it must include the directory where you have your
-basic UNIX utilities like test, cat, sed, and so on)
+=head2 Making Perl on AmigaOS
-=item *
-
- sh Configure -Dprefix=/ade -Dloclibpth=/ade/lib
-
-=item *
-
-fix makedepend
-
- In the file 'makedepend' there are three spots like this `$cat ...`:
- a for loop near line 75, an egrep near line 161, and a for loop near
- line 175. In all those spots using an editor change the $cat to
- /bin/cat.
-
-=item *
-
-now type make depend
-
- When the make depend has ended load the gnumakefile into
- an editor and go to the end of the file.
+Remember to use a hefty wad of stack (I use 2000000)
- Move upwards in the file until you reach av.o: EXTERN.h
- and delete all lines down to # WARNING: Put....
+ sh configure.gnu --prefix=/gg
-=item *
-
-now go to the x2p directory
-
- Load the gnumakefile into an editor.
+Now type
- Go to the end moveup until you reach hash.o: EXTERN.h
- and delete all lines dowonwards until you reach a line saying
-
- # WARNING: Put nothing....
-
-=item *
+ make depend
Now!
make
-=back
-
-=head2 Testing
+=head2 Testing Perl on AmigaOS
Now run
F<io/pipe.t>, F<op/fork.t>, F<lib/filehand.t>, F<lib/open2.t>, F<lib/open3.t>,
F<lib/io_pipe.t>, F<lib/io_sock.t>
-=head2 Installing the built perl
+=head2 Installing the built Perl on AmigaOS
Run
make install
+=head1 PERL 5.8.0 BROKEN IN AMIGAOS
+
+As told above, Perl 5.6.1 was still good in AmigaOS, as was 5.7.2.
+After Perl 5.7.2 (change #11423, see the Changes file, and the file
+pod/perlhack.pod for how to get the individual changes) Perl dropped
+its internal support for vfork(), and that was very probably the step
+that broke AmigaOS (since the ixemul library has only vfork).
+The build finally fails when the ext/DynaLoader is being built, and
+PERL ends up as "0" in the produced Makefile, trying to run "0" does
+not quite work. Also, executing miniperl in backticks seems to
+generate nothing: very probably related to the (v)fork problems.
+B<Fixing the breakage requires someone quite familiar with the ixemul
+library, and how one is supposed to run external commands in AmigaOS
+without fork().>
+
=head1 AUTHORS
Norbert Pueschel, pueschel@imsdd.meb.uni-bonn.de