| 169 do |
172 do |
| 170 case "$ARG" in |
173 case "$ARG" in |
| 171 "--help"*) printhelp ;; |
174 "--help"*) printhelp ;; |
| 172 "--debug") BUILD_TYPE="debug" ;; |
175 "--debug") BUILD_TYPE="debug" ;; |
| 173 "--release") BUILD_TYPE="release" ;; |
176 "--release") BUILD_TYPE="release" ;; |
| |
177 "--enable-asan") FEATURE_ASAN=on ;; |
| |
178 "--disable-asan") unset FEATURE_ASAN ;; |
| 174 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
179 "-"*) echo "unknown option: $ARG"; abort_configure ;; |
| 175 esac |
180 esac |
| 176 done |
181 done |
| 177 |
182 |
| 178 # toolchain detection utilities |
183 # toolchain detection utilities |
| 309 shift |
314 shift |
| 310 printf "$@" |
315 printf "$@" |
| 311 fi |
316 fi |
| 312 } |
317 } |
| 313 |
318 |
| |
319 dependency_error_asan() |
| |
320 { |
| |
321 print_check_msg "$dep_checked_asan" "checking for asan... " |
| |
322 # dependency asan toolchain="gnuc" |
| |
323 while true |
| |
324 do |
| |
325 if notistoolchain "gnuc"; then |
| |
326 break |
| |
327 fi |
| |
328 TEMP_CFLAGS="$TEMP_CFLAGS -fsanitize=address" |
| |
329 TEMP_LDFLAGS="$TEMP_LDFLAGS -fsanitize=address" |
| |
330 print_check_msg "$dep_checked_asan" "yes\n" |
| |
331 dep_checked_asan=1 |
| |
332 return 1 |
| |
333 done |
| |
334 |
| |
335 print_check_msg "$dep_checked_asan" "no\n" |
| |
336 dep_checked_asan=1 |
| |
337 return 0 |
| |
338 } |
| 314 dependency_error_ncurses() |
339 dependency_error_ncurses() |
| 315 { |
340 { |
| 316 print_check_msg "$dep_checked_ncurses" "checking for ncurses... " |
341 print_check_msg "$dep_checked_ncurses" "checking for ncurses... " |
| 317 # dependency ncurses |
342 # dependency ncurses |
| 318 while true |
343 while true |
| 388 # |
413 # |
| 389 # TARGETS |
414 # TARGETS |
| 390 # |
415 # |
| 391 |
416 |
| 392 echo >> "$TEMP_DIR/flags.mk" |
417 echo >> "$TEMP_DIR/flags.mk" |
| 393 echo "configuring target: default" |
418 echo "configuring global target" |
| 394 echo "# flags for target default" >> "$TEMP_DIR/flags.mk" |
419 echo "# flags for unnamed target" >> "$TEMP_DIR/flags.mk" |
| 395 TEMP_CFLAGS= |
420 TEMP_CFLAGS= |
| 396 TEMP_CXXFLAGS= |
421 TEMP_CXXFLAGS= |
| 397 TEMP_LDFLAGS= |
422 TEMP_LDFLAGS= |
| 398 |
423 |
| 399 if dependency_error_ncurses; then |
424 if dependency_error_ncurses; then |
| 400 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ncurses " |
425 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ncurses " |
| 401 ERROR=1 |
426 ERROR=1 |
| 402 fi |
427 fi |
| 403 |
428 |
| 404 # Features |
429 # Features |
| |
430 if [ -n "$FEATURE_ASAN" ]; then |
| |
431 # check dependency |
| |
432 if dependency_error_asan ; then |
| |
433 # "auto" features can fail and are just disabled in this case |
| |
434 if [ "$FEATURE_ASAN" = "auto" ]; then |
| |
435 DISABLE_FEATURE_ASAN=1 |
| |
436 else |
| |
437 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED asan " |
| |
438 ERROR=1 |
| |
439 fi |
| |
440 fi |
| |
441 if [ -n "$DISABLE_FEATURE_ASAN" ]; then |
| |
442 unset FEATURE_ASAN |
| |
443 fi |
| |
444 fi |
| |
445 if [ -n "$FEATURE_ASAN" ]; then |
| |
446 : |
| |
447 else |
| |
448 : |
| |
449 fi |
| 405 |
450 |
| 406 |
451 |
| 407 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then |
452 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then |
| 408 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" |
453 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" |
| 409 fi |
454 fi |