Correctly update version of Gambit in iOS example.
[gambit-c.git] / configure.ac
blob5ec305e7bfb27114f5f099e17db09ed7f5627102
1 # Configure template for Gambit-C system.
3 # Copyright (c) 1994-2010 by Marc Feeley, All Rights Reserved.
5 # Process this file with autoconf to produce a configure script.
7 AC_INIT(Gambit-C,v4.6.0,gambit@iro.umontreal.ca,gambc-v4_6_0)
9 AC_CONFIG_HEADERS(include/config.h)
11 CONFIGURE_COMMAND="$0 $@"
12 PACKAGE_SHORTNAME="gambc"
14 AC_SUBST(PACKAGE_SHORTNAME)
15 AC_SUBST(PACKAGE_NAME)
16 AC_SUBST(PACKAGE_VERSION)
17 AC_SUBST(PACKAGE_STRING)
18 AC_SUBST(PACKAGE_BUGREPORT)
19 AC_SUBST(PACKAGE_TARNAME)
21 AC_COPYRIGHT([[Copyright (c) 1994-2010 by Marc Feeley, All Rights Reserved.]])
23 AC_CONFIG_SRCDIR(include/gambit.h.in)
25 AC_PREFIX_DEFAULT(/usr/local/$PACKAGE_NAME)
27 AC_CANONICAL_SYSTEM
29 ###############################################################################
31 # Accumulate subsystems to include in runtime library.
33 RTLIBSUBSYS=""
35 ###############################################################################
37 # To accumulate flags and definitions for C compilation.
39 GAMBCLIB_DEFS=""
41 FLAGS_OBJ=""
42 FLAGS_DYN=""
43 FLAGS_LIB=""
44 FLAGS_EXE=""
46 FLAGS_OBJ_DYN=""
47 FLAGS_OBJ_DYN_LIB_EXE=""
48 FLAGS_DYN_LIB=""
50 DEFS_OBJ=""
51 DEFS_DYN="-D___DYNAMIC"
52 DEFS_LIB=""
53 DEFS_EXE=""
55 DEFS_OBJ_DYN_LIB_EXE=""
57 ###############################################################################
59 # Check if the system must be compiled using the C compiler or C++ compiler.
61 AC_ARG_ENABLE(cplusplus,
62               AC_HELP_STRING([--enable-cplusplus],
63                              [compile using C++ compiler (default is NO)]),
64               ENABLE_CPLUSPLUS=$enableval,
65               ENABLE_CPLUSPLUS=no)
67 if test "${CFLAGS+set}" != set; then
68   CFLAGS=""
71 if test "${CXXFLAGS+set}" != set; then
72   CXXFLAGS=""
75 if test "${LDFLAGS+set}" != set; then
76   LDFLAGS=""
79 AC_LANG(C)
80 AC_PROG_CC
81 AC_PROG_CPP
82 C_COMPILER=$CC
83 C_PREPROC=$CPP
85 if test "$ENABLE_CPLUSPLUS" = yes; then
86   AC_LANG(C++)
87   AC_PROG_CXX
88   AC_PROG_CXXCPP
89   C_COMPILER=$CXX
90   C_PREPROC=$CXXCPP
93 AC_SUBST(C_COMPILER)
94 AC_SUBST(C_PREPROC)
96 AC_SUBST(C_COMPILER_MF)
97 AC_SUBST(C_PREPROC_MF)
99 AC_SUBST(C_COMPILER_SH)
100 AC_SUBST(C_PREPROC_SH)
102 AC_SUBST(C_COMPILER_BAT)
103 AC_SUBST(C_PREPROC_BAT)
105 ###############################################################################
107 # Check if the system must include GUIDE (Gambit Universal IDE).
109 AC_ARG_ENABLE(guide,
110               AC_HELP_STRING([--enable-guide],
111                              [include the Gambit Universal IDE (default is NO)]),
112               ENABLE_GUIDE=$enableval,
113               ENABLE_GUIDE=no)
115 if test "$ENABLE_GUIDE" = yes; then
116   if test "$ENABLE_CPLUSPLUS" = yes; then
118     # Determine if Qt is available, if the version is good, etc
120     ac_qmake='qmake -o conftest.qt /dev/null >&5'
122     rm -f conftest.qt
124     if { (eval echo "$as_me:$LINENO: \"$ac_qmake\"") >&5
125       (eval $ac_qmake) 2>&5
126       ac_status=$?
127       echo "$as_me:$LINENO: \$? = $ac_status" >&5
128       (exit $ac_status); }; then
130       ac_qt_version_check="grep -q '^# Generated by qmake ([^)]*) (Qt 3\\.3\\..*' conftest.qt"
132       if { (eval echo "$as_me:$LINENO: \"$ac_qt_version_check\"") >&5
133         (eval $ac_qt_version_check) 2>&5
134         ac_status=$?
135         echo "$as_me:$LINENO: \$? = $ac_status" >&5
136         (exit $ac_status); }; then
138         QTINCPATH=`sed -n -e '/^INCPATH[[       ]]*=[[  ]]*\(.*\)/s//\1/p' conftest.qt`
139         QTLIBS=`sed -n -e '/^LIBS[[     ]]*=[[  ]]*\\\$(SUBLIBS)[[      ]]*\(.*\)/s//\1/p' conftest.qt`
141       else
143         qt_version=`sed -n -e '/^# Generated by qmake (\([^)]*\)) (Qt \([0-9]*\.[0-9]*\).*/s//\2/p' conftest.qt`
145         ENABLE_GUIDE=no
146         AC_MSG_NOTICE([
147 ************************************************************************
148 *** The Gambit Universal IDE requires that the system be built using ***
149 *** the Qt GUI library version 3.3.  Version $qt_version of Qt is currently  ***
150 *** installed.                                                       ***
151 ************************************************************************
154       fi
156     else
158       ENABLE_GUIDE=no
159       AC_MSG_NOTICE([
160 ************************************************************************
161 *** The Gambit Universal IDE requires that the system be built using ***
162 *** the Qt GUI library.  This library could not be located.  Make    ***
163 *** sure that the program qmake is in your PATH.                     ***
164 ************************************************************************
167     fi
169   else
171     ENABLE_GUIDE=no
172     AC_MSG_NOTICE([
173 ************************************************************************
174 *** The Gambit Universal IDE requires that the system be built using ***
175 *** a C++ compiler.  You must specify both "--enable-cplusplus" and  ***
176 *** "--enable-guide" to include the Gambit Universal IDE.            ***
177 ************************************************************************
180   fi
183 if test "$ENABLE_GUIDE" = yes; then
184   AC_DEFINE(___GUIDE)
185   AC_SUBST(QTINCPATH)
186   RTLIBSUBSYS="$RTLIBSUBSYS guide"
187   LIBS="$LIBS $QTLIBS"
190 AC_SUBST(ENABLE_GUIDE)
192 ###############################################################################
194 # Check if the system is to be debugged.
196 AC_ARG_ENABLE(debug,
197               AC_HELP_STRING([--enable-debug],
198                              [build system so that it can be debugged (default is NO)]),
199               ENABLE_DEBUG=$enableval,
200               ENABLE_DEBUG=no)
202 if test "$ENABLE_DEBUG" = yes; then
203   AC_DEFINE(___DEBUG)
204   DEFS_OBJ_DYN_LIB_EXE="$DEFS_OBJ_DYN_LIB_EXE -D___DEBUG"
207 ###############################################################################
209 # Check if the system is to be profiled.
211 AC_ARG_ENABLE(profile,
212               AC_HELP_STRING([--enable-profile],
213                              [build system so that it can be profiled (default is NO)]),
214               ENABLE_PROFILE=$enableval,
215               ENABLE_PROFILE=no)
217 if test "$ENABLE_PROFILE" = yes; then
218   AC_DEFINE(___PROFILE)
219   DEFS_OBJ_DYN_LIB_EXE="$DEFS_OBJ_DYN_LIB_EXE -D___PROFILE"
222 ###############################################################################
224 # Check if the system is to be compiled to accumulate coverage statistics.
226 AC_ARG_ENABLE(coverage,
227               AC_HELP_STRING([--enable-coverage],
228                              [build system to accumulate coverage statistics (default is NO)]),
229               ENABLE_COVERAGE=$enableval,
230               ENABLE_COVERAGE=no)
232 ###############################################################################
234 # Check if the system is to be compiled with trial run feedback.
236 AC_ARG_ENABLE(feedback1,
237               AC_HELP_STRING([--enable-feedback1],
238                              [build system to accumulate trial run data (default is NO)]),
239               ENABLE_FEEDBACK1=$enableval,
240               ENABLE_FEEDBACK1=no)
242 AC_ARG_ENABLE(feedback2,
243               AC_HELP_STRING([--enable-feedback2],
244                              [build system using trial run feedback (default is NO)]),
245               ENABLE_FEEDBACK2=$enableval,
246               ENABLE_FEEDBACK2=no)
248 ###############################################################################
250 # Check if a single C function should be generated for all the Scheme
251 # functions in a file.  This makes the executable much faster but the
252 # compilation will be much longer and take much more memory.
254 AC_ARG_ENABLE(single-host,
255               AC_HELP_STRING([--enable-single-host],
256                              [compile each Scheme module as a single C function (default is NO)]),
257               ENABLE_SINGLE_HOST=$enableval,
258               ENABLE_SINGLE_HOST=no)
260 if test "$ENABLE_SINGLE_HOST" = yes; then
261   AC_DEFINE(___SINGLE_HOST)
262   DEFS_OBJ_DYN_LIB_EXE="$DEFS_OBJ_DYN_LIB_EXE -D___SINGLE_HOST"
265 ###############################################################################
267 # Check if inline code should be generated for jumps.  It is possible
268 # that on some platforms this will result in a faster but larger
269 # executable program.
271 AC_ARG_ENABLE(inline-jumps,
272               AC_HELP_STRING([--enable-inline-jumps],
273                              [generate inline code for jumps (default is NO)]),
274               ENABLE_INLINE_JUMPS=$enableval,
275               ENABLE_INLINE_JUMPS=no)
277 if test "$ENABLE_INLINE_JUMPS" = yes; then
278   AC_DEFINE(___INLINE_JUMPS)
279   DEFS_OBJ_DYN_LIB_EXE="$DEFS_OBJ_DYN_LIB_EXE -D___INLINE_JUMPS"
282 ###############################################################################
284 # Check if expensive GCC optimizations should be used.  This makes the
285 # executable faster but the compilation will be much longer and take
286 # much more memory.
288 AC_ARG_ENABLE(gcc-opts,
289               AC_HELP_STRING([--enable-gcc-opts],
290                              [use expensive GCC optimizations (default is NO)]),
291               ENABLE_GCC_OPTS=$enableval,
292               ENABLE_GCC_OPTS=no)
294 ###############################################################################
296 # Check the width of Scheme characters.
298 AC_ARG_ENABLE(char-size,
299               AC_HELP_STRING([--enable-char-size=N],
300                              [Scheme character size in bytes (default is 4)]),
301               CHAR_SIZE=$enableval,
302               CHAR_SIZE=4)
304 if test "$CHAR_SIZE" = 1; then
305   CONF_MAX_CHR="0xff"
306 else
307 if test "$CHAR_SIZE" = 2; then
308   CONF_MAX_CHR="0xffff"
309 else
310   CONF_MAX_CHR="0x10ffff"
314 AC_SUBST(CONF_MAX_CHR)
316 ###############################################################################
318 # Check the size of the type "void*".  On many systems it is the same
319 # size as "long".  If this isn't the case then define
320 # ___VOIDSTAR_WIDTH appropriately.
322 AC_CHECK_SIZEOF(void*)
323 AC_CHECK_SIZEOF(long)
325 if test "$ac_cv_sizeof_voidp" != "$ac_cv_sizeof_long"; then
326   CONF_VOIDSTAR_WIDTH="($ac_cv_sizeof_voidp * ___CHAR_WIDTH)"
327 else
328   CONF_VOIDSTAR_WIDTH="___LONG_WIDTH"
331 AC_SUBST(CONF_VOIDSTAR_WIDTH)
333 ###############################################################################
335 # Check if a shared library must be built.
337 AC_ARG_ENABLE(shared,
338               AC_HELP_STRING([--enable-shared],
339                              [build the Scheme runtime system as a shared library (default is NO)]),
340               ENABLE_SHARED=$enableval,
341               ENABLE_SHARED=no)
343 if test "$ENABLE_SHARED" = yes; then
344   AC_DEFINE(___SHARED)
345   # don't add to DEFS_OBJ_DYN_LIB_EXE
348 ###############################################################################
350 # Check if only ANSI C headers and libraries should be used.
352 AC_ARG_ENABLE(ansi-c,
353               AC_HELP_STRING([--enable-ansi-c],
354                              [link only with ANSI C libraries (default is NO)]),
355               ANSI_C=$enableval,
356               ANSI_C=no)
358 ###############################################################################
360 # Check if symbolic links should be used for files not in the
361 # central installation directory.
363 AC_ARG_ENABLE(symlinks,
364               AC_HELP_STRING([--enable-symlinks],
365                              [use symbolic links for installed files not in the central installation directory (default is YES)]),
366               ENABLE_SYMLINKS=$enableval,
367               ENABLE_SYMLINKS=no)
369 ###############################################################################
371 # Determine the name to use for the Gambit interpreter and compiler.
373 AC_ARG_ENABLE(interpreter-name,
374               AC_HELP_STRING([--enable-interpreter-name=INTERP],
375                              [Name to use for Gambit interpreter (default is gsi)]),
376               ENABLE_INTERPRETER_NAME=$enableval,
377               ENABLE_INTERPRETER_NAME="gsi")
379 AC_ARG_ENABLE(compiler-name,
380               AC_HELP_STRING([--enable-compiler-name=COMP],
381                              [Name to use for Gambit compiler (default is gsc)]),
382               ENABLE_COMPILER_NAME=$enableval,
383               ENABLE_COMPILER_NAME="gsc")
385 ###############################################################################
387 # Check if multiple installed versions are supported.
389 AC_ARG_ENABLE(multiple-versions,
390               AC_HELP_STRING([--enable-multiple-versions],
391                              [multiple installed versions are supported (default is NO)]),
392               ENABLE_MULTIPLE_VERSIONS=$enableval,
393               ENABLE_MULTIPLE_VERSIONS=no)
395 ###############################################################################
397 # Check if libraries should contain a version number suffix.
399 ENABLE_VERSIONNED_LIBS=no
401 # This option does not currently work.  Some work is needed to make it
402 # work properly.  Here is the documentation that should go in INSTALL.txt:
404 #The option --enable-versionned-libs will add a version number suffix
405 #to the libraries.  For example the Gambit v4.3.2 runtime library which
406 #is normally libgambc.a will be named libgambc-v4_3_2.a and it must be
407 #linked to with the C compiler option -lgambc-v4_3_2 .  If you give
408 #this option a value, as in --enable-versionned-libs=<suffix> then
409 #<suffix> will be appended to the name of the libraries.
411 #AC_ARG_ENABLE(versionned-libs,
412 #              AC_HELP_STRING([--enable-versionned-libs],
413 #                             [libraries should contain a version number suffix (default is NO)]),
414 #              ENABLE_VERSIONNED_LIBS=$enableval,
415 #              ENABLE_VERSIONNED_LIBS=no)
417 ###############################################################################
419 # Check if shared libraries should be linked to using an absolute path.
421 AC_ARG_ENABLE(absolute-shared-libs,
422               AC_HELP_STRING([--enable-absolute-shared-libs],
423                              [shared libraries should be linked to using an absolute path (default is YES)]),
424               ENABLE_ABSOLUTE_SHARED_LIBS=$enableval,
425               ENABLE_ABSOLUTE_SHARED_LIBS=yes)
427 if test "$ENABLE_SHARED" != yes; then
428   ENABLE_ABSOLUTE_SHARED_LIBS=no
431 ###############################################################################
433 # Determine which browser to use for help.
435 AC_ARG_ENABLE(help-browser,
436               AC_HELP_STRING([--enable-help-browser=BROWSER],
437                              [Browser to use for help (default is to search)]),
438               HELP_BROWSER=$enableval,
439               HELP_BROWSER="")
441 ###############################################################################
443 # Check for C compiler.
445 AC_DEFUN(AC_CHECK_C_COMPILER_DEF,
446 [AC_CACHE_CHECK(whether $C_COMPILER defines [$1], [$2],
447 [AC_SUBST($2)
448 rm -f conftest.$ac_ext
449 cat >conftest.$ac_ext <<_ACEOF
450 #line $LINENO "configure"
452 main ()
454 #ifndef $1
455        choke me
456 #endif
458   ;
459   return 0;
461 _ACEOF
462 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
463   (eval $ac_link) 2>&5
464   ac_status=$?
465   echo "$as_me:$LINENO: \$? = $ac_status" >&5
466   (exit $ac_status); }; then
467   $2="yes"
468 else
469   $2=""
471 ])])
473 AC_DEFUN(AC_CHECK_C_COMPILER_OPT,
474 [AC_CACHE_CHECK(whether $C_COMPILER accepts [$1], [$2],
475 [AC_SUBST($2)
476 rm -f conftest.$ac_ext
477 cat >conftest.$ac_ext <<_ACEOF
478 #line $LINENO "configure"
480 main ()
482   return 0;
484 _ACEOF
485 ac_test_CFLAGS=${CFLAGS+set}
486 ac_test_CXXFLAGS=${CXXFLAGS+set}
487 ac_save_CFLAGS=$CFLAGS
488 ac_save_CXXFLAGS=$CXXFLAGS
489 CFLAGS="$1$3"
490 CXXFLAGS="$1$3"
491 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
492   (eval $ac_link) 2>&5
493   ac_status=$?
494   echo "$as_me:$LINENO: \$? = $ac_status" >&5
495   (exit $ac_status); }; then
496   $2=" $1"
497 else
498   $2=""
500 if test "$ac_test_CFLAGS" = set; then
501   CFLAGS=$ac_save_CFLAGS
503 if test "$ac_test_CXXFLAGS" = set; then
504   CXXFLAGS=$ac_save_CXXFLAGS
506 ])])
508 AC_DEFUN(AC_CHECK_C_COMPILER_CPP_EXPR,
509 [AC_CACHE_CHECK(how $C_COMPILER's preprocessor evaluates [$1], [$2],
510 [AC_SUBST($2)
511 rm -f conftest.$ac_ext
512 cat >conftest.$ac_ext <<_ACEOF
513 #line $LINENO "configure"
515 main ()
517 #if $1
518 #else
519        choke me
520 #endif
522   ;
523   return 0;
525 _ACEOF
526 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
527   (eval $ac_link) 2>&5
528   ac_status=$?
529   echo "$as_me:$LINENO: \$? = $ac_status" >&5
530   (exit $ac_status); }; then
531   $2="yes"
532 else
533   $2=""
535 ])])
537 AC_CHECK_C_COMPILER_DEF(__GNUC__,C_COMP_GNUC)
538 AC_CHECK_C_COMPILER_DEF(_MSC_VER,C_COMP_VISUALC)
539 #AC_CHECK_C_COMPILER_DEF(__WATCOMC__,C_COMP_WATCOMC)
540 #AC_CHECK_C_COMPILER_DEF(__BORLANDC__,C_COMP_BORLANDC)
542 ###############################################################################
544 # Check for header files.
546 AC_CHECK_HEADERS(errno.h)
547 AC_CHECK_HEADERS(float.h)
548 AC_CHECK_HEADERS(signal.h)
549 AC_CHECK_HEADERS(stdio.h)
550 AC_CHECK_HEADERS(stdlib.h)
551 AC_CHECK_HEADERS(string.h)
552 AC_CHECK_HEADERS(time.h)
554 if test "$ANSI_C" = yes; then
556   # Check if linking to the math library needs some special linker flags.
558   AC_SEARCH_LIBS(asin,m)
560   # The following functions should be provided by an ANSI-C conforming
561   # compiler, but it is safest to double check.  If they are not
562   # available, the system will still compile but some functionality
563   # will be missing from the Gambit runtime system.
565   AC_CHECK_FUNCS(getenv)
566   AC_CHECK_FUNCS(time)
567   AC_CHECK_FUNCS(clock)
569 else
571   AC_CHECK_HEADERS(unistd.h)
572   AC_CHECK_HEADERS(pwd.h)
573   AC_CHECK_HEADERS(dirent.h)
574   AC_CHECK_HEADERS(dlfcn.h)
575   AC_CHECK_HEADERS(dl.h)
576   AC_CHECK_HEADERS(sys/dxe.h)
577   AC_CHECK_HEADERS(mach-o/dyld.h)
578   AC_CHECK_HEADERS(sys/types.h)
579   AC_CHECK_HEADERS(sys/time.h)
580   AC_CHECK_HEADERS(sys/times.h)
581   AC_CHECK_HEADERS(sys/timeb.h)
582   AC_CHECK_HEADERS(sys/timers.h)
583   AC_CHECK_HEADERS(sys/resource.h)
584   AC_CHECK_HEADERS(sys/stat.h)
585   AC_CHECK_HEADERS(sys/wait.h)
586   AC_CHECK_HEADERS(stat.h)
587   AC_CHECK_HEADERS(netdb.h)
588   AC_CHECK_HEADERS(grp.h)
589   #AC_CHECK_HEADERS(windows.h)
590   #AC_CHECK_HEADERS(io.h)
591   #AC_CHECK_HEADERS(tchar.h)
592   AC_CHECK_HEADERS(fpu_control.h)
593   AC_CHECK_HEADERS(os2.h)
594   AC_CHECK_HEADERS(dos.h)
595   AC_CHECK_HEADERS(direct.h)
596   #AC_CHECK_HEADERS(Retrace.h)
597   #AC_CHECK_HEADERS(Files.h)
598   #AC_CHECK_HEADERS(Finder.h)
599   #AC_CHECK_HEADERS(Errors.h)
600   #AC_CHECK_HEADERS(Folders.h)
601   #AC_CHECK_HEADERS(OSUtils.h)
602   #AC_CHECK_HEADERS(Power.h)
603   #AC_CHECK_HEADERS(CodeFragments.h)
604   #AC_CHECK_HEADERS(SIOUX.h)
605   #AC_CHECK_HEADERS(mac_gui.h)
606   #AC_CHECK_HEADERS(unix.h)
607   AC_CHECK_HEADERS(wdefwin.h)
608   AC_CHECK_HEADERS(tfork.h)
609   AC_CHECK_HEADERS(curses.h)
610   AC_CHECK_HEADERS(ncurses.h)
611   AC_CHECK_HEADERS(netinet/in.h)
612   AC_CHECK_HEADERS(arpa/inet.h)
613   AC_CHECK_HEADERS(termios.h)
614   #AC_CHECK_HEADERS(term.h)
615   AC_CHECK_HEADERS(pty.h)
616   AC_CHECK_HEADERS(stropts.h)
617   AC_CHECK_HEADERS(libutil.h)
618   AC_CHECK_HEADERS(util.h)
619   AC_CHECK_HEADERS(sys/fpu.h)
620   AC_CHECK_HEADERS(fenv.h)
621   AC_CHECK_HEADERS(fcntl.h)
622   AC_CHECK_HEADERS(sys/ioctl.h)
623   AC_CHECK_HEADERS(sys/socket.h)
624   AC_CHECK_HEADERS(strings.h)
625   AC_CHECK_HEADERS(memory.h)
626   AC_CHECK_HEADERS(sys/sysctl.h)
627   AC_CHECK_HEADERS(crt_externs.h)
629   if test "$C_COMP_VISUALC" != yes; then
631     AC_DEFUN([AC_TYPE_SOCKLEN_T],
632     [AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
633     [
634       AC_TRY_COMPILE(
635       [#include <sys/types.h>
636        #include <sys/socket.h>],
637       [socklen_t len = 42; return 0;],
638       ac_cv_type_socklen_t=yes,
639       ac_cv_type_socklen_t=no)
640     ])
641       if test $ac_cv_type_socklen_t != yes; then
642         AC_DEFINE(socklen_t, int)
643       fi
644     ])
646     AC_TYPE_SOCKLEN_T
648   fi
650   #AC_TYPE_MODE_T
651   #AC_TYPE_OFF_T
652   #AC_TYPE_PID_T
653   #AC_TYPE_SIGNAL
654   #AC_TYPE_SIZE_T
655   #AC_TYPE_UID_T
657   #AC_HEADER_DIRENT
658   #AC_HEADER_STAT
659   #AC_HEADER_STDC
660   #AC_HEADER_SYS_WAIT
661   #AC_HEADER_TIME
662   #AC_HEADER_TIOCGWINSZ
663   #AC_FUNC_SELECT_ARGTYPES
665   #AC_FUNC_CLOSEDIR_VOID
666   #AC_FUNC_FSEEKO
667   #AC_FUNC_STAT
668   #AC_FUNC_LSTAT
670   if test "$C_COMP_VISUALC" = yes; then
672     LIBS="$LIBS Kernel32.Lib User32.Lib Gdi32.Lib WS2_32.Lib"
673     FLAGS_OBJ="$FLAGS_OBJ -D_WINDOWS"
675   else
677     case "$target_os" in
679        mingw*) # add Windows libraries needed by MinGW
680                LIBS="$LIBS -lws2_32"
681                FLAGS_OBJ="$FLAGS_OBJ -D_WINDOWS"
682                ;;
684             *) # check libraries for other systems
685                AC_SEARCH_LIBS(asin,m)
687                AC_SEARCH_LIBS(dlopen,dl)
688                AC_SEARCH_LIBS(shl_load,dld)
690                #AC_SEARCH_LIBS(tgetstr,ncurses curses)
691                #AC_SEARCH_LIBS(tigetstr,ncurses curses)
693                AC_SEARCH_LIBS(socket,socket)
695                AC_SEARCH_LIBS(gethostbyname,nsl resolv xnet)
697                AC_SEARCH_LIBS(hstrerror,resolv)
699                AC_SEARCH_LIBS(openpty,util)
701                AC_SEARCH_LIBS(WSAStartup,ws2_32)
702                ;;
703     esac
705   fi
707   AC_CHECK_FUNCS(pipe)
708   AC_CHECK_FUNCS(socketpair)
709   AC_CHECK_FUNCS(chdir)
710   AC_CHECK_FUNCS(execvp)
711   AC_CHECK_FUNCS(getgrnam)
712   AC_CHECK_FUNCS(getpid)
713   AC_CHECK_FUNCS(getppid)
714   AC_CHECK_FUNCS(getpwnam)
715   AC_CHECK_FUNCS(ioctl)
716   AC_CHECK_FUNCS(link)
717   AC_CHECK_FUNCS(mkdir)
718   AC_CHECK_FUNCS(mkfifo)
719   AC_CHECK_FUNCS(opendir)
720   AC_CHECK_FUNCS(rename)
721   AC_CHECK_FUNCS(rmdir)
722   AC_CHECK_FUNCS(socket)
723   AC_CHECK_FUNCS(stat)
724   AC_CHECK_FUNCS(stat64)
725   AC_CHECK_FUNCS(strerror)
726   AC_CHECK_FUNCS(symlink)
727   AC_CHECK_FUNCS(sysconf)
728   AC_CHECK_FUNCS(sysctl)
729   AC_CHECK_FUNCS(unlink)
730   AC_CHECK_FUNCS(waitpid)
732   # The following checks for library functions have been written
733   # specially to catch the case where they are declared as inline
734   # functions.  This was done when porting to the Android platform,
735   # but it may be useful for other platforms as well.
737   # used to be: AC_CHECK_FUNCS(tcgetattr)
739   AC_DEFUN([AC_CHECK_FUNC_TCGETATTR],
740   [AC_CACHE_CHECK([for tcgetattr], ac_cv_func_tcgetattr,
741   [
742     AC_TRY_COMPILE([
743       #ifdef HAVE_TERMIOS_H
744       #include <termios.h>
745       #endif
746       ],[int fd = 1; struct termios tios; tcgetattr (fd, &tios);],
747     ac_cv_func_tcgetattr=yes,
748     ac_cv_func_tcgetattr=no)
749   ])
750     if test $ac_cv_func_tcgetattr = yes; then
751       AC_DEFINE(HAVE_TCGETATTR)
752     fi
753   ])
755   AC_CHECK_FUNC_TCGETATTR
757   # used to be: AC_CHECK_FUNCS(sigaction)
759   AC_DEFUN([AC_CHECK_FUNC_SIGACTION],
760   [AC_CACHE_CHECK([for sigaction], ac_cv_func_sigaction,
761   [
762     AC_TRY_COMPILE([
763       #ifdef HAVE_SIGNAL_H
764       #include <signal.h>
765       #endif
766       ],[struct sigaction sa1, sa2; sigaction (1, &sa1, &sa2);],
767     ac_cv_func_sigaction=yes,
768     ac_cv_func_sigaction=no)
769   ])
770     if test $ac_cv_func_sigaction = yes; then
771       AC_DEFINE(HAVE_SIGACTION)
772     fi
773   ])
775   AC_CHECK_FUNC_SIGACTION
777   # used to be: AC_CHECK_FUNCS(sigemptyset)
778   #             AC_CHECK_FUNCS(sigaddset)
780   AC_DEFUN([AC_CHECK_FUNC_SIGSET],
781   [AC_CACHE_CHECK([for sigemptyset/sigaddset], ac_cv_func_sigset,
782   [
783     AC_TRY_COMPILE([
784       #ifdef HAVE_SIGNAL_H
785       #include <signal.h>
786       #endif
787       ],[sigset_t ss; sigemptyset (&ss); sigaddset (&ss, 1);],
788     ac_cv_func_sigset=yes,
789     ac_cv_func_sigset=no)
790   ])
791     if test $ac_cv_func_sigset = yes; then
792       AC_DEFINE(HAVE_SIGEMPTYSET)
793       AC_DEFINE(HAVE_SIGADDSET)
794     fi
795   ])
797   AC_CHECK_FUNC_SIGSET
799   # used to be: AC_CHECK_FUNCS(sigprocmask)
801   AC_DEFUN([AC_CHECK_FUNC_SIGPROCMASK],
802   [AC_CACHE_CHECK([for sigprocmask], ac_cv_func_sigprocmask,
803   [
804     AC_TRY_COMPILE([
805       #ifdef HAVE_SIGNAL_H
806       #include <signal.h>
807       #endif
808       ],[sigset_t ss1, ss2; sigemptyset (&ss1); sigaddset (&ss1, 1); sigprocmask (SIG_BLOCK, &ss1, &ss2);],
809     ac_cv_func_sigprocmask=yes,
810     ac_cv_func_sigprocmask=no)
811   ])
812     if test $ac_cv_func_sigprocmask = yes; then
813       AC_DEFINE(HAVE_SIGPROCMASK)
814     fi
815   ])
817   AC_CHECK_FUNC_SIGPROCMASK
819   # used to be: AC_CHECK_FUNCS(signal)
821   AC_DEFUN([AC_CHECK_FUNC_SIGNAL],
822   [AC_CACHE_CHECK([for signal], ac_cv_func_signal,
823   [
824     AC_TRY_COMPILE([
825       #ifdef HAVE_SIGNAL_H
826       #include <signal.h>
827       #endif
828       ],[signal (1, SIG_DFL);],
829     ac_cv_func_signal=yes,
830     ac_cv_func_signal=no)
831   ])
832     if test $ac_cv_func_signal = yes; then
833       AC_DEFINE(HAVE_SIGNAL)
834     fi
835   ])
837   AC_CHECK_FUNC_SIGNAL
839   AC_DEFUN([AC_CHECK_ENVIRON],
840   [AC_CACHE_CHECK([for environ], ac_cv_environ,
841   [
842     AC_TRY_COMPILE([
843       #ifdef __cplusplus
844       extern "C" {
845       #endif
846       extern char **environ;
847       #ifdef __cplusplus
848       }
849       #endif
850       ],[char *arg0 = *environ;],
851     ac_cv_environ=yes,
852     ac_cv_environ=no)
853   ])
854     if test $ac_cv_environ = yes; then
855       AC_DEFINE(HAVE_ENVIRON)
856     fi
857   ])
859   AC_CHECK_ENVIRON
861   AC_DEFUN([AC_CHECK__NSGETENVIRON],
862   [AC_CACHE_CHECK([for _NSGetEnviron], ac_cv__NSGetEnviron,
863   [
864     AC_TRY_COMPILE([
865       #ifdef HAVE_CRT_EXTERNS_H
866       #include <crt_externs.h>
867       #endif
868       ],[char *arg0 = *(*_NSGetEnviron());],
869     ac_cv__NSGetEnviron=yes,
870     ac_cv__NSGetEnviron=no)
871   ])
872     if test $ac_cv__NSGetEnviron = yes; then
873       AC_DEFINE(HAVE__NSGETENVIRON)
874     fi
875   ])
877   AC_CHECK__NSGETENVIRON
879   AC_CHECK_FUNCS(clock_gettime)
880   AC_CHECK_FUNCS(getclock)
881   #AC_CHECK_FUNCS(GetSystemTime)
882   AC_CHECK_FUNCS(gettimeofday)
883   AC_CHECK_FUNCS(ftime)
884   AC_CHECK_FUNCS(time)
886   AC_CHECK_FUNCS(nanosleep)
887   #AC_CHECK_FUNCS(Sleep)
888   AC_CHECK_FUNCS(sleep)
890   #AC_CHECK_FUNCS(GetProcessTimes)
891   AC_CHECK_FUNCS(getrusage)
892   AC_CHECK_FUNCS(times)
893   AC_CHECK_FUNCS(clock)
894   AC_CHECK_FUNCS(DosQuerySysInfo)
896   AC_CHECK_FUNCS(setitimer)
897   AC_CHECK_FUNCS(dos_setvect)
898   AC_CHECK_FUNCS(DosStartTimer)
899   AC_CHECK_FUNCS(VInstall)
900   #AC_CHECK_FUNCS(CreateThread)
902   AC_CHECK_FUNCS(shl_load)
903   #AC_CHECK_FUNCS(LoadLibrary)
904   AC_CHECK_FUNCS(DosLoadModule)
905   AC_CHECK_FUNCS(dxe_load)
906   AC_CHECK_FUNCS(GetDiskFragment)
907   AC_CHECK_FUNCS(dlopen)
908   AC_CHECK_FUNCS(NSLinkModule) # has been deprecated by Apple
910   AC_CHECK_FUNCS(gethostname)
911   AC_CHECK_FUNCS(inet_pton)
912   AC_CHECK_FUNCS(getaddrinfo)
913   AC_CHECK_FUNCS(gethostbyname)
914   AC_CHECK_FUNCS(gethostbyaddr)
915   AC_CHECK_FUNCS(getservbyname)
916   AC_CHECK_FUNCS(getservbyport)
917   AC_CHECK_FUNCS(getprotobyname)
918   AC_CHECK_FUNCS(getprotobynumber)
919   AC_CHECK_FUNCS(getnetbyname)
921   AC_CHECK_FUNCS(select)
922   #AC_CHECK_FUNCS(MsgWaitForMultipleObjects)
924   #AC_CHECK_FUNCS(tgetstr)
925   #AC_CHECK_FUNCS(tigetstr)
927   AC_CHECK_FUNCS(openpty)
928   AC_CHECK_FUNCS(getpt)
929   AC_CHECK_FUNCS(ptsname)
930   AC_CHECK_FUNCS(ctermid)
931   AC_CHECK_FUNCS(isastream)
933   AC_CHECK_FUNCS(hstrerror)
935   AC_CHECK_FUNCS(get_fpc_csr)
939 AC_CHECK_TYPE([struct stat64],
940               [AC_DEFINE(HAVE_STRUCT_STAT64, 1, [])],
941               [],
942               [#include <sys/stat.h>])
944 ###############################################################################
946 # Check which command line options are supported by $C_COMPILER.
948 if test "$C_COMP_GNUC" = yes; then
950   ########## Using gcc...
952   # Determine which gcc version is being used.
954   AC_CHECK_C_COMPILER_CPP_EXPR((__GNUC__*100+__GNUC_MINOR__)>=402&&(__GNUC__*100+__GNUC_MINOR__)<=403,GCC_42_OR_43)
956   # preprocessor options:
957   AC_CHECK_C_COMPILER_OPT(-no-cpp-precomp,DASH_no_cpp_precomp)
959   # debugging options:
960   AC_CHECK_C_COMPILER_OPT(-Wall,DASH_Wall)
961   AC_CHECK_C_COMPILER_OPT(-W,DASH_W)
962   AC_CHECK_C_COMPILER_OPT(-Wno-unused,DASH_Wno_unused)
963   AC_CHECK_C_COMPILER_OPT(-g,DASH_g)
965   # profiling options:
966   AC_CHECK_C_COMPILER_OPT(-p,DASH_p)
967   AC_CHECK_C_COMPILER_OPT(-pg,DASH_pg)
968   AC_CHECK_C_COMPILER_OPT(-ftest-coverage,DASH_ftest_coverage)
969   AC_CHECK_C_COMPILER_OPT(-fprofile-arcs,DASH_fprofile_arcs)
970   AC_CHECK_C_COMPILER_OPT(-fbranch-probabilities,DASH_fbranch_probabilities)
972   # optimization options:
973   AC_CHECK_C_COMPILER_OPT(-O1,DASH_O1)
974   AC_CHECK_C_COMPILER_OPT(-fno-math-errno,DASH_fno_math_errno)
975   AC_CHECK_C_COMPILER_OPT(-fschedule-insns2,DASH_fschedule_insns2)
976   AC_CHECK_C_COMPILER_OPT(-fno-trapping-math,DASH_fno_trapping_math)
977   AC_CHECK_C_COMPILER_OPT(-fno-strict-aliasing,DASH_fno_strict_aliasing)
978   AC_CHECK_C_COMPILER_OPT(-fwrapv,DASH_fwrapv)
979   AC_CHECK_C_COMPILER_OPT(-fomit-frame-pointer,DASH_fomit_frame_pointer)
980   AC_CHECK_C_COMPILER_OPT(-fno-move-loop-invariants,DASH_fno_move_loop_invariants)
982 # It isn't clear these are useful:
983 #  AC_CHECK_C_COMPILER_OPT(-fexpensive-optimizations,DASH_fexpensive_optimizations)
984 #  AC_CHECK_C_COMPILER_OPT(-fforce-addr,DASH_fforce_addr)
985 #  AC_CHECK_C_COMPILER_OPT(-fpeephole2,DASH_fpeephole2)
986 #  AC_CHECK_C_COMPILER_OPT(-falign-jumps,DASH_falign_jumps)
987 #  AC_CHECK_C_COMPILER_OPT(-falign-functions,DASH_falign_functions)
988 #  AC_CHECK_C_COMPILER_OPT(-fno-function-cse,DASH_fno_function_cse)
989 #  AC_CHECK_C_COMPILER_OPT(-ftree-copyrename,DASH_ftree_copyrename)
990 #  AC_CHECK_C_COMPILER_OPT(-ftree-fre,DASH_ftree_fre)
991 #  AC_CHECK_C_COMPILER_OPT(-ftree-dce,DASH_ftree_dce)
992 #  AC_CHECK_C_COMPILER_OPT(-fschedule-interblock,DASH_fschedule_interblock)
993 #  AC_CHECK_C_COMPILER_OPT(-fregmove,DASH_fregmove)
994 #  AC_CHECK_C_COMPILER_OPT(-fgcse-las,DASH_fgcse_las)
995 #  AC_CHECK_C_COMPILER_OPT(-freorder-functions,DASH_freorder_functions)
996 #  AC_CHECK_C_COMPILER_OPT(-fcaller-saves,DASH_fcaller_saves)
997 #  AC_CHECK_C_COMPILER_OPT(-fno-if-conversion2,DASH_fno_if_conversion2)
998 #  AC_CHECK_C_COMPILER_OPT(-foptimize-sibling-calls,DASH_foptimize_sibling_calls)
999 #  AC_CHECK_C_COMPILER_OPT(-fcse-skip-blocks,DASH_fcse_skip_blocks)
1000 #  AC_CHECK_C_COMPILER_OPT(-funit-at-a-time,DASH_funit_at_a_time)
1001 #  AC_CHECK_C_COMPILER_OPT(-finline-functions,DASH_finline_functions)
1003   if test "$ENABLE_GCC_OPTS" = yes; then
1004     AC_CHECK_C_COMPILER_OPT(-fmodulo-sched,DASH_fmodulo_sched)
1005     AC_CHECK_C_COMPILER_OPT(-freschedule-modulo-scheduled-loops,DASH_freschedule_modulo_scheduled_loops)
1007   fi
1009   # code generation options:
1010   case "$target_os" in
1012      mingw*) # no special code generation options needed by MinGW
1013              ;;
1015     cygwin*) # no special code generation options needed by cygwin
1016              ;;
1018           *) # check for code generation options for other systems
1019              AC_CHECK_C_COMPILER_OPT(-fPIC,DASH_fPIC)
1020              AC_CHECK_C_COMPILER_OPT(-fpic,DASH_fpic)
1021              ;;
1022   esac
1023   AC_CHECK_C_COMPILER_OPT(-fno-common,DASH_fno_common)
1025   # machine specific options:
1026   AC_CHECK_C_COMPILER_OPT(-mieee,DASH_mieee)
1027   AC_CHECK_C_COMPILER_OPT(-mieee-with-inexact,DASH_mieee_with_inexact)
1028   AC_CHECK_C_COMPILER_OPT(-mieee-fp,DASH_mieee_fp)
1030   # linking options:
1031   case "$target_os" in
1033      mingw*) # no special options needed by MinGW
1034              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared,$DASH_fPIC$DASH_fpic)
1035              ;;
1037     cygwin*) # no special options needed by cygwin
1038              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared,$DASH_fPIC$DASH_fpic)
1039              ;;
1041    solaris*) # check for options needed by Solaris
1042              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared,$DASH_fPIC$DASH_fpic)
1043              ;;
1045       hpux*) # check for options needed by HP-UX
1046              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared,$DASH_fPIC$DASH_fpic)
1047              ;;
1049     darwin*) # check for special options added by Apple
1050              AC_CHECK_C_COMPILER_OPT(-dynamiclib,DASH_dynamiclib)
1051              AC_CHECK_C_COMPILER_OPT(-bundle,DASH_bundle)
1052              AC_CHECK_C_COMPILER_OPT(-flat_namespace -undefined suppress,DASH_flat_namespace_undefined_suppress)
1053              ;;
1055           *) # for other systems
1056              AC_CHECK_C_COMPILER_OPT(-rdynamic,DASH_rdynamic)
1057              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared,$DASH_fPIC$DASH_fpic)
1058              ;;
1059   esac
1061   # determine which flags to add to CFLAGS, CXXFLAGS and LDFLAGS
1063   case "$target_os" in
1064     darwin*) # avoid the default C preprocessor which is setup for Objective-C
1065              FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_no_cpp_precomp"
1066              ;;
1067   esac
1069   FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_Wno_unused"
1071   if test "$ENABLE_DEBUG" = yes; then
1072     FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_g"
1073   fi
1075   if test "$ENABLE_PROFILE" = yes; then
1076     if test "x$DASH_pg" != x; then
1077       FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_pg"
1078     else
1079       FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_p"
1080     fi
1081   fi
1083   if test "$ENABLE_DEBUG" != yes; then
1084     FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_O1$DASH_fno_math_errno$DASH_fschedule_insns2"
1085   fi
1087   FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fno_trapping_math$DASH_fno_strict_aliasing$DASH_fwrapv"
1089 # It isn't clear these are useful:
1090 #  FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fno_trapping_math$DASH_fno_strict_aliasing$DASH_fwrapv$DASH_fexpensive_optimizations$DASH_fforce_addr$DASH_fpeephole2$DASH_falign_jumps$DASH_falign_functions$DASH_fno_function_cse$DASH_ftree_copyrename$DASH_ftree_fre$DASH_ftree_dce$DASH_fschedule_interblock$DASH_fregmove$DASH_fgcse_las$DASH_freorder_functions$DASH_fcaller_saves$DASH_fno_if_conversion2$DASH_foptimize_sibling_calls$DASH_fcse_skip_blocks$DASH_funit_at_a_time$DASH_finline_functions"
1092   if test "$ENABLE_GCC_OPTS" = yes; then
1093     FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fmodulo_sched$DASH_freschedule_modulo_scheduled_loops"
1094   fi
1096   case "$target_os" in
1098      mingw*) # MinGW's setjmp seems to need the frame pointer
1099              ;;
1101           *) # other systems are fine as far as I can tell
1102              if test "$ENABLE_DEBUG" != yes -a "$ENABLE_PROFILE" != yes; then
1103                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fomit_frame_pointer"
1104              fi
1105              ;;
1106   esac
1108   ENABLE_GCC_MOVE_LOOP_INVARIANTS=yes
1109   if test "$ENABLE_SINGLE_HOST" = yes; then
1110     if test "$GCC_42_OR_43" = yes; then
1111       ENABLE_GCC_MOVE_LOOP_INVARIANTS=no
1112     fi
1113   fi
1115   if test "$ENABLE_GCC_MOVE_LOOP_INVARIANTS" != yes; then
1116     FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fno_move_loop_invariants"
1117   fi
1119   if test "$ENABLE_FEEDBACK1" = yes -o "$ENABLE_COVERAGE" = yes; then
1120     AC_DEFINE(___DONT_UNLOAD_DYN_CODE)
1121     FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_fprofile_arcs"
1122     if test "$ENABLE_COVERAGE" = yes; then
1123       FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_ftest_coverage"
1124     fi
1125   fi
1127   if test "$ENABLE_FEEDBACK2" = yes; then
1128     AC_DEFINE(___DONT_UNLOAD_DYN_CODE)
1129     FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_fbranch_probabilities"
1130   fi
1132   if test "x$DASH_fPIC" != x; then
1133     FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fPIC"
1134   else
1135     FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fpic"
1136   fi
1138   FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fno_common"
1140   FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_mieee$DASH_mieee_with_inexact$DASH_mieee_fp"
1142   case "$target_os" in
1144     darwin*) # check for special options added by Apple
1145              FLAGS_DYN="$FLAGS_DYN$DASH_bundle"
1146              FLAGS_LIB="$FLAGS_LIB$DASH_dynamiclib -install_name \$(libdir)/\$(LIBRARY)"
1147              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_flat_namespace_undefined_suppress"
1148              ;;
1150           *) # for other systems
1151              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_rdynamic$DASH_shared"
1152              FLAGS_EXE="$FLAGS_EXE$DASH_rdynamic"
1153              ;;
1154   esac
1156 else if test "$C_COMP_VISUALC" = yes; then
1158   ########## Microsoft Visual C++ compiler
1160   FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE -nologo -Oityb1 -MT -D_CRT_SECURE_NO_DEPRECATE"
1161   FLAGS_DYN="$FLAGS_DYN -LD"
1163 #else if test "$C_COMP_WATCOMC" = yes; then
1164 #else if test "$C_COMP_BORLANDC" = yes; then
1166 else
1168   ########## Need to guess the C compiler from the OS...
1170   case "$target_os" in
1172    solaris*) ########## Probably using the Sun Workshop C/C++ compiler...
1174              # debugging options:
1175              AC_CHECK_C_COMPILER_OPT(-g,DASH_g)
1177              # profiling options:
1178              AC_CHECK_C_COMPILER_OPT(-p,DASH_p)
1180              # optimization options:
1181              AC_CHECK_C_COMPILER_OPT(-xO2,DASH_xO2)
1183              # code generation options:
1184              AC_CHECK_C_COMPILER_OPT(-KPIC,DASH_KPIC)
1186              # linking options:
1187              AC_CHECK_C_COMPILER_OPT(-G,DASH_G)
1189              # determine which flags to add to CFLAGS, CXXFLAGS and LDFLAGS
1191              if test "$ENABLE_DEBUG" = yes; then
1192                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_g"
1193              fi
1195              if test "$ENABLE_PROFILE" = yes; then
1196                FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_p"
1197              fi
1199              if test "$ENABLE_DEBUG" != yes; then
1200                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_xO2"
1201              fi
1203              FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_KPIC"
1205              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_G"
1206              ;;
1208        osf*) ########## Probably using the Compaq Tru64 UNIX C/C++ compiler...
1210              # debugging options:
1211              AC_CHECK_C_COMPILER_OPT(-g,DASH_g)
1213              # profiling options:
1214              AC_CHECK_C_COMPILER_OPT(-p,DASH_p)
1216              # optimization options:
1217              AC_CHECK_C_COMPILER_OPT(-O2,DASH_O2)
1219              # code generation options:
1220              AC_CHECK_C_COMPILER_OPT(-ieee,DASH_ieee)
1221              AC_CHECK_C_COMPILER_OPT(-call_shared,DASH_call_shared)
1222              #AC_CHECK_C_COMPILER_OPT(-taso,DASH_taso)
1224              # linking options:
1225              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared)
1226              AC_CHECK_C_COMPILER_OPT(-expect_unresolved,DASH_expect_unresolved)
1228              # determine which flags to add to CFLAGS, CXXFLAGS and LDFLAGS
1230              if test "$ENABLE_DEBUG" = yes; then
1231                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_g"
1232              fi
1234              if test "$ENABLE_PROFILE" = yes; then
1235                FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_p"
1236              fi
1238              if test "$ENABLE_DEBUG" != yes; then
1239                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_O2"
1240              fi
1242              FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_ieee$DASH_call_shared"
1244              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_shared$DASH_expect_unresolved"
1245              ;;
1247       irix*) ########## Probably using the MIPSpro C/C++ compiler...
1249              # debugging options:
1250              AC_CHECK_C_COMPILER_OPT(-fullwarn,DASH_fullwarn)
1251              AC_CHECK_C_COMPILER_OPT([-woff 1110,1174,1209,1552,3201],DASH_woff_1110_1174_1209_1552_3201)
1252              AC_CHECK_C_COMPILER_OPT(-g,DASH_g)
1254              # optimization options:
1255              AC_CHECK_C_COMPILER_OPT(-O1,DASH_O1)
1256              AC_CHECK_C_COMPILER_OPT(-OPT:Olimit=0,DASH_OPT_Olimit_0)
1258              # code generation options:
1259              #AC_CHECK_C_COMPILER_OPT(-KPIC,DASH_KPIC)
1260              #AC_CHECK_C_COMPILER_OPT(-non_shared,DASH_non_shared)
1261              AC_CHECK_C_COMPILER_OPT(-TENV:large_GOT,DASH_TENV_large_GOT)
1262              AC_CHECK_C_COMPILER_OPT(-OPT:IEEE_comparisons=ON,DASH_OPT_IEEE_comparisons_ON)
1263              AC_CHECK_C_COMPILER_OPT(-OPT:IEEE_NaN_inf=ON,DASH_OPT_IEEE_NaN_inf_ON)
1265              # linking options:
1266              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared)
1268              # determine which flags to add to CFLAGS, CXXFLAGS and LDFLAGS
1270              FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_fullwarn$DASH_woff_1110_1174_1209_1552_3201"
1272              if test "$ENABLE_DEBUG" = yes; then
1273                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_g"
1274              fi
1276              if test "$ENABLE_DEBUG" != yes; then
1277                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_O1$DASH_OPT_Olimit_0"
1278              fi
1280              FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_TENV_large_GOT$DASH_OPT_IEEE_comparisons_ON$DASH_OPT_IEEE_NaN_inf_ON"
1282              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_shared"
1283              ;;
1285       hpux*) ########## Probably using the HP-UX compiler...
1287              # debugging options:
1288              AC_CHECK_C_COMPILER_OPT(-g,DASH_g)
1290              # profiling options:
1291              AC_CHECK_C_COMPILER_OPT(-p,DASH_p)
1293              # optimization options:
1294              AC_CHECK_C_COMPILER_OPT(-O1,DASH_O1)
1296              # linking options:
1297              AC_CHECK_C_COMPILER_OPT(-b,DASH_b)
1299              # determine which flags to add to CFLAGS, CXXFLAGS and LDFLAGS
1301              if test "$ENABLE_DEBUG" = yes; then
1302                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_g"
1303              fi
1305              if test "$ENABLE_PROFILE" = yes; then
1306                FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_p"
1307              fi
1309              if test "$ENABLE_DEBUG" != yes; then
1310                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_O1"
1311              fi
1313              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_b"
1314              ;;
1316        aix*) ########## Probably using the AIX xlC compiler...
1318              # debugging options:
1319              AC_CHECK_C_COMPILER_OPT(-g,DASH_g)
1321              # profiling options:
1322              AC_CHECK_C_COMPILER_OPT(-p,DASH_p)
1324              # optimization options:
1325              AC_CHECK_C_COMPILER_OPT(-O1,DASH_O1)
1327              # linking options:
1328              AC_CHECK_C_COMPILER_OPT(-G,DASH_G)
1330              # determine which flags to add to CFLAGS, CXXFLAGS and LDFLAGS
1332              if test "$ENABLE_DEBUG" = yes; then
1333                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_g"
1334              fi
1336              if test "$ENABLE_PROFILE" = yes; then
1337                FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_p"
1338              fi
1340              if test "$ENABLE_DEBUG" != yes; then
1341                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_O1"
1342              fi
1344              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_G"
1345              ;;
1347           *) ########## Unsupported operating system
1349              AC_MSG_NOTICE([
1350 *********************************************************************
1351 *** The GCC compiler is not being used and the operating system   ***
1352 *** is not one that has been tested with the Gambit-C system.     ***
1353 *** The configure script will use certain compiler options that   ***
1354 *** may not be correct or sufficient for compiling the system.    ***
1355 *** Please report success or failure to gambit@iro.umontreal.ca.  ***
1356 *** This will help us support this operating system in the        ***
1357 *** future.                                                       ***
1358 *********************************************************************
1361              # debugging options:
1362              AC_CHECK_C_COMPILER_OPT(-g,DASH_g)
1364              # profiling options:
1365              AC_CHECK_C_COMPILER_OPT(-p,DASH_p)
1367              # optimization options:
1368              AC_CHECK_C_COMPILER_OPT(-O1,DASH_O1)
1370              # linking options:
1371              AC_CHECK_C_COMPILER_OPT(-shared,DASH_shared)
1373              # determine which flags to add to CFLAGS, CXXFLAGS and LDFLAGS
1375              if test "$ENABLE_DEBUG" = yes; then
1376                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_g"
1377              fi
1379              if test "$ENABLE_PROFILE" = yes; then
1380                FLAGS_OBJ_DYN_LIB_EXE="$FLAGS_OBJ_DYN_LIB_EXE$DASH_p"
1381              fi
1383              if test "$ENABLE_DEBUG" != yes; then
1384                FLAGS_OBJ_DYN="$FLAGS_OBJ_DYN$DASH_O1"
1385              fi
1387              FLAGS_DYN_LIB="$FLAGS_DYN_LIB$DASH_shared"
1388              ;;
1389   esac
1394 if test "$ENABLE_CPLUSPLUS" = yes; then
1395   CORCXXFLAGS="$CXXFLAGS"
1396 else
1397   CORCXXFLAGS="$CFLAGS"
1400 FLAGS_OBJ="$CORCXXFLAGS $FLAGS_OBJ $FLAGS_OBJ_DYN $FLAGS_OBJ_DYN_LIB_EXE"
1401 FLAGS_DYN="$LDFLAGS $CORCXXFLAGS $FLAGS_DYN $FLAGS_OBJ_DYN $FLAGS_OBJ_DYN_LIB_EXE $FLAGS_DYN_LIB"
1402 FLAGS_LIB="$LDFLAGS $CORCXXFLAGS $FLAGS_LIB $FLAGS_OBJ_DYN_LIB_EXE $FLAGS_DYN_LIB"
1403 #FLAGS_EXE="$LDFLAGS $CORCXXFLAGS $FLAGS_EXE $FLAGS_OBJ_DYN_LIB_EXE"
1404 FLAGS_EXE="$LDFLAGS $FLAGS_OBJ $FLAGS_EXE"
1406 DEFS_OBJ="$DEFS_OBJ_DYN_LIB_EXE $DEFS_OBJ"
1407 DEFS_DYN="$DEFS_OBJ_DYN_LIB_EXE $DEFS_DYN"
1408 DEFS_LIB="$DEFS_OBJ_DYN_LIB_EXE $DEFS_LIB"
1409 DEFS_EXE="$DEFS_OBJ_DYN_LIB_EXE $DEFS_EXE"
1411 AC_SUBST(FLAGS_OBJ)
1412 AC_SUBST(FLAGS_DYN)
1413 AC_SUBST(FLAGS_LIB)
1414 AC_SUBST(FLAGS_EXE)
1415 AC_SUBST(DEFS_OBJ)
1416 AC_SUBST(DEFS_DYN)
1417 AC_SUBST(DEFS_LIB)
1418 AC_SUBST(DEFS_EXE)
1420 AC_SUBST(FLAGS_OBJ_MF)
1421 AC_SUBST(FLAGS_DYN_MF)
1422 AC_SUBST(FLAGS_LIB_MF)
1423 AC_SUBST(FLAGS_EXE_MF)
1424 AC_SUBST(DEFS_OBJ_MF)
1425 AC_SUBST(DEFS_DYN_MF)
1426 AC_SUBST(DEFS_LIB_MF)
1427 AC_SUBST(DEFS_EXE_MF)
1429 AC_SUBST(FLAGS_OBJ_SH)
1430 AC_SUBST(FLAGS_DYN_SH)
1431 AC_SUBST(FLAGS_LIB_SH)
1432 AC_SUBST(FLAGS_EXE_SH)
1433 AC_SUBST(DEFS_OBJ_SH)
1434 AC_SUBST(DEFS_DYN_SH)
1435 AC_SUBST(DEFS_LIB_SH)
1436 AC_SUBST(DEFS_EXE_SH)
1438 AC_SUBST(FLAGS_OBJ_BAT)
1439 AC_SUBST(FLAGS_DYN_BAT)
1440 AC_SUBST(FLAGS_LIB_BAT)
1441 AC_SUBST(FLAGS_EXE_BAT)
1442 AC_SUBST(DEFS_OBJ_BAT)
1443 AC_SUBST(DEFS_DYN_BAT)
1444 AC_SUBST(DEFS_LIB_BAT)
1445 AC_SUBST(DEFS_EXE_BAT)
1447 ###############################################################################
1449 AC_SUBST(RTLIBSUBSYS)
1451 ###############################################################################
1453 AC_PATH_XTRA
1456 #AC_SYS_INTERPRETER
1457 #AC_SYS_LARGEFILE
1458 #AC_SYS_POSIX_TERMIOS
1460 AC_PROG_LN_S
1461 AC_PROG_RANLIB
1462 RC="git"
1463 GIT="git"
1464 HG="hg"
1466 exe="$EXEEXT"
1467 obj=".$OBJEXT"
1469 case "$target_os" in
1471    mingw*) bat=".bat"
1472            ;;
1474         *) bat=""
1475            ;;
1476 esac
1478 if test "$ENABLE_SHARED" = yes; then
1480   case "$target_os" in
1482      mingw* | cygwin*)
1483              LIB_PREFIX="lib"
1484              LIB_EXTENSION=".dll"
1485              SETDLPATH="PATH=\"\$(rootfromhere)/lib:\$(rootfromhere)/gsi:\$(rootfromhere)/gsc:\${PATH}\""
1486              ;;
1488     darwin*) LIB_PREFIX="lib"
1489              LIB_EXTENSION=".dylib"
1490              SETDLPATH="DYLD_LIBRARY_PATH=\$(rootfromhere)/lib:\$(rootfromhere)/gsi:\$(rootfromhere)/gsc:\${DYLD_LIBRARY_PATH}"
1491              ;;
1493       hpux*) LIB_PREFIX="lib"
1494              LIB_EXTENSION=".so"
1495              SETDLPATH="SHLIB_PATH=\$(rootfromhere)/lib:\$(rootfromhere)/gsi:\$(rootfromhere)/gsc:\${SHLIB_PATH}"
1496              ;;
1498        aix*) LIB_PREFIX="lib"
1499              LIB_EXTENSION=".so"
1500              SETDLPATH="LIBPATH=\$(rootfromhere)/lib:\$(rootfromhere)/gsi:\$(rootfromhere)/gsc:\${LIBPATH}"
1501              ;;
1503           *) LIB_PREFIX="lib"
1504              LIB_EXTENSION=".so"
1505              SETDLPATH="LD_LIBRARY_PATH=\$(rootfromhere)/lib:\$(rootfromhere)/gsi:\$(rootfromhere)/gsc:\${LD_LIBRARY_PATH}"
1506              ;;
1507   esac
1509   MAKE_LIBRARY='$(C_COMPILER) $(FLAGS_LIB) -o $(LIBRARY) $(LIBRARY_OBJECTS) $(MAKE_LIBRARY_LIBS) $(LIBS)'
1510   MAKE_LIBRARY_FOR_INSTALL='$(C_COMPILER) $(FLAGS_LIB) -o $(LIBRARY) $(LIBRARY_OBJECTS) $(MAKE_LIBRARY_FOR_INSTALL_LIBS) $(LIBS)'
1511   FIXLIB=':'
1512   LINK_FOR_INSTALL='$(C_COMPILER) $(FLAGS_EXE) $(EXECUTABLE_OBJECTS) $(LINK_FOR_INSTALL_LIBS) $(LIBS) -o $(EXECUTABLE)'
1514 else
1516   SETDLPATH=""
1518   if test "$C_COMP_VISUALC" = yes; then
1520     ########## Microsoft Visual C++ compiler
1522     LIB_PREFIX="lib"
1523     LIB_EXTENSION=".lib"
1524     MAKE_LIBRARY='lib -out:$(LIBRARY) $(LIBRARY_OBJECTS)'
1525     MAKE_LIBRARY_FOR_INSTALL=':'
1526     FIXLIB=':'
1527     LINK_FOR_INSTALL=':'
1529 #  else if test "$C_COMP_WATCOMC" = yes; then
1530 #  else if test "$C_COMP_BORLANDC" = yes; then
1532   else
1534     ########## Other C compiler
1536     LIB_PREFIX="lib"
1537     LIB_EXTENSION=".a"
1538     MAKE_LIBRARY='ar rc $(LIBRARY) $(LIBRARY_OBJECTS) && $(RANLIB) $(LIBRARY)'
1539     MAKE_LIBRARY_FOR_INSTALL=':'
1540     FIXLIB='$(RANLIB)'
1541     LINK_FOR_INSTALL=':'
1543   fi
1547 if test "$ENABLE_VERSIONNED_LIBS" = no; then
1549   LIB_SUFFIX=""
1551 else
1553   if test "$ENABLE_VERSIONNED_LIBS" = yes; then
1555     LIB_SUFFIX=`echo -$PACKAGE_VERSION | sed -e 's/\./_/g'`
1557   else
1559     LIB_SUFFIX="$ENABLE_VERSIONNED_LIBS"
1561   fi
1565 GAMBCLIB="gambc$LIB_SUFFIX"
1566 GAMBCGSCLIB="gambcgsc$LIB_SUFFIX"
1567 GAMBCGSILIB="gambcgsi$LIB_SUFFIX"
1569 if test "yes" = yes; then
1571   GAMBCLIB_LOC=""
1572   GAMBCLIB_LINK="\"\${GAMBCDIR_LIB}/$LIB_PREFIX$GAMBCLIB$LIB_EXTENSION\""
1574   GAMBCGSILIB_LOC=""
1575   GAMBCGSILIB_LINK="\"\${GAMBCDIR_LIB_GSI}/$LIB_PREFIX$GAMBCGSILIB$LIB_EXTENSION\" \"\${GAMBCDIR_LIB}/$LIB_PREFIX$GAMBCLIB$LIB_EXTENSION\""
1577   GAMBCGSCLIB_LOC=""
1578   GAMBCGSCLIB_LINK="\"\${GAMBCDIR_LIB_GSC}/$LIB_PREFIX$GAMBCGSCLIB$LIB_EXTENSION\" \"\${GAMBCDIR_LIB}/$LIB_PREFIX$GAMBCLIB$LIB_EXTENSION\""
1580 else
1582   GAMBCLIB_LOC="-L\"\${GAMBCDIR_LIB}\""
1583   GAMBCLIB_LINK="-l$GAMBCLIB"
1585   GAMBCGSILIB_LOC="-L\"\${GAMBCDIR_LIB_GSI}\" -L\"\${GAMBCDIR_LIB}\""
1586   GAMBCGSILIB_LINK="-l$GAMBCGSILIB -l$GAMBCLIB"
1588   GAMBCGSCLIB_LOC="-L\"\${GAMBCDIR_LIB_GSC}\" -L\"\${GAMBCDIR_LIB}\""
1589   GAMBCGSCLIB_LINK="-l$GAMBCGSCLIB -l$GAMBCLIB"
1593 if test "$C_COMP_VISUALC" = yes; then
1595   ########## Microsoft Visual C++ compiler
1597   BUILD_OBJ="\${C_COMPILER} \${FLAGS_OBJ} \${DEFS_OBJ} -I\"\${GAMBCDIR_INCLUDE}\" -c -Fo\"\${BUILD_OBJ_OUTPUT_FILENAME}\" \${BUILD_OBJ_CC_OPTIONS} \${BUILD_OBJ_INPUT_FILENAMES}"
1599   BUILD_DYN="\${C_COMPILER} \${FLAGS_DYN} \${DEFS_DYN} -I\"\${GAMBCDIR_INCLUDE}\" -Fe\"\${BUILD_DYN_OUTPUT_FILENAME}\" \${BUILD_DYN_CC_OPTIONS} \${BUILD_DYN_LD_OPTIONS_PRELUDE} \${BUILD_DYN_INPUT_FILENAMES} \${BUILD_DYN_LD_OPTIONS}"
1601   BUILD_LIB="echo BUILD_LIB not yet implemented"
1603   BUILD_EXE="\${C_COMPILER} \${FLAGS_EXE} \${DEFS_EXE} -I\"\${GAMBCDIR_INCLUDE}\" ${GAMBCLIB_LOC} -Fe\"\${BUILD_EXE_OUTPUT_FILENAME}\" \${BUILD_EXE_CC_OPTIONS} \${BUILD_EXE_LD_OPTIONS_PRELUDE} \${BUILD_EXE_INPUT_FILENAMES} ${GAMBCLIB_LINK} \${LIBS} \${BUILD_EXE_LD_OPTIONS}"
1605 else
1607   BUILD_OBJ="\${C_COMPILER} \${FLAGS_OBJ} \${DEFS_OBJ} -I\"\${GAMBCDIR_INCLUDE}\" -c -o \"\${BUILD_OBJ_OUTPUT_FILENAME}\" \${BUILD_OBJ_CC_OPTIONS} \${BUILD_OBJ_INPUT_FILENAMES}"
1609   BUILD_DYN="\${C_COMPILER} \${FLAGS_DYN} \${DEFS_DYN} -I\"\${GAMBCDIR_INCLUDE}\" -o \"\${BUILD_DYN_OUTPUT_FILENAME}\" \${BUILD_DYN_CC_OPTIONS} \${BUILD_DYN_LD_OPTIONS_PRELUDE} \${BUILD_DYN_INPUT_FILENAMES} \${BUILD_DYN_LD_OPTIONS}"
1611   BUILD_LIB="echo BUILD_LIB not yet implemented"
1613   BUILD_EXE="\${C_COMPILER} \${FLAGS_EXE} \${DEFS_EXE} -I\"\${GAMBCDIR_INCLUDE}\" ${GAMBCLIB_LOC} -o \"\${BUILD_EXE_OUTPUT_FILENAME}\" \${BUILD_EXE_CC_OPTIONS} \${BUILD_EXE_LD_OPTIONS_PRELUDE} \${BUILD_EXE_INPUT_FILENAMES} ${GAMBCLIB_LINK} \${LIBS} \${BUILD_EXE_LD_OPTIONS}"
1617 # The following code for making installed libraries may benefit from
1618 # a rewrite so that it reuses the "BUILD_XXX" command infrastructure.
1620 if test "$ENABLE_ABSOLUTE_SHARED_LIBS" = yes; then
1622   MAKE_LIBRARY_FOR_INSTALL_LIBS='$$t_libdir/$(LIB_PREFIX)$(GAMBCLIB)$(LIB_EXTENSION)'
1623   LINK_FOR_INSTALL_GSI_LIBS='$$t_libdir/$(LIB_PREFIX)$(GAMBCGSILIB)$(LIB_EXTENSION) $$t_libdir/$(LIB_PREFIX)$(GAMBCLIB)$(LIB_EXTENSION)'
1624   LINK_FOR_INSTALL_GSC_LIBS='$$t_libdir/$(LIB_PREFIX)$(GAMBCGSCLIB)$(LIB_EXTENSION) $$t_libdir/$(LIB_PREFIX)$(GAMBCLIB)$(LIB_EXTENSION)'
1626 else
1628   MAKE_LIBRARY_FOR_INSTALL_LIBS='-L$(rootfromhere)/lib -l$(GAMBCLIB)'
1629   LINK_FOR_INSTALL_GSI_LIBS='-L. -L$(rootfromhere)/lib -l$(GAMBCGSILIB) -l$(GAMBCLIB)'
1630   LINK_FOR_INSTALL_GSC_LIBS='-L. -L$(rootfromhere)/lib -l$(GAMBCGSCLIB) -l$(GAMBCLIB)'
1634 ###############################################################################
1636 # Determine what prefix and suffix are added to function names by the
1637 # C compiler or linker.
1639 case "$target_os" in
1641    mingw*) # empty prefix and suffix
1642            ;;
1644   cygwin*) # empty prefix and suffix
1645            ;;
1647         *) # for other systems
1649            ac_link_obj_file='$C_COMPILER $FLAGS_DYN $DEFS_DYN -Iinclude -o conftest.o1 conftest.$ac_ext >&5'
1651            rm -f conftest.$ac_ext conftest.o1 conftest1.sed
1653            cat >conftest.$ac_ext <<_ACEOF
1654 #line $LINENO "configure"
1655 #define ___VERSION 400000
1656 #define ___MODULE_NAME " GAMBCCHECKMODULEPREFIXSUFFIX"
1657 #define ___LINKER_ID ____20_GAMBCCHECKMODULEPREFIXSUFFIX
1658 #define ___MH_PROC ___H__20_GAMBCCHECKMODULEPREFIXSUFFIX
1659 #define ___SCRIPT_LINE 0
1660 #define ___MAX_CHR 0x10ffff
1661 #define ___VOIDSTAR_WIDTH ___LONG_WIDTH
1662 #include "gambit.h.in"
1664 ___BEGIN_MOD1
1665 ___END_MOD1
1666 ___BEGIN_MOD2
1667 ___END_MOD2
1668 _ACEOF
1670            if { (eval echo "$as_me:$LINENO: \"$ac_link_obj_file\"") >&5
1671              (eval $ac_link_obj_file) 2>&5
1672              ac_status=$?
1673              echo "$as_me:$LINENO: \$? = $ac_status" >&5
1674              (exit $ac_status); }; then
1676              cat >conftest1.sed <<_ACEOF
1677 /^.* \([[a-zA-Z0-9_$]]*\)____20_GAMBCCHECKMODULEPREFIXSUFFIX\([[a-zA-Z0-9_$]]*\)$/s//#define ___IMPORTED_ID_PREFIX "\1"\\
1678 #define ___IMPORTED_ID_SUFFIX "\2"/p
1679 _ACEOF
1681              # The nm program will extract the symbols in the object file
1682              # conftest.o1.  The following option is used:
1683              #   -g    shows the external symbols only (to avoid confusion with
1684              #         internal symbols generated by the compiler)
1685              nm -g conftest.o1 | sed -n -f conftest1.sed | sed -n -e "1,2p" >>confdefs.h
1687            fi
1688            ;;
1689 esac
1691 ###############################################################################
1693 # Determine where the installation directories are located.
1695 if test "$prefix" = NONE; then
1696   prefix="/usr/local/$PACKAGE_NAME"
1699 if test "$ENABLE_MULTIPLE_VERSIONS" = yes; then
1700   prefix="$prefix/$PACKAGE_VERSION"
1703 if test "$bindir" = "\${exec_prefix}/bin"; then
1704   bindir="\${prefix}/bin"
1707 if test "$includedir" = "\${prefix}/include"; then
1708   includedir="\${prefix}/include"
1711 if test "$libdir" = "\${exec_prefix}/lib"; then
1712   libdir="\${prefix}/lib"
1715 if test "$docdir" = "\${datarootdir}/doc/\${PACKAGE_TARNAME}"; then
1716   docdir="\${prefix}/doc"
1719 if test "$infodir" = "\${datarootdir}/info"; then
1720   infodir="\${prefix}/info"
1723 if test "$datadir" = "\${datarootdir}"; then
1724   datadir="\${prefix}/share"
1727 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___GAMBCDIR=\"\\\"$prefix\\\"\""
1729 if test "$ENABLE_SYMLINKS" != yes; then
1731   if test "$bindir" != "\${prefix}/bin"; then
1732     GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___GAMBCDIR_BIN=\"\\\"$bindir\\\"\""
1733   fi
1735   if test "$includedir" != "\${prefix}/include"; then
1736     GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___GAMBCDIR_INCLUDE=\"\\\"$includedir\\\"\""
1737   fi
1739   if test "$libdir" != "\${prefix}/lib"; then
1740     GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___GAMBCDIR_LIB=\"\\\"$libdir\\\"\""
1741   fi
1743   if test "$docdir" != "\${prefix}/doc"; then
1744     GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___GAMBCDIR_DOC=\"\\\"$docdir\\\"\""
1745   fi
1747   if test "$infodir" != "\${prefix}/info"; then
1748     GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___GAMBCDIR_INFO=\"\\\"$infodir\\\"\""
1749   fi
1751   if test "$datadir" != "\${prefix}/share"; then
1752     GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___GAMBCDIR_SHARE=\"\\\"$datadir\\\"\""
1753   fi
1757 emacsdir="\${datadir}/emacs/site-lisp"
1759 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___SYS_TYPE_CPU=\"\\\"$target_cpu\\\"\""
1760 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___SYS_TYPE_VENDOR=\"\\\"$target_vendor\\\"\""
1761 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___SYS_TYPE_OS=\"\\\"$target_os\\\"\""
1762 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___CONFIGURE_COMMAND=\"\\\"$CONFIGURE_COMMAND\\\"\""
1763 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___OBJ_EXTENSION=\"\\\"$obj\\\"\""
1764 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___EXE_EXTENSION=\"\\\"$exe\\\"\""
1765 GAMBCLIB_DEFS="$GAMBCLIB_DEFS -D___BAT_EXTENSION=\"\\\"$bat\\\"\""
1767 ###############################################################################
1769 # Escape strings before substitution.
1771 ESC_MF="sed -e s/\\\\\\\$/\\\$\\\$/g"
1772 ESC_SH="sed -e s/\\\\/\\\\\\\\\\\\\\\\/g -e s/\\\"/\\\\\\\"/g -e s/\\\$/\\\\\\\$/g -e s/^/\"/ -e s/$/\"/"
1773 ESC_ECHO="sed -e s/\\\\/\\\\\\\\\\\\\\\\/g -e s/\\\"/\\\\\\\"/g -e s/^/\"/ -e s/$/\"/"
1774 ESC_BAT="sed -e s/\${/%%/g -e s/}/%%/g"
1775 ESC_ECHO_BAT="sed -e s/\${/%/g -e s/}/%/g"
1777 C_COMPILER_MF=`echo "$C_COMPILER" | $ESC_MF`
1778 C_PREPROC_MF=`echo "$C_PREPROC" | $ESC_MF`
1780 FLAGS_OBJ_MF=`echo "$FLAGS_OBJ" | $ESC_MF`
1781 FLAGS_DYN_MF=`echo "$FLAGS_DYN" | $ESC_MF`
1782 FLAGS_LIB_MF=`echo "$FLAGS_LIB" | $ESC_MF`
1783 FLAGS_EXE_MF=`echo "$FLAGS_EXE" | $ESC_MF`
1785 DEFS_OBJ_MF=`echo "$DEFS_OBJ" | $ESC_MF`
1786 DEFS_DYN_MF=`echo "$DEFS_DYN" | $ESC_MF`
1787 DEFS_LIB_MF=`echo "$DEFS_LIB" | $ESC_MF`
1788 DEFS_EXE_MF=`echo "$DEFS_EXE" | $ESC_MF`
1790 BUILD_OBJ_MF=`echo "$BUILD_OBJ" | $ESC_MF`
1791 BUILD_DYN_MF=`echo "$BUILD_DYN" | $ESC_MF`
1792 BUILD_LIB_MF=`echo "$BUILD_LIB" | $ESC_MF`
1793 BUILD_EXE_MF=`echo "$BUILD_EXE" | $ESC_MF`
1795 DEFS_MF=`echo "$DEFS" | $ESC_MF`
1796 LIBS_MF=`echo "$LIBS" | $ESC_MF`
1797 GAMBCLIB_DEFS_MF=`echo "$GAMBCLIB_DEFS" | $ESC_MF`
1798 GAMBCLIB_MF=`echo "$GAMBCLIB" | $ESC_MF`
1799 GAMBCGSCLIB_MF=`echo "$GAMBCGSCLIB" | $ESC_MF`
1800 GAMBCGSILIB_MF=`echo "$GAMBCGSILIB" | $ESC_MF`
1801 LIB_PREFIX_MF=`echo "$LIB_PREFIX" | $ESC_MF`
1802 LIB_EXTENSION_MF=`echo "$LIB_EXTENSION" | $ESC_MF`
1804 C_COMPILER_SH=`echo "$C_COMPILER" | $ESC_SH`
1805 C_PREPROC_SH=`echo "$C_PREPROC" | $ESC_SH`
1807 FLAGS_OBJ_SH=`echo "$FLAGS_OBJ" | $ESC_SH`
1808 FLAGS_DYN_SH=`echo "$FLAGS_DYN" | $ESC_SH`
1809 FLAGS_LIB_SH=`echo "$FLAGS_LIB" | $ESC_SH`
1810 FLAGS_EXE_SH=`echo "$FLAGS_EXE" | $ESC_SH`
1812 DEFS_OBJ_SH=`echo "$DEFS_OBJ" | $ESC_SH`
1813 DEFS_DYN_SH=`echo "$DEFS_DYN" | $ESC_SH`
1814 DEFS_LIB_SH=`echo "$DEFS_LIB" | $ESC_SH`
1815 DEFS_EXE_SH=`echo "$DEFS_EXE" | $ESC_SH`
1817 BUILD_OBJ_SH=`echo "$BUILD_OBJ" | $ESC_SH`
1818 BUILD_DYN_SH=`echo "$BUILD_DYN" | $ESC_SH`
1819 BUILD_LIB_SH=`echo "$BUILD_LIB" | $ESC_SH`
1820 BUILD_EXE_SH=`echo "$BUILD_EXE" | $ESC_SH`
1822 DEFS_SH=`echo "$DEFS" | $ESC_SH`
1823 LIBS_SH=`echo "$LIBS" | $ESC_SH`
1824 GAMBCLIB_DEFS_SH=`echo "$GAMBCLIB_DEFS" | $ESC_SH`
1825 GAMBCLIB_SH=`echo "$GAMBCLIB" | $ESC_SH`
1826 GAMBCGSCLIB_SH=`echo "$GAMBCGSCLIB" | $ESC_SH`
1827 GAMBCGSILIB_SH=`echo "$GAMBCGSILIB" | $ESC_SH`
1828 LIB_PREFIX_SH=`echo "$LIB_PREFIX" | $ESC_SH`
1829 LIB_EXTENSION_SH=`echo "$LIB_EXTENSION" | $ESC_SH`
1831 C_COMPILER_BAT=`echo "$C_COMPILER" | $ESC_BAT`
1832 C_PREPROC_BAT=`echo "$C_PREPROC" | $ESC_BAT`
1834 FLAGS_OBJ_BAT=`echo "$FLAGS_OBJ" | $ESC_BAT`
1835 FLAGS_DYN_BAT=`echo "$FLAGS_DYN" | $ESC_BAT`
1836 FLAGS_LIB_BAT=`echo "$FLAGS_LIB" | $ESC_BAT`
1837 FLAGS_EXE_BAT=`echo "$FLAGS_EXE" | $ESC_BAT`
1839 DEFS_OBJ_BAT=`echo "$DEFS_OBJ" | $ESC_BAT`
1840 DEFS_DYN_BAT=`echo "$DEFS_DYN" | $ESC_BAT`
1841 DEFS_LIB_BAT=`echo "$DEFS_LIB" | $ESC_BAT`
1842 DEFS_EXE_BAT=`echo "$DEFS_EXE" | $ESC_BAT`
1844 BUILD_OBJ_BAT=`echo "$BUILD_OBJ" | $ESC_BAT`
1845 BUILD_DYN_BAT=`echo "$BUILD_DYN" | $ESC_BAT`
1846 BUILD_LIB_BAT=`echo "$BUILD_LIB" | $ESC_BAT`
1847 BUILD_EXE_BAT=`echo "$BUILD_EXE" | $ESC_BAT`
1849 DEFS_BAT=`echo "$DEFS" | $ESC_BAT`
1850 LIBS_BAT=`echo "$LIBS" | $ESC_BAT`
1851 GAMBCLIB_DEFS_BAT=`echo "$GAMBCLIB_DEFS" | $ESC_BAT`
1852 GAMBCLIB_BAT=`echo "$GAMBCLIB" | $ESC_BAT`
1853 GAMBCGSCLIB_BAT=`echo "$GAMBCGSCLIB" | $ESC_BAT`
1854 GAMBCGSILIB_BAT=`echo "$GAMBCGSILIB" | $ESC_BAT`
1855 LIB_PREFIX_BAT=`echo "$LIB_PREFIX" | $ESC_BAT`
1856 LIB_EXTENSION_BAT=`echo "$LIB_EXTENSION" | $ESC_BAT`
1858 BUILD_OBJ_ECHO=`echo "$BUILD_OBJ" | $ESC_ECHO`
1859 BUILD_DYN_ECHO=`echo "$BUILD_DYN" | $ESC_ECHO`
1860 BUILD_LIB_ECHO=`echo "$BUILD_LIB" | $ESC_ECHO`
1861 BUILD_EXE_ECHO=`echo "$BUILD_EXE" | $ESC_ECHO`
1863 BUILD_OBJ_ECHO_BAT=`echo "$BUILD_OBJ" | $ESC_ECHO_BAT`
1864 BUILD_DYN_ECHO_BAT=`echo "$BUILD_DYN" | $ESC_ECHO_BAT`
1865 BUILD_LIB_ECHO_BAT=`echo "$BUILD_LIB" | $ESC_ECHO_BAT`
1866 BUILD_EXE_ECHO_BAT=`echo "$BUILD_EXE" | $ESC_ECHO_BAT`
1868 ###############################################################################
1870 if test "$srcdir" = "."; then
1871   srcdirpfx=""
1872 else
1873   srcdirpfx="\$(srcdir)/"
1876 INSTALL='$(rootfromhere)/install-sh -c'
1877 INSTALL_DATA='$(rootfromhere)/install-sh -c -m 644'
1878 INSTALL_LIB='$(rootfromhere)/install-sh -c -m 644'
1879 INSTALL_PROGRAM='$(rootfromhere)/install-sh -c -m 755'
1881 AC_SUBST(srcdirpfx)
1882 AC_SUBST(exe)
1883 AC_SUBST(obj)
1884 AC_SUBST(bat)
1885 AC_SUBST(SETDLPATH)
1887 AC_SUBST(BUILD_OBJ)
1888 AC_SUBST(BUILD_DYN)
1889 AC_SUBST(BUILD_LIB)
1890 AC_SUBST(BUILD_EXE)
1891 AC_SUBST(DEFS)
1892 AC_SUBST(LIBS)
1893 AC_SUBST(GAMBCLIB_DEFS)
1894 AC_SUBST(GAMBCLIB)
1895 AC_SUBST(GAMBCGSCLIB)
1896 AC_SUBST(GAMBCGSILIB)
1897 AC_SUBST(LIB_PREFIX)
1898 AC_SUBST(LIB_EXTENSION)
1900 AC_SUBST(BUILD_OBJ_MF)
1901 AC_SUBST(BUILD_DYN_MF)
1902 AC_SUBST(BUILD_LIB_MF)
1903 AC_SUBST(BUILD_EXE_MF)
1904 AC_SUBST(DEFS_MF)
1905 AC_SUBST(LIBS_MF)
1906 AC_SUBST(GAMBCLIB_DEFS_MF)
1907 AC_SUBST(GAMBCLIB_MF)
1908 AC_SUBST(GAMBCGSCLIB_MF)
1909 AC_SUBST(GAMBCGSILIB_MF)
1910 AC_SUBST(LIB_PREFIX_MF)
1911 AC_SUBST(LIB_EXTENSION_MF)
1913 AC_SUBST(BUILD_OBJ_SH)
1914 AC_SUBST(BUILD_DYN_SH)
1915 AC_SUBST(BUILD_LIB_SH)
1916 AC_SUBST(BUILD_EXE_SH)
1917 AC_SUBST(DEFS_SH)
1918 AC_SUBST(LIBS_SH)
1919 AC_SUBST(GAMBCLIB_DEFS_SH)
1920 AC_SUBST(GAMBCLIB_SH)
1921 AC_SUBST(GAMBCGSCLIB_SH)
1922 AC_SUBST(GAMBCGSILIB_SH)
1923 AC_SUBST(LIB_PREFIX_SH)
1924 AC_SUBST(LIB_EXTENSION_SH)
1926 AC_SUBST(BUILD_OBJ_BAT)
1927 AC_SUBST(BUILD_DYN_BAT)
1928 AC_SUBST(BUILD_LIB_BAT)
1929 AC_SUBST(BUILD_EXE_BAT)
1930 AC_SUBST(DEFS_BAT)
1931 AC_SUBST(LIBS_BAT)
1932 AC_SUBST(GAMBCLIB_DEFS_BAT)
1933 AC_SUBST(GAMBCLIB_BAT)
1934 AC_SUBST(GAMBCGSCLIB_BAT)
1935 AC_SUBST(GAMBCGSILIB_BAT)
1936 AC_SUBST(LIB_PREFIX_BAT)
1937 AC_SUBST(LIB_EXTENSION_BAT)
1939 AC_SUBST(BUILD_OBJ_ECHO)
1940 AC_SUBST(BUILD_DYN_ECHO)
1941 AC_SUBST(BUILD_LIB_ECHO)
1942 AC_SUBST(BUILD_EXE_ECHO)
1944 AC_SUBST(BUILD_OBJ_ECHO_BAT)
1945 AC_SUBST(BUILD_DYN_ECHO_BAT)
1946 AC_SUBST(BUILD_LIB_ECHO_BAT)
1947 AC_SUBST(BUILD_EXE_ECHO_BAT)
1949 AC_SUBST(MAKE_LIBRARY)
1950 AC_SUBST(MAKE_LIBRARY_FOR_INSTALL)
1951 AC_SUBST(MAKE_LIBRARY_FOR_INSTALL_LIBS)
1952 AC_SUBST(LINK)
1953 AC_SUBST(LINK_FOR_INSTALL)
1954 AC_SUBST(LINK_FOR_INSTALL_GSI_LIBS)
1955 AC_SUBST(LINK_FOR_INSTALL_GSC_LIBS)
1956 AC_SUBST(INSTALL)
1957 AC_SUBST(INSTALL_DATA)
1958 AC_SUBST(INSTALL_LIB)
1959 AC_SUBST(INSTALL_PROGRAM)
1960 AC_SUBST(LN_S)
1961 AC_SUBST(RANLIB)
1962 AC_SUBST(RC)
1963 AC_SUBST(GIT)
1964 AC_SUBST(HG)
1965 AC_SUBST(FIXLIB)
1967 AC_SUBST(X_FLAGS)
1968 AC_SUBST(X_LIBS)
1970 AC_SUBST(ENABLE_SYMLINKS)
1971 AC_SUBST(ENABLE_INTERPRETER_NAME)
1972 AC_SUBST(ENABLE_COMPILER_NAME)
1973 AC_SUBST(ENABLE_MULTIPLE_VERSIONS)
1974 AC_SUBST(ENABLE_SHARED)
1975 AC_SUBST(ENABLE_ABSOLUTE_SHARED_LIBS)
1976 AC_SUBST(ENABLE_VERSIONNED_LIBS)
1977 AC_SUBST(emacsdir)
1978 AC_SUBST(HELP_BROWSER)
1980 AC_PROG_MAKE_SET
1982 AC_OUTPUT(makefile include/makefile include/gambit.h lib/makefile lib/guide/guidepro lib/guide/makefile lib/guide/images/makefile gsi/makefile gsc/makefile bin/makefile bin/gambc-cc.unix bin/gambc-cc.bat.windows bin/gambc-doc.unix bin/gambc-doc.bat.windows misc/makefile doc/makefile tests/makefile examples/makefile examples/distr-comp/makefile examples/pi/makefile examples/ring/makefile examples/web-repl/makefile examples/web-server/makefile examples/tcltk/makefile examples/Xlib-simple/makefile examples/pthread/makefile examples/misc/makefile examples/iOS/makefile prebuilt/makefile prebuilt/macosx/makefile prebuilt/macosx/build-phase2 prebuilt/windows/makefile prebuilt/windows/build-phase2)
1984 if test "$ENABLE_SINGLE_HOST" != yes; then
1985   AC_MSG_NOTICE([
1986 **************************************************************************
1987 *** The option "--enable-single-host" was not specified to the         ***
1988 *** configure script.  The Gambit-C system will compile correctly but  ***
1989 *** the code generated by the C compiler will be suboptimal and the    ***
1990 *** executables will run considerably slower than if                   ***
1991 *** "--enable-single-host" is specified.  On the other hand the build  ***
1992 *** process will be faster and require less memory.  If you have lots  ***
1993 *** of RAM memory (>= 500 Mbytes) and you are willing to wait for the  ***
1994 *** longer build try the configure option "--enable-single-host".      ***
1995 **************************************************************************
1999 if test "$C_COMP_GNUC" = yes; then
2001   if test "$ENABLE_GCC_MOVE_LOOP_INVARIANTS" != yes; then
2002     AC_MSG_NOTICE([
2003 **************************************************************************
2004 *** The GCC compiler that is being used has problems compiling Gambit  ***
2005 *** generated code when the normal set of C compiler optimizations are ***
2006 *** enabled and the configure flag "--enable-single-host" is           ***
2007 *** specified.  It can take over 20 GBytes of virtual memory to        ***
2008 *** compile some files.  For this reason the GCC compiler optimization ***
2009 *** which performs loop invariant code motion has been disabled by     ***
2010 *** adding the GCC command line option "-fno-move-loop-invariants".    ***
2011 *** This greatly reduces compile time space requirements and it has a  ***
2012 *** small impact on overall run time performance, but for some tight   ***
2013 *** loops the effect is larger.  If you want to avoid this problem     ***
2014 *** then upgrade your version of GCC to 4.4 (or above hopefully) or    ***
2015 *** downgrade to a version prior to 4.2 .                              ***
2016 **************************************************************************
2018   fi
2020 #  if test "$ENABLE_GCC_OPTS" != yes; then
2021 #    AC_MSG_NOTICE([
2022 #**************************************************************************
2023 #*** The GCC compiler is being used but the option "--enable-gcc-opts"  ***
2024 #*** was not specified to the configure script.  The Gambit-C system    ***
2025 #*** will compile correctly but the code generated by the GCC compiler  ***
2026 #*** will be suboptimal and the executables will run slightly slower    ***
2027 #*** than if "--enable-gcc-opts" is specified.  On the other hand the   ***
2028 #*** build process will be faster and require less memory.  If you have ***
2029 #*** lots of RAM memory (>= 2 Gbytes) and you are willing to wait for   ***
2030 #*** the longer build try the configure option "--enable-gcc-opts".     ***
2031 #**************************************************************************
2033 #  fi