xref: /haiku/configure (revision eedc3d0be03a784b36c98fe2854043071f0321e6)
152a38012Sejakowatz#!/bin/sh
252a38012Sejakowatz#
3338b8dc3SIngo Weinhold# configure [ <options> ]
4614026d7Sshatty
5022fa244SIngo Weinhold# usage
6022fa244SIngo Weinhold#
7022fa244SIngo Weinhold# Prints usage.
8022fa244SIngo Weinhold#
9022fa244SIngo Weinholdusage()
10022fa244SIngo Weinhold{
11022fa244SIngo Weinhold	cat << EOF
12022fa244SIngo Weinhold
13022fa244SIngo WeinholdUsage: $0 <options>
14022fa244SIngo Weinholdoptions:
156f9587ddSAxel Dörfler  --bochs-debug               Enables bochs serial debug emulation (activated 
166f9587ddSAxel Dörfler                              via kernel settings file).
17338b8dc3SIngo Weinhold  --build-cross-tools <build tools dir>
18338b8dc3SIngo Weinhold                              Assume cross compilation. <build tools dir>
19338b8dc3SIngo Weinhold                              defines the location of the build tools sources.
20338b8dc3SIngo Weinhold                              They will be compiled and placed in the output
21a5b60fa8SOliver Tappe                              directory under "cross-tools". The HAIKU_* tools
22a5b60fa8SOliver Tappe                              variables will be set accordingly.
2320ab75e6SIngo Weinhold  --build-cross-tools-gcc4 <arch> <build tools dir>
2429ef597dSIngo Weinhold                              Like "--build-cross-tools" just that gcc 4 will
25a5b60fa8SOliver Tappe                              be used for cross-compilation. Note, that the
26a5b60fa8SOliver Tappe                              resulting Haiku installation built with gcc 4
27a5b60fa8SOliver Tappe                              will not be binary compatible with BeOS R5.
2820ab75e6SIngo Weinhold                              <arch> specifies the target architecture, either
2920ab75e6SIngo Weinhold                              "x86" or "ppc".
30eccc7665SIngo Weinhold  --cross-tools-prefix <prefix>
31eccc7665SIngo Weinhold                              Assume cross compilation. <prefix> should be a
32eccc7665SIngo Weinhold                              path to the directory where the cross
33eccc7665SIngo Weinhold                              compilation tools are located, plus the platform
34eccc7665SIngo Weinhold                              prefix, e.g. "/path/to/tools/i586-pc-beos-".
35eccc7665SIngo Weinhold                              This overrides the HAIKU_* tool variables.
36eccc7665SIngo Weinhold  --help                      Prints out this help.
37eccc7665SIngo Weinhold  --include-gpl-addons        Include GPL licensed add-ons.
38614026d7Sshatty  --target=TARGET             Select build target platform. [default=${target}]
39a17b9c0cSshatty                              valid targets=r5,bone,dano,haiku
40eccc7665SIngo Weinhold  --use-gcc-pipe              Build with GCC option -pipe. Speeds up the build
415a34a443SFrançois Revol                              process, but uses more memory.
42338b8dc3SIngo Weinhold
43338b8dc3SIngo Weinholdenvironment variables:
44338b8dc3SIngo Weinhold  HAIKU_AR                    The static library archiver. Defaults to "ar".
45338b8dc3SIngo Weinhold  HAIKU_CC                    The compiler. Defaults to "gcc".
46338b8dc3SIngo Weinhold  HAIKU_LD                    The linker. Defaults to "ld".
47338b8dc3SIngo Weinhold  HAIKU_OBJCOPY               The objcopy to be used. Defaults to "objcopy".
48338b8dc3SIngo Weinhold  HAIKU_RANLIB                The static library indexer. Defaults to "ranlib".
49338b8dc3SIngo Weinhold  HAIKU_CPPFLAGS              The preprocessor flags. Defaults to "".
50338b8dc3SIngo Weinhold  HAIKU_CCFLAGS               The C flags. Defaults to "".
51338b8dc3SIngo Weinhold  HAIKU_CXXFLAGS              The C++ flags. Defaults to "".
52338b8dc3SIngo Weinhold  HAIKU_LDFLAGS               The linker flags. Defaults to "".
53338b8dc3SIngo Weinhold  HAIKU_ARFLAGS               The flags passed to HAIKU_AR for archiving.
54338b8dc3SIngo Weinhold                              Defaults to "ru".
55338b8dc3SIngo Weinhold  HAIKU_UNARFLAGS             The flags passed to HAIKU_AR for unarchiving.
56338b8dc3SIngo Weinhold                              Defaults to "x".
57022fa244SIngo WeinholdEOF
58022fa244SIngo Weinhold}
59022fa244SIngo Weinhold
60022fa244SIngo Weinhold# assertparam
61022fa244SIngo Weinhold#
62022fa244SIngo Weinhold# Checks whether at least one parameter is left.
63022fa244SIngo Weinhold#
64022fa244SIngo Weinholdassertparam()
65022fa244SIngo Weinhold{
6620ab75e6SIngo Weinhold	if [ $2 -lt 2 ]; then
67022fa244SIngo Weinhold		echo $0: \`$1\': Parameter expected.
68022fa244SIngo Weinhold		exit 1
69022fa244SIngo Weinhold	fi
70022fa244SIngo Weinhold}
71022fa244SIngo Weinhold
7220ab75e6SIngo Weinhold# assertparams
7320ab75e6SIngo Weinhold#
7420ab75e6SIngo Weinhold# Checks whether at least a certain number of parameters is left.
7520ab75e6SIngo Weinhold#
7620ab75e6SIngo Weinholdassertparams()
7720ab75e6SIngo Weinhold{
7820ab75e6SIngo Weinhold	if [ $3 -le $2 ]; then
7920ab75e6SIngo Weinhold		echo $0: \`$1\': Not enough parameters.
8020ab75e6SIngo Weinhold		exit 1
8120ab75e6SIngo Weinhold	fi
8220ab75e6SIngo Weinhold}
8320ab75e6SIngo Weinhold
8409c5682dSIngo Weinhold# standard_gcc_settings
8509c5682dSIngo Weinhold#
8609c5682dSIngo Weinhold# Sets the variables for a GCC platform.
8709c5682dSIngo Weinhold#
8809c5682dSIngo Weinholdstandard_gcc_settings()
8909c5682dSIngo Weinhold{
9009c5682dSIngo Weinhold	# PLATFORM_LINKLIBS
91338b8dc3SIngo Weinhold	gcclib=`$HAIKU_CC -print-libgcc-file-name`
9209c5682dSIngo Weinhold	gccdir=`dirname ${gcclib}`
935b0f7b1bSOliver Tappe
94338b8dc3SIngo Weinhold	haikuGCCVersion=`$HAIKU_CC -dumpversion`
95338b8dc3SIngo Weinhold	haikuGCCMachine=`$HAIKU_CC -dumpmachine`
96338b8dc3SIngo Weinhold
97338b8dc3SIngo Weinhold	HAIKU_GCC_LIB_DIR=${gccdir}
98338b8dc3SIngo Weinhold	HAIKU_GCC_LIBGCC=${gccdir}/libgcc.a
99338b8dc3SIngo Weinhold	HAIKU_GCC_GLUE_CODE="crtbegin.o crtend.o"
100338b8dc3SIngo Weinhold	HAIKU_GCC_HEADERS_DIR=${gccdir}/include
1015d978968SIngo Weinhold	HAIKU_GCC_LIBGCC_OBJECTS=`$HAIKU_AR t ${HAIKU_GCC_LIBGCC} | grep -v eabi.o`
1025d978968SIngo Weinhold		# Note: We filter out eabi.o. It's present in gcc's libgcc for PPC and
1035d978968SIngo Weinhold		# neither needed nor wanted.
1048b5934c9SIngo Weinhold
1058b5934c9SIngo Weinhold	case $haikuGCCVersion in
1068b5934c9SIngo Weinhold		4.*)
1075b0f7b1bSOliver Tappe			# for gcc 4 we use the libstdc++ and libsupc++ that come with the
1085b0f7b1bSOliver Tappe			# compiler
1098b5934c9SIngo Weinhold			haikuStaticLibStdCxx=`$HAIKU_CC -print-file-name=libstdc++.a`
1108b5934c9SIngo Weinhold			haikuSharedLibStdCxx=`$HAIKU_CC -print-file-name=libstdc++.so`
111c89fc875SIngo Weinhold			haikuStaticLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.a`
112c89fc875SIngo Weinhold			haikuSharedLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.so`
1138b5934c9SIngo Weinhold			local headers=$gccdir/../../../../include/c++/$haikuGCCVersion
1148b5934c9SIngo Weinhold			haikuCxxHeadersDir=$headers
11529ef597dSIngo Weinhold			for d in $haikuGCCMachine backward ext; do
11629ef597dSIngo Weinhold				# Note: We need the line break, otherwise the line might become
11729ef597dSIngo Weinhold				# too long for jam (512 bytes max).
11829ef597dSIngo Weinhold				haikuCxxHeadersDir="$haikuCxxHeadersDir
11929ef597dSIngo Weinhold					$headers/$d"
1208b5934c9SIngo Weinhold			done
121274b450aSMarcus Overhagen
122dad36002SMarcus Overhagen
123dad36002SMarcus Overhagen			# when not building the crosscompiler, to use cpp headers from
124274b450aSMarcus Overhagen			# tree first, but fallback to local C++ system headers (like <new>)
125dad36002SMarcus Overhagen			# if [ "$buildCrossTools" = "" ]; then
126dad36002SMarcus Overhagen			#	haikuCxxHeadersDir="headers/cpp $haikuCxxHeadersDir"
127dad36002SMarcus Overhagen			# fi
1288b5934c9SIngo Weinhold
1298b5934c9SIngo Weinhold			if [ $haikuStaticLibStdCxx = libstdc++.a ]; then
1308b5934c9SIngo Weinhold				haikuStaticLibStdCxx=
1318b5934c9SIngo Weinhold			fi
1328b5934c9SIngo Weinhold			if [ $haikuSharedLibStdCxx = libstdc++.so ]; then
1338b5934c9SIngo Weinhold				haikuSharedLibStdCxx=
1348b5934c9SIngo Weinhold			fi
135c89fc875SIngo Weinhold			if [ $haikuStaticLibSupCxx = libsupc++.a ]; then
136c89fc875SIngo Weinhold				haikuStaticLibSupCxx=
137c89fc875SIngo Weinhold			fi
138c89fc875SIngo Weinhold			if [ $haikuSharedLibSupCxx = libsupc++.so ]; then
139c89fc875SIngo Weinhold				haikuSharedLibSupCxx=
140c89fc875SIngo Weinhold			fi
1418b5934c9SIngo Weinhold		;;
1426cc8eecfSOliver Tappe		2.9*)
1435b0f7b1bSOliver Tappe			# check for correct (most up-to-date) legacy compiler and complain
1445b0f7b1bSOliver Tappe			# if an older one is installed
1455b0f7b1bSOliver Tappe			if [ $haikuGCCVersion != $haikuRequiredLegacyGCCVersion ]; then
1465b0f7b1bSOliver Tappe				echo "GCC version $haikuRequiredLegacyGCCVersion is required!";
1475b0f7b1bSOliver Tappe				echo "Please download it from www.haiku-os.org...";
1485b0f7b1bSOliver Tappe				exit 1;
1495b0f7b1bSOliver Tappe			fi
1505b0f7b1bSOliver Tappe		;;
1518b5934c9SIngo Weinhold	esac
15209c5682dSIngo Weinhold}
15309c5682dSIngo Weinhold
154338b8dc3SIngo Weinhold# set_default_value
155338b8dc3SIngo Weinhold#
156338b8dc3SIngo Weinhold# Set the value for a variable, if no value is set yet.
157338b8dc3SIngo Weinhold#
158338b8dc3SIngo Weinholdset_default_value()
159338b8dc3SIngo Weinhold{
1600838a930SJérôme Duval	eval "$1=\${$1-$2}"
161338b8dc3SIngo Weinhold}
162338b8dc3SIngo Weinhold
163338b8dc3SIngo Weinhold# get_build_tool_path
164338b8dc3SIngo Weinhold#
165338b8dc3SIngo Weinhold# Gets a usable absolute path of a build tool.
166338b8dc3SIngo Weinhold#
167338b8dc3SIngo Weinholdget_build_tool_path()
168338b8dc3SIngo Weinhold{
169338b8dc3SIngo Weinhold	local var="HAIKU_$1"
170338b8dc3SIngo Weinhold	local tool=$2
171338b8dc3SIngo Weinhold	local path="${crossToolsPrefix}$tool"
172338b8dc3SIngo Weinhold
173338b8dc3SIngo Weinhold	if [ -f "$path" ]; then
174338b8dc3SIngo Weinhold		# get absolute path
175338b8dc3SIngo Weinhold		local oldPwd=$(pwd)
176338b8dc3SIngo Weinhold		cd $(dirname "$path")
177338b8dc3SIngo Weinhold		path="$(pwd)/$(basename "$path")"
178338b8dc3SIngo Weinhold		cd $oldPwd
179338b8dc3SIngo Weinhold	else
180338b8dc3SIngo Weinhold		which "$path" &> /dev/null || {
181338b8dc3SIngo Weinhold			echo "Build tool \"$path\" not found." >&2
182338b8dc3SIngo Weinhold			exit 1
183338b8dc3SIngo Weinhold		}
184338b8dc3SIngo Weinhold	fi
185338b8dc3SIngo Weinhold
186338b8dc3SIngo Weinhold	eval "$var=$path"
187338b8dc3SIngo Weinhold}
188338b8dc3SIngo Weinhold
189338b8dc3SIngo Weinhold# get cwd and the source directory
190338b8dc3SIngo WeinholdcurrentDir=`pwd`
1916e7c6fe5SIngo Weinholdcd `dirname "$0"`
192338b8dc3SIngo WeinholdsourceDir=`pwd`
1936e7c6fe5SIngo Weinholdcd "$currentDir"
194338b8dc3SIngo Weinhold
195022fa244SIngo Weinhold# default parameter values
196022fa244SIngo Weinhold#
19752a38012Sejakowatzplatform=`uname`
198338b8dc3SIngo WeinholdhaikuGCCVersion=
1999743fe87SIngo WeinholdhaikuGCCMachine=i586-pc-beos
2008b5934c9SIngo WeinholdhaikuStaticLibStdCxx=
2018b5934c9SIngo WeinholdhaikuSharedLibStdCxx=
202c89fc875SIngo WeinholdhaikuStaticLibSupCxx=
203c89fc875SIngo WeinholdhaikuSharedLibSupCxx=
2048b5934c9SIngo WeinholdhaikuCxxHeadersDir=
205db63fe67SAxel DörflerhostGCCVersion=`gcc -dumpversion`
2062b94bc7bSlillobochs_debug=0
207e91f3ca1Sbeveloperinclude_gpl_addons=0
20862339647SAxel Dörflertarget=haiku
209eccc7665SIngo Weinholduse_gcc_pipe=0
210338b8dc3SIngo WeinholdcrossToolsPrefix=
211338b8dc3SIngo WeinholdbuildCrossTools=
21229ef597dSIngo WeinholdbuildCrossToolsScript="$sourceDir/build/scripts/build_cross_tools"
21320ab75e6SIngo WeinholdbuildCrossToolsMachine=
214338b8dc3SIngo Weinhold
215af4bf973SOliver Tappeexport haikuRequiredLegacyGCCVersion="2.95.3-beos-060710"
216af4bf973SOliver Tappe	# version of legacy gcc required to build haiku
217af4bf973SOliver Tappe
218338b8dc3SIngo Weinholdset_default_value HAIKU_AR			ar
219338b8dc3SIngo Weinholdset_default_value HAIKU_CC			gcc
220338b8dc3SIngo Weinholdset_default_value HAIKU_LD			ld
221338b8dc3SIngo Weinholdset_default_value HAIKU_OBJCOPY		objcopy
222338b8dc3SIngo Weinholdset_default_value HAIKU_RANLIB		ranlib
223338b8dc3SIngo Weinholdset_default_value HAIKU_CPPFLAGS	""
224338b8dc3SIngo Weinholdset_default_value HAIKU_CCFLAGS		""
225338b8dc3SIngo Weinholdset_default_value HAIKU_CXXFLAGS	""
226338b8dc3SIngo Weinholdset_default_value HAIKU_LDFLAGS		""
227338b8dc3SIngo Weinholdset_default_value HAIKU_ARFLAGS		ru
228338b8dc3SIngo Weinholdset_default_value HAIKU_UNARFLAGS	x
22962339647SAxel Dörfler
230022fa244SIngo Weinhold# parse parameters
231022fa244SIngo Weinhold#
23220ab75e6SIngo Weinholdwhile [ $# -gt 0 ] ; do
233022fa244SIngo Weinhold	case "$1" in
2342b94bc7bSlillo		--bochs-debug)	bochs_debug=1; shift 1;;
235a5b60fa8SOliver Tappe		--build-cross-tools) assertparam "$1" $#; buildCrossTools=$2; shift 2;;
23620ab75e6SIngo Weinhold		--build-cross-tools-gcc4) assertparams "$1" 2 $#; buildCrossTools=$3;
23729ef597dSIngo Weinhold						buildCrossToolsScript="${buildCrossToolsScript}_gcc4";
23820ab75e6SIngo Weinhold						case "$2" in
23920ab75e6SIngo Weinhold							x86)	haikuGCCMachine=i586-pc-haiku;;
24020ab75e6SIngo Weinhold							ppc)	haikuGCCMachine=powerpc-apple-haiku;;
24120ab75e6SIngo Weinhold							*)		echo "Unsupported target architecture: $2"
24220ab75e6SIngo Weinhold									exit 1;;
24320ab75e6SIngo Weinhold						esac
244a5b60fa8SOliver Tappe						buildCrossToolsMachine=$haikuGCCMachine
24520ab75e6SIngo Weinhold						shift 3;;
246eccc7665SIngo Weinhold		--cross-tools-prefix) assertparam "$1" $#; crossToolsPrefix=$2; shift 2;;
247022fa244SIngo Weinhold		--help | -h)	usage; exit 0;;
248eccc7665SIngo Weinhold		--include-gpl-addons)	include_gpl_addons=1; shift 1;;
249eccc7665SIngo Weinhold		--target=*)     target=`echo $1 | cut -d'=' -f2-`; shift 1;;
250eccc7665SIngo Weinhold		--use-gcc-pipe)	use_gcc_pipe=1; shift 1;;
251022fa244SIngo Weinhold		*)				echo Invalid argument: \`$1\'; exit 1;;
252022fa244SIngo Weinhold	esac
253022fa244SIngo Weinholddone
254022fa244SIngo Weinhold
2550df3cc9cSIngo Weinhold# detect the build platform
256338b8dc3SIngo Weinholdcase "${platform}" in
2570df3cc9cSIngo Weinhold	BeOS)	revision=`uname -r`
2580df3cc9cSIngo Weinhold			case "$revision" in
25914998c8bSIngo Weinhold				6.*)	buildPlatform=dano ;;
2600df3cc9cSIngo Weinhold				5.1)	buildPlatform=dano ;;
2610df3cc9cSIngo Weinhold				5.0.4)	buildPlatform=bone ;;
2620df3cc9cSIngo Weinhold				5.0*)	buildPlatform=r5 ;;
2630df3cc9cSIngo Weinhold				*)		echo Unknown BeOS version: $revision
2640df3cc9cSIngo Weinhold						exit 1 ;;
2650df3cc9cSIngo Weinhold			esac
2660df3cc9cSIngo Weinhold			;;
267338b8dc3SIngo Weinhold	Linux)	buildPlatform=linux ;;
268307807f2SNathan Whitehorn	FreeBSD) buildPlatform=freebsd ;;
269338b8dc3SIngo Weinhold	*)		echo Unsupported platform: ${platform}
2704cbe4925SAxel Dörfler			exit 1 ;;
2714cbe4925SAxel Dörfleresac
27252a38012Sejakowatz
273338b8dc3SIngo Weinhold# create output directory
274338b8dc3SIngo Weinholdif [ "$currentDir" = "$sourceDir" ]; then
275338b8dc3SIngo Weinhold	outputDir=$currentDir/generated
276338b8dc3SIngo Weinholdelse
277338b8dc3SIngo Weinhold	outputDir=$currentDir
278338b8dc3SIngo Weinholdfi
2796e7c6fe5SIngo WeinholdbuildOutputDir="$outputDir/build"
2806e7c6fe5SIngo WeinholdbuildAttributesDir="$outputDir/attributes"
2816e7c6fe5SIngo Weinholdmkdir -p "$buildOutputDir" || exit 1
282338b8dc3SIngo Weinhold
283338b8dc3SIngo Weinhold# build cross tools from sources
284338b8dc3SIngo Weinholdif [ -n "$buildCrossTools" ]; then
28520ab75e6SIngo Weinhold	"$buildCrossToolsScript" $buildCrossToolsMachine "$sourceDir" \
2866e7c6fe5SIngo Weinhold		"$buildCrossTools" "$outputDir" || exit 1
287a5b60fa8SOliver Tappe	crossToolsPrefix="$outputDir/cross-tools/bin/${haikuGCCMachine}-"
288338b8dc3SIngo Weinholdfi
289338b8dc3SIngo Weinhold
290338b8dc3SIngo Weinhold# cross tools
291338b8dc3SIngo Weinholdif [ -n "$crossToolsPrefix" ]; then
292338b8dc3SIngo Weinhold	get_build_tool_path AR ar
293338b8dc3SIngo Weinhold	get_build_tool_path CC gcc
294338b8dc3SIngo Weinhold	get_build_tool_path LD ld
295338b8dc3SIngo Weinhold	get_build_tool_path OBJCOPY objcopy
296338b8dc3SIngo Weinhold	get_build_tool_path RANLIB ranlib
297338b8dc3SIngo Weinholdfi
298338b8dc3SIngo Weinhold
299338b8dc3SIngo Weinhold# prepare gcc settings
300338b8dc3SIngo Weinholdstandard_gcc_settings
301338b8dc3SIngo Weinhold
302*eedc3d0bSIngo Weinhold# check whether the Haiku compiler really targets Haiku or BeOS
303*eedc3d0bSIngo Weinholdcase "$haikuGCCMachine" in
304*eedc3d0bSIngo Weinhold	*-*-haiku)	;;
305*eedc3d0bSIngo Weinhold	*-*-beos)	;;
306*eedc3d0bSIngo Weinhold	*) echo The compiler specified as Haiku target compiler is not a valid \
307*eedc3d0bSIngo Weinhold			Haiku cross-compiler. Please see ReadMe.cross-compile. >&2
308*eedc3d0bSIngo Weinhold	   echo compiler: $HAIKU_CC
309*eedc3d0bSIngo Weinhold	   echo compiler is configured for target: $haikuGCCMachine
310*eedc3d0bSIngo Weinhold	   exit 1 ;;
311*eedc3d0bSIngo Weinholdesac
312*eedc3d0bSIngo Weinhold
31352a38012Sejakowatz# Generate BuildConfig
3146e7c6fe5SIngo Weinholdcat << EOF > "$buildOutputDir/BuildConfig"
31552a38012Sejakowatz# BuildConfig
31652a38012Sejakowatz# Note: This file has been automatically generated by configure.
31752a38012Sejakowatz
3186e7c6fe5SIngo WeinholdTARGET_PLATFORM 	?= "${target}" ;
3196e7c6fe5SIngo WeinholdHOST_PLATFORM		?= "${buildPlatform}" ;
320338b8dc3SIngo Weinhold
321eccc7665SIngo WeinholdBOCHS_DEBUG_HACK	?= "${bochs_debug}" ;
322eccc7665SIngo WeinholdINCLUDE_GPL_ADDONS	?= "${include_gpl_addons}" ;
323eccc7665SIngo WeinholdHAIKU_USE_GCC_PIPE	?= "${use_gcc_pipe}" ;
324eccc7665SIngo Weinhold
325338b8dc3SIngo WeinholdHAIKU_GCC_RAW_VERSION	?= ${haikuGCCVersion} ;
326338b8dc3SIngo WeinholdHAIKU_GCC_MACHINE		?= ${haikuGCCMachine} ;
327338b8dc3SIngo WeinholdHAIKU_GCC_LIB_DIR		?= ${HAIKU_GCC_LIB_DIR} ;
328338b8dc3SIngo WeinholdHAIKU_GCC_HEADERS_DIR	?= ${HAIKU_GCC_HEADERS_DIR} ;
329338b8dc3SIngo WeinholdHAIKU_GCC_LIBGCC		?= ${HAIKU_GCC_LIBGCC} ;
330338b8dc3SIngo Weinhold
3318b5934c9SIngo WeinholdHAIKU_STATIC_LIBSTDC++	?= ${haikuStaticLibStdCxx} ;
3328b5934c9SIngo WeinholdHAIKU_SHARED_LIBSTDC++	?= ${haikuSharedLibStdCxx} ;
333c89fc875SIngo WeinholdHAIKU_STATIC_LIBSUPC++	?= ${haikuStaticLibSupCxx} ;
334c89fc875SIngo WeinholdHAIKU_SHARED_LIBSUPC++	?= ${haikuSharedLibSupCxx} ;
3358b5934c9SIngo WeinholdHAIKU_C++_HEADERS_DIR	?= ${haikuCxxHeadersDir} ;
3368b5934c9SIngo Weinhold
337338b8dc3SIngo WeinholdHAIKU_BUILD_ATTRIBUTES_DIR	?= ${buildAttributesDir} ;
338338b8dc3SIngo Weinhold
339338b8dc3SIngo WeinholdHAIKU_AR			?= ${HAIKU_AR} ;
340338b8dc3SIngo WeinholdHAIKU_CC			?= ${HAIKU_CC} ;
341338b8dc3SIngo WeinholdHAIKU_LD			?= ${HAIKU_LD} ;
342338b8dc3SIngo WeinholdHAIKU_OBJCOPY		?= ${HAIKU_OBJCOPY} ;
343338b8dc3SIngo WeinholdHAIKU_RANLIB		?= ${HAIKU_RANLIB} ;
344338b8dc3SIngo WeinholdHAIKU_CPPFLAGS		?= ${HAIKU_CPPFLAGS} ;
345338b8dc3SIngo WeinholdHAIKU_CCFLAGS		?= ${HAIKU_CCFLAGS} ;
346338b8dc3SIngo WeinholdHAIKU_CXXFLAGS		?= ${HAIKU_CXXFLAGS} ;
347338b8dc3SIngo WeinholdHAIKU_LDFLAGS		?= ${HAIKU_LDFLAGS} ;
348338b8dc3SIngo WeinholdHAIKU_ARFLAGS		?= ${HAIKU_ARFLAGS} ;
349338b8dc3SIngo WeinholdHAIKU_UNARFLAGS		?= ${HAIKU_UNARFLAGS} ;
350338b8dc3SIngo Weinhold
3518b5934c9SIngo WeinholdHOST_GCC_RAW_VERSION	?= ${hostGCCVersion} ;
3528b5934c9SIngo Weinhold
353c4786ea6SlilloEOF
354c4786ea6Slillo
355b1e5b60cSAxel Dörfler# Libgcc.a objects
356b1e5b60cSAxel Dörfler
3576e7c6fe5SIngo Weinholdcat << EOF > "$buildOutputDir/libgccObjects"
358b1e5b60cSAxel Dörfler# libgcc.a objects to be linked against libroot.so
359b1e5b60cSAxel Dörfler# Note: This file has been automatically generated by configure.
360b1e5b60cSAxel Dörfler
361338b8dc3SIngo WeinholdHAIKU_GCC_LIBGCC_OBJECTS	?= ${HAIKU_GCC_LIBGCC_OBJECTS} ;
362b1e5b60cSAxel DörflerEOF
363b1e5b60cSAxel Dörfler
3644c74bde8SJérôme Duval# Generate Timezones binaries bindings
3654c74bde8SJérôme Duval
366338b8dc3SIngo WeinholdtimezoneSources="africa antarctica asia australasia europe northamerica
367338b8dc3SIngo Weinhold	southamerica pacificnew etcetera factory backward"
368338b8dc3SIngo Weinhold
3696e7c6fe5SIngo Weinholdcat << EOF > "$buildOutputDir/Timezones"
370b1e5b60cSAxel Dörfler# Timezones used for the build
371b1e5b60cSAxel Dörfler# Note: This file has been automatically generated by configure.
372b1e5b60cSAxel Dörfler
373338b8dc3SIngo WeinholdHAIKU_TIME_ZONE_SOURCES = ${timezoneSources} ;
374338b8dc3SIngo Weinhold
375b1e5b60cSAxel DörflerEOF
376b1e5b60cSAxel Dörfler
377338b8dc3SIngo Weinholdfor source in ${timezoneSources}; do
378338b8dc3SIngo Weinhold	f=$sourceDir/src/data/etc/timezones/$source
3794c74bde8SJérôme Duval
3806e7c6fe5SIngo WeinholdTZOBJECTS=`gawk '/^Zone/ { print $2 } /^Link/ { print $3 } ' "$f" `
3814c74bde8SJérôme Duval
3826e7c6fe5SIngo Weinholdcat << EOF >> "$buildOutputDir/Timezones"
383338b8dc3SIngo WeinholdTZ_OBJECTS on <timezone-source>${source} ?= $TZOBJECTS ;
3844c74bde8SJérôme DuvalEOF
3854c74bde8SJérôme Duvaldone
386338b8dc3SIngo Weinhold
387338b8dc3SIngo Weinhold# Generate a boot strap Jamfile in the output directory, if it is not in
388338b8dc3SIngo Weinhold# the source dir.
389338b8dc3SIngo Weinhold
390338b8dc3SIngo Weinholdif [ "$currentDir" != "$sourceDir" ]; then
391338b8dc3SIngo Weinhold
392338b8dc3SIngo Weinholdcat << EOF > $outputDir/Jamfile
393338b8dc3SIngo Weinhold# automatically generated Jamfile
394338b8dc3SIngo Weinhold
395338b8dc3SIngo WeinholdHAIKU_TOP			= ${sourceDir} ;
396338b8dc3SIngo WeinholdHAIKU_OUTPUT_DIR	= ${outputDir} ;
397338b8dc3SIngo Weinhold
398338b8dc3SIngo Weinholdinclude [ FDirName \$(HAIKU_TOP) Jamfile ] ;
399338b8dc3SIngo Weinhold
400338b8dc3SIngo WeinholdEOF
401338b8dc3SIngo Weinhold
402338b8dc3SIngo Weinholdfi
403338b8dc3SIngo Weinhold
404