]> git.mxchange.org Git - flightgear.git/blob - configure.ac
Use a pointer to a structure instead of a large number of variables when calling...
[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.2)
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 dnl Thread related checks
202 AC_CHECK_LIB(pthread, pthread_exit)
203 if test "x$ac_cv_lib_pthread_pthread_exit" != "xyes" \
204    -a "x$ac_cv_header_pthread_h" = "xyes"; then
205     dnl FreeBSD: System has pthread.h, but -lpthread library check
206     dnl fails.  See if we need -pthread instead of -lpthread and look
207     dnl for the functions in libc_r.
208     save_CXXFLAGS="$CXXFLAGS"
209     save_CFLAGS="$CFLAGS"
210     CXXFLAGS="-pthread $CXXFLAGS"
211     CFLAGS="-pthread $CFLAGS"
212     save_LIBS=$LIBS
213     AC_CHECK_LIB(c_r, pthread_exit)
214     if test "x$ac_cv_lib_c_r_pthread_exit" != "xyes"; then
215         CXXFLAGS=$save_CXXFLAGS
216         CFLAGS=$save_CFLAGS
217     fi
218     LIBS=$save_LIBS
219 fi
220
221 thread_LIBS="$LIBS"
222 LIBS=""
223
224 dnl search for network related libraries
225 AC_SEARCH_LIBS(inet_addr, xnet)
226 AC_SEARCH_LIBS(socket, socket)
227 AC_SEARCH_LIBS(main, nsl)
228
229 network_LIBS="$LIBS"
230 LIBS=""
231
232 dnl check for some default libraries
233 AC_SEARCH_LIBS(cos, m)
234 AC_SEARCH_LIBS(dlclose, dl)
235
236 base_LIBS="$LIBS"
237
238 dnl check for glut location
239 AC_CHECK_HEADER(GL/glut.h)
240 if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
241     AC_DEFINE([GLUT_H], "GL/glut.h", [Define as glut.h include location])
242 else
243     AC_CHECK_HEADER(GLUT/glut.h)
244     if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
245         AC_DEFINE([GLUT_H], <GLUT/glut.h>, [Define as glut.h include location])
246     else
247         echo "Neither GL/glut.h nor GLUT/glut.h found.  Cannot continue"
248         exit
249     fi
250 fi
251
252 dnl check for OpenGL related libraries
253 case "${host}" in
254 *-*-cygwin* | *-*-mingw32*)
255     dnl CygWin under Windoze.
256
257     echo Win32 specific hacks...
258     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
259     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
260
261     LIBS="$LIBS -lglut32 -lglu32 -lopengl32"
262     LIBS="$LIBS -luser32 -lgdi32"
263
264     dnl add -lwsock32 for mingwin
265     case "${host}" in
266     *-*-mingw32*)
267         echo "********** BUILDING FOR MINGW32 *************"
268         base_LIBS="$base_LIBS -lws2_32"
269         ;;
270     esac
271
272     echo "Will link apps with $LIBS"
273     ;;
274
275
276 *-apple-darwin*)
277     dnl Mac OS X
278
279     LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc"
280     ;;
281
282 *)
283     dnl X-Windows based machines
284
285     dnl Skip X11 library tests if requested.
286     if test "x$no_x" != "xyes"; then
287         AC_SEARCH_LIBS(XCreateWindow, X11)
288         AC_SEARCH_LIBS(XShmCreateImage, Xext)
289         AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
290         AC_SEARCH_LIBS(IceOpenConnection, ICE)
291         AC_SEARCH_LIBS(SmcOpenConnection, SM)
292         AC_SEARCH_LIBS(XtMalloc, Xt)
293         AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
294     fi
295
296     AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
297     if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
298         dnl if GLcore found, then also check for GL
299         AC_SEARCH_LIBS(glXCreateContext, GL)
300     fi
301
302     dnl if using mesa, check for xmesa.h
303     if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
304         AC_CHECK_HEADER(GL/fxmesa.h)
305         if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
306             AC_DEFINE([XMESA], 1, [Define for fxmesa])
307             AC_DEFINE([FX], 1, [Define for fxmesa])
308         fi
309     fi
310
311     AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
312     AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
313     ;;
314
315 esac
316
317 opengl_LIBS="$LIBS"
318 LIBS="$base_LIBS"
319
320 AC_SUBST(base_LIBS)
321 AC_SUBST(opengl_LIBS)
322 AC_SUBST(thread_LIBS)
323 AC_SUBST(network_LIBS)
324
325 # The following are C++ items that need to be tested for with the c++
326 # compiler
327
328 AC_LANG_PUSH(C++)
329
330 # Check for "plib" without which we cannot go on
331 AC_CHECK_HEADER(plib/ul.h)
332 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
333     echo
334     echo "You *must* have the plib library installed on your system to build"
335     echo "the FGFS simulator!"
336     echo
337     echo "Please see README.plib for more details."
338     echo
339     echo "configure aborted."
340     exit
341 fi
342
343 AC_MSG_CHECKING([for plib 1.6.0 or newer])
344 AC_TRY_RUN([
345 #include <plib/ul.h>
346
347 #define MIN_PLIB_VERSION 160
348
349 int main() {
350     int major, minor, micro;
351
352     if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
353          return -1;
354     }
355
356     return 0;
357 }
358
359 ],
360   AC_MSG_RESULT(yes),
361   [AC_MSG_RESULT(wrong version);
362    AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
363   AC_MSG_RESULT(yes)
364 )
365
366 dnl If we get here then plib is available, so force use of plib
367 dnl joystick lib
368 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
369
370
371 dnl Checking for PSL in plib
372 dnl version of plib, so check for it.
373 AC_MSG_CHECKING([for plib PSL scripting support])
374 AC_COMPILE_IFELSE([
375 #include <plib/psl.h>
376
377 int main() {
378   // not for running...
379   pslProgram program((pslExtension *)0);
380   program.compile("int main () {}", "");
381   return 0;
382 }
383 ],
384   [AC_MSG_RESULT(yes);
385    have_plib_psl=yes],
386   AC_MSG_RESULT(no)
387 )
388 AM_CONDITIONAL(HAVE_PLIB_PSL, test "x$have_plib_psl" = "xyes")
389 if test "x$have_plib_psl" = "xyes"; then
390    AC_DEFINE([HAVE_PLIB_PSL], 1,
391              [Define if plib version is new enough to provide "PSL"])
392 fi
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.3 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 3
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 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 mkfifo \
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/Replay/Makefile \
599         src/Scenery/Makefile \
600         src/Scripting/Makefile \
601         src/Sound/Makefile \
602         src/Systems/Makefile \
603         src/Time/Makefile \
604         src/WeatherCM/Makefile \
605         tests/Makefile \
606         utils/Makefile \
607         utils/TerraSync/Makefile \
608 ])
609 AC_OUTPUT
610
611 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
612
613 echo ""
614 echo "Configure Summary"
615 echo "================="
616
617 echo "Prefix: $prefix"
618
619 if test "x$have_plib_psl" = "xyes"; then
620     echo "Plib PSL scripting: yes"
621 else
622     echo "Plib PSL scripting: $fg_psl_string_compile"
623     echo "  You will not be able to run scripts written in PSL"
624     echo "  and some advanced GUI and input features may not"
625     echo "  work.  Download and install the latest CVS version"
626     echo "  of plib if you would like to enable PSL support."
627 fi
628
629 if test "x$with_logging" != "x"; then
630     echo "Debug messages: $with_logging"
631 else
632     echo "Debug messages: yes"
633 fi
634
635 echo -n "Automake version: "
636 automake --version | head -1
637
638 if test "x$with_weathercm" != "x"; then
639     echo "WeatherCM instead of FGEnvironment: $with_weathercm"
640 else
641     echo "Using FGEnvironment"
642 fi
643
644 if test "x$with_multiplayer" != "xno"; then
645     echo "Using default multiplayer support"
646 elif test "x$with_network_olk" != "xno"; then
647     echo "Using Oliver's multi-pilot network support"
648 fi
649
650 if test "x$with_threads" = "xyes"; then
651     echo "threads: yes"
652 else
653     echo "threads: no"
654 fi