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