Commit | Line | Data |
---|---|---|
136febd5 JH |
1 | Building for arm-linux |
2 | ---------------------- | |
58a21a9b | 3 | |
136febd5 JH |
4 | The files in this directory add another cross-compilation |
5 | target to the Perl buildsystem. It was built as a part of | |
464a08e7 | 6 | the Open Zaurus (http://www.openzaurus.org/) distribution. |
136febd5 JH |
7 | Most / All of the arm compiler optimisations are "borrowed" |
8 | from this excellent project. | |
6a809565 | 9 | |
e7a3c61b JH |
10 | (Further discussion about cross-compiling Perl in the top level |
11 | INSTALL file, see the section "Cross-compilation".) | |
12 | ||
6a809565 | 13 | The main target is arm-linux but I have also managed to |
136febd5 | 14 | successfully cross-compile Perl for Solaris x86 using the same |
6a809565 JH |
15 | buildsystem. |
16 | ||
17 | We are currently dependent on an existing working local copy of | |
136febd5 JH |
18 | Perl ** of the same version and revision ** which is available |
19 | as /usr/bin/perl. | |
6a809565 | 20 | |
136febd5 JH |
21 | You need a working and tested cross-compiler for your build |
22 | and target combination. The binary directory must be in | |
6a809565 JH |
23 | your path. |
24 | ||
e7a3c61b | 25 | 1) You should be reading me (README) in perl-5.x.y/Cross |
6a809565 JH |
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 | ||
136febd5 JH |
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 | ||
608969de VK |
37 | Omissions |
38 | ---------- | |
6a809565 | 39 | |
608969de | 40 | This does NOT perform any installation. |
6a809565 | 41 | |
608969de | 42 | Make test will NOT work. |
6a809565 | 43 | |
608969de | 44 | We do not provide documentation in the core, man pages are not generated. |
6a809565 | 45 | |
136febd5 JH |
46 | Other Targets (For Developers) |
47 | ------------------------------ | |
48 | ||
49 | It is possible to extend the cross-compilation to other targets. | |
8534470b | 50 | We have successfully compiled for the target solaris2.8/x86 |
136febd5 JH |
51 | on linux/x86 build system. |
52 | ||
53 | To attempt a cross-compile for another target using the methods | |
54 | in this directory: | |
55 | ||
56 | 1) Copy the Perl source code onto your TARGET machine. | |
57 | 2) Execute sh Configure as normal and configure as required, | |
58 | do not "make". | |
59 | 3) 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. | |
64 | 4) Edit Cross/config to reflect your new target and continue | |
65 | with build as above. | |
66 | ||
67 | Should you wish to produce optimised binaries for different | |
68 | architectures you can add the appropriate compiler flags to | |
69 | the Makefile in a new ifeq ($(ARCH),...) ... endif block. | |
70 | ||
e4568ebb | 71 | |
136febd5 JH |
72 | Please refer to your cross-compiler documentation for details. |
73 | ||
74 | ||
6a809565 JH |
75 | Note that the Cross/ directory is also used by a different |
76 | cross-compilation setup described in the INSTALL file, and | |
77 | executed by Configure. There should be no conflicts since | |
78 | it is unlikely both that cross-compilation setups are used | |
79 | simultaneously. | |
80 | ||
81 | Enjoy! | |
82 | ||
83 | References | |
e42fa77b | 84 | ---------- |
6a809565 JH |
85 | Redvers Davies <red@criticalintegration.com> |
86 | Open Zaurus http://www.openzaurus.org/ |