xref: /haiku/configure (revision 20ab75e64c8c4113ca0af0e8e5be8b9c9623b923)
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:
15022fa244SIngo Weinhold  --floppy <floppy location>  Specifies the location of the floppy
16022fa244SIngo Weinhold                              (device or image).
176f9587ddSAxel Dörfler  --bochs-debug               Enables bochs serial debug emulation (activated 
186f9587ddSAxel Dörfler                              via kernel settings file).
19338b8dc3SIngo Weinhold  --cross-tools-prefix <prefix>
20338b8dc3SIngo Weinhold                              Assume cross compilation. <prefix> should be a
21338b8dc3SIngo Weinhold                              path to the directory where the cross
22338b8dc3SIngo Weinhold                              compilation tools are located, plus the platform
23338b8dc3SIngo Weinhold                              prefix, e.g. "/path/to/tools/i586-pc-beos-".
24338b8dc3SIngo Weinhold                              This overrides the HAIKU_* tool variables.
25338b8dc3SIngo Weinhold  --build-cross-tools <build tools dir>
26338b8dc3SIngo Weinhold                              Assume cross compilation. <build tools dir>
27338b8dc3SIngo Weinhold                              defines the location of the build tools sources.
28338b8dc3SIngo Weinhold                              They will be compiled and placed in the output
29338b8dc3SIngo Weinhold                              directory under "cross-tools". The HAIKU_* tools
30338b8dc3SIngo Weinhold                              variables will be set accordingly.
31*20ab75e6SIngo Weinhold  --build-cross-tools-gcc4 <arch> <build tools dir>
3229ef597dSIngo Weinhold                              Like "--build-cross-tools" just that gcc 4 will
3329ef597dSIngo Weinhold                              be used for cross-compilation. Note, that the
3429ef597dSIngo Weinhold                              resulting Haiku installation built with gcc 4
3529ef597dSIngo Weinhold                              will not be binary compatible with BeOS R5.
36*20ab75e6SIngo Weinhold                              <arch> specifies the target architecture, either
37*20ab75e6SIngo Weinhold                              "x86" or "ppc".
38614026d7Sshatty  --target=TARGET             Select build target platform. [default=${target}]
39a17b9c0cSshatty                              valid targets=r5,bone,dano,haiku
40e91f3ca1Sbeveloper  --include-gpl-addons        Include GPL licensed add-ons.
41022fa244SIngo Weinhold  --help                      Prints out this help.
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{
66*20ab75e6SIngo Weinhold	if [ $2 -lt 2 ]; then
67022fa244SIngo Weinhold		echo $0: \`$1\': Parameter expected.
68022fa244SIngo Weinhold		exit 1
69022fa244SIngo Weinhold	fi
70022fa244SIngo Weinhold}
71022fa244SIngo Weinhold
72*20ab75e6SIngo Weinhold# assertparams
73*20ab75e6SIngo Weinhold#
74*20ab75e6SIngo Weinhold# Checks whether at least a certain number of parameters is left.
75*20ab75e6SIngo Weinhold#
76*20ab75e6SIngo Weinholdassertparams()
77*20ab75e6SIngo Weinhold{
78*20ab75e6SIngo Weinhold	if [ $3 -le $2 ]; then
79*20ab75e6SIngo Weinhold		echo $0: \`$1\': Not enough parameters.
80*20ab75e6SIngo Weinhold		exit 1
81*20ab75e6SIngo Weinhold	fi
82*20ab75e6SIngo Weinhold}
83*20ab75e6SIngo 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}`
93338b8dc3SIngo Weinhold	haikuGCCVersion=`$HAIKU_CC -dumpversion`
94338b8dc3SIngo Weinhold	haikuGCCMachine=`$HAIKU_CC -dumpmachine`
95338b8dc3SIngo Weinhold
96338b8dc3SIngo Weinhold	HAIKU_GCC_LIB_DIR=${gccdir}
97338b8dc3SIngo Weinhold	HAIKU_GCC_LIBGCC=${gccdir}/libgcc.a
98338b8dc3SIngo Weinhold	HAIKU_GCC_GLUE_CODE="crtbegin.o crtend.o"
99338b8dc3SIngo Weinhold	HAIKU_GCC_HEADERS_DIR=${gccdir}/include
100338b8dc3SIngo Weinhold	HAIKU_GCC_LIBGCC_OBJECTS=`ar t ${HAIKU_GCC_LIBGCC}`
1018b5934c9SIngo Weinhold
102c89fc875SIngo Weinhold	# for gcc 4 we use the libstdc++ and libsupc++ that come with the compiler
1038b5934c9SIngo Weinhold	case $haikuGCCVersion in
1048b5934c9SIngo Weinhold		4.*)
1058b5934c9SIngo Weinhold			haikuStaticLibStdCxx=`$HAIKU_CC -print-file-name=libstdc++.a`
1068b5934c9SIngo Weinhold			haikuSharedLibStdCxx=`$HAIKU_CC -print-file-name=libstdc++.so`
107c89fc875SIngo Weinhold			haikuStaticLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.a`
108c89fc875SIngo Weinhold			haikuSharedLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.so`
1098b5934c9SIngo Weinhold			local headers=$gccdir/../../../../include/c++/$haikuGCCVersion
1108b5934c9SIngo Weinhold			haikuCxxHeadersDir=$headers
11129ef597dSIngo Weinhold			for d in $haikuGCCMachine backward ext; do
11229ef597dSIngo Weinhold				# Note: We need the line break, otherwise the line might become
11329ef597dSIngo Weinhold				# too long for jam (512 bytes max).
11429ef597dSIngo Weinhold				haikuCxxHeadersDir="$haikuCxxHeadersDir
11529ef597dSIngo Weinhold					$headers/$d"
1168b5934c9SIngo Weinhold			done
1178b5934c9SIngo Weinhold
1188b5934c9SIngo Weinhold			if [ $haikuStaticLibStdCxx = libstdc++.a ]; then
1198b5934c9SIngo Weinhold				haikuStaticLibStdCxx=
1208b5934c9SIngo Weinhold			fi
1218b5934c9SIngo Weinhold			if [ $haikuSharedLibStdCxx = libstdc++.so ]; then
1228b5934c9SIngo Weinhold				haikuSharedLibStdCxx=
1238b5934c9SIngo Weinhold			fi
124c89fc875SIngo Weinhold			if [ $haikuStaticLibSupCxx = libsupc++.a ]; then
125c89fc875SIngo Weinhold				haikuStaticLibSupCxx=
126c89fc875SIngo Weinhold			fi
127c89fc875SIngo Weinhold			if [ $haikuSharedLibSupCxx = libsupc++.so ]; then
128c89fc875SIngo Weinhold				haikuSharedLibSupCxx=
129c89fc875SIngo Weinhold			fi
1308b5934c9SIngo Weinhold		;;
1318b5934c9SIngo Weinhold	esac
13209c5682dSIngo Weinhold}
13309c5682dSIngo Weinhold
134338b8dc3SIngo Weinhold# set_default_value
135338b8dc3SIngo Weinhold#
136338b8dc3SIngo Weinhold# Set the value for a variable, if no value is set yet.
137338b8dc3SIngo Weinhold#
138338b8dc3SIngo Weinholdset_default_value()
139338b8dc3SIngo Weinhold{
140338b8dc3SIngo Weinhold	local var=$1;
141338b8dc3SIngo Weinhold	# any better way?
142338b8dc3SIngo Weinhold	(set -u; (eval "echo \${$var}") &> /dev/null) || eval "$var=$2"
143338b8dc3SIngo Weinhold}
144338b8dc3SIngo Weinhold
145338b8dc3SIngo Weinhold# get_build_tool_path
146338b8dc3SIngo Weinhold#
147338b8dc3SIngo Weinhold# Gets a usable absolute path of a build tool.
148338b8dc3SIngo Weinhold#
149338b8dc3SIngo Weinholdget_build_tool_path()
150338b8dc3SIngo Weinhold{
151338b8dc3SIngo Weinhold	local var="HAIKU_$1"
152338b8dc3SIngo Weinhold	local tool=$2
153338b8dc3SIngo Weinhold	local path="${crossToolsPrefix}$tool"
154338b8dc3SIngo Weinhold
155338b8dc3SIngo Weinhold	if [ -f "$path" ]; then
156338b8dc3SIngo Weinhold		# get absolute path
157338b8dc3SIngo Weinhold		local oldPwd=$(pwd)
158338b8dc3SIngo Weinhold		cd $(dirname "$path")
159338b8dc3SIngo Weinhold		path="$(pwd)/$(basename "$path")"
160338b8dc3SIngo Weinhold		cd $oldPwd
161338b8dc3SIngo Weinhold	else
162338b8dc3SIngo Weinhold		which "$path" &> /dev/null || {
163338b8dc3SIngo Weinhold			echo "Build tool \"$path\" not found." >&2
164338b8dc3SIngo Weinhold			exit 1
165338b8dc3SIngo Weinhold		}
166338b8dc3SIngo Weinhold	fi
167338b8dc3SIngo Weinhold
168338b8dc3SIngo Weinhold	eval "$var=$path"
169338b8dc3SIngo Weinhold}
170338b8dc3SIngo Weinhold
171338b8dc3SIngo Weinhold# get cwd and the source directory
172338b8dc3SIngo WeinholdcurrentDir=`pwd`
173338b8dc3SIngo Weinholdcd `dirname $0`
174338b8dc3SIngo WeinholdsourceDir=`pwd`
175338b8dc3SIngo Weinholdcd $currentDir
176338b8dc3SIngo Weinhold
177022fa244SIngo Weinhold# default parameter values
178022fa244SIngo Weinhold#
17952a38012Sejakowatzplatform=`uname`
180338b8dc3SIngo WeinholdhaikuGCCVersion=
1819743fe87SIngo WeinholdhaikuGCCMachine=i586-pc-beos
1828b5934c9SIngo WeinholdhaikuStaticLibStdCxx=
1838b5934c9SIngo WeinholdhaikuSharedLibStdCxx=
184c89fc875SIngo WeinholdhaikuStaticLibSupCxx=
185c89fc875SIngo WeinholdhaikuSharedLibSupCxx=
1868b5934c9SIngo WeinholdhaikuCxxHeadersDir=
1878b5934c9SIngo WeinholdhostGCCVersion=`cc -dumpversion`
188022fa244SIngo Weinholdfloppy=
1892b94bc7bSlillobochs_debug=0
190e91f3ca1Sbeveloperinclude_gpl_addons=0
19162339647SAxel Dörflertarget=haiku
192338b8dc3SIngo WeinholdcrossToolsPrefix=
193338b8dc3SIngo WeinholdbuildCrossTools=
19429ef597dSIngo WeinholdbuildCrossToolsScript="$sourceDir/build/scripts/build_cross_tools"
195*20ab75e6SIngo WeinholdbuildCrossToolsMachine=
196338b8dc3SIngo Weinhold
197338b8dc3SIngo Weinholdset_default_value HAIKU_AR			ar
198338b8dc3SIngo Weinholdset_default_value HAIKU_CC			gcc
199338b8dc3SIngo Weinholdset_default_value HAIKU_LD			ld
200338b8dc3SIngo Weinholdset_default_value HAIKU_OBJCOPY		objcopy
201338b8dc3SIngo Weinholdset_default_value HAIKU_RANLIB		ranlib
202338b8dc3SIngo Weinholdset_default_value HAIKU_CPPFLAGS	""
203338b8dc3SIngo Weinholdset_default_value HAIKU_CCFLAGS		""
204338b8dc3SIngo Weinholdset_default_value HAIKU_CXXFLAGS	""
205338b8dc3SIngo Weinholdset_default_value HAIKU_LDFLAGS		""
206338b8dc3SIngo Weinholdset_default_value HAIKU_ARFLAGS		ru
207338b8dc3SIngo Weinholdset_default_value HAIKU_UNARFLAGS	x
20862339647SAxel Dörfler
209022fa244SIngo Weinhold# parse parameters
210022fa244SIngo Weinhold#
211*20ab75e6SIngo Weinholdwhile [ $# -gt 0 ] ; do
212022fa244SIngo Weinhold	case "$1" in
213e91f3ca1Sbeveloper		--include-gpl-addons)	include_gpl_addons=1; shift 1;;
214022fa244SIngo Weinhold		--floppy)		assertparam "$1" $#; floppy=$2; shift 2;;
2152b94bc7bSlillo		--bochs-debug)	bochs_debug=1; shift 1;;
2167c8bb86fSIngo Weinhold		--target=*)     target=`echo $1 | cut -d'=' -f2-`; shift 1;;
217338b8dc3SIngo Weinhold		--cross-tools-prefix) assertparam "$1" $#; crossToolsPrefix=$2; shift 2;;
218338b8dc3SIngo Weinhold		--build-cross-tools) assertparam "$1" $#; buildCrossTools=$2; shift 2;;
219*20ab75e6SIngo Weinhold		--build-cross-tools-gcc4) assertparams "$1" 2 $#; buildCrossTools=$3;
22029ef597dSIngo Weinhold						buildCrossToolsScript="${buildCrossToolsScript}_gcc4";
221*20ab75e6SIngo Weinhold						case "$2" in
222*20ab75e6SIngo Weinhold							x86)	haikuGCCMachine=i586-pc-haiku;;
223*20ab75e6SIngo Weinhold							ppc)	haikuGCCMachine=powerpc-apple-haiku;;
224*20ab75e6SIngo Weinhold							*)		echo "Unsupported target architecture: $2"
225*20ab75e6SIngo Weinhold									exit 1;;
226*20ab75e6SIngo Weinhold						esac
227*20ab75e6SIngo Weinhold						buildCrossToolsMachine=$haikuGCCMachine
228*20ab75e6SIngo Weinhold						shift 3;;
229022fa244SIngo Weinhold		--help | -h)	usage; exit 0;;
230022fa244SIngo Weinhold		*)				echo Invalid argument: \`$1\'; exit 1;;
231022fa244SIngo Weinhold	esac
232022fa244SIngo Weinholddone
233022fa244SIngo Weinhold
234022fa244SIngo Weinhold# check parameters
235022fa244SIngo Weinhold#
236022fa244SIngo Weinholdif [ -n "$floppy" ]; then
237022fa244SIngo Weinhold	case "$floppy" in
238022fa244SIngo Weinhold		/*)	;;
239022fa244SIngo Weinhold		*)	echo "Warning: non-absolute floppy path. Parameter ignored.";
240022fa244SIngo Weinhold			floppy=;;
241022fa244SIngo Weinhold	esac
242022fa244SIngo Weinholdfi
24352a38012Sejakowatz
2440df3cc9cSIngo Weinhold# detect the build platform
245338b8dc3SIngo Weinholdcase "${platform}" in
2460df3cc9cSIngo Weinhold	BeOS)	revision=`uname -r`
2470df3cc9cSIngo Weinhold			case "$revision" in
24814998c8bSIngo Weinhold				6.*)	buildPlatform=dano ;;
2490df3cc9cSIngo Weinhold				5.1)	buildPlatform=dano ;;
2500df3cc9cSIngo Weinhold				5.0.4)	buildPlatform=bone ;;
2510df3cc9cSIngo Weinhold				5.0*)	buildPlatform=r5 ;;
2520df3cc9cSIngo Weinhold				*)		echo Unknown BeOS version: $revision
2530df3cc9cSIngo Weinhold						exit 1 ;;
2540df3cc9cSIngo Weinhold			esac
2550df3cc9cSIngo Weinhold			;;
256338b8dc3SIngo Weinhold	Linux)	buildPlatform=linux ;;
257307807f2SNathan Whitehorn	FreeBSD) buildPlatform=freebsd ;;
258338b8dc3SIngo Weinhold	*)		echo Unsupported platform: ${platform}
2594cbe4925SAxel Dörfler			exit 1 ;;
2604cbe4925SAxel Dörfleresac
26152a38012Sejakowatz
262338b8dc3SIngo Weinhold# create output directory
263338b8dc3SIngo Weinholdif [ "$currentDir" = "$sourceDir" ]; then
264338b8dc3SIngo Weinhold	outputDir=$currentDir/generated
265338b8dc3SIngo Weinholdelse
266338b8dc3SIngo Weinhold	outputDir=$currentDir
267338b8dc3SIngo Weinholdfi
268338b8dc3SIngo WeinholdbuildOutputDir=$outputDir/build
269338b8dc3SIngo WeinholdbuildAttributesDir=$outputDir/attributes
270338b8dc3SIngo Weinholdmkdir -p $buildOutputDir || exit 1
271338b8dc3SIngo Weinhold
272338b8dc3SIngo Weinhold# build cross tools from sources
273338b8dc3SIngo Weinholdif [ -n "$buildCrossTools" ]; then
274*20ab75e6SIngo Weinhold	"$buildCrossToolsScript" $buildCrossToolsMachine "$sourceDir" \
275*20ab75e6SIngo Weinhold		"$buildCrossTools" $outputDir || exit 1
2769743fe87SIngo Weinhold	crossToolsPrefix=$outputDir/cross-tools/bin/${haikuGCCMachine}-
277338b8dc3SIngo Weinholdfi
278338b8dc3SIngo Weinhold
279338b8dc3SIngo Weinhold# cross tools
280338b8dc3SIngo Weinholdif [ -n "$crossToolsPrefix" ]; then
281338b8dc3SIngo Weinhold	get_build_tool_path AR ar
282338b8dc3SIngo Weinhold	get_build_tool_path CC gcc
283338b8dc3SIngo Weinhold	get_build_tool_path LD ld
284338b8dc3SIngo Weinhold	get_build_tool_path OBJCOPY objcopy
285338b8dc3SIngo Weinhold	get_build_tool_path RANLIB ranlib
286338b8dc3SIngo Weinholdfi
287338b8dc3SIngo Weinhold
288338b8dc3SIngo Weinhold# prepare gcc settings
289338b8dc3SIngo Weinholdstandard_gcc_settings
290338b8dc3SIngo Weinhold
29152a38012Sejakowatz# Generate BuildConfig
292338b8dc3SIngo Weinholdcat << EOF > $buildOutputDir/BuildConfig
29352a38012Sejakowatz# BuildConfig
29452a38012Sejakowatz# Note: This file has been automatically generated by configure.
29552a38012Sejakowatz
29609c5682dSIngo WeinholdFLOPPY_PATH			?= "${floppy}" ;
29709c5682dSIngo WeinholdBOCHS_DEBUG_HACK	?= ${bochs_debug} ;
298e91f3ca1SbeveloperINCLUDE_GPL_ADDONS	?= ${include_gpl_addons} ;
299614026d7SshattyTARGET_PLATFORM 	?= ${target} ;
300338b8dc3SIngo WeinholdHOST_PLATFORM		?= ${buildPlatform} ;
301338b8dc3SIngo Weinhold
302338b8dc3SIngo WeinholdHAIKU_GCC_RAW_VERSION	?= ${haikuGCCVersion} ;
303338b8dc3SIngo WeinholdHAIKU_GCC_MACHINE		?= ${haikuGCCMachine} ;
304338b8dc3SIngo WeinholdHAIKU_GCC_LIB_DIR		?= ${HAIKU_GCC_LIB_DIR} ;
305338b8dc3SIngo WeinholdHAIKU_GCC_HEADERS_DIR	?= ${HAIKU_GCC_HEADERS_DIR} ;
306338b8dc3SIngo WeinholdHAIKU_GCC_LIBGCC		?= ${HAIKU_GCC_LIBGCC} ;
307338b8dc3SIngo Weinhold
3088b5934c9SIngo WeinholdHAIKU_STATIC_LIBSTDC++	?= ${haikuStaticLibStdCxx} ;
3098b5934c9SIngo WeinholdHAIKU_SHARED_LIBSTDC++	?= ${haikuSharedLibStdCxx} ;
310c89fc875SIngo WeinholdHAIKU_STATIC_LIBSUPC++	?= ${haikuStaticLibSupCxx} ;
311c89fc875SIngo WeinholdHAIKU_SHARED_LIBSUPC++	?= ${haikuSharedLibSupCxx} ;
3128b5934c9SIngo WeinholdHAIKU_C++_HEADERS_DIR	?= ${haikuCxxHeadersDir} ;
3138b5934c9SIngo Weinhold
314338b8dc3SIngo WeinholdHAIKU_BUILD_ATTRIBUTES_DIR	?= ${buildAttributesDir} ;
315338b8dc3SIngo Weinhold
316338b8dc3SIngo WeinholdHAIKU_AR			?= ${HAIKU_AR} ;
317338b8dc3SIngo WeinholdHAIKU_CC			?= ${HAIKU_CC} ;
318338b8dc3SIngo WeinholdHAIKU_LD			?= ${HAIKU_LD} ;
319338b8dc3SIngo WeinholdHAIKU_OBJCOPY		?= ${HAIKU_OBJCOPY} ;
320338b8dc3SIngo WeinholdHAIKU_RANLIB		?= ${HAIKU_RANLIB} ;
321338b8dc3SIngo WeinholdHAIKU_CPPFLAGS		?= ${HAIKU_CPPFLAGS} ;
322338b8dc3SIngo WeinholdHAIKU_CCFLAGS		?= ${HAIKU_CCFLAGS} ;
323338b8dc3SIngo WeinholdHAIKU_CXXFLAGS		?= ${HAIKU_CXXFLAGS} ;
324338b8dc3SIngo WeinholdHAIKU_LDFLAGS		?= ${HAIKU_LDFLAGS} ;
325338b8dc3SIngo WeinholdHAIKU_ARFLAGS		?= ${HAIKU_ARFLAGS} ;
326338b8dc3SIngo WeinholdHAIKU_UNARFLAGS		?= ${HAIKU_UNARFLAGS} ;
327338b8dc3SIngo Weinhold
3288b5934c9SIngo WeinholdHOST_GCC_RAW_VERSION	?= ${hostGCCVersion} ;
3298b5934c9SIngo Weinhold
330c4786ea6SlilloEOF
331c4786ea6Slillo
332b1e5b60cSAxel Dörfler# Libgcc.a objects
333b1e5b60cSAxel Dörfler
334338b8dc3SIngo Weinholdcat << EOF > $buildOutputDir/libgccObjects
335b1e5b60cSAxel Dörfler# libgcc.a objects to be linked against libroot.so
336b1e5b60cSAxel Dörfler# Note: This file has been automatically generated by configure.
337b1e5b60cSAxel Dörfler
338338b8dc3SIngo WeinholdHAIKU_GCC_LIBGCC_OBJECTS	?= ${HAIKU_GCC_LIBGCC_OBJECTS} ;
339b1e5b60cSAxel DörflerEOF
340b1e5b60cSAxel Dörfler
3414c74bde8SJérôme Duval# Generate Timezones binaries bindings
3424c74bde8SJérôme Duval
343338b8dc3SIngo WeinholdtimezoneSources="africa antarctica asia australasia europe northamerica
344338b8dc3SIngo Weinhold	southamerica pacificnew etcetera factory backward"
345338b8dc3SIngo Weinhold
346338b8dc3SIngo Weinholdcat << EOF > $buildOutputDir/Timezones
347b1e5b60cSAxel Dörfler# Timezones used for the build
348b1e5b60cSAxel Dörfler# Note: This file has been automatically generated by configure.
349b1e5b60cSAxel Dörfler
350338b8dc3SIngo WeinholdHAIKU_TIME_ZONE_SOURCES = ${timezoneSources} ;
351338b8dc3SIngo Weinhold
352b1e5b60cSAxel DörflerEOF
353b1e5b60cSAxel Dörfler
354338b8dc3SIngo Weinholdfor source in ${timezoneSources}; do
355338b8dc3SIngo Weinhold	f=$sourceDir/src/data/etc/timezones/$source
3564c74bde8SJérôme Duval
357d2ab012dSJérôme DuvalTZOBJECTS=`gawk '/^Zone/ { print $2 } /^Link/ { print $3 } ' $f `
3584c74bde8SJérôme Duval
359338b8dc3SIngo Weinholdcat << EOF >> $buildOutputDir/Timezones
360338b8dc3SIngo WeinholdTZ_OBJECTS on <timezone-source>${source} ?= $TZOBJECTS ;
3614c74bde8SJérôme DuvalEOF
3624c74bde8SJérôme Duvaldone
363338b8dc3SIngo Weinhold
364338b8dc3SIngo Weinhold# Generate a boot strap Jamfile in the output directory, if it is not in
365338b8dc3SIngo Weinhold# the source dir.
366338b8dc3SIngo Weinhold
367338b8dc3SIngo Weinholdif [ "$currentDir" != "$sourceDir" ]; then
368338b8dc3SIngo Weinhold
369338b8dc3SIngo Weinholdcat << EOF > $outputDir/Jamfile
370338b8dc3SIngo Weinhold# automatically generated Jamfile
371338b8dc3SIngo Weinhold
372338b8dc3SIngo WeinholdHAIKU_TOP			= ${sourceDir} ;
373338b8dc3SIngo WeinholdHAIKU_OUTPUT_DIR	= ${outputDir} ;
374338b8dc3SIngo Weinhold
375338b8dc3SIngo Weinholdinclude [ FDirName \$(HAIKU_TOP) Jamfile ] ;
376338b8dc3SIngo Weinhold
377338b8dc3SIngo WeinholdEOF
378338b8dc3SIngo Weinhold
379338b8dc3SIngo Weinholdfi
380338b8dc3SIngo Weinhold
381