[haiku-commits] r34199 - in haiku/trunk: . build/scripts

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 23 Nov 2009 20:34:56 +0100 (CET)

Author: bonefish
Date: 2009-11-23 20:34:55 +0100 (Mon, 23 Nov 2009)
New Revision: 34199
Changeset: http://dev.haiku-os.org/changeset/34199/haiku

Modified:
   haiku/trunk/build/scripts/build_cross_tools
   haiku/trunk/build/scripts/build_cross_tools_gcc4
   haiku/trunk/configure
Log:
* Added -j<n> option to configure. It is passed to the
  build_cross_tools[_gcc4] script which in turn passes it to make. Cores and
  hyperthreads are plentiful these days; no need to let most of them idle when
  building the cross tools.
* Sorted the configure options alphabetically again.


Modified: haiku/trunk/build/scripts/build_cross_tools
===================================================================
--- haiku/trunk/build/scripts/build_cross_tools 2009-11-23 15:17:50 UTC (rev 
34198)
+++ haiku/trunk/build/scripts/build_cross_tools 2009-11-23 19:34:55 UTC (rev 
34199)
@@ -1,21 +1,19 @@
 #!/bin/sh
 
-# parameters <haiku sourcedir> <buildtools dir> [ <haiku output dir> ]
+# parameters <haiku sourcedir> <buildtools dir> <haiku output dir>
 
 # get and check the parameters
-if [ $# -lt 2 ]; then
-       echo Usage: $0 '<haiku sourcedir> <buildtools dir> [ <haiku output dir> 
]' >&2
+if [ $# -lt 3 ]; then
+       echo Usage: $0 '<haiku sourcedir> <buildtools dir> <haiku output dir>' 
>&2
        exit 1
 fi
 
 haikuSourceDir=$1
 buildToolsDir=$2/legacy
+haikuOutputDir=$3
+shift 3
+additionalMakeArgs=$*
 
-if [ $# -lt 3 ]; then
-       haikuOutputDir=$haikuSourceDir/generated
-else
-       haikuOutputDir=$3
-fi
 
 if [ ! -d $haikuSourceDir ]; then
        echo "No such directory: \"$haikuSourceDir\"" >&2
@@ -66,8 +64,8 @@
 CFLAGS="-O2" CXXFLAGS="-O2" $buildToolsDir/binutils/configure \
        --prefix=$installDir --target=i586-pc-haiku --disable-nls \
        --enable-shared=yes --disable-werror || exit 1
-make || exit 1
-make install || exit 1
+make $additionalMakeArgs || exit 1
+make $additionalMakeArgs install || exit 1
 
 PATH=$PATH:$installDir/bin
 export PATH
@@ -112,13 +110,13 @@
 rm Makefile.bak
 
 # make gcc
-make cross || {
+make $additionalMakeArgs cross || {
        echo "ERROR: Building gcc failed." >&2
        exit 1
 }
 
 # install gcc
-make install-gcc-cross || {
+make $additionalMakeArgs install-gcc-cross || {
        echo "ERROR: Installing the cross compiler failed." >&2
        exit 1
 }

Modified: haiku/trunk/build/scripts/build_cross_tools_gcc4
===================================================================
--- haiku/trunk/build/scripts/build_cross_tools_gcc4    2009-11-23 15:17:50 UTC 
(rev 34198)
+++ haiku/trunk/build/scripts/build_cross_tools_gcc4    2009-11-23 19:34:55 UTC 
(rev 34199)
@@ -1,16 +1,20 @@
 #!/bin/sh
 #
-# parameters <machine> <haiku sourcedir> <buildtools dir> [ <haiku output dir> 
]
+# parameters <machine> <haiku sourcedir> <buildtools dir> <haiku output dir>
 
 # get and check the parameters
-if [ $# -lt 3 ]; then
-       echo Usage: $0 '<machine> <haiku sourcedir> <buildtools dir> [ <haiku 
output dir> ]' >&2
+if [ $# -lt 4 ]; then
+       echo Usage: $0 '<machine> <haiku sourcedir> <buildtools dir>' \
+               '<haiku output dir>' >&2
        exit 1
 fi
 
 haikuMachine=$1
 haikuSourceDir=$2
 buildToolsDir=$3
+haikuOutputDir=$4
+shift 4
+additionalMakeArgs=$*
 
 case $(uname) in
 FreeBSD|OpenBSD)
@@ -37,12 +41,6 @@
        ;;
 esac
 
-if [ $# -lt 4 ]; then
-       haikuOutputDir=$haikuSourceDir/generated
-else
-       haikuOutputDir=$4
-fi
-
 if [ ! -d $haikuSourceDir ]; then
        echo "No such directory: \"$haikuSourceDir\"" >&2
        exit 1
@@ -105,8 +103,8 @@
 CFLAGS="-O2" CXXFLAGS="-O2" $binutilsSourceDir/configure \
        --prefix=$installDir --target=$haikuMachine --disable-nls \
        --disable-shared --disable-werror $binutilsConfigureArgs || exit 1
-$MAKE || exit 1
-$MAKE install || exit 1
+$MAKE $additionalMakeArgs || exit 1
+$MAKE $additionalMakeArgs install || exit 1
 
 export PATH=$PATH:$installDir/bin
 
@@ -140,13 +138,13 @@
        $gccConfigureArgs || exit 1
 
 # make gcc
-$MAKE || {
+$MAKE $additionalMakeArgs || {
        echo "ERROR: Building gcc failed." >&2
        exit 1
 }
 
 # install gcc
-$MAKE install || {
+$MAKE $additionalMakeArgs install || {
        echo "ERROR: Installing the cross compiler failed." >&2
        exit 1
 }

Modified: haiku/trunk/configure
===================================================================
--- haiku/trunk/configure       2009-11-23 15:17:50 UTC (rev 34198)
+++ haiku/trunk/configure       2009-11-23 19:34:55 UTC (rev 34199)
@@ -12,6 +12,20 @@
 
 Usage: $0 <options>
 options:
+  --alternative-gcc-output-dir <dir>
+                              Build a Haiku installation that supports running
+                              executables built with a gcc version incompatible
+                              with the primary gcc (e.g. gcc 2 executables 
under
+                              a gcc 4 Haiku or vice versa). <dir> specifies the
+                              output directory of the other gcc. The directory
+                              must already be fully configured.
+                              Note, that a sub-jam will be executed when
+                              building Haiku. When using a jam that is not
+                              simply invoked by "jam", the JAM build variable
+                              needs to be set accordingly.
+                              To disable building the alternative libraries
+                              the variable HAIKU_ADD_ALTERNATIVE_GCC_LIBS can 
be
+                              unset in the UserBuildConfig file.
   --bochs-debug               Enables bochs serial debug emulation (activated
                               via kernel settings file).
   --build-cross-tools <build tools dir>
@@ -27,20 +41,6 @@
                               will not be binary compatible with BeOS R5.
                               <arch> specifies the target architecture, either
                               "x86", "ppc", "m68k", "arm" or "mipsel".
-  --alternative-gcc-output-dir <dir>
-                              Build a Haiku installation that supports running
-                              executables built with a gcc version incompatible
-                              with the primary gcc (e.g. gcc 2 executables 
under
-                              a gcc 4 Haiku or vice versa). <dir> specifies the
-                              output directory of the other gcc. The directory
-                              must already be fully configured.
-                              Note, that a sub-jam will be executed when
-                              building Haiku. When using a jam that is not
-                              simply invoked by "jam", the JAM build variable
-                              needs to be set accordingly.
-                              To disable building the alternative libraries
-                              the variable HAIKU_ADD_ALTERNATIVE_GCC_LIBS can 
be
-                              unset in the UserBuildConfig file.
   --cross-tools-prefix <prefix>
                               Assume cross compilation. <prefix> should be a
                               path to the directory where the cross
@@ -55,6 +55,7 @@
                               official -- the official Haiku distribution.
                               compatible -- a Haiku Compatible (tm) distro.
                               default -- any other distro (default value).
+  --enable-multiuser          Enable experimental multiuser support.
   --help                      Prints out this help.
   --include-gpl-addons        Include GPL licensed add-ons.
   --include-patented-code     Enable code that is known to implemented patented
@@ -64,7 +65,9 @@
                               option only disables code that is currently known
                               to be problematic.
   --include-3rdparty          Include 3rdparty/ in the build system.
-  --enable-multiuser          Enable experimental multiuser support.
+  -j<n>                       Only relevant for --build-cross-tools and
+                              --build-cross-tools-gcc4. Is passed on to the
+                              make building the build tools.
   --target=TARGET             Select build target platform. [default=${target}]
                               valid targets=r5,bone,dano,haiku
   --use-gcc-pipe              Build with GCC option -pipe. Speeds up the build
@@ -278,6 +281,7 @@
 buildCrossTools=
 buildCrossToolsScript="$sourceDir/build/scripts/build_cross_tools"
 buildCrossToolsMachine=
+buildCrossToolsJobs=
 alternativeGCCOutputDir=
 addAlternativeGCCLibs=
 
@@ -302,6 +306,14 @@
 #
 while [ $# -gt 0 ] ; do
        case "$1" in
+               --alternative-gcc-output-dir)
+                       assertparam "$1" $#
+                       cd $2 || exit 1
+                       alternativeGCCOutputDir=`pwd`
+                       addAlternativeGCCLibs=1
+                       cd $currentDir
+                       shift 2
+                       ;;
                --bochs-debug)  bochsDebug=1; shift 1;;
                --build-cross-tools) assertparam "$1" $#; buildCrossTools=$2; 
shift 2;;
                --build-cross-tools-gcc4)
@@ -320,24 +332,11 @@
                        buildCrossToolsMachine=$haikuGCCMachine
                        shift 3
                        ;;
-               --alternative-gcc-output-dir)
-                       assertparam "$1" $#
-                       cd $2 || exit 1
-                       alternativeGCCOutputDir=`pwd`
-                       addAlternativeGCCLibs=1
-                       cd $currentDir
-                       shift 2
-                       ;;
                --cross-tools-prefix)
                        assertparam "$1" $#
                        crossToolsPrefix=$2
                        shift 2
                        ;;
-               --help | -h)    usage; exit 0;;
-               --include-gpl-addons)   includeGPLAddOns=1; shift 1;;
-               --include-patented-code)        includePatentedCode=1; shift 1;;
-               --include-3rdparty)     include3rdParty=1; shift 1;;
-               --enable-multiuser)     enableMultiuser=1; shift 1;;
                --distro-compatibility)
                        assertparam "$1" $#
                        distroCompatibility=$2
@@ -351,6 +350,12 @@
                        esac
                        shift 2
                        ;;
+               --enable-multiuser)     enableMultiuser=1; shift 1;;
+               --help | -h)    usage; exit 0;;
+               --include-gpl-addons)   includeGPLAddOns=1; shift 1;;
+               --include-patented-code)        includePatentedCode=1; shift 1;;
+               --include-3rdparty)     include3rdParty=1; shift 1;;
+        -j*)                           buildCrossToolsJobs="$1"; shift 1;;
                --target=*)     target=`echo $1 | cut -d'=' -f2-`; shift 1;;
                --use-gcc-pipe) useGCCPipe=1; shift 1;;
                --use-32bit)    use32bit=1; shift 1;;
@@ -433,7 +438,7 @@
 # build cross tools from sources
 if [ -n "$buildCrossTools" ]; then
        "$buildCrossToolsScript" $buildCrossToolsMachine "$sourceDir" \
-               "$buildCrossTools" "$outputDir" || exit 1
+               "$buildCrossTools" "$outputDir" $buildCrossToolsJobs || exit 1
        crossToolsPrefix="$outputDir/cross-tools/bin/${haikuGCCMachine}-"
 fi
 


Other related posts:

  • » [haiku-commits] r34199 - in haiku/trunk: . build/scripts - ingo_weinhold