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