Should fix the infinite loop on a dynamic %ENV fetch
[p5sagit/p5-mst-13.2.git] / Cross / README
CommitLineData
136febd5 1Building for arm-linux
2----------------------
58a21a9b 3
136febd5 4The files in this directory add another cross-compilation
5target to the Perl buildsystem. It was built as a part of
6the Open Zaurus (http://www.openzaurus.com/) distribution.
7Most / All of the arm compiler optimisations are "borrowed"
8from this excellent project.
6a809565 9
10The main target is arm-linux but I have also managed to
136febd5 11successfully cross-compile Perl for Solaris x86 using the same
6a809565 12buildsystem.
13
14We are currently dependent on an existing working local copy of
136febd5 15Perl ** of the same version and revision ** which is available
16as /usr/bin/perl.
6a809565 17
136febd5 18You need a working and tested cross-compiler for your build
19and target combination. The binary directory must be in
6a809565 20your path.
21
136febd5 221) You should be reading me (README) in perl-5.8.1/Cross
6a809565 23
242) Make sure you are in the Cross directory.
25
263) Edit the file 'config' to contain your target platform information.
27
284) make patch ## This will patch the existing source-tree.
295) make perl ## Will make perl
30
136febd5 31Your built Perl environment is in install_me_here/ in your build
32directory. From here you can package and deploy as you wish.
33
6a809565 34The Obvious Ommissions
35----------------------
36
136febd5 37This does NOT perform any installation as site installation method
38will be dependent on the target architecture and OS.
6a809565 39
136febd5 40make test will NOT work as the binaries and libraries will not execute
41on your BUILD machine.
6a809565 42
43Due to space limitations on the Zaurus (it's a PDA) we do not provide
44documentation in the core - Therefore man pages are not even generated.
45
136febd5 46Other Targets (For Developers)
47------------------------------
48
49It is possible to extend the cross-compilation to other targets.
50We have sucessfully compiled for the target solaris2.8/x86
51on linux/x86 build system.
52
53To attempt a cross-compile for another target using the methods
54in this directory:
55
561) Copy the Perl source code onto your TARGET machine.
572) Execute sh Configure as normal and configure as required,
58 do not "make".
593) Copy the config.sh file that is generated to your BUILD
60 machine and place it in the Cross directory with the
61 filename config.sh-ARCH-OS. For example,
62 config.sh-i386-pc-solaris2.8. For the appropriate ARCH
63 and OS please refer to your cross-compiler documentation.
644) Edit Cross/config to reflect your new target and continue
65 with build as above.
66
67Should you wish to produce optimised binaries for different
68architectures you can add the appropriate compiler flags to
69the Makefile in a new ifeq ($(ARCH),...) ... endif block.
70
71Please refer to your cross-compiler documentation for details.
72
73
6a809565 74 Note that the Cross/ directory is also used by a different
75 cross-compilation setup described in the INSTALL file, and
76 executed by Configure. There should be no conflicts since
77 it is unlikely both that cross-compilation setups are used
78 simultaneously.
79
80Enjoy!
81
82References
e42fa77b 83----------
6a809565 84Redvers Davies <red@criticalintegration.com>
85Open Zaurus http://www.openzaurus.org/
86Perl OZ Packages http://www.openzaurus.org/official/testing/feed/