UNIXworkcode

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 printf "detect platform... " 62 if [ "$OS" = "SunOS" ]; then 63 PLATFORM="solaris sunos unix svr4" 64 elif [ "$OS" = "Linux" ]; then 65 PLATFORM="linux unix" 66 elif [ "$OS" = "FreeBSD" ]; then 67 PLATFORM="freebsd bsd unix" 68 elif [ "$OS" = "OpenBSD" ]; then 69 PLATFORM="openbsd bsd unix" 70 elif [ "$OS" = "NetBSD" ]; then 71 PLATFORM="netbsd bsd unix" 72 elif [ "$OS" = "Darwin" ]; then 73 PLATFORM="macos osx bsd unix" 74 elif echo "$OS" | grep -i "MINGW" > /dev/null; then 75 PLATFORM="windows mingw" 76 fi 77 : ${PLATFORM:="unix"} 78 79 PLATFORM_NAME=`echo "$PLATFORM" | cut -f1 -d' ' -` 80 echo "$PLATFORM_NAME" 81 82 83 # help text 84 printhelp() 85 { 86 echo "Usage: $0 [OPTIONS]..." 87 cat << __EOF__ 88 Installation directories: 89 --prefix=PREFIX path prefix for architecture-independent files 90 [$prefix] 91 --exec-prefix=EPREFIX path prefix for architecture-dependent files 92 [PREFIX] 93 94 --bindir=DIR user executables [EPREFIX/bin] 95 --sbindir=DIR system admin executables [EPREFIX/sbin] 96 --libexecdir=DIR program executables [EPREFIX/libexec] 97 --sysconfdir=DIR system configuration files [PREFIX/etc] 98 --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] 99 --localstatedir=DIR modifiable single-machine data [PREFIX/var] 100 --runstatedir=DIR run-time variable data [LOCALSTATEDIR/run] 101 --libdir=DIR object code libraries [EPREFIX/lib] 102 --includedir=DIR C header files [PREFIX/include] 103 --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] 104 --datadir=DIR read-only architecture-independent data [DATAROOTDIR] 105 --infodir=DIR info documentation [DATAROOTDIR/info] 106 --mandir=DIR man documentation [DATAROOTDIR/man] 107 --localedir=DIR locale-dependent data [DATAROOTDIR/locale] 108 109 Build Types: 110 --debug add extra compile flags for debug builds 111 --release add extra compile flags for release builds 112 113 __EOF__ 114 } 115 116 # create temporary directory 117 TEMP_DIR=".tmp-`uname -n`" 118 rm -Rf "$TEMP_DIR" 119 if mkdir -p "$TEMP_DIR"; then 120 : 121 else 122 echo "Cannot create tmp dir $TEMP_DIR" 123 echo "Abort" 124 exit 1 125 fi 126 touch "$TEMP_DIR/options" 127 touch "$TEMP_DIR/features" 128 129 # define standard variables 130 # also define standard prefix (this is where we will search for config.site) 131 prefix=/usr 132 exec_prefix= 133 bindir= 134 sbindir= 135 libdir= 136 libexecdir= 137 datarootdir= 138 datadir= 139 sysconfdir= 140 sharedstatedir= 141 localstatedir= 142 runstatedir= 143 includedir= 144 infodir= 145 localedir= 146 mandir= 147 148 # custom variables 149 150 # features 151 152 # 153 # parse arguments 154 # 155 BUILD_TYPE="default" 156 for ARG in "$@" 157 do 158 case "$ARG" in 159 "--prefix="*) prefix=${ARG#--prefix=} ;; 160 "--exec-prefix="*) exec_prefix=${ARG#--exec-prefix=} ;; 161 "--bindir="*) bindir=${ARG#----bindir=} ;; 162 "--sbindir="*) sbindir=${ARG#--sbindir=} ;; 163 "--libdir="*) libdir=${ARG#--libdir=} ;; 164 "--libexecdir="*) libexecdir=${ARG#--libexecdir=} ;; 165 "--datarootdir="*) datarootdir=${ARG#--datarootdir=} ;; 166 "--datadir="*) datadir=${ARG#--datadir=} ;; 167 "--sysconfdir="*) sysconfdir=${ARG#--sysconfdir=} ;; 168 "--sharedstatedir="*) sharedstatedir=${ARG#--sharedstatedir=} ;; 169 "--localstatedir="*) localstatedir=${ARG#--localstatedir=} ;; 170 "--includedir="*) includedir=${ARG#--includedir=} ;; 171 "--infodir="*) infodir=${ARG#--infodir=} ;; 172 "--mandir"*) mandir=${ARG#--mandir} ;; 173 "--localedir"*) localedir=${ARG#--localedir} ;; 174 "--help"*) printhelp; abort_configure ;; 175 "--debug") BUILD_TYPE="debug" ;; 176 "--release") BUILD_TYPE="release" ;; 177 "-"*) echo "unknown option: $ARG"; abort_configure ;; 178 esac 179 done 180 181 182 183 # set defaults for dir variables 184 : ${exec_prefix:="$prefix"} 185 : ${bindir:='${exec_prefix}/bin'} 186 : ${sbindir:='${exec_prefix}/sbin'} 187 : ${libdir:='${exec_prefix}/lib'} 188 : ${libexecdir:='${exec_prefix}/libexec'} 189 : ${datarootdir:='${prefix}/share'} 190 : ${datadir:='${datarootdir}'} 191 : ${sysconfdir:='${prefix}/etc'} 192 : ${sharedstatedir:='${prefix}/com'} 193 : ${localstatedir:='${prefix}/var'} 194 : ${runstatedir:='${localstatedir}/run'} 195 : ${includedir:='${prefix}/include'} 196 : ${infodir:='${datarootdir}/info'} 197 : ${mandir:='${datarootdir}/man'} 198 : ${localedir:='${datarootdir}/locale'} 199 200 # remember the above values and compare them later 201 orig_bindir="$bindir" 202 orig_sbindir="$sbindir" 203 orig_libdir="$libdir" 204 orig_libexecdir="$libexecdir" 205 orig_datarootdir="$datarootdir" 206 orig_datadir="$datadir" 207 orig_sysconfdir="$sysconfdir" 208 orig_sharedstatedir="$sharedstatedir" 209 orig_localstatedir="$localstatedir" 210 orig_runstatedir="$runstatedir" 211 orig_includedir="$includedir" 212 orig_infodir="$infodir" 213 orig_mandir="$mandir" 214 orig_localedir="$localedir" 215 216 # check if a config.site exists and load it 217 if [ -n "$CONFIG_SITE" ]; then 218 # CONFIG_SITE may contain space separated file names 219 for cs in $CONFIG_SITE; do 220 printf "loading defaults from $cs... " 221 . "$cs" 222 echo ok 223 done 224 elif [ -f "$prefix/share/config.site" ]; then 225 printf "loading site defaults... " 226 . "$prefix/share/config.site" 227 echo ok 228 elif [ -f "$prefix/etc/config.site" ]; then 229 printf "loading site defaults... " 230 . "$prefix/etc/config.site" 231 echo ok 232 fi 233 234 235 # generate vars.mk 236 cat > "$TEMP_DIR/vars.mk" << __EOF__ 237 prefix=$prefix 238 exec_prefix=$exec_prefix 239 bindir=$bindir 240 sbindir=$sbindir 241 libdir=$libdir 242 libexecdir=$libexecdir 243 datarootdir=$datarootdir 244 datadir=$datadir 245 sysconfdir=$sysconfdir 246 sharedstatedir=$sharedstatedir 247 localstatedir=$localstatedir 248 runstatedir=$runstatedir 249 includedir=$includedir 250 infodir=$infodir 251 mandir=$mandir 252 localedir=$localedir 253 __EOF__ 254 255 # toolchain detection utilities 256 . make/toolchain.sh 257 258 # 259 # DEPENDENCIES 260 # 261 262 # check languages 263 lang_c= 264 lang_cpp= 265 if detect_c_compiler ; then 266 lang_c=1 267 fi 268 269 # create buffer for make variables required by dependencies 270 echo > "$TEMP_DIR/make.mk" 271 272 test_pkg_config() 273 { 274 if "$PKG_CONFIG" --exists "$1" ; then : 275 else return 1 ; fi 276 if [ -z "$2" ] || "$PKG_CONFIG" --atleast-version="$2" "$1" ; then : 277 else return 1 ; fi 278 if [ -z "$3" ] || "$PKG_CONFIG" --exact-version="$3" "$1" ; then : 279 else return 1 ; fi 280 if [ -z "$4" ] || "$PKG_CONFIG" --max-version="$4" "$1" ; then : 281 else return 1 ; fi 282 return 0 283 } 284 285 print_check_msg() 286 { 287 if [ -z "$1" ]; then 288 shift 289 printf "$@" 290 fi 291 } 292 293 dependency_error_curl() 294 { 295 print_check_msg "$dep_checked_curl" "checking for curl... " 296 # dependency curl platform="windows" 297 while true 298 do 299 if notisplatform "windows"; then 300 break 301 fi 302 TEMP_CFLAGS="$TEMP_CFLAGS -I/mingw/include" 303 TEMP_LDFLAGS="$TEMP_LDFLAGS -lcurl" 304 print_check_msg "$dep_checked_curl" "yes\n" 305 dep_checked_curl=1 306 return 1 307 done 308 309 # dependency curl platform="macos" 310 while true 311 do 312 if notisplatform "macos"; then 313 break 314 fi 315 if tmp_flags=`curl-config --cflags` ; then 316 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" 317 else 318 break 319 fi 320 if tmp_flags=`curl-config --ldflags` ; then 321 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" 322 else 323 break 324 fi 325 print_check_msg "$dep_checked_curl" "yes\n" 326 dep_checked_curl=1 327 return 1 328 done 329 330 # dependency curl 331 while true 332 do 333 if [ -z "$PKG_CONFIG" ]; then 334 break 335 fi 336 if test_pkg_config "libcurl" "" "" "" ; then 337 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libcurl`" 338 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libcurl`" 339 else 340 break 341 fi 342 print_check_msg "$dep_checked_curl" "yes\n" 343 dep_checked_curl=1 344 return 1 345 done 346 347 # dependency curl 348 while true 349 do 350 if tmp_flags=`curl-config --cflags` ; then 351 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" 352 else 353 break 354 fi 355 if tmp_flags=`curl-config --libs` ; then 356 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" 357 else 358 break 359 fi 360 print_check_msg "$dep_checked_curl" "yes\n" 361 dep_checked_curl=1 362 return 1 363 done 364 365 print_check_msg "$dep_checked_curl" "no\n" 366 dep_checked_curl=1 367 return 0 368 } 369 dependency_error_openssl() 370 { 371 print_check_msg "$dep_checked_openssl" "checking for openssl... " 372 # dependency openssl platform="windows" 373 while true 374 do 375 if notisplatform "windows"; then 376 break 377 fi 378 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" 379 print_check_msg "$dep_checked_openssl" "yes\n" 380 dep_checked_openssl=1 381 return 1 382 done 383 384 # dependency openssl platform="macos" 385 while true 386 do 387 if notisplatform "macos"; then 388 break 389 fi 390 TEMP_LDFLAGS="$TEMP_LDFLAGS -framework CoreFoundation" 391 print_check_msg "$dep_checked_openssl" "yes\n" 392 dep_checked_openssl=1 393 return 1 394 done 395 396 # dependency openssl platform="bsd" 397 while true 398 do 399 if notisplatform "bsd"; then 400 break 401 fi 402 if isplatform "macos" || istoolchain "macos"; then 403 break 404 fi 405 TEMP_LDFLAGS="$TEMP_LDFLAGS -lssl -lcrypto" 406 print_check_msg "$dep_checked_openssl" "yes\n" 407 dep_checked_openssl=1 408 return 1 409 done 410 411 # dependency openssl 412 while true 413 do 414 if [ -z "$PKG_CONFIG" ]; then 415 break 416 fi 417 if test_pkg_config "openssl" "" "" "" ; then 418 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags openssl`" 419 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs openssl`" 420 else 421 break 422 fi 423 print_check_msg "$dep_checked_openssl" "yes\n" 424 dep_checked_openssl=1 425 return 1 426 done 427 428 print_check_msg "$dep_checked_openssl" "no\n" 429 dep_checked_openssl=1 430 return 0 431 } 432 dependency_error_libxml2() 433 { 434 print_check_msg "$dep_checked_libxml2" "checking for libxml2... " 435 # dependency libxml2 platform="windows" 436 while true 437 do 438 if notisplatform "windows"; then 439 break 440 fi 441 if tmp_flags=`xml2-config --cflags` ; then 442 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" 443 else 444 break 445 fi 446 if tmp_flags=`xml2-config --libs` ; then 447 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" 448 else 449 break 450 fi 451 print_check_msg "$dep_checked_libxml2" "yes\n" 452 dep_checked_libxml2=1 453 return 1 454 done 455 456 # dependency libxml2 platform="macos" 457 while true 458 do 459 if notisplatform "macos"; then 460 break 461 fi 462 if tmp_flags=`xml2-config --cflags` ; then 463 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" 464 else 465 break 466 fi 467 if tmp_flags=`xml2-config --libs` ; then 468 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" 469 else 470 break 471 fi 472 print_check_msg "$dep_checked_libxml2" "yes\n" 473 dep_checked_libxml2=1 474 return 1 475 done 476 477 # dependency libxml2 478 while true 479 do 480 if [ -z "$PKG_CONFIG" ]; then 481 break 482 fi 483 if test_pkg_config "libxml-2.0" "" "" "" ; then 484 TEMP_CFLAGS="$TEMP_CFLAGS `"$PKG_CONFIG" --cflags libxml-2.0`" 485 TEMP_LDFLAGS="$TEMP_LDFLAGS `"$PKG_CONFIG" --libs libxml-2.0`" 486 else 487 break 488 fi 489 print_check_msg "$dep_checked_libxml2" "yes\n" 490 dep_checked_libxml2=1 491 return 1 492 done 493 494 # dependency libxml2 495 while true 496 do 497 if tmp_flags=`xml2-config --cflags` ; then 498 TEMP_CFLAGS="$TEMP_CFLAGS $tmp_flags" 499 else 500 break 501 fi 502 if tmp_flags=`xml2-config --libs` ; then 503 TEMP_LDFLAGS="$TEMP_LDFLAGS $tmp_flags" 504 else 505 break 506 fi 507 print_check_msg "$dep_checked_libxml2" "yes\n" 508 dep_checked_libxml2=1 509 return 1 510 done 511 512 print_check_msg "$dep_checked_libxml2" "no\n" 513 dep_checked_libxml2=1 514 return 0 515 } 516 517 # start collecting dependency information 518 echo > "$TEMP_DIR/flags.mk" 519 520 DEPENDENCIES_FAILED= 521 ERROR=0 522 # unnamed dependencies 523 TEMP_CFLAGS="$CFLAGS" 524 TEMP_CXXFLAGS="$CXXFLAGS" 525 TEMP_LDFLAGS="$LDFLAGS" 526 while true 527 do 528 while true 529 do 530 if [ -z "$lang_c" ] ; then 531 ERROR=1 532 break 533 fi 534 535 TEMP_LDFLAGS="$TEMP_LDFLAGS -lm -lpthread" 536 break 537 done 538 break 539 done 540 while true 541 do 542 if notisplatform "bsd"; then 543 break 544 fi 545 if isplatform "macos" || istoolchain "macos"; then 546 break 547 fi 548 while true 549 do 550 551 TEMP_CFLAGS="$TEMP_CFLAGS -I/usr/local/include" 552 TEMP_LDFLAGS="$TEMP_LDFLAGS -L/usr/local/lib" 553 break 554 done 555 break 556 done 557 while true 558 do 559 if notisplatform "macos"; then 560 break 561 fi 562 while true 563 do 564 565 cat >> "$TEMP_DIR/make.mk" << __EOF__ 566 OBJ_EXT = .o 567 LIB_EXT = .a 568 __EOF__ 569 break 570 done 571 break 572 done 573 while true 574 do 575 if notisplatform "unix"; then 576 break 577 fi 578 if isplatform "macos" || istoolchain "macos"; then 579 break 580 fi 581 while true 582 do 583 584 cat >> "$TEMP_DIR/make.mk" << __EOF__ 585 OBJ_EXT = .o 586 LIB_EXT = .a 587 __EOF__ 588 break 589 done 590 break 591 done 592 593 # build type 594 if [ "$BUILD_TYPE" = "debug" ]; then 595 TEMP_CFLAGS="\${DEBUG_CFLAGS}$TEMP_CFLAGS" 596 TEMP_CXXFLAGS="\${DEBUG_CXXFLAGS}$TEMP_CXXFLAGS" 597 fi 598 if [ "$BUILD_TYPE" = "release" ]; then 599 TEMP_CFLAGS="\${RELEASE_CFLAGS}$TEMP_CFLAGS" 600 TEMP_CXXFLAGS="\${RELEASE_CXXFLAGS}$TEMP_CXXFLAGS" 601 fi 602 603 # add general dependency flags to flags.mk 604 echo "# general flags" >> "$TEMP_DIR/flags.mk" 605 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then 606 echo "CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 607 fi 608 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then 609 echo "CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 610 fi 611 if [ -n "${TEMP_LDFLAGS}" ]; then 612 echo "LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" 613 fi 614 615 # 616 # OPTION VALUES 617 # 618 619 # 620 # TARGETS 621 # 622 623 echo >> "$TEMP_DIR/flags.mk" 624 echo "configuring target: dav" 625 echo "# flags for target dav" >> "$TEMP_DIR/flags.mk" 626 TEMP_CFLAGS= 627 TEMP_CXXFLAGS= 628 TEMP_LDFLAGS= 629 630 if dependency_error_curl; then 631 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED curl " 632 ERROR=1 633 fi 634 if dependency_error_libxml2; then 635 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED libxml2 " 636 ERROR=1 637 fi 638 if dependency_error_openssl; then 639 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED openssl " 640 ERROR=1 641 fi 642 643 # Features 644 645 646 if [ -n "${TEMP_CFLAGS}" ] && [ -n "$lang_c" ]; then 647 echo "DAV_CFLAGS += $TEMP_CFLAGS" >> "$TEMP_DIR/flags.mk" 648 fi 649 if [ -n "${TEMP_CXXFLAGS}" ] && [ -n "$lang_cpp" ]; then 650 echo "DAV_CXXFLAGS += $TEMP_CXXFLAGS" >> "$TEMP_DIR/flags.mk" 651 fi 652 if [ -n "${TEMP_LDFLAGS}" ]; then 653 echo "DAV_LDFLAGS += $TEMP_LDFLAGS" >> "$TEMP_DIR/flags.mk" 654 fi 655 656 657 # final result 658 if [ $ERROR -ne 0 ]; then 659 echo 660 echo "Error: Unresolved dependencies" 661 echo "$DEPENDENCIES_FAILED" 662 abort_configure 663 fi 664 665 echo "configure finished" 666 echo 667 echo "Toolchain" 668 echo " name: $TOOLCHAIN_NAME" 669 if [ -n "$TOOLCHAIN_CC" ]; then 670 echo " cc: $TOOLCHAIN_CC" 671 fi 672 if [ -n "$TOOLCHAIN_CXX" ]; then 673 echo " cxx: $TOOLCHAIN_CXX" 674 fi 675 if [ -n "$TOOLCHAIN_WSIZE" ]; then 676 echo " word size: $TOOLCHAIN_WSIZE bit" 677 fi 678 if [ -n "$TOOLCHAIN_CSTD" ]; then 679 echo " default C std: $TOOLCHAIN_CSTD" 680 fi 681 echo 682 echo "Build Config:" 683 echo " prefix: $prefix" 684 echo " exec_prefix: $exec_prefix" 685 if [ "$orig_bindir" != "$bindir" ]; then 686 echo " bindir: $bindir" 687 fi 688 if [ "$orig_sbindir" != "$sbindir" ]; then 689 echo " sbindir: $sbindir" 690 fi 691 if [ "$orig_libdir" != "$libdir" ]; then 692 echo " libdir: $libdir" 693 fi 694 if [ "$orig_libexecdir" != "$libexecdir" ]; then 695 echo " libexecdir: $libexecdir" 696 fi 697 if [ "$orig_datarootdir" != "$datarootdir" ]; then 698 echo " datarootdir: $datarootdir" 699 fi 700 if [ "$orig_datadir" != "$datadir" ]; then 701 echo " datadir: $datadir" 702 fi 703 if [ "$orig_sysconfdir" != "$sysconfdir" ]; then 704 echo " sysconfdir: $sysconfdir" 705 fi 706 if [ "$orig_sharedstatedir" != "$sharedstatedir" ]; then 707 echo " sharedstatedir: $sharedstatedir" 708 fi 709 if [ "$orig_localstatedir" != "$localstatedir" ]; then 710 echo " localstatedir: $localstatedir" 711 fi 712 if [ "$orig_runstatedir" != "$runstatedir" ]; then 713 echo " runstatedir: $runstatedir" 714 fi 715 if [ "$orig_includedir" != "$includedir" ]; then 716 echo " includedir: $includedir" 717 fi 718 if [ "$orig_infodir" != "$infodir" ]; then 719 echo " infodir: $infodir" 720 fi 721 if [ "$orig_mandir" != "$mandir" ]; then 722 echo " mandir: $mandir" 723 fi 724 if [ "$orig_localedir" != "$localedir" ]; then 725 echo " localedir: $localedir" 726 fi 727 echo 728 729 # generate the config.mk file 730 pwd=`pwd` 731 cat > "$TEMP_DIR/config.mk" << __EOF__ 732 # 733 # config.mk generated by: 734 # pwd: $pwd 735 # $0 $@ 736 # 737 738 __EOF__ 739 write_toolchain_defaults "$TEMP_DIR/toolchain.mk" 740 cat "$TEMP_DIR/config.mk" "$TEMP_DIR/vars.mk" "$TEMP_DIR/toolchain.mk" "$TEMP_DIR/flags.mk" "$TEMP_DIR/make.mk" > config.mk 741 rm -Rf "$TEMP_DIR" 742