configure

changeset 76
c2a4fb5024b4
parent 72
7e58e0f74e50
equal deleted inserted replaced
75:b0b8bf3c536e 76:c2a4fb5024b4
1 #!/bin/sh 1 #!/bin/sh
2
3
4 # some utility functions
5 isplatform()
6 {
7 for p in $PLATFORM
8 do
9 if [ "$p" = "$1" ]; then
10 return 0
11 fi
12 done
13 return 1
14 }
15 notisplatform()
16 {
17 for p in $PLATFORM
18 do
19 if [ "$p" = "$1" ]; then
20 return 1
21 fi
22 done
23 return 0
24 }
25 istoolchain()
26 {
27 for t in $TOOLCHAIN
28 do
29 if [ "$t" = "$1" ]; then
30 return 0
31 fi
32 done
33 return 1
34 }
35 notistoolchain()
36 {
37 for t in $TOOLCHAIN
38 do
39 if [ "$t" = "$1" ]; then
40 return 1
41 fi
42 done
43 return 0
44 }
45
46 # clean abort
47 abort_configure()
48 {
49 rm -Rf "$TEMP_DIR"
50 exit 1
51 }
52
53 # Test for availability of pkg-config
54 PKG_CONFIG=`command -v pkg-config`
55 : ${PKG_CONFIG:="false"}
56
57 # Simple uname based platform detection
58 # $PLATFORM is used for platform dependent dependency selection
59 OS=`uname -s`
60 OS_VERSION=`uname -r`
61 ARCH=`uname -m`
62 printf "detect platform... "
63 if [ "$OS" = "SunOS" ]; then
64 PLATFORM="solaris sunos unix svr4"
65 elif [ "$OS" = "Linux" ]; then
66 PLATFORM="linux unix"
67 elif [ "$OS" = "FreeBSD" ]; then
68 PLATFORM="freebsd bsd unix"
69 elif [ "$OS" = "OpenBSD" ]; then
70 PLATFORM="openbsd bsd unix"
71 elif [ "$OS" = "NetBSD" ]; then
72 PLATFORM="netbsd bsd unix"
73 elif [ "$OS" = "Darwin" ]; then
74 PLATFORM="macos osx bsd unix"
75 elif echo "$OS" | grep -i "MINGW" > /dev/null; then
76 PLATFORM="windows mingw"
77 fi
78 : ${PLATFORM:="unix"}
79
80 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -`
81 echo "$PLATFORM_NAME"
82
83
84 # help text
85 printhelp()
86 {
87 echo "Usage: $0 [OPTIONS]..."
88 cat << __EOF__
89 Installation directories:
90 --prefix=PREFIX path prefix for architecture-independent files
91 [$prefix]
92 --exec-prefix=EPREFIX path prefix for architecture-dependent files
93 [PREFIX]
94
95 --bindir=DIR user executables [EPREFIX/bin]
96 --sbindir=DIR system admin executables [EPREFIX/sbin]
97 --libexecdir=DIR program executables [EPREFIX/libexec]
98 --sysconfdir=DIR system configuration files [PREFIX/etc]
99 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
100 --localstatedir=DIR modifiable single-machine data [PREFIX/var]
101 --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run]
102 --libdir=DIR object code libraries [EPREFIX/lib]
103 --includedir=DIR C header files [PREFIX/include]
104 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
105 --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
106 --infodir=DIR info documentation [DATAROOTDIR/info]
107 --mandir=DIR man documentation [DATAROOTDIR/man]
108 --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
109
110 Build Types:
111 --debug add extra compile flags for debug builds
112 --release add extra compile flags for release builds
113
114 __EOF__
115 }
2 116
3 # create temporary directory 117 # create temporary directory
4 TEMP_DIR=".tmp-`uname -n`" 118 TEMP_DIR=".tmp-`uname -n`"
5 rm -Rf "$TEMP_DIR" 119 rm -Rf "$TEMP_DIR"
6 if mkdir -p "$TEMP_DIR"; then 120 if mkdir -p "$TEMP_DIR"; then
12 fi 126 fi
13 touch "$TEMP_DIR/options" 127 touch "$TEMP_DIR/options"
14 touch "$TEMP_DIR/features" 128 touch "$TEMP_DIR/features"
15 129
16 # define standard variables 130 # define standard variables
17 PREFIX=/usr 131 # also define standard prefix (this is where we will search for config.site)
18 EPREFIX= 132 prefix=/usr
19 BINDIR= 133 exec_prefix=
20 SBINDIR= 134 bindir=
21 LIBDIR= 135 sbindir=
22 LIBEXECDIR= 136 libdir=
23 DATADIR= 137 libexecdir=
24 SYSCONFDIR= 138 datarootdir=
25 SHAREDSTATEDIR= 139 datadir=
26 LOCALSTATEDIR= 140 sysconfdir=
27 INCLUDEDIR= 141 sharedstatedir=
28 INFODIR= 142 localstatedir=
29 MANDIR= 143 runstatedir=
144 includedir=
145 infodir=
146 localedir=
147 mandir=
30 148
31 # custom variables 149 # custom variables
32 BUILDDIR=`pwd`/build
33 150
34 # features 151 # features
35
36 # clean abort
37 abort_configure()
38 {
39 rm -Rf "$TEMP_DIR"
40 exit 1
41 }
42
43 # help text
44 printhelp()
45 {
46 echo "Usage: $0 [OPTIONS]..."
47 cat << __EOF__
48 Installation directories:
49 --prefix=PREFIX path prefix for architecture-independent files
50 [/usr]
51 --exec-prefix=EPREFIX path prefix for architecture-dependent files
52 [PREFIX]
53
54 --bindir=DIR user executables [EPREFIX/bin]
55 --sbindir=DIR system admin executables [EPREFIX/sbin]
56 --libexecdir=DIR program executables [EPREFIX/libexec]
57 --sysconfdir=DIR system configuration files [PREFIX/etc]
58 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
59 --localstatedir=DIR modifiable single-machine data [PREFIX/var]
60 --libdir=DIR object code libraries [EPREFIX/lib]
61 --includedir=DIR C header files [PREFIX/include]
62 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
63 --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
64 --infodir=DIR info documentation [DATAROOTDIR/info]
65 --mandir=DIR man documentation [DATAROOTDIR/man]
66
67 __EOF__
68 }
69 152
70 # 153 #
71 # parse arguments 154 # parse arguments
72 # 155 #
73 BUILD_TYPE="default" 156 BUILD_TYPE="default"
74 for ARG in "$@" 157 for ARG in "$@"
75 do 158 do
76 case "$ARG" in 159 case "$ARG" in
77 "--prefix="*) PREFIX=${ARG#--prefix=} ;; 160 "--prefix="*) prefix=${ARG#--prefix=} ;;
78 "--exec-prefix="*) EPREFIX=${ARG#--exec-prefix=} ;; 161 "--exec-prefix="*) exec_prefix=${ARG#--exec-prefix=} ;;
79 "--bindir="*) BINDIR=${ARG#----bindir=} ;; 162 "--bindir="*) bindir=${ARG#----bindir=} ;;
80 "--sbindir="*) SBINDIR=${ARG#--sbindir=} ;; 163 "--sbindir="*) sbindir=${ARG#--sbindir=} ;;
81 "--libdir="*) LIBDIR=${ARG#--libdir=} ;; 164 "--libdir="*) libdir=${ARG#--libdir=} ;;
82 "--libexecdir="*) LIBEXECDIR=${ARG#--libexecdir=} ;; 165 "--libexecdir="*) libexecdir=${ARG#--libexecdir=} ;;
83 "--datadir="*) DATADIR=${ARG#--datadir=} ;; 166 "--datarootdir="*) datarootdir=${ARG#--datarootdir=} ;;
84 "--sysconfdir="*) SYSCONFDIR=${ARG#--sysconfdir=} ;; 167 "--datadir="*) datadir=${ARG#--datadir=} ;;
85 "--sharedstatedir="*) SHAREDSTATEDIR=${ARG#--sharedstatedir=} ;; 168 "--sysconfdir="*) sysconfdir=${ARG#--sysconfdir=} ;;
86 "--localstatedir="*) LOCALSTATEDIR=${ARG#--localstatedir=} ;; 169 "--sharedstatedir="*) sharedstatedir=${ARG#--sharedstatedir=} ;;
87 "--includedir="*) INCLUDEDIR=${ARG#--includedir=} ;; 170 "--localstatedir="*) localstatedir=${ARG#--localstatedir=} ;;
88 "--infodir="*) INFODIR=${ARG#--infodir=} ;; 171 "--includedir="*) includedir=${ARG#--includedir=} ;;
89 "--mandir"*) MANDIR=${ARG#--mandir} ;; 172 "--infodir="*) infodir=${ARG#--infodir=} ;;
90 "--help"*) printhelp; abort_configure ;; 173 "--mandir"*) mandir=${ARG#--mandir} ;;
91 "--debug") BUILD_TYPE="debug" ;; 174 "--localedir"*) localedir=${ARG#--localedir} ;;
92 "--release") BUILD_TYPE="release" ;; 175 "--help"*) printhelp; abort_configure ;;
176 "--debug") BUILD_TYPE="debug" ;;
177 "--release") BUILD_TYPE="release" ;;
93 "-"*) echo "unknown option: $ARG"; abort_configure ;; 178 "-"*) echo "unknown option: $ARG"; abort_configure ;;
94 esac 179 esac
95 done 180 done
96 181
97 182
98 # set dir variables 183
99 : ${EPREFIX:="$PREFIX"} 184 # set defaults for dir variables
100 : ${BINDIR:="$EPREFIX/bin"} 185 : ${exec_prefix:="$prefix"}
101 : ${SBINDIR:="$EPREFIX/sbin"} 186 : ${bindir:='${exec_prefix}/bin'}
102 : ${LIBDIR:="$EPREFIX/lib"} 187 : ${sbindir:='${exec_prefix}/sbin'}
103 : ${LIBEXECDIR:="$EPREFIX/libexec"} 188 : ${libdir:='${exec_prefix}/lib'}
104 : ${DATADIR:="$PREFIX/share"} 189 : ${libexecdir:='${exec_prefix}/libexec'}
105 : ${SYSCONFDIR:="$PREFIX/etc"} 190 : ${datarootdir:='${prefix}/share'}
106 : ${SHAREDSTATEDIR:="$PREFIX/com"} 191 : ${datadir:='${datarootdir}'}
107 : ${LOCALSTATEDIR:="$PREFIX/var"} 192 : ${sysconfdir:='${prefix}/etc'}
108 : ${INCLUDEDIR:="$PREFIX/include"} 193 : ${sharedstatedir:='${prefix}/com'}
109 : ${INFODIR:="$PREFIX/info"} 194 : ${localstatedir:='${prefix}/var'}
110 : ${MANDIR:="$PREFIX/man"} 195 : ${runstatedir:='${localstatedir}/run'}
111 196 : ${includedir:='${prefix}/include'}
112 # Test for availability of pkg-config 197 : ${infodir:='${datarootdir}/info'}
113 PKG_CONFIG=`command -v pkg-config` 198 : ${mandir:='${datarootdir}/man'}
114 : ${PKG_CONFIG:="false"} 199 : ${localedir:='${datarootdir}/locale'}
115 200
116 # Simple uname based platform detection 201 # remember the above values and compare them later
117 # $PLATFORM is used for platform dependent dependency selection 202 orig_bindir="$bindir"
118 OS=`uname -s` 203 orig_sbindir="$sbindir"
119 OS_VERSION=`uname -r` 204 orig_libdir="$libdir"
120 printf "detect platform... " 205 orig_libexecdir="$libexecdir"
121 if [ "$OS" = "SunOS" ]; then 206 orig_datarootdir="$datarootdir"
122 PLATFORM="solaris sunos unix svr4" 207 orig_datadir="$datadir"
123 fi 208 orig_sysconfdir="$sysconfdir"
124 if [ "$OS" = "Linux" ]; then 209 orig_sharedstatedir="$sharedstatedir"
125 PLATFORM="linux unix" 210 orig_localstatedir="$localstatedir"
126 fi 211 orig_runstatedir="$runstatedir"
127 if [ "$OS" = "FreeBSD" ]; then 212 orig_includedir="$includedir"
128 PLATFORM="freebsd bsd unix" 213 orig_infodir="$infodir"
129 fi 214 orig_mandir="$mandir"
130 if [ "$OS" = "Darwin" ]; then 215 orig_localedir="$localedir"
131 PLATFORM="macos osx bsd unix" 216
132 fi 217 # check if a config.site exists and load it
133 if echo "$OS" | grep -i "MINGW" > /dev/null; then 218 if [ -n "$CONFIG_SITE" ]; then
134 PLATFORM="windows mingw" 219 # CONFIG_SITE may contain space separated file names
135 fi 220 for cs in $CONFIG_SITE; do
136 : ${PLATFORM:="unix"} 221 printf "loading defaults from $cs... "
137 222 . "$cs"
138 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` 223 echo ok
139 echo "$PLATFORM_NAME" 224 done
140 225 elif [ -f "$prefix/share/config.site" ]; then
141 isplatform() 226 printf "loading site defaults... "
142 { 227 . "$prefix/share/config.site"
143 for p in $PLATFORM 228 echo ok
144 do 229 elif [ -f "$prefix/etc/config.site" ]; then
145 if [ "$p" = "$1" ]; then 230 printf "loading site defaults... "
146 return 0 231 . "$prefix/etc/config.site"
147 fi 232 echo ok
148 done 233 else
149 return 1 234 # try to detect the correct libdir on our own, except it was changed by the user
150 } 235 if test "$libdir" = '${exec_prefix}/lib'; then
151 notisplatform() 236 if [ "$OS" = "SunOS" ]; then
152 { 237 test -d "${exec_prefix}/lib/amd64" && libdir='${exec_prefix}/lib/amd64'
153 for p in $PLATFORM 238 else
154 do 239 # check if the standard libdir even exists
155 if [ "$p" = "$1" ]; then 240 if test -d "${exec_prefix}/lib" ; then
156 return 1 241 :
157 fi 242 else
158 done 243 # if it does not, maybe a lib32 exists
159 return 0 244 test -d "${exec_prefix}/lib32" && libdir='${exec_prefix}/lib32'
160 } 245 fi
246 # now check if there is a special 64bit libdir that we should use
247 for i in x86_64 ppc64 s390x aarch64 aarch64_be arm64 ; do
248 if [ $ARCH = $i ]; then
249 test -d "${exec_prefix}/lib64" && libdir='${exec_prefix}/lib64'
250 break
251 fi
252 done
253 fi
254 fi
255 fi
161 256
162 257
163 # generate vars.mk 258 # generate vars.mk
164 cat > "$TEMP_DIR/vars.mk" << __EOF__ 259 cat > "$TEMP_DIR/vars.mk" << __EOF__
165 PREFIX=$PREFIX 260 prefix=$prefix
166 EPREFIX=$EPREFIX 261 exec_prefix=$exec_prefix
167 BINDIR=$BINDIR 262 bindir=$bindir
168 SBINDIR=$SBINDIR 263 sbindir=$sbindir
169 LIBDIR=$LIBDIR 264 libdir=$libdir
170 LIBEXECDIR=$LIBEXECDIR 265 libexecdir=$libexecdir
171 DATADIR=$DATADIR 266 datarootdir=$datarootdir
172 SYSCONFDIR=$SYSCONFDIR 267 datadir=$datadir
173 SHAREDSTATEDIR=$SHAREDSTATEDIR 268 sysconfdir=$sysconfdir
174 LOCALSTATEDIR=$LOCALSTATEDIR 269 sharedstatedir=$sharedstatedir
175 INCLUDEDIR=$INCLUDEDIR 270 localstatedir=$localstatedir
176 INFODIR=$INFODIR 271 runstatedir=$runstatedir
177 MANDIR=$MANDIR 272 includedir=$includedir
178 BUILDDIR=$BUILDDIR 273 infodir=$infodir
179 __EOF__ 274 mandir=$mandir
180 sort -u -o "$TEMP_DIR/vars.mk" "$TEMP_DIR/vars.mk" 275 localedir=$localedir
181 276 __EOF__
182 277
183 # toolchain detection utilities 278 # toolchain detection utilities
184 . make/toolchain.sh 279 . make/toolchain.sh
185 280
186 # 281 #
208 if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then : 303 if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then :
209 else return 1 ; fi 304 else return 1 ; fi
210 return 0 305 return 0
211 } 306 }
212 307
308 print_check_msg()
309 {
310 if [ -z "$1" ]; then
311 shift
312 printf "$@"
313 fi
314 }
315
213 dependency_error_archiver() 316 dependency_error_archiver()
214 { 317 {
215 printf "checking for archiver... " 318 print_check_msg "$dep_checked_archiver" "checking for archiver... "
216 # dependency archiver 319 # dependency archiver
217 while true 320 while true
218 do 321 do
219 if command -v ar > /dev/null ; then 322 if command -v ar > /dev/null ; then
220 : 323 :
223 fi 326 fi
224 cat >> $TEMP_DIR/make.mk << __EOF__ 327 cat >> $TEMP_DIR/make.mk << __EOF__
225 # Dependency: archiver 328 # Dependency: archiver
226 AR = ar 329 AR = ar
227 ARFLAGS = -r 330 ARFLAGS = -r
228 331 __EOF__
229 __EOF__ 332 print_check_msg "$dep_checked_archiver" "yes\n"
230 echo yes 333 dep_checked_archiver=1
231 return 1 334 return 1
232 done 335 done
233 336
234 echo no 337 print_check_msg "$dep_checked_archiver" "no\n"
338 dep_checked_archiver=1
235 return 0 339 return 0
236 } 340 }
237 dependency_error_rmdir() 341 dependency_error_rmdir()
238 { 342 {
239 printf "checking for rmdir... " 343 print_check_msg "$dep_checked_rmdir" "checking for rmdir... "
240 # dependency rmdir 344 # dependency rmdir
241 while true 345 while true
242 do 346 do
243 if command -v rm > /dev/null ; then 347 if command -v rm > /dev/null ; then
244 : 348 :
247 fi 351 fi
248 cat >> $TEMP_DIR/make.mk << __EOF__ 352 cat >> $TEMP_DIR/make.mk << __EOF__
249 # Dependency: rmdir 353 # Dependency: rmdir
250 RM = rm 354 RM = rm
251 RMFLAGS = -f -R 355 RMFLAGS = -f -R
252 356 __EOF__
253 __EOF__ 357 print_check_msg "$dep_checked_rmdir" "yes\n"
254 echo yes 358 dep_checked_rmdir=1
255 return 1 359 return 1
256 done 360 done
257 361
258 echo no 362 print_check_msg "$dep_checked_rmdir" "no\n"
363 dep_checked_rmdir=1
259 return 0 364 return 0
260 } 365 }
261 dependency_error_ncurses() 366 dependency_error_ncurses()
262 { 367 {
263 printf "checking for ncurses... " 368 print_check_msg "$dep_checked_ncurses" "checking for ncurses... "
264 # dependency ncurses 369 # dependency ncurses
265 while true 370 while true
266 do 371 do
267 if [ -z "$PKG_CONFIG" ]; then 372 if [ -z "$PKG_CONFIG" ]; then
268 break 373 break
271 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags ncursesw`" 376 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags ncursesw`"
272 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs ncursesw`" 377 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs ncursesw`"
273 else 378 else
274 break 379 break
275 fi 380 fi
276 echo yes 381 print_check_msg "$dep_checked_ncurses" "yes\n"
382 dep_checked_ncurses=1
277 return 1 383 return 1
278 done 384 done
279 385
280 echo no 386 print_check_msg "$dep_checked_ncurses" "no\n"
387 dep_checked_ncurses=1
281 return 0 388 return 0
282 } 389 }
283 dependency_error_mkdir() 390 dependency_error_mkdir()
284 { 391 {
285 printf "checking for mkdir... " 392 print_check_msg "$dep_checked_mkdir" "checking for mkdir... "
286 # dependency mkdir 393 # dependency mkdir
287 while true 394 while true
288 do 395 do
289 if command -v mkdir > /dev/null ; then 396 if command -v mkdir > /dev/null ; then
290 : 397 :
293 fi 400 fi
294 cat >> $TEMP_DIR/make.mk << __EOF__ 401 cat >> $TEMP_DIR/make.mk << __EOF__
295 # Dependency: mkdir 402 # Dependency: mkdir
296 MKDIR = mkdir 403 MKDIR = mkdir
297 MKDIRFLAGS = -p 404 MKDIRFLAGS = -p
298 405 __EOF__
299 __EOF__ 406 print_check_msg "$dep_checked_mkdir" "yes\n"
300 echo yes 407 dep_checked_mkdir=1
301 return 1 408 return 1
302 done 409 done
303 410
304 echo no 411 print_check_msg "$dep_checked_mkdir" "no\n"
305 return 0 412 dep_checked_mkdir=1
306 } 413 return 0
307 414 }
308
309
310 415
311 # start collecting dependency information 416 # start collecting dependency information
312 echo > "$TEMP_DIR/flags.mk" 417 echo > "$TEMP_DIR/flags.mk"
313 418
314 DEPENDENCIES_FAILED= 419 DEPENDENCIES_FAILED=
315 ERROR=0 420 ERROR=0
316 # unnamed dependencies 421 # unnamed dependencies
317 TEMP_CFLAGS= 422 TEMP_CFLAGS="$CFLAGS"
318 TEMP_CXXFLAGS= 423 TEMP_CXXFLAGS="$CXXFLAGS"
319 TEMP_LDFLAGS= 424 TEMP_LDFLAGS="$LDFLAGS"
320 while true 425 while true
321 do 426 do
322 while true 427 while true
323 do 428 do
324 if [ -z "$lang_c" ] ; then 429 if [ -z "$lang_c" ] ; then
326 break 431 break
327 fi 432 fi
328 433
329 cat >> "$TEMP_DIR/make.mk" << __EOF__ 434 cat >> "$TEMP_DIR/make.mk" << __EOF__
330 LIB_EXT = .a 435 LIB_EXT = .a
331 436 BUILDDIR = `pwd`/build
332 __EOF__ 437 __EOF__
333 break 438 break
334 done 439 done
335 break 440 break
336 done 441 done
337 442
443 # build type
444 if [ "$BUILD_TYPE" = "debug" ]; then
445 TEMP_CFLAGS="\${DEBUG_CFLAGS} $TEMP_CFLAGS"
446 TEMP_CXXFLAGS="\${DEBUG_CXXFLAGS} $TEMP_CXXFLAGS"
447 fi
448 if [ "$BUILD_TYPE" = "release" ]; then
449 TEMP_CFLAGS="\${RELEASE_CFLAGS} $TEMP_CFLAGS"
450 TEMP_CXXFLAGS="\${RELEASE_CXXFLAGS} $TEMP_CXXFLAGS"
451 fi
452
338 # add general dependency flags to flags.mk 453 # add general dependency flags to flags.mk
339 echo "# general flags" >> "$TEMP_DIR/flags.mk" 454 echo "# general flags" >> "$TEMP_DIR/flags.mk"
340 if [ -n "${TEMP_CFLAGS}" ]; then 455 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then
341 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 456 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
342 fi 457 fi
343 if [ -n "${TEMP_CXXFLAGS}" ]; then 458 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then
344 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 459 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
345 fi 460 fi
346 if [ -n "${TEMP_LDFLAGS}" ]; then 461 if [ -n "${TEMP_LDFLAGS}" ]; then
347 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" 462 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
348 fi 463 fi
354 # 469 #
355 # TARGETS 470 # TARGETS
356 # 471 #
357 472
358 echo >> "$TEMP_DIR/flags.mk" 473 echo >> "$TEMP_DIR/flags.mk"
359 # Target: default 474 echo "configuring target: default"
360 echo "# flags for target default" >> "$TEMP_DIR/flags.mk" 475 echo "# flags for target default" >> "$TEMP_DIR/flags.mk"
361 TEMP_CFLAGS= 476 TEMP_CFLAGS=
362 TEMP_CXXFLAGS= 477 TEMP_CXXFLAGS=
363 TEMP_LDFLAGS= 478 TEMP_LDFLAGS=
364 479
380 fi 495 fi
381 496
382 # Features 497 # Features
383 498
384 499
385 if [ -n "${TEMP_CFLAGS}" ]; then 500 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then
386 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 501 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk"
387 fi 502 fi
388 if [ -n "${TEMP_CXXFLAGS}" ]; then 503 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then
389 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 504 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk"
390 fi
391 if [ "$BUILD_TYPE" = "debug" ]; then
392 echo 'CFLAGS += ${DEBUG_CC_FLAGS}' >> "$TEMP_DIR/flags.mk"
393 echo 'CXXFLAGS += ${DEBUG_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk"
394 fi
395 if [ "$BUILD_TYPE" = "release" ]; then
396 echo 'CFLAGS += ${RELEASE_CC_FLAGS}' >> "$TEMP_DIR/flags.mk"
397 echo 'CXXFLAGS += ${RELEASE_CXX_FLAGS}' >> "$TEMP_DIR/flags.mk"
398 fi 505 fi
399 if [ -n "${TEMP_LDFLAGS}" ]; then 506 if [ -n "${TEMP_LDFLAGS}" ]; then
400 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" 507 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk"
401 fi 508 fi
402 509
409 abort_configure 516 abort_configure
410 fi 517 fi
411 518
412 echo "configure finished" 519 echo "configure finished"
413 echo 520 echo
521 echo "Toolchain"
522 echo " name: $TOOLCHAIN_NAME"
523 if [ -n "$TOOLCHAIN_CC" ]; then
524 echo " cc: $TOOLCHAIN_CC"
525 fi
526 if [ -n "$TOOLCHAIN_CXX" ]; then
527 echo " cxx: $TOOLCHAIN_CXX"
528 fi
529 if [ -n "$TOOLCHAIN_WSIZE" ]; then
530 echo " word size: $TOOLCHAIN_WSIZE bit"
531 fi
532 if [ -n "$TOOLCHAIN_CSTD" ]; then
533 echo " default C std: $TOOLCHAIN_CSTD"
534 fi
535 echo
414 echo "Build Config:" 536 echo "Build Config:"
415 echo " PREFIX: $PREFIX" 537 echo " prefix: $prefix"
416 echo " TOOLCHAIN: $TOOLCHAIN_NAME" 538 echo " exec_prefix: $exec_prefix"
539 if [ "$orig_bindir" != "$bindir" ]; then
540 echo " bindir: $bindir"
541 fi
542 if [ "$orig_sbindir" != "$sbindir" ]; then
543 echo " sbindir: $sbindir"
544 fi
545 if [ "$orig_libdir" != "$libdir" ]; then
546 echo " libdir: $libdir"
547 fi
548 if [ "$orig_libexecdir" != "$libexecdir" ]; then
549 echo " libexecdir: $libexecdir"
550 fi
551 if [ "$orig_datarootdir" != "$datarootdir" ]; then
552 echo " datarootdir: $datarootdir"
553 fi
554 if [ "$orig_datadir" != "$datadir" ]; then
555 echo " datadir: $datadir"
556 fi
557 if [ "$orig_sysconfdir" != "$sysconfdir" ]; then
558 echo " sysconfdir: $sysconfdir"
559 fi
560 if [ "$orig_sharedstatedir" != "$sharedstatedir" ]; then
561 echo " sharedstatedir: $sharedstatedir"
562 fi
563 if [ "$orig_localstatedir" != "$localstatedir" ]; then
564 echo " localstatedir: $localstatedir"
565 fi
566 if [ "$orig_runstatedir" != "$runstatedir" ]; then
567 echo " runstatedir: $runstatedir"
568 fi
569 if [ "$orig_includedir" != "$includedir" ]; then
570 echo " includedir: $includedir"
571 fi
572 if [ "$orig_infodir" != "$infodir" ]; then
573 echo " infodir: $infodir"
574 fi
575 if [ "$orig_mandir" != "$mandir" ]; then
576 echo " mandir: $mandir"
577 fi
578 if [ "$orig_localedir" != "$localedir" ]; then
579 echo " localedir: $localedir"
580 fi
417 echo 581 echo
418 582
419 # generate the config.mk file 583 # generate the config.mk file
584 pwd=`pwd`
420 cat > "$TEMP_DIR/config.mk" << __EOF__ 585 cat > "$TEMP_DIR/config.mk" << __EOF__
421 # 586 #
422 # config.mk generated by configure 587 # config.mk generated by:
588 # pwd: $pwd
589 # $0 $@
423 # 590 #
424 591
425 __EOF__ 592 __EOF__
426 write_toolchain_defaults "$TEMP_DIR/toolchain.mk" 593 write_toolchain_defaults "$TEMP_DIR/toolchain.mk"
427 cat "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk 594 cat "$TEMP_DIR/config.mk" "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk
428 rm -Rf "$TEMP_DIR" 595 rm -Rf "$TEMP_DIR"
429
430

mercurial