]> git.mxchange.org Git - flightgear.git/blob - configure.ac
Cosmetic changes for new code moved into simgear to make the naming scheme
[flightgear.git] / configure.ac
1 dnl Process this file with autoget.sh to produce a working configure
2 dnl script.
3 dnl
4 dnl $Id$
5
6 AC_INIT
7 AC_CONFIG_SRCDIR([src/Aircraft/aircraft.cxx])
8
9 dnl Require at least automake 2.52
10 AC_PREREQ(2.52)
11
12 dnl Initialize the automake stuff
13 AM_INIT_AUTOMAKE(FlightGear, 0.9.1)
14
15 dnl Checks for programs.
16 AC_PROG_MAKE_SET
17 AC_PROG_CC
18 AC_PROG_CPP
19 AC_PROG_CXX
20 AC_PROG_RANLIB
21 AC_PROG_INSTALL
22 AC_PROG_LN_S
23
24 # specify the simgear location
25 AC_ARG_WITH(simgear, [  --with-simgear=PREFIX   Specify the prefix path to simgear])
26
27 if test "x$with_simgear" != "x" ; then
28     echo "SimGear prefix path is $with_simgear"
29     EXTRA_DIRS="${EXTRA_DIRS} $with_simgear"
30 fi
31
32 dnl set the $host variable based on local machine/os
33 AC_CANONICAL_HOST
34
35 case "${host}" in
36 *-*-irix*)
37     if test "$CXX" = "CC"; then
38         AR="CC -ar"
39         ARFLAGS="-o"
40         CXXFLAGS="$CXXFLAGS -I$with_simgear/include/simgear/compatibility"
41     else
42         AR="ar"
43         ARFLAGS="cru"
44     fi
45     ;;
46 *)
47     AR="ar"
48     ARFLAGS="cru"
49     ;;
50 esac
51 AC_SUBST(AR)
52 AC_SUBST(ARFLAGS)
53
54 dnl set logging; default value of with_logging=yes
55 AC_ARG_WITH(logging, [  --with-logging          Include logging output (default)])
56 if test "x$with_logging" = "xno" ; then
57     AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
58 fi
59
60 # Specify if we want to build with Multiplayer support
61 # default to with_network=yes
62 AC_ARG_WITH(multiplayer, [  --with-multiplayer      Include default multiplayer support])
63 AC_ARG_WITH(network_olk, [  --with-network-olk      Include Oliver's multi-pilot networking support [default=no]])
64
65 if test "x$with_multiplayer" = "xno" -a "x$with_network_olk" = "xno"; then
66   echo "Building without any kind of multiplayer support"
67
68 elif test "x$with_multiplayer" = "xno"; then
69 # echo "Building without default multiplayer support"
70   echo "Building with Oliver's multi-pilot network support"
71   AC_DEFINE([FG_NETWORK_OLK], 1, [Define to build with Oliver's networking])
72
73 else
74   echo "Building with default multiplayer support"
75 # echo "Building without Oliver's multi-pilot network support"
76   AC_DEFINE([FG_MPLAYER_AS], 1, [Define to build with default multiplayer support])
77 fi
78
79 AM_CONDITIONAL(ENABLE_NETWORK_OLK, test "x$with_network_olk" != "xno" -a "x$with_multiplayer" = "xno")
80 AM_CONDITIONAL(ENABLE_MPLAYER_AS, test "x$with_multiplayer" != "xno")
81
82
83 # Specify if we want to use WeatherCM instead of FGEnvironment.
84 # default to with_weathercm=no
85 AC_ARG_WITH(weathercm, [  --with-weathercm        Use WeatherCM instead of FGEnvironment])
86 if test "x$with_weathercm" = "xyes" ; then
87     echo "Building with WeatherCM"
88     AC_DEFINE([FG_WEATHERCM], 1,
89               [Define to build with Christian Mayer's weather code])
90 else
91     echo "Building with FGEnvironment"
92 fi
93 AM_CONDITIONAL(ENABLE_WEATHERCM, test "x$with_weathercm" = "xyes")
94
95 dnl Thread related checks
96 AC_ARG_WITH(threads, [  --with-threads          Include tile loading threads [default=no]])
97 if test "x$with_threads" = "xyes"; then
98     AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
99     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
100     CFLAGS="$CFLAGS -D_REENTRANT"
101 fi
102 AC_CHECK_HEADER(pthread.h)
103 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
104
105 # specify the plib location
106 AC_ARG_WITH(plib, [  --with-plib=PREFIX      Specify the prefix path to plib])
107
108 if test "x$with_plib" != "x" ; then
109     echo "plib prefix is $with_plib"
110     EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
111 fi
112
113 # specify the metakit location
114 AC_ARG_WITH(metakit, [  --with-metakit=PREFIX   Specify the prefix path to metakit])
115
116 if test "x$with_metakit" != "x" ; then
117     echo "metakit prefix is $with_metakit"
118     EXTRA_DIRS="${EXTRA_DIRS} $with_metakit"
119 fi
120
121 dnl Used by JSBSim to conditionally compile in fgfs interface code
122 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
123
124 # Check for MS Windows environment
125 AC_CHECK_HEADER(windows.h)
126
127 dnl Determine an extra directories to add to include/lib search paths
128 case "${host}" in
129 *-apple-darwin* | *-*-mingw32*)
130     echo no EXTRA_DIRS for $host
131     ;;
132
133 *)
134     if test -d /usr/X11R6 ; then
135         EXTRA_DIR1="/usr/X11R6"
136     fi
137     if test -d /opt/X11R6 ; then
138         EXTRA_DIR2="/opt/X11R6"
139     fi
140     EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2"
141     ;;
142
143 esac
144 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
145
146
147 dnl Using AM_CONDITIONAL is a step out of the protected little 
148 dnl automake fold so it is potentially dangerous.  But, we are
149 dnl beginning to run into cases where the standard checks are not
150 dnl enough.  AM_CONDITIONALS are then referenced to conditionally
151 dnl build a Makefile.in from a Makefile.am which lets us define custom
152 dnl includes, compile alternative source files, etc.
153
154 dnl Check for external variables daylight and timezone.
155 AC_EXT_DAYLIGHT
156 if test "$have_daylight" = yes; then
157     AC_DEFINE([HAVE_DAYLIGHT], 1, [Define if system has daylight variable])
158 fi
159
160 AC_EXT_TIMEZONE
161 if test "$have_timezone" = yes; then
162     AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
163 fi
164
165 dnl add correct audio libs and configure for audio support
166 audio_LIBS="-lplibsl -lplibsm"
167 case "${host}" in
168 *-*-cygwin* | *-*-mingw32*)
169     audio_LIBS="$audio_LIBS -lwinmm"
170     ;;
171 *-apple-darwin*)
172     audio_LIBS="$audio_LIBS -framework IOKit -framework CoreFoundation"
173     ;;
174 *-*-irix* )
175     audio_LIBS="$audio_LIBS -laudio"
176     ;;
177
178 esac
179 AC_SUBST(audio_LIBS)
180
181 dnl ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
182 dnl just assuming we have audio support on all platform.  We can
183 dnl depend on plib to hide the details.
184 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
185
186 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
187 dnl to use it if it is.
188 case "${host}" in
189 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
190     echo no fancy X11 check
191     ;;
192
193 *)
194     AC_PATH_XTRA
195     ;;
196
197 esac
198
199 dnl Checks for libraries.
200
201 null_LIBS="$LIBS"
202
203 AC_CHECK_LIB(m, cos)
204
205 base_LIBS="$LIBS"
206
207 dnl Thread related checks
208 AC_CHECK_LIB(pthread, pthread_exit)
209 if test "x$ac_cv_lib_pthread_pthread_exit" != "xyes" \
210    -a "x$ac_cv_header_pthread_h" = "xyes"; then
211     dnl FreeBSD: System has pthread.h, but -lpthread library check
212     dnl fails.  See if we need -pthread instead of -lpthread and look
213     dnl for the functions in libc_r.
214     save_CXXFLAGS="$CXXFLAGS"
215     save_CFLAGS="$CFLAGS"
216     CXXFLAGS="-pthread $CXXFLAGS"
217     CFLAGS="-pthread $FLAGS"
218     save_LIBS=$LIBS
219     AC_CHECK_LIB(c_r, pthread_exit)
220     if test "x$ac_cv_lib_c_r_pthread_exit" != "xyes"; then
221         CXXFLAGS=$save_CXXFLAGS
222         CFLAGS=$save_CFLAGS
223     fi
224     LIBS=$save_LIBS
225 fi
226 AC_CHECK_LIB(socket, socket)
227
228 dnl check for glut location
229 AC_CHECK_HEADER(GL/glut.h)
230 if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
231     AC_DEFINE([GLUT_H], "GL/glut.h", [Define as glut.h include location])
232 else
233     AC_CHECK_HEADER(GLUT/glut.h)
234     if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
235         AC_DEFINE([GLUT_H], <GLUT/glut.h>, [Define as glut.h include location])
236     else
237         echo "Neither GL/glut.h nor GLUT/glut.h found.  Cannot continue"
238         exit
239     fi
240 fi
241
242 dnl check for OpenGL related libraries
243 case "${host}" in
244 *-*-cygwin* | *-*-mingw32*)
245     dnl CygWin under Windoze.
246
247     echo Win32 specific hacks...
248     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
249     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
250
251     LIBS="$LIBS -lglut32 -lglu32 -lopengl32"
252     LIBS="$LIBS -luser32 -lgdi32"
253
254     dnl add -lwsock32 for mingwin
255     case "${host}" in
256     *-*-mingw32*)
257         echo "********** BUILDING FOR MINGW32 *************"
258         base_LIBS="$base_LIBS -lws2_32"
259         ;;
260     esac
261
262     echo "Will link apps with $LIBS"
263     ;;
264
265
266 *-apple-darwin*)
267     dnl Mac OS X
268
269     LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc"
270     ;;
271
272 *)
273     dnl X-Windows based machines
274
275     dnl Skip X11 library tests if requested.
276     if test "x$no_x" != "xyes"; then
277         AC_CHECK_LIB(X11, XCreateWindow)
278         AC_CHECK_LIB(Xext, XShmCreateImage)
279         AC_CHECK_LIB(Xi, XGetExtensionVersion)
280         AC_CHECK_LIB(ICE, IceOpenConnection)
281         AC_CHECK_LIB(SM, SmcOpenConnection)
282         AC_CHECK_LIB(Xt, XtMalloc)
283         AC_CHECK_LIB(Xmu, XmuLookupStandardColormap)
284     fi
285
286     AC_CHECK_LIB(GLcore, glNewList)
287     if test "x$ac_cv_lib_GLcore_glNewList" = "xno" ; then
288         dnl if no GLcore, check for GL
289         AC_CHECK_LIB(GL, glNewList)
290         if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then
291             dnl if no GL, check for MesaGL
292             AC_CHECK_LIB(MesaGL, glNewList)
293         fi
294     else
295         dnl if GLcore found, then also check for GL
296         AC_CHECK_LIB(GL, glXCreateContext)
297     fi
298
299     dnl if using mesa, check for xmesa.h
300     if test "x$ac_cv_lib_MesaGL_glNewList" = "xyes" ; then
301         AC_CHECK_HEADER(GL/fxmesa.h)
302         if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
303             AC_DEFINE([XMESA], 1, [Define for fxmesa])
304             AC_DEFINE([FX], 1, [Define for fxmesa])
305         fi
306     fi
307
308     AC_CHECK_LIB(GLU, gluLookAt)
309     if test "x$ac_cv_lib_GLU_gluLookAt" = "xno" ; then
310         dnl if no GLU, check for MesaGLU
311         AC_CHECK_LIB(MesaGLU, gluLookAt)
312     fi
313
314     AC_CHECK_LIB(glut, glutGetModifiers)
315     if test "x$ac_cv_lib_glut_glutGetModifiers" = "xno" ; then
316         dnl if no "real" glut, check for freeglut
317         AC_CHECK_LIB(freeglut, glutGetModifiers)
318     fi
319     ;;
320
321 esac
322
323 opengl_LIBS="$LIBS"
324 LIBS="$base_LIBS"
325
326 AC_SUBST(base_LIBS)
327 AC_SUBST(opengl_LIBS)
328
329 # The following are C++ items that need to be tested for with the c++
330 # compiler
331
332 AC_LANG_PUSH(C++)
333
334 # Check for "plib" without which we cannot go on
335 AC_CHECK_HEADER(plib/ul.h)
336 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
337     echo
338     echo "You *must* have the plib library installed on your system to build"
339     echo "the FGFS simulator!"
340     echo
341     echo "Please see README.plib for more details."
342     echo
343     echo "configure aborted."
344     exit
345 fi
346
347 AC_MSG_CHECKING([for plib 1.6.0 or newer])
348 AC_TRY_RUN([
349 #include <plib/ul.h>
350
351 #define MIN_PLIB_VERSION 160
352
353 int main() {
354     int major, minor, micro;
355
356     if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
357          return -1;
358     }
359
360     return 0;
361 }
362
363 ],
364   AC_MSG_RESULT(yes),
365   [AC_MSG_RESULT(wrong version);
366    AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
367   AC_MSG_RESULT(yes)
368 )
369
370 dnl If we get here then plib is available, so force use of plib
371 dnl joystick lib
372 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
373
374
375 dnl Checking for PSL in plib
376 dnl version of plib, so check for it.
377 AC_MSG_CHECKING([for plib PSL scripting support])
378 AC_COMPILE_IFELSE([
379 #include <plib/psl.h>
380
381 int main() {
382   // not for running...
383   pslProgram program((pslExtension *)0);
384   program.compile("int main () {}", "");
385   return 0;
386 }
387 ],
388   [AC_MSG_RESULT(yes);
389    have_plib_psl=yes],
390   AC_MSG_RESULT(no)
391 )
392 AM_CONDITIONAL(HAVE_PLIB_PSL, test "x$have_plib_psl" = "xyes")
393
394 dnl Check for MetaKit
395 AC_CHECK_HEADER(mk4.h)
396 if test "x$ac_cv_header_mk4_h" != "xyes"; then
397     echo
398     echo "MetaKit library not found."
399     echo
400     echo "If your OS does not provide an installable package for MetaKit"
401     echo "you will have to compile and install it first yourself.  A copy"
402     echo "of metakit-$(VERSION).tar.gz is included with SimGear.  You will"
403     echo "have to untar this source code, and follow it's included instructions"
404     echo "to compile and install on your system."
405     echo
406     echo "configure aborted."
407     exit
408 fi
409
410 AC_MSG_CHECKING([for metakit 2.4.3 or newer])
411 saved_LIBS="$LIBS"
412 LIBS="$saved_LIBS -lmk4"
413 AC_TRY_RUN([
414 #include <mk4.h>
415
416 #define MIN_MK4_VERSION 243
417
418 int main() {
419     int major, minor, micro;
420
421     if ( d4_MetaKitLibraryVersion < MIN_MK4_VERSION ) {
422          return -1;
423     }
424
425     return 0;
426 }
427
428 ],
429   AC_MSG_RESULT(yes),
430   [AC_MSG_RESULT(wrong version);
431    AC_MSG_ERROR([
432
433 Install metakit 2.4.3 or later first.
434
435 Or, the compiler may not be finding your libmk4.so library.
436 Please check the config.log file for specific details of the
437 failure if you believe you have the correct metakit version.
438 Also, look up this issue in the FlightGear FAQ.])],
439   AC_MSG_RESULT(yes)
440 )
441
442 dnl Check for the presence of SimGear
443 AC_CHECK_HEADER(simgear/version.h)
444 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
445     echo
446     echo "You *must* have the SimGear support library installed on your system"
447     echo "to build the FGFS simulator!"
448     echo
449     echo "Please see README.SimGear for more details."
450     echo
451     echo "configure aborted."
452     exit
453 fi
454
455 AC_MSG_CHECKING([for simgear 0.3.0 or newer])
456 AC_TRY_RUN([
457 #include <stdio.h>
458
459 #include <simgear/version.h>
460
461 #define STRINGIFY(X) XSTRINGIFY(X)
462 #define XSTRINGIFY(X) #X
463
464 #define MIN_MAJOR 0
465 #define MIN_MINOR 3
466 #define MIN_MICRO 0
467
468 int main() {
469     int major, minor, micro;
470
471     printf("%d.%d.%d or greater... ", MIN_MAJOR, MIN_MINOR, MIN_MICRO);
472
473     sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, &micro );
474
475     if ( major < MIN_MAJOR ) {
476          return -1;
477     } else if ( major == MIN_MAJOR && minor < MIN_MINOR ) {
478          return -1;
479     } else if ( major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO ){
480          return -1;
481     }
482
483     return 0;
484 }
485
486 ],
487   AC_MSG_RESULT(yes),
488   [AC_MSG_RESULT(wrong version);
489    AC_MSG_ERROR([Install latest simgear first...])],
490   AC_MSG_RESULT(yes)
491 )
492
493 LIBS="$saved_LIBS"
494
495 dnl Check if SimGear was built with Norman JPEG factory support
496 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
497 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
498     AC_CHECK_LIB(jpeg, jpeg_start_compress)
499     if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
500         echo
501         echo "The JPEG factory code was built and installed with SimGear."
502         echo "However it appears the libjpeg is no longer installed."
503         echo "You need to install libjpeg or remove jpgfactory support from"
504         echo "SimGear"
505         echo
506         echo "libjpeg is available at :"
507         echo "  ftp://ftp.uu.net in the directory graphics/jpeg"
508         exit 1
509     fi
510     AC_DEFINE([FG_JPEG_SERVER], 1,
511               [Define to build with jpeg screen shot server])
512 fi
513 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
514
515 AC_LANG_POP
516
517 dnl Check for system installed zlib
518 AC_CHECK_HEADER(zlib.h)
519 if test "x$ac_cv_header_zlib_h" != "xyes"; then
520     echo
521     echo "zlib library not found."
522     echo
523     echo "If your OS does not provide an installable package for zlib"
524     echo "you will have to compile and install it first yourself.  A copy"
525     echo "of zlib-1.1.4.tar.gz is included with SimGear.  You will"
526     echo "have to untar this source code, and follow it's included instructions"
527     echo "to compile and install on your system."
528     echo
529     echo "configure aborted."
530     echo
531 fi
532
533 dnl Checks for header files.
534 AC_HEADER_STDC
535 AC_CHECK_HEADERS( \
536         fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
537         sys/time.h sys/timeb.h unistd.h windows.h winbase.h values.h )
538
539 dnl Checks for typedefs, structures, and compiler characteristics.
540 AC_C_CONST
541 AC_TYPE_SIZE_T
542 AC_HEADER_TIME
543 AC_STRUCT_TM
544
545 dnl Checks for library functions.
546 AC_TYPE_SIGNAL
547 AC_FUNC_VPRINTF
548 AC_CHECK_FUNCS( \
549         ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
550         random drand48 setitimer getitimer signal GetLocalTime rint getrusage )
551
552 AM_CONFIG_HEADER(src/Include/config.h)
553
554 AC_CONFIG_FILES([ \
555         Makefile \
556         man/Makefile \
557         man/est-epsilon.1 \
558         man/fgfs.1 \
559         man/fgjs.1 \
560         man/gl-info.1 \
561         man/js_demo.1 \
562         man/pstest.1 \
563         scripts/Makefile \
564         scripts/debug/Makefile \
565         scripts/python/Makefile \
566         src/Makefile \
567         src/Include/Makefile \
568         src/Include/version.h \
569         src/Aircraft/Makefile \
570         src/Airports/Makefile \
571         src/ATC/Makefile \
572         src/Autopilot/Makefile \
573         src/Cockpit/Makefile \
574         src/Cockpit/built_in/Makefile \
575         src/Controls/Makefile \
576         src/Environment/Makefile \
577         src/FDM/Balloon/Makefile \
578         src/FDM/ExternalNet/Makefile \
579         src/FDM/ExternalPipe/Makefile \
580         src/FDM/JSBSim/Makefile \
581         src/FDM/JSBSim/filtersjb/Makefile \
582         src/FDM/LaRCsim/Makefile \
583         src/FDM/UIUCModel/Makefile \
584         src/FDM/YASim/Makefile \
585         src/FDM/Makefile \
586         src/GUI/Makefile \
587         src/Input/Makefile \
588         src/Instrumentation/Makefile \
589         src/Main/Makefile \
590         src/Main/runfgfs \
591         src/Main/runfgfs.bat \
592         src/Model/Makefile \
593         src/MultiPlayer/Makefile \
594         src/Navaids/Makefile \
595         src/Network/Makefile \
596         src/NetworkOLK/Makefile \
597         src/Objects/Makefile \
598         src/Scenery/Makefile \
599         src/Scripting/Makefile \
600         src/Sound/Makefile \
601         src/Systems/Makefile \
602         src/Time/Makefile \
603         src/WeatherCM/Makefile \
604         tests/Makefile \
605         utils/Makefile \
606         utils/TerraSync/Makefile \
607 ])
608 AC_OUTPUT
609
610 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
611
612 echo ""
613 echo "Configure Summary"
614 echo "================="
615
616 echo "Prefix: $prefix"
617
618 if test "x$have_plib_psl" = "xyes"; then
619     echo "Plib PSL scripting: yes"
620 else
621     echo "Plib PSL scripting: $fg_psl_string_compile"
622     echo "  You will not be able to run scripts written in PSL"
623     echo "  and some advanced GUI and input features may not"
624     echo "  work.  Download and install the latest CVS version"
625     echo "  of plib if you would like to enable PSL support."
626 fi
627
628 if test "x$with_logging" != "x"; then
629     echo "Debug messages: $with_logging"
630 else
631     echo "Debug messages: yes"
632 fi
633
634 echo -n "Automake version: "
635 automake --version | head -1
636
637 if test "x$with_weathercm" != "x"; then
638     echo "WeatherCM instead of FGEnvironment: $with_weathercm"
639 else
640     echo "Using FGEnvironment"
641 fi
642
643 if test "x$with_multiplayer" != "xno"; then
644     echo "Using default multiplayer support"
645 elif test "x$with_network_olk" != "xno"; then
646     echo "Using Oliver's multi-pilot network support"
647 fi
648
649 if test "x$with_threads" = "xyes"; then
650     echo "threads: yes"
651 else
652     echo "threads: no"
653 fi