summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2001-06-18 22:17:05 +0000
committerJarkko Hietaniemi <jhi@iki.fi>2001-06-18 22:17:05 +0000
commit93bc48faf83afc24e3501cff22973c0d6498c26e (patch)
tree056fe16152d9e17bd26318828e2ca6a5198c782b /INSTALL
parentd53fedae18f2c5130f792a59a11b6dd17d5eceb3 (diff)
downloadperl-93bc48faf83afc24e3501cff22973c0d6498c26e.tar.gz
More cross-compilation defaults gleaned from -Dcc
if it is CPU-OS-gcc. p4raw-id: //depot/perl@10690
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL40
1 files changed, 29 insertions, 11 deletions
diff --git a/INSTALL b/INSTALL
index 6bac2a8180..f6801f759f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1748,13 +1748,20 @@ File::Glob dynamically, for extensions one needs MakeMaker and
MakeMaker is not yet cross-compilation aware, and neither is
the main Makefile.
+Since the functionality is so lacking, it must be considered
+highly experimental. It is so experimental that it is not even
+mentioned during an interactive Configure session, a direct comand
+line invocation (detailed shortly) is required to access the
+functionality.
+
NOTE: Perl is routinely built using cross-compilation
in the EPOC environment but the solutions from there
- can't directly be used.
+ can't directly be used elsewhere.
The one environment where cross-compilation has successfully been used
as of this writing is the Compaq iPAQ running ARM Linux. The build
-host was Intel Linux, the networking setup was PPP + SSH, see
+host was Intel Linux, the networking setup was PPP + SSH. The exact
+setup details are beyond the scope of this document, see
http://www.handhelds.org/ for more information.
To run Configure in cross-compilation mode the basic switch is
@@ -1781,18 +1788,18 @@ happens), supply Configure with
-Dtargethost=so.me.ho.st -Dtargetdir=/tar/get/dir
The targethost is what e.g. ssh will use as the hostname, the targetdir
-must exists (the scripts won't create it). You can also specify a
-username to use
+must exist (the scripts won't create it), the targetdir defaults to /tmp.
+You can also specify a username to use for ssh/rsh logins
-Dtargetuser=luser
but in case you don't, "root" will be used.
-Because this is a cross-compilation effort, you will also need to
-specify which target environment and which compilation environment to
-use. This includes the compiler, the header files, and the libraries.
-In the below we will use the usual settings for the iPAQ
-cross-compilation environment:
+Because this is a cross-compilation effort, you will also need to specify
+which target environment and which compilation environment to use.
+This includes the compiler, the header files, and the libraries.
+In the below we use the usual settings for the iPAQ cross-compilation
+environment:
-Dtargetarch=arm-linux
-Dcc=arm-linux-gcc
@@ -1803,7 +1810,10 @@ cross-compilation environment:
If the name of the C<cc> has the usual GNU C semantics for cross
compilers, that is, CPU-OS-gcc, the names of the C<ar>, C<nm>, and
C<ranlib> will also be automatically chosen to be CPU-OS-ar and so on.
-(The C<ld> requires more thought and will be chosen later by Configure.)
+(The C<ld> requires more thought and will be chosen later by Configure
+as appropriate.) Also, in this case the incpth, libpth, and usrinc
+will be guessed by Configure (unless explicitly set to something else,
+in which case Configure's guesses with be appended).
In addition to the default execution/transfer methods you can also
choose B<rsh> for execution, and B<rcp> or B<cp> for transfer,
@@ -1814,7 +1824,8 @@ for example:
Putting it all together:
sh ./Configure -des -Dusecrosscompile \
- -Dtargethost=so.me.ho.st -Dtargetdir=/tar/get/dir \
+ -Dtargethost=so.me.ho.st \
+ -Dtargetdir=/tar/get/dir \
-Dtargetuser=root \
-Dtargetarch=arm-linux \
-Dcc=arm-linux-gcc \
@@ -1823,6 +1834,13 @@ Putting it all together:
-Dlibpth=/skiff/local/arm-linux/lib \
-D...
+or if you are happy with the defaults
+
+ sh ./Configure -des -Dusecrosscompile \
+ -Dtargethost=so.me.ho.st \
+ -Dcc=arm-linux-gcc \
+ -D...
+
=head1 make test
This will run the regression tests on the perl you just made. If