From 1089758c8c1a4ea1ee3f9af46bcb958d91f7d856 Mon Sep 17 00:00:00 2001 From: reinoud Date: Fri, 2 Feb 2007 15:23:16 +0000 Subject: Initial commit of pkgsrc crosscompile HOWTO. It till needs some tweaking and could eventually be incorporated into the guide. --- doc/HOWTO-crosscompile | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 doc/HOWTO-crosscompile (limited to 'doc') 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 :) + -- cgit v1.2.3