Upgrade license to GNU GPL 3.0 or later
[texmacs.git] / src / configure.in
bloba3f08ee77667c49bc04cc1f3af34abfb06cf8b66
2 #--------------------------------------------------------------------
4 # MODULE      : configure.in
5 # DESCRIPTION : TeXmacs configuration file for autoconf
6 # COPYRIGHT   : (C) 2000  Joris van der Hoeven
8 # This software falls under the GNU general public license version 3 or later.
9 # It comes WITHOUT ANY WARRANTY WHATSOEVER. For details, see the file LICENSE
10 # in the root directory or <http://www.gnu.org/licenses/gpl-3.0.html>.
12 #--------------------------------------------------------------------
14 AC_INIT
15 AC_CONFIG_HEADERS([src/System/config.h:src/System/config.in])
17 PACKAGE="TeXmacs"
18 DEVEL_VERSION="1.0.7"
19 DEVEL_RELEASE="1"
20 STABLE_VERSION="1.0.7"
21 STABLE_RELEASE="1"
22 WINDOWS_VERSION="1.0.5"
23 WINDOWS_RELEASE="1"
24 AC_SUBST(PACKAGE)
25 AC_SUBST(DEVEL_VERSION)
26 AC_SUBST(DEVEL_RELEASE)
27 AC_SUBST(STABLE_VERSION)
28 AC_SUBST(STABLE_RELEASE)
30 #--------------------------------------------------------------------
31 # Checks for C++ compiler
32 #--------------------------------------------------------------------
34 AC_PROG_CC
35 AC_PROG_CXX
36 AC_LANG_CPLUSPLUS
37 AC_MSG_CHECKING(whether GNU C++ compiler is default)
38 case "$GXX" in
39   yes )
40     GCC_VERSION=`$CC -dumpversion`
41     GXX_VERSION=`$CXX -dumpversion`
42     AC_MSG_RESULT(yes)
43     AC_MSG_CHECKING(version of gcc)
44     AC_MSG_RESULT($GCC_VERSION)
45     AC_MSG_CHECKING(version of g++)
46     AC_MSG_RESULT($GXX_VERSION)
47   ;;
48   *)
49     GCC_VERSION="none"
50     GXX_VERSION="none"
51     AC_MSG_RESULT(no)
52     AC_MSG_WARN(cannot find GNU C++ compiler)
53   ;;
54 esac
56 #--------------------------------------------------------------------
57 # Checks for Guile
58 #--------------------------------------------------------------------
60 GUILE_FLAGS
61 AC_MSG_CHECKING(version of guile)
62 GUILE_VERSION=`guile --version | grep 'Guile \([[0-9]]\)' | sed 's/Guile \([[0-9]]*\)/\1/'`
63 AC_MSG_RESULT($GUILE_VERSION)
65 case "$GUILE_VERSION" in
66   1.0* | 1.1* | 1.2* | 1.3* | 1.4* | 1.5*)
67     CONFIG_GUILE_SERIAL="A"
68   ;;
69   1.6* | 1.7*)
70     CONFIG_GUILE_SERIAL="B"
71   ;;
72   *)
73     CONFIG_GUILE_SERIAL="C"
74   ;;
75 esac
76 AC_SUBST(CONFIG_GUILE_SERIAL)
78 #--------------------------------------------------------------------
79 # Checks for standard functionality
80 #--------------------------------------------------------------------
82 CPP_X_HEADERS
83 AC_CHECK_TYPES(FILE)
84 AC_CHECK_TYPES(intptr_t)
85 AC_CHECK_TYPES(time_t)
86 AC_PATH_X
87 AC_PATH_XTRA
88 AC_CHECK_HEADERS(pty.h util.h)
89 AC_CHECK_FUNCS(gettimeofday)
91 #--------------------------------------------------------------------
92 # Checks for dl library
93 #--------------------------------------------------------------------
95 AC_CHECK_FUNC(dlopen)
96 if test "$ac_cv_func_dl" = "yes"; then
97   AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
98 else
99   AC_CHECK_LIB(dl,dlopen)
100   if test "$ac_cv_lib_dl_dlopen" = "yes"; then
101     AC_CHECK_FUNCS(dlopen)
102     CONFIG_BDL="-ldl"
103     AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
104   else
105     AC_CHECK_LIB(dld,dld_link)
106     if test "$ac_cv_lib_dld_dld_link" = "yes"; then
107       CONFIG_BDL="-ldl"
108       AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
109     else
110       AC_CHECK_FUNCS(shl_load)
111       if test "$ac_cv_func_shl_load" = "yes"; then
112         CONFIG_BDL="-ldl"
113         AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
114       else
115         AC_CHECK_FUNCS(dlopen)
116         if test "$ac_cv_func_dlopen" = "yes"; then
117           AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
118         fi
119       fi
120     fi
121   fi
123 AC_SUBST(CONFIG_BDL)
125 #--------------------------------------------------------------------
126 # Checks for iconv library
127 #--------------------------------------------------------------------
129 AC_ARG_WITH(iconv,
130 changequote(<<, >>)dnl
131 <<  --with-iconv[=DIR]        where to find iconv [system]>>dnl
132 changequote([, ])dnl
135 # Check for iconv
136 # Modified from GNOME's libxml2 configure.in
137 AC_LANG_SAVE
138 AC_LANG_C  # compile C to avoid the 'const char**' problem
139 SAVE_CPPFLAGS="$CPPFLAGS"
140 SAVE_LDFLAGS="$LDFLAGS"
141 SAVE_LIBS="$LIBS"
142 if test "$with_iconv" = "no" ; then
143     AC_MSG_RESULT([disabling iconv support])
144 else
145     if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
146        CPPFLAGS="-I$with_iconv/include" # for AC_TRY_LINK
147        ICONV_CFLAGS="-I$with_iconv/include"
148        ICONV_LDFLAGS="-L$with_iconv/lib"
149     fi
151     AC_CHECK_HEADER(iconv.h,
152     AC_MSG_CHECKING(for iconv)
153     AC_TRY_LINK(
155 #include <stdlib.h>
156 #include <iconv.h>
158     iconv_t cd = iconv_open ("","");
159     iconv (cd, NULL, NULL, NULL, NULL);
161     AC_MSG_RESULT(yes)
162     AC_DEFINE(USE_ICONV, 1, [Use iconv library])
164     AC_MSG_RESULT(no)
165     AC_MSG_CHECKING(for iconv in -liconv)
166     LDFLAGS="${ICONV_LDFLAGS}"    # for AC_TRY_LINK
167     LIBS="-liconv"                # for AC_TRY_LINK
168     AC_TRY_LINK(
170 #include <stdlib.h>
171 #include <iconv.h>
173       iconv_t cd = iconv_open ("","");
174       iconv (cd, NULL, NULL, NULL, NULL);
176       AC_MSG_RESULT(yes)
177       AC_DEFINE(USE_ICONV, 1, [Use iconv library])
178       ICONV_LDFLAGS="${ICONV_LDFLAGS} -liconv"
180       AC_MSG_RESULT(no)
181       AC_MSG_WARN([absence of iconv may crash HTML import])
182   ])]))
185 CPPFLAGS="$SAVE_CPPFLAGS"
186 LDFLAGS="$SAVE_LDFLAGS"
187 LIBS="$SAVE_LIBS"
188 AC_LANG_RESTORE  # restore C++ language
190 AC_SUBST(ICONV_CFLAGS)
191 AC_SUBST(ICONV_LDFLAGS)
193 #--------------------------------------------------------------------
194 # Checks for freetype library
195 #--------------------------------------------------------------------
197 AC_ARG_WITH(freetype,
198 changequote(<<, >>)dnl
199 <<  --with-freetype[=ARG]     with freetype support [ARG=linked]>>dnl
200 changequote([, ])dnl
203 SAVE_CPPFLAGS="$CPPFLAGS"
204 SAVE_LDFLAGS="$LDFLAGS"
205 SAVE_LIBS="$LIBS"
206 if test "$with_freetype" = "no" ; then
207     AC_MSG_RESULT([disabling freetype support])
208 else
209     CPPFLAGS=`freetype-config --cflags`
210     LIBS=`freetype-config --libs`
211     AC_CHECK_HEADER(ft2build.h,
212     AC_MSG_CHECKING(for freetype)
213     AC_TRY_LINK(
215 #include <ft2build.h>
216 #include FT_FREETYPE_H 
218     FT_Library ft_library;
219     (void) FT_Init_FreeType (&ft_library);
221     AC_MSG_RESULT(yes)
222     AC_DEFINE(USE_FREETYPE, 1, [Use freetype library])
223     FREETYPE_CFLAGS="$CPPFLAGS"
224     if test "$with_freetype" = "linked" -o "$with_freetype" = "" ; then
225       FREETYPE_LDFLAGS="$LIBS"
226       AC_DEFINE(LINKED_FREETYPE, 1, [Link freetype library with TeXmacs])
227     fi
229     AC_MSG_RESULT(no)]))
232 CPPFLAGS="$SAVE_CPPFLAGS"
233 LDFLAGS="$SAVE_LDFLAGS"
234 LIBS="$SAVE_LIBS"
236 AC_SUBST(FREETYPE_CFLAGS)
237 AC_SUBST(FREETYPE_LDFLAGS)
239 #--------------------------------------------------------------------
240 # Checks for Cairo library
241 #--------------------------------------------------------------------
243 AC_ARG_WITH(cairo,
244 changequote(<<, >>)dnl
245 <<  --with-cairo[=ARG]        with cairo support [ARG=no]>>dnl
246 changequote([, ])dnl
249 SAVE_CPPFLAGS="$CPPFLAGS"
250 SAVE_LDFLAGS="$LDFLAGS"
251 SAVE_LIBS="$LIBS"
252 if test "$with_cairo" = "no" -o "$with_cairo" = "" ; then
253     AC_MSG_RESULT([disabling cairo support])
254 else
255     CPPFLAGS=`pkg-config --cflags cairo`
256     LIBS=`pkg-config --libs cairo`
257     AC_CHECK_HEADER(cairo.h,
258     AC_MSG_CHECKING(for cairo)
259     AC_TRY_LINK(
261 #include <cairo.h>
263     cairo_surface_t *surface;
264     surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 120, 120);
266     AC_MSG_RESULT(yes)
267     AC_DEFINE(USE_CAIRO, 1, [Use cairo library])
268     CAIRO_CFLAGS="$CPPFLAGS"
269     if test "$with_cairo" = "linked" ; then
270       CAIRO_LDFLAGS="$LIBS"
271       AC_DEFINE(LINKED_CAIRO, 1, [Link cairo library with TeXmacs])
272     fi
274     AC_MSG_RESULT(no)]))
277 CPPFLAGS="$SAVE_CPPFLAGS"
278 LDFLAGS="$SAVE_LDFLAGS"
279 LIBS="$SAVE_LIBS"
281 AC_SUBST(CAIRO_CFLAGS)
282 AC_SUBST(CAIRO_LDFLAGS)
284 #--------------------------------------------------------------------
285 # Checks for Imlib2 library
286 #--------------------------------------------------------------------
288 AC_ARG_WITH(imlib2,
289 changequote(<<, >>)dnl
290 <<  --with-imlib2[=ARG]       with imlib2 support [ARG=no]>>dnl
291 changequote([, ])dnl
294 SAVE_CPPFLAGS="$CPPFLAGS"
295 SAVE_LDFLAGS="$LDFLAGS"
296 SAVE_LIBS="$LIBS"
297 if test "$with_imlib2" = "no" -o "$with_imlib2" = "" ; then
298     AC_MSG_RESULT([disabling imlib2 support])
299 else
300     CPPFLAGS=`imlib2-config --cflags`
301     LIBS=`imlib2-config --libs`
302     AC_CHECK_HEADER(Imlib2.h,
303     AC_MSG_CHECKING(for imlib2)
304     AC_TRY_LINK(
306 #include <X11/Xlib.h>
307 #include <Imlib2.h>
308 #include <stdio.h>
309 #include <string.h>
311     Imlib_Image image= imlib_load_image("");
313     AC_MSG_RESULT(yes)
314     AC_DEFINE(USE_IMLIB2, 1, [Use imlib2 library])
315     IMLIB2_CFLAGS="$CPPFLAGS"
316     if test "$with_imlib2" = "linked" ; then
317       IMLIB2_LDFLAGS="$LIBS"
318       AC_DEFINE(LINKED_IMLIB2, 1, [Link imlib2 library with TeXmacs])
319     fi
321     AC_MSG_RESULT(no)]))
324 CPPFLAGS="$SAVE_CPPFLAGS"
325 LDFLAGS="$SAVE_LDFLAGS"
326 LIBS="$SAVE_LIBS"
328 AC_SUBST(IMLIB2_CFLAGS)
329 AC_SUBST(IMLIB2_LDFLAGS)
331 #--------------------------------------------------------------------
332 # Checks for Axel library
333 #--------------------------------------------------------------------
335 AC_ARG_WITH(axel,
336 changequote(<<, >>)dnl
337 <<  --with-axel[=ARG]       with axel support [ARG=no]>>dnl
338 changequote([, ])dnl
341 SAVE_CPPFLAGS="$CPPFLAGS"
342 SAVE_LDFLAGS="$LDFLAGS"
343 SAVE_LIBS="$LIBS"
344 if test "$with_axel" = "no" -o "$with_axel" = "" ; then
345     AC_MSG_RESULT([disabling axel support])
346 else
347     CPPFLAGS=`axel-config --cflags`
348     LIBS=`axel-config --libs`
349     AC_CHECK_HEADER(QGui/Viewer.h,
350     AC_MSG_CHECKING(for axel)
351     AC_TRY_LINK(
353 #include <QGui/Viewer.h>
355     Viewer viewer(0);
357     AC_MSG_RESULT(yes)
358     AC_DEFINE(USE_AXEL, 1, [Use axel library])
359     AXEL_CFLAGS="$CPPFLAGS"
360     if test "$with_axel" = "linked" ; then
361       AXEL_LDFLAGS="$LIBS"
362       AC_DEFINE(LINKED_AXEL, 1, [Link axel library with TeXmacs])
363     fi
365     AC_MSG_RESULT(no)]))
368 CPPFLAGS="$SAVE_CPPFLAGS"
369 LDFLAGS="$SAVE_LDFLAGS"
370 LIBS="$SAVE_LIBS"
372 AC_SUBST(AXEL_CFLAGS)
373 AC_SUBST(AXEL_LDFLAGS)
375 #--------------------------------------------------------------------
376 # Fixes for erroneous behaviour of gcc/g++ and guile on some systems
377 #--------------------------------------------------------------------
379 AC_MSG_CHECKING(whether ... arguments behave correctly)
380 CXXFLAGS="`guile-config compile`"
381 AC_TRY_COMPILE([
382   #include <guile/gh.h>
383   #include <libguile.h>
384   typedef SCM (*FN)(...);
385   static SCM identity (SCM x) { return x; }
386   void declare () { gh_new_procedure ("identity", (FN) identity, 1, 0, 0); }
389   AC_DEFINE(DOTS_OK, 1, [Defined if ...-style argument passing works])
390   AC_MSG_RESULT(yes)
392   AC_MSG_RESULT(no)
394 CXXFLAGS=""
396 AC_MSG_CHECKING(the size_t of guile strings)
397 CXXFLAGS="`guile-config compile`"
398 AC_TRY_COMPILE([
399   #include <guile/gh.h>
400   #include <libguile.h>
401   void print_string (SCM s) {
402     int len_r;
403     char* r= gh_scm2newstr (s, &len_r); }
406   AC_DEFINE(guile_str_size_t, int, [Guile string size type])
407   AC_MSG_RESULT(int)
409   AC_DEFINE(guile_str_size_t, size_t, [Guile string size type])
410   AC_MSG_RESULT(size_t)
412 CXXFLAGS=""
414 AC_MSG_CHECKING([if statically linking with guile works])
415 CPPFLAGS="$GUILE_CFLAGS"
416 LDFLAGS="-static"
417 LIBS="$GUILE_LDFLAGS"
418 TEXMACS_LINK_GUILE([tm_link_guile_static="yes"],
419                    [tm_link_guile_static="no"])
420 AC_MSG_RESULT(["$tm_link_guile_static"])
421 if test "$tm_link_guile_static" = "no" ; then
422    AC_MSG_CHECKING([if it works with -lltdl])
423    LIBS="$GUILE_LDFLAGS -lltdl"
424    TEXMACS_LINK_GUILE([tm_link_guile_static_ltdl="yes"],
425                       [tm_link_guile_static_ltdl="no"])
426    AC_MSG_RESULT(["$tm_link_guile_static_ltdl"])
427    if test "$tm_link_guile_static_ltdl" = "yes" ; then
428       GUILE_LDFLAGS="$GUILE_LDFLAGS -lltdl"
429    else
430       AC_MSG_CHECKING([if it works with -lltdl -ldl])
431       LIBS="$GUILE_LDFLAGS -lltdl -ldl"
432       TEXMACS_LINK_GUILE([tm_link_guile_static_ltdl_ldl="yes"],
433                          [tm_link_guile_static_ltdl_ldl="no"])
434       AC_MSG_RESULT(["$tm_link_guile_static_ltdl_ldl"])
435       if test "$tm_link_guile_static_ltdl_ldl" = "yes" ; then
436          GUILE_LDFLAGS="$GUILE_LDFLAGS -lltdl -ldl"
437       else
438          AC_MSG_WARN([unable to link statically with guile])
439       fi
440    fi
442 CPPFLAGS=""
443 LDFLAGS=""
444 LIBS=""
446 #--------------------------------------------------------------------
447 # Handle different systems case by case
448 #--------------------------------------------------------------------
450 CONFIG_OS="GNU_LINUX"
451 CONFIG_OS_SUFFIX="gnu-linux"
452 CONFIG_CXXFLAGS=""
453 CONFIG_CXXTEMPLATE=""
454 CONFIG_STD_SETENV="#define STD_SETENV"
455 CONFIG_SO="so"
456 CONFIG_LIB_PATH="LD_LIBRARY_PATH"
457 CONFIG_CHMOD="chmod -f"
458 CONFIG_CXXOPTIMIZE="-O2"
459 CONFIG_BSTATIC="-Wl,-Bstatic"
460 CONFIG_BSHARED="-Wl,-Bdynamic"
461 CONFIG_BFLAGS=""
462 CONFIG_BPATH="-Wl,-rpath,"
463 CONFIG_WORD_LENGTH="4"
464 CONFIG_WORD_LENGTH_INC="3"
465 CONFIG_WORD_MASK="0xfffffffc"
466 CONFIG_MAX_FAST="260 // WORD_LENGTH more than power of 2"
468 X11_CFLAGS="$X_CFLAGS"
469 X11_LDFLAGS="$X_LIBS -lXext -lX11"
471 AC_MSG_CHECKING(if we are on a 64-bits computer)
472 AC_RUN_IFELSE([AC_LANG_PROGRAM([],[return(sizeof(void*))])],
473   [void_size=0],[void_size=$?])
474 if test "$void_size" = "8"; then
475   AC_MSG_RESULT([yes])
476   CONFIG_WORD_LENGTH="8"
477   CONFIG_WORD_LENGTH_INC="7"
478   CONFIG_WORD_MASK="0xfffffffffffffff8"
479   CONFIG_MAX_FAST="264 // WORD_LENGTH more than power of 2"
480 else
481   AC_MSG_RESULT([no])
484 AC_CANONICAL_HOST
485 case "${host}" in
486   i*86-*-linux* | x86_64-*-linux*)
487     AC_MSG_RESULT(final adjustments for an Intel or AMD GNU/Linux host)
488     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
489   ;;
490   i*86-*-freebsd* | x86_64-*-freebsd*)
491     AC_MSG_RESULT(final adjustments for an Intel or AMD GNU/BSD host)
492     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
493   ;;
494   i*86-*-solaris*)
495     AC_MSG_RESULT(final adjustments for an Intel or AMS Solaris host)
496     CONFIG_CXXOPTIMIZE="-O3"
497     CONFIG_BPATH="-Wl,-R,"
498     X11_LDFLAGS="$X_LIBS -lXext -lX11 -lsocket"
499   ;;
500   *-*-cygwin)
501     AC_MSG_RESULT(final adjustments for cygwin host)
502     CONFIG_OS="CYGWIN"
503     CONFIG_BFLAGS="-Wl,-stack,8388608"
504 #    CXX="export CYGWIN=check_case:strict; $CXX"
505 #    AC_SUBST(CXX)
506   ;;
507   powerpc-*-darwin*)
508     echo "$ac_t""final adjustments for a PowerPC/Darwin host" 1>&6
509     CONFIG_OS="DARWIN"
510     CONFIG_CXXFLAGS="-I${prefix}/include"
511     CONFIG_BSHARED=""
512     CONFIG_BPATH=""
513     CONFIG_SO="dylib"
514     CONFIG_LIB_PATH="DYLD_LIBRARY_PATH"
515   ;;
516   powerpc-*-linux*)
517     AC_MSG_RESULT(final adjustments for a PowerPC/GNU-linux host)
518     CONFIG_OS="POWERPC_GNU_LINUX"
519     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
520   ;;
521   *sun*)
522     AC_MSG_RESULT(final adjustments for a SUN/solaris host)
523     CONFIG_OS="SUN"
524     CONFIG_OS_SUFFIX="sun"
525     CONFIG_BSTATIC=""
526     CONFIG_BSHARED=""
527     CONFIG_BPATH="-Wl,-R,"
528     X11_LDFLAGS="$X_LIBS -lXext -lX11 -lsocket"
529     CONFIG_WORD_LENGTH="8"
530     CONFIG_WORD_LENGTH_INC="7"
531     CONFIG_WORD_MASK="0xfffffff8"
532     CONFIG_MAX_FAST="264 // WORD_LENGTH more than power of 2"
533     CONFIG_STD_SETENV=""
534   ;;
535   sparc*-*-linux*)
536     AC_MSG_RESULT(final adjustments for a Sparc host running GNU/Linux)
537     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
538     CONFIG_WORD_LENGTH="8"
539     CONFIG_WORD_LENGTH_INC="7"
540     CONFIG_WORD_MASK="0xfffffff8"
541     CONFIG_MAX_FAST="264 // WORD_LENGTH more than power of 2"
542     CONFIG_STD_SETENV=""
543   ;;
544   *dec*)
545     AC_MSG_RESULT(final adjustments for a DEC/alpha host)
546     CONFIG_BSTATIC=""
547     CONFIG_BSHARED="-shared"
548     CONFIG_STD_SETENV=""
549   ;;
550   *alpha*-*-linux*)
551     AC_MSG_RESULT(final adjustments for an Alpha GNU/Linux host)
552     CONFIG_BSTATIC=""
553     CONFIG_BSHARED="-shared"
554   ;;
555   s390-*-linux*)
556     AC_MSG_RESULT(final adjustments for an IBM S/390 GNU/Linux host)
557     CONFIG_STD_SETENV=""
558   ;;
559   ia64-*-linux*)
560     AC_MSG_RESULT(final adjustments for an Itanium GNU/Linux host)
561     CONFIG_BSTATIC=""
562     CONFIG_BSHARED="-shared"
563   ;;
564   hppa*-*-linux*)
565     AC_MSG_RESULT(final adjustments for an HP PA_RISC GNU/Linux host)
566     CONFIG_CXXFLAGS="$CONFIG_CXXFLAGS -fPIC"
567     CONFIG_BSTATIC=""
568     CONFIG_BSHARED="-shared"
569   ;;
570   *sgi-irix*)
571     echo "$ac_t""final adjustments for a SGI/Irix host" 1>&6
572     CONFIG_OS="IRIX"
573     CONFIG_CXXFLAGS=""
574     X_LIBS=-L/usr/lib32
575     CONFIG_BSTATIC=""
576     CONFIG_BSHARED=""
577     CONFIG_BPATH=""
578     X11_LDFLAGS="$X_LIBS -lX11"
579     CONFIG_WORD_MASK="0xfffffff8"
580     CONFIG_STD_SETENV=""
581     CONFIG_CHMOD="chmod"
582     CONFIG_LIB_PATH="LD_LIBRARYN32_PATH"
583   ;;
584   m68k-*-linux* | mips-*-linux* | mipsel-*-linux* | arm*-*-linux*)
585     AC_MSG_RESULT(final adjustments for a supported GNU/Linux host)
586   ;;
587   *-linux*)
588     AC_MSG_RESULT(final adjustments for a generic GNU/Linux host)
589   ;;
590   *)
591     AC_MSG_RESULT(final adjustments for a generic host)
592   ;;
593 esac
595 #--------------------------------------------------------------------
596 # Temporary fix for link problem
597 #--------------------------------------------------------------------
599 case "$GXX_VERSION" in
600      3.* | 4.*)
601          CONFIG_BSTATIC="-static"
602          CONFIG_BSHARED="-dynamic"
603      ;;
604 esac
606 #--------------------------------------------------------------------
607 # Memory allocation options
608 #--------------------------------------------------------------------
610 AC_ARG_ENABLE(fastalloc,
611 [  --disable-fastalloc     omit fast allocator for small objects],
612     [], [enable_fastalloc="yes"])
613 case "$enable_fastalloc" in
614     yes)
615         ;;
616     no)
617         AC_MSG_RESULT([disabling fast allocator for small objects])
618         AC_DEFINE(NO_FAST_ALLOC, 1, [Disable fast memory allocator])
619         ;;
620     *)
621         AC_MSG_ERROR([bad option --enable-fastalloc=$enable_fastalloc])
622         ;;
623 esac
625 #--------------------------------------------------------------------
626 # Experimental options
627 #--------------------------------------------------------------------
629 AC_ARG_ENABLE(experimental,
630 [  --enable-experimental   support new style rewriting code],
631     [], [enable_experimental="no"])
632 case "$enable_experimental" in
633     yes)
634         AC_MSG_RESULT([enabling experimental style rewriting code])
635         AC_DEFINE(EXPERIMENTAL, 1, [Enable experimental style rewriting code])
636         CONFIG_EXPERIMENTAL="Memorizer Environment Evaluate"
637         ;;
638     no)
639         AC_MSG_RESULT([disabling experimental style rewriting code])
640         CONFIG_EXPERIMENTAL=""
641         ;;
642     *)
643         AC_MSG_ERROR([bad option --enable-experimental=$enable_experimental])
644         ;;
645 esac
646 AC_SUBST(CONFIG_EXPERIMENTAL)
648 #--------------------------------------------------------------------
649 # Gui selection
650 #--------------------------------------------------------------------
652 CONFIG_X11=""
653 CONFIG_COCOA=""
654 CONFIG_GUI="X11"
656 AC_ARG_ENABLE(qt,
657 [  --enable-qt             replace X11 by Qt interface],
658     [], [enable_qt="no"])
660 case "$enable_qt" in
661     yes)
662         HACKED_AT_WITH_QT
663         if test x"$at_cv_qt_build" = xko; then 
664            AC_MSG_ERROR([cannot find Qt!])
665         else
666            AC_MSG_RESULT([enabling experimental Qt port])
667            CONFIG_GUI="QT"
668            AC_DEFINE(NO_FAST_ALLOC, 1, [Disable fast memory allocator])
669            AC_DEFINE(QTTEXMACS, 1, [Enable experimental Qt port])
670         fi
671         ;;
672     no)
673         AC_MSG_RESULT([disabling experimental Qt port])
674         ;;
675     *)
676         AC_MSG_ERROR([bad option --enable-qt=$enable_qt])
677         ;;
678 esac
680 AC_ARG_ENABLE(cocoa,
681 [  --enable-cocoa          replace X11 by Cocoa interface],
682     [], [enable_cocoa="no"])
683 case "$enable_cocoa" in
684     yes)
685         AC_MSG_RESULT([enabling experimental Cocoa port])
686         AC_DEFINE(AQUATEXMACS, 1, [Enable experimental Cocoa port])
687         AC_DEFINE(NO_FAST_ALLOC, 1, [Disable fast memory allocator])
688         COCOA_CFLAGS=""
689         COCOA_LDFLAGS="-framework Cocoa"
690         CONFIG_GUI="COCOA"
691         ;;
692     no)
693         AC_MSG_RESULT([disabling experimental Cocoa port])
694         ;;
695     *)
696         AC_MSG_ERROR([bad option --enable-cocoa=$enable_cocoa])
697         ;;
698 esac
700 case "$CONFIG_GUI" in
701     X11)
702         CONFIG_X11="X11 Widkit Ghostscript"
703         ;;
704     COCOA)
705         CONFIG_COCOA="Cocoa"
706         ;;
707     QT)
708         CONFIG_QT="Qt"
709         ;;
710 esac
712 AC_SUBST(X11_CFLAGS)
713 AC_SUBST(X11_LDFLAGS)
714 AC_SUBST(COCOA_CFLAGS)
715 AC_SUBST(COCOA_LDFLAGS)
717 AC_SUBST(CONFIG_X11)
718 AC_SUBST(CONFIG_COCOA)
719 AC_SUBST(CONFIG_QT)
720 AC_SUBST(CONFIG_GUI)
722 #--------------------------------------------------------------------
723 # Debugging options
724 #--------------------------------------------------------------------
726 STD_DEBUG_FLAGS="-fno-rtti -fno-exceptions"
727 if test "$enable_cocoa" = "yes"; then
728     STD_DEBUG_FLAGS="-fno-exceptions"
731 AC_MSG_CHECKING(if compiler supports $STD_DEBUG_FLAGS)
732 CXXFLAGS="$STD_DEBUG_FLAGS"
733 AC_TRY_COMPILE([
734   int some_variable = 0;
737     CONFIG_CXXDIALECT="$STD_DEBUG_FLAGS"
738     AC_MSG_RESULT(yes)
740     CONFIG_CXXDIALECT=""
741     AC_MSG_RESULT(no)
743 CXXFLAGS=""
744 AC_SUBST(CONFIG_CXXDIALECT)
746 AC_ARG_ENABLE(debug,
747 changequote(<<, >>)dnl
748 <<  --enable-debug[=ARG]      install a debugging enable executable [-ggdb]>>,
749 changequote([, ])dnl
750 [], [enable_debug="no"])
752 if test "$enable_debug" = "yes"; then
753     if test "$GXX" = "yes"; then
754         enable_debug="-ggdb"
755     else
756         enable_debug="-g3"
757     fi
760 if test "$enable_debug" = "no"; then
761     AC_MSG_RESULT([disabling debugging])
762     CONFIG_STRIP="strip"
763     CONFIG_CXXDEBUG=""
764     optimize_default="yes"
765 else
766     AC_MSG_RESULT([enabling debugging, $enable_debug])
767     CONFIG_STRIP="true"
768     CONFIG_CXXDEBUG="$enable_debug"
769     optimize_default="no"
770     AC_DEFINE(DEBUG_ASSERT, 1, [check assertions in code])
773 #--------------------------------------------------------------------
774 # Warning options
775 #--------------------------------------------------------------------
777 case "$GXX_VERSION" in
778   none)
779     CONFIG_CXXWARNING="";
780   ;;
781   *)
782     CONFIG_CXXWARNING="-Wall -Wno-return-type"
783   ;;
784 esac
786 AC_ARG_ENABLE(warnings,
787 [  --enable-warnings       print warning messages during compilation],
788     [], [enable_warnings="yes"])
789 case "$enable_warnings" in
790     yes)
791         AC_MSG_RESULT([enabling warning flags $CONFIG_CXXWARNING]) ;;
792     no)
793         CONFIG_CXXWARNING=""
794         AC_MSG_RESULT([disabling warning flags]) ;;
795     *)
796         CONFIG_CXXWARNING="$enable_warnings"
797         AC_MSG_RESULT([enabling warning flags $CONFIG_CXXWARNING]) ;;
798 esac
800 #--------------------------------------------------------------------
801 # Optimization options
802 #--------------------------------------------------------------------
804 if test "$optimize_default" = "yes"; then
805   case "$GXX_VERSION" in
806     3.3.3 | 3.3.4 | 4.*)
807       ;;
808     2.96 | 3.0 | 3.0.* | 3.1 | 3.1.* | 3.2 | 3.2.* | 3.3 | 3.3.*)
809       case "${host}" in
810         i*86-*-linux-gnu* | i*86-*-freebsd*)
811           AC_MSG_WARN([using g++ 3.*, optimize without inline by default])
812           optimize_default="no-inline"
813         ;;
814         *)
815           AC_MSG_WARN([using g++ 3.*, optimize without inline by default])
816           optimize_default="no-inline"
817         ;;
818       esac
819     ;;
820   esac
823 AC_ARG_ENABLE(optimize,
824 changequote(<<, >>)dnl
825 <<  --enable-optimize[=ARG]   compile with optimizations [guessed]>>,
826 changequote([, ])dnl
827 [], [enable_optimize="$optimize_default"])
829 case "$enable_optimize" in
830     yes)
831         # keep optimization options
832         AC_MSG_RESULT([enabling optimizations, $CONFIG_CXXOPTIMIZE]) ;;
833     no-inline)
834         optimize_no_inline="-fno-default-inline -fno-inline"
835         CONFIG_CXXOPTIMIZE="$CONFIG_CXXOPTIMIZE $optimize_no_inline"
836         AC_MSG_RESULT([enabling optimizations, $CONFIG_CXXOPTIMIZE]) ;;
837     no)
838         CONFIG_CXXOPTIMIZE=""
839         AC_MSG_RESULT([disabling optimizations]) ;;
840     *)
841         CONFIG_CXXOPTIMIZE="$enable_optimize"
842         AC_MSG_RESULT([customizing optimizations, $enable_optimize]) ;;
843 esac
845 #--------------------------------------------------------------------
846 # Substitute TeXmacs specific configuration parameters
847 #--------------------------------------------------------------------
849 AC_SUBST(CONFIG_OS)
850 AC_SUBST(CONFIG_OS_SUFFIX)
851 AC_SUBST(CONFIG_CXXWARNING)
852 AC_SUBST(CONFIG_CXXTEMPLATE)
853 AC_SUBST(CONFIG_CXXOPTIMIZE)
854 AC_SUBST(CONFIG_CXXDEBUG)
855 AC_SUBST(CONFIG_BFLAGS)
856 AC_SUBST(CONFIG_BSTATIC)
857 AC_SUBST(CONFIG_BSHARED)
858 AC_SUBST(CONFIG_BPATH)
859 AC_SUBST(CONFIG_WORD_LENGTH)
860 AC_SUBST(CONFIG_WORD_LENGTH_INC)
861 AC_SUBST(CONFIG_WORD_MASK)
862 AC_SUBST(CONFIG_MAX_FAST)
863 AC_SUBST(CONFIG_CXXFLAGS)
864 AC_SUBST(CONFIG_STD_SETENV)
865 AC_SUBST(CONFIG_SO)
866 AC_SUBST(CONFIG_LIB_PATH)
867 AC_SUBST(CONFIG_STRIP)
868 AC_SUBST(CONFIG_CHMOD)
870 #--------------------------------------------------------------------
871 # Default paths for installation
872 #--------------------------------------------------------------------
874 if test "$prefix" = ""; then
875   prefix=/usr/local
877 if test "$prefix" = "NONE"; then
878   prefix=/usr/local
880 if test "$exec_prefix" = ""; then
881   exec_prefix='${prefix}'
883 if test "$exec_prefix" = "NONE"; then
884   exec_prefix='${prefix}'
886 if test "$exec_prefix" = '${prefix}'; then
887   exec_prefix='${prefix}'
889 if test "$includedir" = ""; then
890   includedir='${prefix}/include'
892 if test "$includedir" = "NONE"; then
893   includedir='${prefix}/include'
895 if test "$includedir" = '${prefix}/include'; then
896   includedir='${prefix}/include'
898 if test "$libdir" = ""; then
899   libdir='${exec_prefix}/lib'
901 if test "$libdir" = "NONE"; then
902   libdir='${exec_prefix}/lib'
904 if test "$libdir" = '${exec_prefix}/lib'; then
905   libdir='${exec_prefix}/lib'
907 if test "$bindir" = ""; then
908   bindir='${exec_prefix}/bin'
910 if test "$bindir" = "NONE"; then
911   bindir=${exec_prefix}/bin
913 if test "$bindir" = '${exec_prefix}/bin'; then
914   bindir='${exec_prefix}/bin'
916 if test "$datarootdir" = ""; then
917   datarootdir='${prefix}/share'
919 if test "$datarootdir" = "NONE"; then
920   datarootdir='${prefix}/share'
922 if test "$datarootdir" = '${prefix}/share'; then
923   datarootdir='${prefix}/share'
925 if test "$datadir" = ""; then
926   datadir='${prefix}/share'
928 if test "$datadir" = "NONE"; then
929   datadir='${prefix}/share'
931 if test "$datadir" = '${prefix}/share'; then
932   datadir='${prefix}/share'
934 if test "$mandir" = ""; then
935   mandir='${datarootdir}/man'
937 if test "$mandir" = "NONE"; then
938   mandir='${datarootdir}/man'
940 if test "$mandir" = '${datarootdir}/man'; then
941   mandir='${datarootdir}/man'
943 if test "$libexecdir" = ""; then
944   libexecdir='${exec_prefix}/libexec'
946 if test "$libexecdir" = "NONE"; then
947   libexecdir='${exec_prefix}/libexec'
949 if test "$libexecdir" = '${exec_prefix}/libexec'; then
950   libexecdir='${exec_prefix}/libexec'
953 curdir="`pwd`"
954 tmorig=${curdir}
955 tmdir=${PACKAGE}
956 tmsrc=${curdir}/${tmdir}
957 tmbin=${libexecdir}/${tmdir}
958 tmdata=${datadir}/${tmdir}
959 AC_SUBST(tmorig)
960 AC_SUBST(tmdir)
961 AC_SUBST(tmsrc)
962 AC_SUBST(tmbin)
963 AC_SUBST(tmdata)
965 if test "$DEVEL_RELEASE" = "1"; then
966   tmtgz=${PACKAGE}-${DEVEL_VERSION}
967 else
968   tmtgz=${PACKAGE}-${DEVEL_VERSION}-R${DEVEL_RELEASE}
970 tmrpm=${PACKAGE}-${DEVEL_VERSION}-${DEVEL_RELEASE}
971 if test "$STABLE_RELEASE" = "1"; then
972   tmstgz=${PACKAGE}-${STABLE_VERSION}
973 else
974   tmstgz=${PACKAGE}-${STABLE_VERSION}-R${STABLE_RELEASE}
976 tmsrpm=${PACKAGE}-${STABLE_VERSION}-${STABLE_RELEASE}
977 if test "$WINDOWS_RELEASE" = "1"; then
978   tmwin=wintexmacs-${WINDOWS_VERSION}
979 else
980   tmwin=wintexmacs-${WINDOWS_VERSION}-R${WINDOWS_RELEASE}
982 AC_SUBST(tmtgz)
983 AC_SUBST(tmrpm)
984 AC_SUBST(tmstgz)
985 AC_SUBST(tmsrpm)
986 AC_SUBST(tmwin)
988 #--------------------------------------------------------------------
989 # Done
990 #--------------------------------------------------------------------
992 AC_OUTPUT(Makefile:Makefile.in src/makefile:src/makefile.in src/System/tm_configure.hpp:src/System/tm_configure.in misc/admin/admin.makefile:misc/admin/admin.makefile.in misc/doxygen/Doxyfile:misc/doxygen/Doxyfile.in misc/man/texmacs.1:misc/man/texmacs.1.in misc/rpm/TeXmacs.spec:misc/rpm/TeXmacs.spec.in misc/scripts/fig2ps:misc/scripts/fig2ps.in misc/scripts/texmacs:misc/scripts/texmacs.in TeXmacs/examples/plugins/dynlink/Makefile:TeXmacs/examples/plugins/dynlink/Makefile.in)