summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorreinoud <reinoud@pkgsrc.org>2007-02-02 15:23:16 +0000
committerreinoud <reinoud@pkgsrc.org>2007-02-02 15:23:16 +0000
commit1089758c8c1a4ea1ee3f9af46bcb958d91f7d856 (patch)
treecdb158c5b9b4d006f864e84ddc8c603f7308fae1
parent6209dee616214c461535b9d31097c42362267715 (diff)
downloadpkgsrc-1089758c8c1a4ea1ee3f9af46bcb958d91f7d856.tar.gz
Initial commit of pkgsrc crosscompile HOWTO. It till needs some tweaking
and could eventually be incorporated into the guide.
-rw-r--r--doc/HOWTO-crosscompile90
1 files changed, 90 insertions, 0 deletions
diff --git a/doc/HOWTO-crosscompile b/doc/HOWTO-crosscompile
new file mode 100644
index 00000000000..6685327b324
--- /dev/null
+++ b/doc/HOWTO-crosscompile
@@ -0,0 +1,90 @@
+Crosscompiling with distcc HOWTO
+================================
+
+Purpose:
+--------
+croscompiling of sourcecode in general including NetBSD's source
+tree and NetBSD's pkgsrc packages using `pkgsrc/devel/distcc'
+
+Note that this current setup is not intended for build builds as it might
+confuse the buildbuild system.
+
+Target machine setup:
+---------------------
+1) install `pkgsrc/devel/distcc' package.
+
+2) install helper script "use-distcc" in f.e. /usr/local/bin/:
+ ---------
+ #!/usr/pkg/bin/tcsh
+
+ setenv PATH "/usr/distcc/bin:$PATH"
+ setenv CC gcc
+ ---------
+
+3) create directory "/usr/distcc/bin" contents with softlinks :
+ lrwxr-xr-x 1 root wheel 20 Sep 16 02:58 c++@ -> ../../pkg/bin/distcc
+ lrwxr-xr-x 1 root wheel 20 Sep 16 02:57 cc@ -> ../../pkg/bin/distcc
+ lrwxr-xr-x 1 root wheel 20 Sep 16 02:58 g++@ -> ../../pkg/bin/distcc
+ lrwxr-xr-x 1 root wheel 20 Sep 16 02:57 gcc@ -> ../../pkg/bin/distcc
+
+
+Helper machine setup:
+---------------------
+1) install `pkgsrc/devel/distcc' package.
+
+2) create a crosscompiler to compile from any architecture to NetBSD/sparc,
+go to the NetBSD src dir and run :
+ ./build.sh -a sparc -m sparc -T /usr/gcc-cross-sparc/ tools
+
+this will create a directory called /usr/gcc-cross-sparc/ with the
+crosscompilation tools.
+
+3) install helper script "START-distcc'
+ ------------
+ #!/usr/pkg/bin/tcsh
+
+ setenv PATH "/usr/gcc-cross-sparc/sparc--netbsdelf/bin/:$PATH"
+ setenv DISTCC_VERBOSE 1
+
+ distccd -a 192.168.0.137/24 --listen 192.168.0.137 -p 3632
+ -----------
+this will start the `distcc' daemon to listen on the 192.168.0/24 network
+and listen on 192.168.0.137 specificly and on port 3632 (why doesn't it do
+this on default?)
+
+
+Compilation of sources (not pkgsrc):
+------------------------------------
+1) on each helper machine run the `START-distcc' script
+
+2) on the target machine (replace helper1, helper2 etc. by the names/ip
+addresses of the helper machines) :
+ -----------
+ source /usr/local/bin/use-distcc
+ setenv DISTCC_HOSTS "helper1 helper2 helper3"
+ cd .../sourcedir
+ make -j2 target
+ -----------
+
+
+Compilation of pkgsrc packages:
+-------------------------------
+1) on each helper machine run the `START-distcc' script
+
+2) on the target machine, do NOT run the `use-distcc' script, go to the
+package dir and set :
+
+set the helpers (,lzo addition sets compression of the data transport):
+ setenv DISTCC_HOSTS "helper1 helper2 helper3,lzo"
+
+instruct pkgsrc to use distcc:
+ setenv PKGSRC_COMPILER "distcc gcc"
+
+set the concurrency level (not all packages allow this)
+ setenv BUILD_MAKE_FLAGS "-j2"
+
+compile/update package
+ make update
+
+thats all :)
+