1#!/bin/sh 2# 3# configure [ <options> ] 4 5# usage 6# 7# Prints usage. 8# 9usage() 10{ 11 cat << EOF 12 13Usage: $0 <options> 14options: 15 --alternative-gcc-output-dir <dir> 16 Build a Haiku installation that supports running 17 executables built with a gcc version incompatible 18 with the primary gcc (e.g. gcc 2 executables under 19 a gcc 4 Haiku or vice versa). <dir> specifies the 20 output directory of the other gcc. The directory 21 must already be fully configured. 22 Note, that a sub-jam will be executed when 23 building Haiku. When using a jam that is not 24 simply invoked by "jam", the JAM build variable 25 needs to be set accordingly. 26 To disable building the alternative libraries 27 the variable HAIKU_ADD_ALTERNATIVE_GCC_LIBS can be 28 unset in the UserBuildConfig file. 29 --build-cross-tools <build tools dir> 30 Assume cross compilation. <build tools dir> 31 defines the location of the build tools sources. 32 They will be compiled and placed in the output 33 directory under "cross-tools". The HAIKU_* tools 34 variables will be set accordingly. 35 --build-cross-tools-gcc4 <arch> <build tools dir> 36 Like "--build-cross-tools" just that gcc 4 will 37 be used for cross-compilation. Note, that the 38 resulting Haiku installation built with gcc 4 39 will not be binary compatible with BeOS R5. 40 <arch> specifies the target architecture, either 41 "x86", "x86_64", "ppc", "m68k", "arm" or "mipsel". 42 --cross-tools-prefix <prefix> 43 Assume cross compilation. <prefix> should be a 44 path to the directory where the cross 45 compilation tools are located, plus the platform 46 prefix, e.g. "/path/to/tools/i586-pc-haiku-". 47 This overrides the HAIKU_* tool variables. 48 --distro-compatibility <level> 49 The distribution's level of compatibility with 50 the official Haiku distribution. The generated 51 files will contain the respective trademarks 52 accordingly. 53 official -- the official Haiku distribution. 54 compatible -- a Haiku Compatible (tm) distro. 55 default -- any other distro (default value). 56 --enable-multiuser Enable experimental multiuser support. 57 --help Prints out this help. 58 --include-gpl-addons Include GPL licensed add-ons. 59 --include-patented-code Enable code that is known to implemented patented 60 ideas and techniques. If this option is not 61 specified, the resulting distribution may still 62 implement patented ideas and techniques. This 63 option only disables code that is currently known 64 to be problematic. 65 --include-sources Includes the source code of projects that require 66 either an offer of source code or a copy of the 67 patched sources. This is preferable when 68 distributing on physical mediums. 69 --include-3rdparty Include 3rdparty/ in the build system. 70 -j<n> Only relevant for --build-cross-tools and 71 --build-cross-tools-gcc4. Is passed on to the 72 make building the build tools. 73 --target=TARGET Select build target platform. 74 [default=${TARGET_PLATFORM}] 75 valid targets=r5,bone,dano,haiku 76 --update re-runs last configure invocation [must be given 77 as first option!] 78 --use-gcc-pipe Build with GCC option -pipe. Speeds up the build 79 process, but uses more memory. 80 --use-32bit Use -m32 flag on 64bit host gcc compiler. 81 --use-xattr Use Linux xattr support for BeOS attribute 82 emulation. Warning: Make sure your file system 83 supports sufficient attribute sizes (4 KB per 84 file for all attributes won't suffice). 85 86environment variables: 87 HAIKU_AR The static library archiver. Defaults to "ar". 88 HAIKU_CC The compiler. Defaults to "gcc". 89 HAIKU_LD The linker. Defaults to "ld". 90 HAIKU_OBJCOPY The objcopy to be used. Defaults to "objcopy". 91 HAIKU_RANLIB The static library indexer. Defaults to "ranlib". 92 HAIKU_YASM The yasm assembler (x86 only). 93 HAIKU_CPPFLAGS The preprocessor flags. Defaults to "". 94 HAIKU_CCFLAGS The C flags. Defaults to "". 95 HAIKU_CXXFLAGS The C++ flags. Defaults to "". 96 HAIKU_LDFLAGS The linker flags. Defaults to "". 97 HAIKU_ARFLAGS The flags passed to HAIKU_AR for archiving. 98 Defaults to "cru". 99 HAIKU_UNARFLAGS The flags passed to HAIKU_AR for unarchiving. 100 Defaults to "x". 101 102Non-standard output directories: 103 By default all objects, build configuration, and other related files are 104 stored in /path/to/haiku_source/generated. To store objects in a non-default 105 location, run "../../relative/path/to/haiku_source/configure <options>" from 106 within your non-default location. "jam [ options ] targets" can then be run 107 directly inside your non-default location. Another option is to invoke "jam 108 [ options ] targets" from within haiku_source. This can be accomplished by 109 either "export HAIKU_OUTPUT_DIR=your non-default location" before invoking 110 jam or by creating a symlink of haiku_source/generated pointing to your 111 non-default location and running jam. 112 113 114EOF 115} 116 117# assertparam 118# 119# Checks whether at least one parameter is left. 120# 121assertparam() 122{ 123 if [ $2 -lt 2 ]; then 124 echo $0: \`$1\': Parameter expected. 125 exit 1 126 fi 127} 128 129# assertparams 130# 131# Checks whether at least a certain number of parameters is left. 132# 133assertparams() 134{ 135 if [ $3 -le $2 ]; then 136 echo $0: \`$1\': Not enough parameters. 137 exit 1 138 fi 139} 140 141# standard_gcc_settings 142# 143# Sets the variables for a GCC platform. 144# 145standard_gcc_settings() 146{ 147 if which greadlink > /dev/null 2>&1; then 148 readlink="greadlink -e" 149 elif which realpath > /dev/null 2>&1; then 150 readlink=realpath 151 else 152 readlink="readlink -e" 153 fi 154 155 # PLATFORM_LINKLIBS 156 gcclib=`$HAIKU_CC -print-libgcc-file-name` 157 gccdir=`dirname ${gcclib}` 158 159 HAIKU_GCC_RAW_VERSION=`$HAIKU_CC -dumpversion` 160 HAIKU_GCC_MACHINE=`$HAIKU_CC -dumpmachine` 161 162 HAIKU_GCC_LIB_DIR=${gccdir} 163 HAIKU_GCC_LIBGCC=${gccdir}/libgcc.a 164 HAIKU_GCC_GLUE_CODE="crtbegin.o crtend.o" 165 HAIKU_GCC_HEADERS_DIR="${gccdir}/include 166 ${gccdir}/include-fixed" 167 HAIKU_GCC_LIBGCC_OBJECTS=`$HAIKU_AR t ${HAIKU_GCC_LIBGCC} | grep -v eabi.o` 168 # Note: We filter out eabi.o. It's present in gcc's libgcc for PPC and 169 # neither needed nor wanted. 170 171 case $HAIKU_GCC_RAW_VERSION in 172 4.*) 173 # for gcc 4 we use the libstdc++ and libsupc++ that come with the 174 # compiler 175 HAIKU_STATIC_LIBSTDCXX=`$HAIKU_CC -print-file-name=libstdc++.a` 176 HAIKU_SHARED_LIBSTDCXX=`$HAIKU_CC -print-file-name=libstdc++.so` 177 HAIKU_STATIC_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++.a` 178 HAIKU_SHARED_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++.so` 179 180 local headers 181 if [ -d $gccdir/../../../../$HAIKU_GCC_MACHINE/include/c++/$HAIKU_GCC_RAW_VERSION ]; then 182 headers=$gccdir/../../../../$HAIKU_GCC_MACHINE/include/c++/$HAIKU_GCC_RAW_VERSION 183 else 184 headers=$gccdir/../../../../include/c++/$HAIKU_GCC_RAW_VERSION 185 fi 186 187 HAIKU_CXX_HEADERS_DIR=$headers 188 for d in $HAIKU_GCC_MACHINE backward ext; do 189 # Note: We need the line break, otherwise the line might become 190 # too long for jam (512 bytes max). 191 HAIKU_CXX_HEADERS_DIR="$HAIKU_CXX_HEADERS_DIR 192 $headers/$d" 193 done 194 195 # Unset the HAIKU_{SHARED,STATIC}_LIB{STD,SUP}CXX variables, if the 196 # compiler didn't give us actual file names. Otherwise resolve 197 # symlinks to avoid problems when copying the libraries to the 198 # image. 199 200 if [ $HAIKU_STATIC_LIBSTDCXX = libstdc++.a ]; then 201 HAIKU_STATIC_LIBSTDCXX= 202 else 203 HAIKU_STATIC_LIBSTDCXX=`$readlink $HAIKU_STATIC_LIBSTDCXX` 204 fi 205 206 if [ $HAIKU_SHARED_LIBSTDCXX = libstdc++.so ]; then 207 HAIKU_SHARED_LIBSTDCXX= 208 else 209 HAIKU_SHARED_LIBSTDCXX=`$readlink $HAIKU_SHARED_LIBSTDCXX` 210 fi 211 212 if [ $HAIKU_STATIC_LIBSUPCXX = libsupc++.a ]; then 213 HAIKU_STATIC_LIBSUPCXX= 214 else 215 HAIKU_STATIC_LIBSUPCXX=`$readlink $HAIKU_STATIC_LIBSUPCXX` 216 fi 217 218 if [ $HAIKU_SHARED_LIBSUPCXX = libsupc++.so ]; then 219 HAIKU_SHARED_LIBSUPCXX= 220 else 221 HAIKU_SHARED_LIBSUPCXX=`$readlink $HAIKU_SHARED_LIBSUPCXX` 222 fi 223 ;; 224 2.9*) 225 # check for correct (most up-to-date) legacy compiler and complain 226 # if an older one is installed 227 if [ $HAIKU_GCC_RAW_VERSION != $haikuRequiredLegacyGCCVersion ]; then 228 echo "GCC version $haikuRequiredLegacyGCCVersion is required!"; 229 echo "Please download it from www.haiku-os.org..."; 230 exit 1; 231 fi 232 ;; 233 esac 234} 235 236# set_default_value 237# 238# Set the value for a variable, if no value is set yet. 239# 240set_default_value() 241{ 242 eval "$1=\${$1-$2}" 243} 244 245# get_build_tool_path 246# 247# Gets a usable absolute path of a build tool. 248# 249get_build_tool_path() 250{ 251 local var="HAIKU_$1" 252 local tool=$2 253 local path="${crossToolsPrefix}$tool" 254 255 if [ -f "$path" ]; then 256 # get absolute path 257 local oldPwd="`pwd`" 258 cd "`dirname "$path"`" 259 path="`pwd`/`basename "$path"`" 260 cd $oldPwd 261 else 262 which "$path" > /dev/null 2>&1 || { 263 echo "Build tool \"$path\" not found." >&2 264 exit 1 265 } 266 fi 267 268 eval "$var=$path" 269} 270 271# get cwd and the source directory 272currentDir=`pwd` 273cd `dirname "$0"` 274sourceDir=`pwd` 275cd "$currentDir" 276 277# backup the passed arguments 278configureArgs="$@" 279 280# internal default parameter values 281# 282platform=`uname` 283platformMachine=`uname -m` 284targetArch=x86 285crossToolsPrefix= 286buildCrossTools= 287buildCrossToolsScript="$sourceDir/build/scripts/build_cross_tools" 288buildCrossToolsMachine= 289buildCrossToolsJobs= 290 291# exported (BuildSetup) default parameter values 292# 293HAIKU_GCC_RAW_VERSION= 294HAIKU_GCC_MACHINE=i586-pc-haiku 295HAIKU_STATIC_LIBSTDCXX= 296HAIKU_SHARED_LIBSTDCXX= 297HAIKU_STATIC_LIBSUPCXX= 298HAIKU_SHARED_LIBSUPCXX= 299HAIKU_CXX_HEADERS_DIR= 300HOST_GCC_RAW_VERSION=`gcc -dumpversion` 301HOST_GCC_MACHINE=`gcc -dumpmachine` 302HAIKU_INCLUDE_GPL_ADDONS=0 303HAIKU_INCLUDE_PATENTED_CODE=0 304HAIKU_INCLUDE_SOURCES=0 305HAIKU_INCLUDE_3RDPARTY=0 306HAIKU_ENABLE_MULTIUSER=0 307HAIKU_DISTRO_COMPATIBILITY=default 308TARGET_PLATFORM=haiku 309HAIKU_USE_GCC_PIPE=0 310HAIKU_HOST_USE_32BIT=0 311HAIKU_HOST_USE_XATTR=0 312HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR= 313HAIKU_ADD_ALTERNATIVE_GCC_LIBS=0 314HOST_GCC_LD=`gcc -print-prog-name=ld` 315HOST_GCC_OBJCOPY=`gcc -print-prog-name=objcopy` 316SFDISK_BINARY=sfdisk 317HOST_SFDISK=$SFDISK_BINARY 318 319haikuRequiredLegacyGCCVersion="2.95.3-haiku-100712" 320export haikuRequiredLegacyGCCVersion 321 # version of legacy gcc required to build haiku 322 323set_default_value HAIKU_AR ar 324set_default_value HAIKU_CC gcc 325set_default_value HAIKU_LD ld 326set_default_value HAIKU_OBJCOPY objcopy 327set_default_value HAIKU_RANLIB ranlib 328set_default_value HAIKU_YASM yasm 329set_default_value HAIKU_CPPFLAGS "" 330set_default_value HAIKU_CCFLAGS "" 331set_default_value HAIKU_CXXFLAGS "" 332set_default_value HAIKU_LDFLAGS "" 333set_default_value HAIKU_ARFLAGS cru 334set_default_value HAIKU_UNARFLAGS x 335 336# determine output directory 337if [ "$currentDir" = "$sourceDir" ]; then 338 outputDir=$currentDir/generated 339else 340 outputDir=$currentDir 341fi 342buildOutputDir="$outputDir/build" 343HAIKU_BUILD_ATTRIBUTES_DIR="$outputDir/attributes" 344buildConfigFile="$buildOutputDir/BuildConfig" 345 346# check for update request 347if [ "$1" = "--update" ]; then 348 if ! [ -e "$buildConfigFile" ]; then 349 echo $0 --update: \'$buildConfigFile\' not found - updating not possible. 350 exit 1 351 fi 352 if ! type perl >/dev/null 2>&1; then 353 echo $0 --update: \'perl\' not found - updating not possible. 354 exit 1 355 fi 356 # convert BuildConfig from jam format to shell format and evaluate it 357 shellConfigFile="${buildConfigFile}.shell" 358 perl "$sourceDir/build/scripts/convert_build_config_to_shell_format.pl" \ 359 <"$buildConfigFile" >"$shellConfigFile" 360 . "$shellConfigFile" 361 rm "$shellConfigFile" 362 shift 363fi 364 365# parse parameters 366# 367while [ $# -gt 0 ] ; do 368 case "$1" in 369 --alternative-gcc-output-dir) 370 assertparam "$1" $# 371 cd $2 || exit 1 372 HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR=`pwd` 373 HAIKU_ADD_ALTERNATIVE_GCC_LIBS=1 374 cd $currentDir 375 shift 2 376 ;; 377 --build-cross-tools) assertparam "$1" $#; buildCrossTools=$2; shift 2;; 378 --build-cross-tools-gcc4) 379 assertparams "$1" 2 $# 380 buildCrossTools=$3 381 buildCrossToolsScript="${buildCrossToolsScript}_gcc4" 382 case "$2" in 383 x86) HAIKU_GCC_MACHINE=i586-pc-haiku;; 384 x86_64) HAIKU_GCC_MACHINE=x86_64-pc-haiku; targetArch=x86_64;; 385 ppc) HAIKU_GCC_MACHINE=powerpc-apple-haiku; targetArch=ppc;; 386 m68k) HAIKU_GCC_MACHINE=m68k-unknown-haiku; targetArch=m86k;; 387 arm) HAIKU_GCC_MACHINE=arm-unknown-haiku; targetArch=arm;; 388 mipsel) HAIKU_GCC_MACHINE=mipsel-unknown-haiku; targetArch=mips;; 389 *) echo "Unsupported target architecture: $2" 390 exit 1;; 391 esac 392 buildCrossToolsMachine=$HAIKU_GCC_MACHINE 393 shift 3 394 ;; 395 --cross-tools-prefix) 396 assertparam "$1" $# 397 crossToolsPrefix=$2 398 shift 2 399 ;; 400 --distro-compatibility) 401 assertparam "$1" $# 402 HAIKU_DISTRO_COMPATIBILITY=$2 403 case "$HAIKU_DISTRO_COMPATIBILITY" in 404 official) ;; 405 compatible) ;; 406 default) ;; 407 *) echo "Invalid distro compatibility" \ 408 "level: $HAIKU_DISTRO_COMPATIBILITY" 409 exit 1;; 410 esac 411 shift 2 412 ;; 413 --enable-multiuser) HAIKU_ENABLE_MULTIUSER=1; shift 1;; 414 --help | -h) usage; exit 0;; 415 --include-gpl-addons) HAIKU_INCLUDE_GPL_ADDONS=1; shift 1;; 416 --include-patented-code) HAIKU_INCLUDE_PATENTED_CODE=1; shift 1;; 417 --include-sources) HAIKU_INCLUDE_SOURCES=1; shift 1;; 418 --include-3rdparty) HAIKU_INCLUDE_3RDPARTY=1; shift 1;; 419 -j*) buildCrossToolsJobs="$1"; shift 1;; 420 --target=*) TARGET_PLATFORM=`echo $1 | cut -d'=' -f2-`; shift 1;; 421 --use-gcc-pipe) HAIKU_USE_GCC_PIPE=1; shift 1;; 422 --use-32bit) HAIKU_HOST_USE_32BIT=1; shift 1;; 423 --use-xattr) HAIKU_HOST_USE_XATTR=1; shift 1;; 424 *) echo Invalid argument: \`$1\'; exit 1;; 425 esac 426done 427 428# detect the build platform 429case "${platform}" in 430 BeOS) revision=`uname -r` 431 case "$revision" in 432 6.*) HOST_PLATFORM=dano ;; 433 5.1) HOST_PLATFORM=dano ;; 434 5.0.4) HOST_PLATFORM=bone ;; 435 5.0*) HOST_PLATFORM=r5 ;; 436 *) echo Unknown BeOS version: $revision 437 exit 1 ;; 438 esac 439 ;; 440 Darwin) HOST_PLATFORM=darwin ;; 441 FreeBSD) HOST_PLATFORM=freebsd 442 SFDISK_BINARY=sfdisk-linux 443 if [ "$HAIKU_HOST_USE_32BIT" = 1 ] ; then 444 echo Unsupported platform: FreeBSD ${platformMachine} 445 exit 1 446 fi ;; 447 Haiku) HOST_PLATFORM=haiku_host ;; 448 Linux) HOST_PLATFORM=linux ;; 449 OpenBSD) HOST_PLATFORM=openbsd ;; 450 SunOS) HOST_PLATFORM=sunos ;; 451 CYGWIN_NT-*) HOST_PLATFORM=cygwin ;; 452 *) echo Unsupported platform: ${platform} 453 exit 1 ;; 454esac 455 456# check yasm version 457if [ $targetArch = "x86" ]; then 458 $HAIKU_YASM --version > /dev/null || { 459 echo "The yasm assembler version 0.7.0 or later must be installed." 460 echo "Download from: http://www.tortall.net/projects/yasm/wiki/Download" 461 exit 1 462 } 463 464 set -- $($HAIKU_YASM --version | head -n 1) 465 versionOK=0 466 case $2 in 467 0.[0-6].*) ;; 468 *) versionOK=1 ;; 469 esac 470 471 if [ $versionOK = 0 ]; then 472 echo "The yasm assembler version 0.7.0 or later must be installed." 473 echo "The installed version is $2." 474 echo "Download from: http://www.tortall.net/projects/yasm/wiki/Download" 475 exit 1 476 fi 477fi 478 479# check common locations for sfdisk 480for sfdiskDir in /sbin /usr/sbin /usr/local/sbin ; do 481 if [ -e ${sfdiskDir}/${SFDISK_BINARY} ]; then 482 HOST_SFDISK=${sfdiskDir}/${SFDISK_BINARY} 483 fi 484done 485 486# check for case-sensitive filesystem if on darwin 487if [ $HOST_PLATFORM = "darwin" ]; then 488 diskutil info $(pwd) | grep -i "case-sensitive" > /dev/null 489 if [ $? != 0 ]; then 490 echo "You need a case-sensitive file-system to build Haiku." 491 echo "Please see the following guide on how to set one up:" 492 echo "http://haiku-os.org/documents/dev/how_to_build_haiku_on_mac_os_x" 493 exit 1 494 fi 495fi 496 497# create output directory 498mkdir -p "$buildOutputDir" || exit 1 499 500# build cross tools from sources 501if [ -n "$buildCrossTools" ]; then 502 "$buildCrossToolsScript" $buildCrossToolsMachine "$sourceDir" \ 503 "$buildCrossTools" "$outputDir" $buildCrossToolsJobs || exit 1 504 crossToolsPrefix="$outputDir/cross-tools/bin/${HAIKU_GCC_MACHINE}-" 505fi 506 507# cross tools 508if [ -n "$crossToolsPrefix" ]; then 509 get_build_tool_path AR ar 510 get_build_tool_path CC gcc 511 get_build_tool_path LD ld 512 get_build_tool_path OBJCOPY objcopy 513 get_build_tool_path RANLIB ranlib 514fi 515 516# prepare gcc settings 517standard_gcc_settings 518 519# check whether the Haiku compiler really targets Haiku or BeOS 520case "$HAIKU_GCC_MACHINE" in 521 *-*-haiku) ;; 522 *-*-beos) ;; 523 *) echo The compiler specified as Haiku target compiler is not a valid \ 524 Haiku cross-compiler. Please see ReadMe.cross-compile. >&2 525 echo compiler: $HAIKU_CC 526 echo compiler is configured for target: $HAIKU_GCC_MACHINE 527 exit 1 ;; 528esac 529 530# Generate BuildConfig 531cat << EOF > "$buildConfigFile" 532# BuildConfig 533# Note: This file has been automatically generated by configure with the 534# following arguments: 535# ${configureArgs} 536 537TARGET_PLATFORM ?= "${TARGET_PLATFORM}" ; 538HOST_PLATFORM ?= "${HOST_PLATFORM}" ; 539 540HAIKU_INCLUDE_GPL_ADDONS ?= "${HAIKU_INCLUDE_GPL_ADDONS}" ; 541HAIKU_INCLUDE_PATENTED_CODE ?= "${HAIKU_INCLUDE_PATENTED_CODE}" ; 542HAIKU_INCLUDE_SOURCES ?= "${HAIKU_INCLUDE_SOURCES}" ; 543HAIKU_INCLUDE_3RDPARTY ?= "${HAIKU_INCLUDE_3RDPARTY}" ; 544HAIKU_ENABLE_MULTIUSER ?= "${HAIKU_ENABLE_MULTIUSER}" ; 545HAIKU_DISTRO_COMPATIBILITY ?= "${HAIKU_DISTRO_COMPATIBILITY}" ; 546HAIKU_USE_GCC_PIPE ?= "${HAIKU_USE_GCC_PIPE}" ; 547HAIKU_HOST_USE_32BIT ?= "${HAIKU_HOST_USE_32BIT}" ; 548HAIKU_HOST_USE_XATTR ?= "${HAIKU_HOST_USE_XATTR}" ; 549HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR ?= ${HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR} ; 550HAIKU_ADD_ALTERNATIVE_GCC_LIBS ?= ${HAIKU_ADD_ALTERNATIVE_GCC_LIBS} ; 551 552HAIKU_GCC_RAW_VERSION ?= ${HAIKU_GCC_RAW_VERSION} ; 553HAIKU_GCC_MACHINE ?= ${HAIKU_GCC_MACHINE} ; 554HAIKU_GCC_LIB_DIR ?= ${HAIKU_GCC_LIB_DIR} ; 555HAIKU_GCC_HEADERS_DIR ?= ${HAIKU_GCC_HEADERS_DIR} ; 556HAIKU_GCC_LIBGCC ?= ${HAIKU_GCC_LIBGCC} ; 557 558HAIKU_STATIC_LIBSTDC++ ?= ${HAIKU_STATIC_LIBSTDCXX} ; 559HAIKU_SHARED_LIBSTDC++ ?= ${HAIKU_SHARED_LIBSTDCXX} ; 560HAIKU_STATIC_LIBSUPC++ ?= ${HAIKU_STATIC_LIBSUPCXX} ; 561HAIKU_SHARED_LIBSUPC++ ?= ${HAIKU_SHARED_LIBSUPCXX} ; 562HAIKU_C++_HEADERS_DIR ?= ${HAIKU_CXX_HEADERS_DIR} ; 563 564HAIKU_BUILD_ATTRIBUTES_DIR ?= ${HAIKU_BUILD_ATTRIBUTES_DIR} ; 565 566HAIKU_AR ?= ${HAIKU_AR} ; 567HAIKU_CC ?= ${HAIKU_CC} ; 568HAIKU_LD ?= ${HAIKU_LD} ; 569HAIKU_OBJCOPY ?= ${HAIKU_OBJCOPY} ; 570HAIKU_RANLIB ?= ${HAIKU_RANLIB} ; 571HAIKU_YASM ?= ${HAIKU_YASM} ; 572HAIKU_CPPFLAGS ?= ${HAIKU_CPPFLAGS} ; 573HAIKU_CCFLAGS ?= ${HAIKU_CCFLAGS} ; 574HAIKU_CXXFLAGS ?= ${HAIKU_CXXFLAGS} ; 575HAIKU_LDFLAGS ?= ${HAIKU_LDFLAGS} ; 576HAIKU_ARFLAGS ?= ${HAIKU_ARFLAGS} ; 577HAIKU_UNARFLAGS ?= ${HAIKU_UNARFLAGS} ; 578 579HOST_GCC_RAW_VERSION ?= ${HOST_GCC_RAW_VERSION} ; 580HOST_GCC_MACHINE ?= ${HOST_GCC_MACHINE} ; 581HOST_LD ?= ${HOST_GCC_LD} ; 582HOST_OBJCOPY ?= ${HOST_GCC_OBJCOPY} ; 583HOST_SFDISK ?= ${HOST_SFDISK} ; 584 585EOF 586 587# Libgcc.a objects 588 589cat << EOF > "$buildOutputDir/libgccObjects" 590# libgcc.a objects to be linked against libroot.so 591# Note: This file has been automatically generated by configure. 592 593HAIKU_GCC_LIBGCC_OBJECTS ?= ${HAIKU_GCC_LIBGCC_OBJECTS} ; 594EOF 595 596# Generate a boot strap Jamfile in the output directory. 597 598cat << EOF > $outputDir/Jamfile 599# automatically generated Jamfile 600 601HAIKU_TOP = ${sourceDir} ; 602HAIKU_OUTPUT_DIR = ${outputDir} ; 603 604include [ FDirName \$(HAIKU_TOP) Jamfile ] ; 605 606EOF 607