Cleaning
[texmacs.git] / src / configure.in
blob3ef095a7dd132ff98d0a8192d51be61f07e2a140
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])
16 AC_CANONICAL_HOST
18 PACKAGE="TeXmacs"
19 DEVEL_VERSION="1.0.7.5"
20 DEVEL_RELEASE="1"
21 STABLE_VERSION="1.0.7"
22 STABLE_RELEASE="1"
23 WINDOWS_VERSION="1.0.5"
24 WINDOWS_RELEASE="1"
25 AC_SUBST(PACKAGE)
26 AC_SUBST(DEVEL_VERSION)
27 AC_SUBST(DEVEL_RELEASE)
28 AC_SUBST(STABLE_VERSION)
29 AC_SUBST(STABLE_RELEASE)
31 #--------------------------------------------------------------------
32 # Checks for C++ compiler
33 #--------------------------------------------------------------------
35 AC_PROG_CC
36 AC_PROG_CXX
37 AC_LANG_CPLUSPLUS
38 AH_TEMPLATE([OLD_GNU_COMPILER],[Use g++ strictly prior to g++ 3.0])
39 AC_MSG_CHECKING(whether GNU C++ compiler is default)
40 case "$GXX" in
41   yes )
42     GCC_VERSION=`$CC -dumpversion`
43     GXX_VERSION=`$CXX -dumpversion`
44     AC_MSG_RESULT(yes)
45     AC_MSG_CHECKING(version of gcc)
46     AC_MSG_RESULT($GCC_VERSION)
47     AC_MSG_CHECKING(version of g++)
48     AC_MSG_RESULT($GXX_VERSION)
49     case "$GXX_VERSION" in
50       0* | 1* | 2*)
51         echo "old style GNU compiler"
52         AC_DEFINE([OLD_GNU_COMPILER],[])
53       ;;
54     esac
55   ;;
56   *)
57     GCC_VERSION="none"
58     GXX_VERSION="none"
59     AC_MSG_RESULT(no)
60     AC_MSG_WARN(cannot find GNU C++ compiler)
61   ;;
62 esac
64 #--------------------------------------------------------------------
65 # Checks for Guile
66 #--------------------------------------------------------------------
68 if test -z "$GUILE_CFLAGS" -a -z "$GUILE_LDFLAGS"; then
69   GUILE_FLAGS
71 AC_MSG_CHECKING(version of guile)
72 if test -z "$GUILE_VERSION" ; then
73   GUILE_VERSION=`guile --version | grep 'Guile \([[0-9]]\)' | sed 's/Guile \([[0-9]]*\)/\1/'`
75 AC_MSG_RESULT($GUILE_VERSION)
77 case "$GUILE_VERSION" in
78   1.0* | 1.1* | 1.2* | 1.3* | 1.4* | 1.5*)
79     CONFIG_GUILE_SERIAL="A"
80   ;;
81   1.6* | 1.7*)
82     CONFIG_GUILE_SERIAL="B"
83   ;;
84   *)
85     CONFIG_GUILE_SERIAL="C"
86   ;;
87 esac
88 AC_SUBST(CONFIG_GUILE_SERIAL)
90 #--------------------------------------------------------------------
91 # Checks for standard functionality
92 #--------------------------------------------------------------------
94 CPP_X_HEADERS
95 AC_CHECK_TYPES(FILE)
96 AC_CHECK_TYPES(intptr_t)
97 AC_CHECK_TYPES(time_t)
98 AC_PATH_X
99 AC_PATH_XTRA
100 AC_CHECK_HEADERS(pty.h util.h)
101 AC_CHECK_FUNCS(gettimeofday)
103 #--------------------------------------------------------------------
104 # Checks for dl library
105 #--------------------------------------------------------------------
107 AC_CHECK_FUNC(dlopen)
108 if test "$ac_cv_func_dl" = "yes"; then
109   AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
110 else
111   AC_CHECK_LIB(dl,dlopen)
112   if test "$ac_cv_lib_dl_dlopen" = "yes"; then
113     AC_CHECK_FUNCS(dlopen)
114     CONFIG_BDL="-ldl"
115     AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
116   else
117     AC_CHECK_LIB(dld,dld_link)
118     if test "$ac_cv_lib_dld_dld_link" = "yes"; then
119       CONFIG_BDL="-ldl"
120       AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
121     else
122       AC_CHECK_FUNCS(shl_load)
123       if test "$ac_cv_func_shl_load" = "yes"; then
124         CONFIG_BDL="-ldl"
125         AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
126       else
127         AC_CHECK_FUNCS(dlopen)
128         if test "$ac_cv_func_dlopen" = "yes"; then
129           AC_DEFINE(DYNAMIC_LINKING, 1, [Dynamic linking works])
130         fi
131       fi
132     fi
133   fi
135 AC_SUBST(CONFIG_BDL)
137 #--------------------------------------------------------------------
138 # Checks for iconv library
139 #--------------------------------------------------------------------
141 AC_ARG_WITH(iconv,
142 changequote(<<, >>)dnl
143 <<  --with-iconv[=DIR]        where to find iconv [system]>>dnl
144 changequote([, ])dnl
147 # Check for iconv
148 # Modified from GNOME's libxml2 configure.in
149 AC_LANG_SAVE
150 AC_LANG_C  # compile C to avoid the 'const char**' problem
152 SAVE_CPPFLAGS="$CPPFLAGS"
153 SAVE_LDFLAGS="$LDFLAGS"
154 SAVE_LIBS="$LIBS"
155 if test "$with_iconv" = "no" ; then
156     AC_MSG_RESULT([disabling iconv support])
157 else
158     if test -n "$ICONV_CFLAGS" -a -n "$ICONV_LDFLAGS"; then
159        CPPFLAGS="$ICONV_CFLAGS" # for AC_TRY_LINK
160        LDFLAGS="$ICONV_LDFLAGS"
161     fi
162     if test "$with_iconv" != "yes" -a "$with_iconv" != "" ; then
163        CPPFLAGS="-I$with_iconv/include" # for AC_TRY_LINK
164        LDFLAGS="-L$with_iconv/lib"
165        ICONV_CFLAGS="-I$with_iconv/include"
166        ICONV_LDFLAGS="-L$with_iconv/lib"
167     fi
169     AC_CHECK_HEADER(iconv.h,
170     AC_MSG_CHECKING(for iconv)
171     AC_TRY_LINK(
173 #include <stdlib.h>
174 #include <iconv.h>
176     iconv_t cd = iconv_open ("","");
177     iconv (cd, NULL, NULL, NULL, NULL);
179     AC_MSG_RESULT(yes)
180     AC_DEFINE(USE_ICONV, 1, [Use iconv library])
182     AC_MSG_RESULT(no)
183     AC_MSG_CHECKING(for iconv in -liconv)
184 #    LDFLAGS="${ICONV_LDFLAGS}"    # for AC_TRY_LINK
185     LIBS="-liconv"                # for AC_TRY_LINK
186     AC_TRY_LINK(
188 #include <stdlib.h>
189 #include <iconv.h>
191       iconv_t cd = iconv_open ("","");
192       iconv (cd, NULL, NULL, NULL, NULL);
194       AC_MSG_RESULT(yes)
195       AC_DEFINE(USE_ICONV, 1, [Use iconv library])
196       ICONV_LDFLAGS="${ICONV_LDFLAGS/-liconv} -liconv"
198       AC_MSG_RESULT(no)
199       AC_MSG_WARN([absence of iconv may crash HTML import])
200   ])]))
203 CPPFLAGS="$SAVE_CPPFLAGS"
204 LDFLAGS="$SAVE_LDFLAGS"
205 LIBS="$SAVE_LIBS"
206 AC_LANG_RESTORE  # restore C++ language
207 AC_SUBST(ICONV_CFLAGS)
208 AC_SUBST(ICONV_LDFLAGS)
210 #--------------------------------------------------------------------
211 # Checks for freetype library
212 #--------------------------------------------------------------------
214 AC_ARG_WITH(freetype,
215 changequote(<<, >>)dnl
216 <<  --with-freetype[=ARG]     with freetype support [ARG=linked]>>dnl
217 changequote([, ])dnl
220 SAVE_CPPFLAGS="$CPPFLAGS"
221 SAVE_LDFLAGS="$LDFLAGS"
222 SAVE_LIBS="$LIBS"
223 if test "$with_freetype" = "no" ; then
224     AC_MSG_RESULT([disabling freetype support])
225 else
226     if test -z "$FREETYPE_CFLAGS"; then
227       FREETYPE_CFLAGS=`freetype-config --cflags`
228     fi
229     CPPFLAGS="$CPPFLAGS $FREETYPE_CFLAGS"
230     if test -z "$FREETYPE_LDFLAGS"; then
231       FREETYPE_LDFLAGS=`freetype-config --libs`
232     fi
233     LIBS="$LDFLAGS $FREETYPE_LDFLAGS"
234     AC_CHECK_HEADER(ft2build.h,
235     AC_MSG_CHECKING(for freetype)
236     AC_TRY_LINK(
238 #include <ft2build.h>
239 #include FT_FREETYPE_H 
241     FT_Library ft_library;
242     (void) FT_Init_FreeType (&ft_library);
244     AC_MSG_RESULT(yes)
245     AC_DEFINE(USE_FREETYPE, 1, [Use freetype library])
246     FREETYPE_CFLAGS="$CPPFLAGS"
247     if test "$with_freetype" = "linked" -o "$with_freetype" = "" ; then
248       FREETYPE_LDFLAGS="$LIBS"
249       AC_DEFINE(LINKED_FREETYPE, 1, [Link freetype library with TeXmacs])
250     fi
252     AC_MSG_RESULT(no)]))
255 CPPFLAGS="$SAVE_CPPFLAGS"
256 LDFLAGS="$SAVE_LDFLAGS"
257 LIBS="$SAVE_LIBS"
259 AC_SUBST(FREETYPE_CFLAGS)
260 AC_SUBST(FREETYPE_LDFLAGS)
262 #--------------------------------------------------------------------
263 # Checks for Cairo library
264 #--------------------------------------------------------------------
266 AC_ARG_WITH(cairo,
267 changequote(<<, >>)dnl
268 <<  --with-cairo[=ARG]        with cairo support [ARG=no]>>dnl
269 changequote([, ])dnl
272 SAVE_CPPFLAGS="$CPPFLAGS"
273 SAVE_LDFLAGS="$LDFLAGS"
274 SAVE_LIBS="$LIBS"
275 if test "$with_cairo" = "no" -o "$with_cairo" = "" ; then
276     AC_MSG_RESULT([disabling cairo support])
277 else
278     CPPFLAGS=`pkg-config --cflags cairo`
279     LIBS=`pkg-config --libs cairo`
280     AC_CHECK_HEADER(cairo.h,
281     AC_MSG_CHECKING(for cairo)
282     AC_TRY_LINK(
284 #include <cairo.h>
286     cairo_surface_t *surface;
287     surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 120, 120);
289     AC_MSG_RESULT(yes)
290     AC_DEFINE(USE_CAIRO, 1, [Use cairo library])
291     CAIRO_CFLAGS="$CPPFLAGS"
292     if test "$with_cairo" = "linked" ; then
293       CAIRO_LDFLAGS="$LIBS"
294       AC_DEFINE(LINKED_CAIRO, 1, [Link cairo library with TeXmacs])
295     fi
297     AC_MSG_RESULT(no)]))
300 CPPFLAGS="$SAVE_CPPFLAGS"
301 LDFLAGS="$SAVE_LDFLAGS"
302 LIBS="$SAVE_LIBS"
304 AC_SUBST(CAIRO_CFLAGS)
305 AC_SUBST(CAIRO_LDFLAGS)
307 #--------------------------------------------------------------------
308 # Checks for Imlib2 library
309 #--------------------------------------------------------------------
311 AC_ARG_WITH(imlib2,
312 changequote(<<, >>)dnl
313 <<  --with-imlib2[=ARG]       with imlib2 support [ARG=no]>>dnl
314 changequote([, ])dnl
317 SAVE_CPPFLAGS="$CPPFLAGS"
318 SAVE_LDFLAGS="$LDFLAGS"
319 SAVE_LIBS="$LIBS"
320 if test "$with_imlib2" = "no" -o "$with_imlib2" = "" ; then
321     AC_MSG_RESULT([disabling imlib2 support])
322 else
323     CPPFLAGS=`imlib2-config --cflags`
324     LIBS=`imlib2-config --libs`
325     AC_CHECK_HEADER(Imlib2.h,
326     AC_MSG_CHECKING(for imlib2)
327     AC_TRY_LINK(
329 #include <X11/Xlib.h>
330 #include <Imlib2.h>
331 #include <stdio.h>
332 #include <string.h>
334     Imlib_Image image= imlib_load_image("");
336     AC_MSG_RESULT(yes)
337     AC_DEFINE(USE_IMLIB2, 1, [Use imlib2 library])
338     IMLIB2_CFLAGS="$CPPFLAGS"
339     if test "$with_imlib2" = "linked" ; then
340       IMLIB2_LDFLAGS="$LIBS"
341       AC_DEFINE(LINKED_IMLIB2, 1, [Link imlib2 library with TeXmacs])
342     fi
344     AC_MSG_RESULT(no)]))
347 CPPFLAGS="$SAVE_CPPFLAGS"
348 LDFLAGS="$SAVE_LDFLAGS"
349 LIBS="$SAVE_LIBS"
351 AC_SUBST(IMLIB2_CFLAGS)
352 AC_SUBST(IMLIB2_LDFLAGS)
354 #--------------------------------------------------------------------
355 # Checks for Axel library
356 #--------------------------------------------------------------------
358 AC_ARG_WITH(axel,
359 changequote(<<, >>)dnl
360 <<  --with-axel[=ARG]       with axel support [ARG=no]>>dnl
361 changequote([, ])dnl
364 SAVE_CPPFLAGS="$CPPFLAGS"
365 SAVE_LDFLAGS="$LDFLAGS"
366 SAVE_LIBS="$LIBS"
367 if test "$with_axel" = "no" -o "$with_axel" = "" ; then
368     AC_MSG_RESULT([disabling axel support])
369 else
370     CPPFLAGS=`axel-config --cflags`
371     LIBS=`axel-config --libs`
372     AC_CHECK_HEADER(QGui/Viewer.h,
373     AC_MSG_CHECKING(for axel)
374     AC_TRY_LINK(
376 #include <QGui/Viewer.h>
378     Viewer viewer(0);
380     AC_MSG_RESULT(yes)
381     AC_DEFINE(USE_AXEL, 1, [Use axel library])
382     AXEL_CFLAGS="$CPPFLAGS"
383     if test "$with_axel" = "linked" ; then
384       AXEL_LDFLAGS="$LIBS"
385       AC_DEFINE(LINKED_AXEL, 1, [Link axel library with TeXmacs])
386     fi
388     AC_MSG_RESULT(no)]))
391 CPPFLAGS="$SAVE_CPPFLAGS"
392 LDFLAGS="$SAVE_LDFLAGS"
393 LIBS="$SAVE_LIBS"
395 AC_SUBST(AXEL_CFLAGS)
396 AC_SUBST(AXEL_LDFLAGS)
398 #--------------------------------------------------------------------
399 # Checks for ghostscript library
400 #--------------------------------------------------------------------
402 AC_ARG_WITH(gs,
403 changequote(<<, >>)dnl
404 <<  --with-gs[=ARG]       with ghostscript support [ARG=yes]>>dnl
405 changequote([, ])dnl
408 if test "$with_gs" = "no" ; then
409     AC_MSG_RESULT([disabling ghostscript support])
410 else
411 case "${host}" in
412   *mingw*)
413     GS_EXE="gswin32c.exe"
414     GS_DLL="gsdll32.dll"
415     AC_CHECK_PROG([HAS_GS_EXE], [${GS_EXE}], [yes], [no])
416     AC_CHECK_PROG([HAS_GS_LIB], [${GS_DLL}], [yes], [no])
417   ;;
418   *)
419     AC_CHECK_PROG([HAS_GS_EXE], [gs], [yes], [no])
420     HAS_GS_LIB="yes"
421   ;;
422 esac
423 if test "x${HAS_GS_EXE}" = "xyes" -a "x${HAS_GS_LIB}" = "xyes"; then
424   AC_DEFINE([USE_GS], [1], [Use ghostscript])
425   CONFIG_GS="Ghostscript"
426   AC_SUBST([CONFIG_GS])
427   AC_SUBST([GS_EXE])
428   AC_SUBST([GS_DLL])
429 else
430   AC_MSG_RESULT([disabling ghostscript support])
434 #--------------------------------------------------------------------
435 # Fixes for erroneous behaviour of gcc/g++ and guile on some systems
436 #--------------------------------------------------------------------
438 AC_MSG_CHECKING(whether ... arguments behave correctly)
439 if test -z "$GUILE_CFLAGS"; then
440   CXXFLAGS="`guile-config compile`"
441 else
442   CXXFLAGS="$GUILE_CFLAGS"
444 AC_TRY_COMPILE([
445   #include <guile/gh.h>
446   #include <libguile.h>
447   typedef SCM (*FN)(...);
448   static SCM identity (SCM x) { return x; }
449   void declare () { gh_new_procedure ("identity", (FN) identity, 1, 0, 0); }
452   AC_DEFINE(DOTS_OK, 1, [Defined if ...-style argument passing works])
453   AC_MSG_RESULT(yes)
455   AC_MSG_RESULT(no)
457 CXXFLAGS=""
459 AC_MSG_CHECKING(the size_t of guile strings)
460 if test -z "$GUILE_CFLAGS"; then
461   CXXFLAGS="`guile-config compile`"
462 else
463   CXXFLAGS="$GUILE_CFLAGS"
465 AC_TRY_COMPILE([
466   #include <guile/gh.h>
467   #include <libguile.h>
468   void print_string (SCM s) {
469     int len_r;
470     char* r= gh_scm2newstr (s, &len_r); }
473   AC_DEFINE(guile_str_size_t, int, [Guile string size type])
474   AC_MSG_RESULT(int)
476   AC_DEFINE(guile_str_size_t, size_t, [Guile string size type])
477   AC_MSG_RESULT(size_t)
479 CXXFLAGS=""
481 AC_MSG_CHECKING([if statically linking with guile works])
482 SAVE_CPPFLAGS="$CPPFLAGS"
483 SAVE_LDFLAGS="$LDFLAGS"
484 SAVE_LIBS="$LIBS"
485 CPPFLAGS="$GUILE_CFLAGS"
486 LDFLAGS="-static"
487 LIBS="$GUILE_LDFLAGS"
488 TEXMACS_LINK_GUILE([tm_link_guile_static="yes"],
489                    [tm_link_guile_static="no"])
490 AC_MSG_RESULT(["$tm_link_guile_static"])
491 if test "$tm_link_guile_static" = "no" ; then
492    AC_MSG_CHECKING([if it works with -lltdl])
493    LIBS="$GUILE_LDFLAGS -lltdl"
494    TEXMACS_LINK_GUILE([tm_link_guile_static_ltdl="yes"],
495                       [tm_link_guile_static_ltdl="no"])
496    AC_MSG_RESULT(["$tm_link_guile_static_ltdl"])
497    if test "$tm_link_guile_static_ltdl" = "yes" ; then
498       GUILE_LDFLAGS="$GUILE_LDFLAGS -lltdl"
499    else
500       AC_MSG_CHECKING([if it works with -lltdl -ldl])
501       LIBS="$GUILE_LDFLAGS -lltdl -ldl"
502       TEXMACS_LINK_GUILE([tm_link_guile_static_ltdl_ldl="yes"],
503                          [tm_link_guile_static_ltdl_ldl="no"])
504       AC_MSG_RESULT(["$tm_link_guile_static_ltdl_ldl"])
505       if test "$tm_link_guile_static_ltdl_ldl" = "yes" ; then
506          GUILE_LDFLAGS="$GUILE_LDFLAGS -lltdl -ldl"
507       else
508          AC_MSG_WARN([unable to link statically with guile])
509       fi
510    fi
512 CPPFLAGS="$SAVE_CPPFLAGS"
513 LDFLAGS="$SAVE_LDFLAGS"
514 LIBS="$SAVE_LIBS"
516 #--------------------------------------------------------------------
517 # Handle different systems case by case
518 #--------------------------------------------------------------------
520 CONFIG_OS="GNU_LINUX"
521 CONFIG_OS_SUFFIX="gnu-linux"
522 CONFIG_OS_COMPAT="Unix"
523 CONFIG_MACOS=""
524 CONFIG_CXXFLAGS=""
525 CONFIG_CXXTEMPLATE=""
526 CONFIG_STD_SETENV="#define STD_SETENV"
527 CONFIG_SO="so"
528 CONFIG_LIB_PATH="LD_LIBRARY_PATH"
529 CONFIG_CHMOD="chmod -f"
530 CONFIG_CXXOPTIMIZE="-O2"
531 CONFIG_BSTATIC="-Wl,-Bstatic"
532 CONFIG_BSHARED="-Wl,-Bdynamic"
533 CONFIG_BFLAGS=""
534 CONFIG_BPATH="-Wl,-rpath,"
535 CONFIG_LDRT=""
536 CONFIG_WORD_LENGTH="4"
537 CONFIG_WORD_LENGTH_INC="3"
538 CONFIG_WORD_MASK="0xfffffffc"
539 CONFIG_MAX_FAST="260 // WORD_LENGTH more than power of 2"
540 # tweak for XCode project
541 CONFIG_NATIVE_ARCH_TAG="NATIVE_ARCH"
543 X11_CFLAGS="$X_CFLAGS"
544 X11_LDFLAGS="$X_LIBS -lXext -lX11"
546 AC_CHECK_SIZEOF(void *)
547 AC_MSG_CHECKING(if we are on a 64-bits computer)
548 if test "$ac_cv_sizeof_void_p" = "8"; then
549   AC_MSG_RESULT([yes])
550   CONFIG_WORD_LENGTH="8"
551   CONFIG_WORD_LENGTH_INC="7"
552   CONFIG_WORD_MASK="0xfffffffffffffff8"
553   CONFIG_MAX_FAST="264 // WORD_LENGTH more than power of 2"
554 else
555   AC_MSG_RESULT([no])
558 case "${host}" in
559   i*86-*-linux* | x86_64-*-linux*)
560     AC_MSG_RESULT(final adjustments for an Intel or AMD GNU/Linux host)
561     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
562   ;;
563   i*86-*-freebsd* | x86_64-*-freebsd*)
564     AC_MSG_RESULT(final adjustments for an Intel or AMD GNU/BSD host)
565     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
566   ;;
567   i*86-*-solaris*)
568     AC_MSG_RESULT(final adjustments for an Intel or AMS Solaris host)
569     CONFIG_CXXOPTIMIZE="-O3"
570     CONFIG_BPATH="-Wl,-R,"
571     X11_LDFLAGS="$X_LIBS -lXext -lX11 -lsocket"
572   ;;
573   *mingw*)
574     AC_MSG_RESULT([final adjustments for mingw host])
575     CONFIG_OS_COMPAT="Windows"
576     CONFIG_LDRT="-lmingw32 -lmingwex -mwindows"
577   ;;
578   *-*-cygwin)
579     AC_MSG_RESULT(final adjustments for cygwin host)
580     CONFIG_OS="CYGWIN"
581     CONFIG_BFLAGS="-Wl,-stack,8388608"
582 #    CXX="export CYGWIN=check_case:strict; $CXX"
583 #    AC_SUBST(CXX)
584   ;;
585   *apple*darwin*)
586     echo "$ac_t""final adjustments for a MacOS host" 1>&6
587     CONFIG_OS="MACOS"
588     CONFIG_CXXFLAGS="-I${prefix}/include"
589     CONFIG_BSHARED=""
590     CONFIG_BFLAGS="-framework Cocoa"
591     CONFIG_BPATH=""
592     CONFIG_SO="dylib"
593     CONFIG_LIB_PATH="DYLD_LIBRARY_PATH"
594   ;;
595   *darwin*)
596     echo "$ac_t""final adjustments for a generic Darwin host" 1>&6
597     CONFIG_CXXFLAGS="-I${prefix}/include"
598     CONFIG_BSHARED=""
599     CONFIG_BPATH=""
600     CONFIG_SO="dylib"
601     CONFIG_LIB_PATH="DYLD_LIBRARY_PATH"
602   ;;
603   powerpc-*-linux*)
604     AC_MSG_RESULT(final adjustments for a PowerPC/GNU-linux host)
605     CONFIG_OS="POWERPC_GNU_LINUX"
606     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
607   ;;
608   *sun*)
609     AC_MSG_RESULT(final adjustments for a SUN/solaris host)
610     CONFIG_OS="SUN"
611     CONFIG_OS_SUFFIX="sun"
612     CONFIG_BSTATIC=""
613     CONFIG_BSHARED=""
614     CONFIG_BPATH="-Wl,-R,"
615     X11_LDFLAGS="$X_LIBS -lXext -lX11 -lsocket"
616     CONFIG_WORD_LENGTH="8"
617     CONFIG_WORD_LENGTH_INC="7"
618     CONFIG_WORD_MASK="0xfffffff8"
619     CONFIG_MAX_FAST="264 // WORD_LENGTH more than power of 2"
620     CONFIG_STD_SETENV=""
621   ;;
622   sparc*-*-linux*)
623     AC_MSG_RESULT(final adjustments for a Sparc host running GNU/Linux)
624     CONFIG_CXXOPTIMIZE="-O3 -fexpensive-optimizations"
625     CONFIG_WORD_LENGTH="8"
626     CONFIG_WORD_LENGTH_INC="7"
627     CONFIG_WORD_MASK="0xfffffff8"
628     CONFIG_MAX_FAST="264 // WORD_LENGTH more than power of 2"
629     CONFIG_STD_SETENV=""
630   ;;
631   *dec*)
632     AC_MSG_RESULT(final adjustments for a DEC/alpha host)
633     CONFIG_BSTATIC=""
634     CONFIG_BSHARED="-shared"
635     CONFIG_STD_SETENV=""
636   ;;
637   *alpha*-*-linux*)
638     AC_MSG_RESULT(final adjustments for an Alpha GNU/Linux host)
639     CONFIG_BSTATIC=""
640     CONFIG_BSHARED="-shared"
641   ;;
642   s390-*-linux*)
643     AC_MSG_RESULT(final adjustments for an IBM S/390 GNU/Linux host)
644     CONFIG_STD_SETENV=""
645   ;;
646   ia64-*-linux*)
647     AC_MSG_RESULT(final adjustments for an Itanium GNU/Linux host)
648     CONFIG_BSTATIC=""
649     CONFIG_BSHARED="-shared"
650   ;;
651   hppa*-*-linux*)
652     AC_MSG_RESULT(final adjustments for an HP PA_RISC GNU/Linux host)
653     CONFIG_CXXFLAGS="$CONFIG_CXXFLAGS -fPIC"
654     CONFIG_BSTATIC=""
655     CONFIG_BSHARED="-shared"
656   ;;
657   *sgi-irix*)
658     echo "$ac_t""final adjustments for a SGI/Irix host" 1>&6
659     CONFIG_OS="IRIX"
660     CONFIG_CXXFLAGS=""
661     X_LIBS=-L/usr/lib32
662     CONFIG_BSTATIC=""
663     CONFIG_BSHARED=""
664     CONFIG_BPATH=""
665     X11_LDFLAGS="$X_LIBS -lX11"
666     CONFIG_WORD_MASK="0xfffffff8"
667     CONFIG_STD_SETENV=""
668     CONFIG_CHMOD="chmod"
669     CONFIG_LIB_PATH="LD_LIBRARYN32_PATH"
670   ;;
671   m68k-*-linux* | mips-*-linux* | mipsel-*-linux* | arm*-*-linux*)
672     AC_MSG_RESULT(final adjustments for a supported GNU/Linux host)
673   ;;
674   *-linux*)
675     AC_MSG_RESULT(final adjustments for a generic GNU/Linux host)
676   ;;
677   *)
678     AC_MSG_RESULT(final adjustments for a generic host)
679   ;;
680 esac
682 case "${host}" in
683   *apple*darwin10*)
684     echo "$ac_t""Xcode 3.2 project tweak (only MacOSX 10.6)" 1>&6
685     CONFIG_NATIVE_ARCH_TAG="NATIVE_ARCH_ACTUAL"
686   ;;
687 esac
689 #--------------------------------------------------------------------
690 # Temporary fix for link problem
691 #--------------------------------------------------------------------
693 case "$GXX_VERSION" in
694      3.* | 4.*)
695          CONFIG_BSTATIC="-static"
696          CONFIG_BSHARED="-dynamic"
697      ;;
698 esac
700 #--------------------------------------------------------------------
701 # Memory allocation options
702 #--------------------------------------------------------------------
704 AC_ARG_ENABLE(fastalloc,
705 [  --disable-fastalloc     omit fast allocator for small objects],
706     [], [enable_fastalloc="yes"])
707 case "$enable_fastalloc" in
708     yes)
709         ;;
710     no)
711         AC_MSG_RESULT([disabling fast allocator for small objects])
712         AC_DEFINE(NO_FAST_ALLOC, 1, [Disable fast memory allocator])
713         ;;
714     *)
715         AC_MSG_ERROR([bad option --enable-fastalloc=$enable_fastalloc])
716         ;;
717 esac
719 #--------------------------------------------------------------------
720 # Experimental options
721 #--------------------------------------------------------------------
723 AC_ARG_ENABLE(experimental,
724 [  --enable-experimental   support new style rewriting code],
725     [], [enable_experimental="no"])
726 case "$enable_experimental" in
727     yes)
728         AC_MSG_RESULT([enabling experimental style rewriting code])
729         AC_DEFINE(EXPERIMENTAL, 1, [Enable experimental style rewriting code])
730         CONFIG_EXPERIMENTAL="Memorizer Environment Evaluate"
731         ;;
732     no)
733         AC_MSG_RESULT([disabling experimental style rewriting code])
734         CONFIG_EXPERIMENTAL=""
735         ;;
736     *)
737         AC_MSG_ERROR([bad option --enable-experimental=$enable_experimental])
738         ;;
739 esac
740 AC_SUBST(CONFIG_EXPERIMENTAL)
742 #--------------------------------------------------------------------
743 # MacOS X extensions (spellchecker, image loading)
744 #--------------------------------------------------------------------
746 AC_ARG_ENABLE(macosx-extensions,
747 [  --enable-macosx-extensions   support new style rewriting code],
748     [], [enable_macosx_extensions="no"])
749 case "$enable_macosx_extensions" in
750     yes)
751         AC_MSG_RESULT([enabling Mac OSX extensions])
752         AC_DEFINE(MACOSX_EXTENSIONS, 1, [Enabling Mac OSX extensions])
753         CONFIG_MACOS="MacOS"
754         ;;
755     no)
756         AC_MSG_RESULT([disabling Mac OSX extensions])
757         CONFIG_MACOS=""
758         ;;
759     *)
760         AC_MSG_ERROR([bad option --enable-macosx-extensions=$enable_macosx_extensions])
761         ;;
762 esac
763 AC_SUBST(CONFIG_MACOS)
765 #--------------------------------------------------------------------
766 # Experimental PDF renderer
767 #--------------------------------------------------------------------
769 AC_ARG_ENABLE(pdf-renderer,
770 [  --enable-pdf-renderer   use experimental PDF renderer for pdf export],
771     [], [enable_pdf_renderer="no"])
772 case "$enable_pdf_renderer" in
773     yes)
774         AC_MSG_RESULT([enabling experimental PDF renderer])
775         AC_DEFINE(PDF_RENDERER, 1, [Enabling experimental PDF renderer])
776         CONFIG_PDF="Pdf Pdf/dvipdfmx"
777         ;;
778     no)
779         AC_MSG_RESULT([disabling experimental PDF renderer])
780         CONFIG_PDF=""
781         ;;
782     *)
783         AC_MSG_ERROR([bad option --enable-pdf-renderer=$enable_pdf_renderer])
784         ;;
785 esac
786 AC_SUBST(CONFIG_PDF)
788 #--------------------------------------------------------------------
789 # Gui selection
790 #--------------------------------------------------------------------
792 CONFIG_X11=""
793 CONFIG_COCOA=""
794 CONFIG_GUI="X11"
796 AC_ARG_ENABLE(qt,
797 [  --enable-qt             replace X11 by Qt interface],
798     [], [enable_qt="no"])
800 case "$enable_qt" in
801     yes)
802         HACKED_AT_WITH_QT
803         if test x"$at_cv_qt_build" = xko; then 
804            AC_MSG_ERROR([cannot find Qt!])
805         else
806            AC_MSG_RESULT([enabling experimental Qt port])
807            CONFIG_GUI="QT"
808         fi
809         ;;
810     no)
811         AC_MSG_RESULT([disabling experimental Qt port])
812         ;;
813     *)
814         AC_MSG_ERROR([bad option --enable-qt=$enable_qt])
815         ;;
816 esac
818 AC_ARG_ENABLE(qtpipes,
819 [  --enable-qtpipes             replace UNIX pipes by Qt pipes],
820     [], [enable_qtpipes="no"])
822 case "$enable_qtpipes" in
823     yes)
824         if test x"$CONFIG_GUI" = xQT; then
825            AC_DEFINE(QTPIPES, 1, [Enabling Qt pipes])
826            AC_MSG_RESULT([enabling Qt pipes])
827         else
828            AC_MSG_ERROR([QT not enabled!])
829         fi
830         ;;
831     no)
832         if test x"$CONFIG_GUI" = xQT; then
833            AC_MSG_RESULT([disabling Qt pipes])
834         fi
835         ;;
836     *)
837         AC_MSG_ERROR([bad option --enable-qtpipes=$enable_qt])
838         ;;
839 esac
841 AC_ARG_ENABLE(cocoa,
842 [  --enable-cocoa          replace X11 by Cocoa interface],
843     [], [enable_cocoa="no"])
844 case "$enable_cocoa" in
845     yes)
846         AC_MSG_RESULT([enabling experimental Cocoa port])
847         COCOA_CFLAGS=""
848         COCOA_LDFLAGS="-framework Cocoa"
849         CONFIG_GUI="COCOA"
850         ;;
851     no)
852         AC_MSG_RESULT([disabling experimental Cocoa port])
853         ;;
854     *)
855         AC_MSG_ERROR([bad option --enable-cocoa=$enable_cocoa])
856         ;;
857 esac
859 case "$CONFIG_GUI" in
860     X11)
861         CONFIG_X11="X11 Widkit"
862         if test "x${CONFIG_GS}" != "xGhostscript"; then
863           CONFIG_X11="$CONFIG_X11 Ghostscript"
864         fi
865         CONFIG_GUI_DEFINE="X11TEXMACS"
866 #        AC_DEFINE(X11TEXMACS, 1, [Use standard X11 port])
867         ;;
868     COCOA)
869         CONFIG_COCOA="Cocoa"
870         CONFIG_GUI_DEFINE="AQUATEXMACS"
871 #        AC_DEFINE(AQUATEXMACS, 1, [Enable experimental Cocoa port])
872         ;;
873     QT)
874         CONFIG_QT="Qt"
875         CONFIG_GUI_DEFINE="QTTEXMACS"
876 #        AC_DEFINE(QTTEXMACS, 1, [Enable experimental Qt port])
877         ;;
878 esac
880 AC_SUBST(CPPFLAGS)
881 AC_SUBST(LDFLAGS)
882 AC_SUBST(X11_CFLAGS)
883 AC_SUBST(X11_LDFLAGS)
884 AC_SUBST(COCOA_CFLAGS)
885 AC_SUBST(COCOA_LDFLAGS)
887 AC_SUBST(CONFIG_X11)
888 AC_SUBST(CONFIG_COCOA)
889 AC_SUBST(CONFIG_QT)
890 AC_SUBST(CONFIG_GUI)
891 AC_SUBST(CONFIG_GUI_DEFINE)
893 #--------------------------------------------------------------------
894 # Debugging options
895 #--------------------------------------------------------------------
897 STD_DEBUG_FLAGS="-fno-rtti -fno-exceptions"
898 if test "$enable_cocoa" = "yes"; then
899     STD_DEBUG_FLAGS="-fno-exceptions"
902 AC_MSG_CHECKING(if compiler supports $STD_DEBUG_FLAGS)
903 CXXFLAGS="$STD_DEBUG_FLAGS"
904 AC_TRY_COMPILE([
905   int some_variable = 0;
908     CONFIG_CXXDIALECT="$STD_DEBUG_FLAGS"
909     AC_MSG_RESULT(yes)
911     CONFIG_CXXDIALECT=""
912     AC_MSG_RESULT(no)
914 CXXFLAGS=""
915 AC_SUBST(CONFIG_CXXDIALECT)
917 AC_ARG_ENABLE(debug,
918 changequote(<<, >>)dnl
919 <<  --enable-debug[=ARG]      install a debugging enable executable [-ggdb]>>,
920 changequote([, ])dnl
921 [], [enable_debug="no"])
923 if test "$enable_debug" = "yes"; then
924     if test "$GXX" = "yes"; then
925         enable_debug="-ggdb"
926     else
927         enable_debug="-g3"
928     fi
931 if test "$enable_debug" = "no"; then
932     AC_MSG_RESULT([disabling debugging])
933     CONFIG_STRIP="strip"
934     CONFIG_CXXDEBUG=""
935     optimize_default="yes"
936 else
937     AC_MSG_RESULT([enabling debugging, $enable_debug])
938     CONFIG_STRIP="true"
939     CONFIG_CXXDEBUG="$enable_debug"
940     optimize_default="no"
943 AC_ARG_ENABLE(assert,
944 changequote(<<, >>)dnl
945 <<  --enable-assert           exit on failed assertions in code>>,
946 changequote([, ])dnl
947 [], [enable_assert="yes"])
949 if test "$enable_assert" = "no"; then
950     AC_MSG_RESULT([disabling assertion checking])
951 else
952     AC_MSG_RESULT([enabling assertion checking])
953     AC_DEFINE(DEBUG_ASSERT, 1, [check assertions in code])
956 #--------------------------------------------------------------------
957 # Warning options
958 #--------------------------------------------------------------------
960 case "$GXX_VERSION" in
961   none)
962     CONFIG_CXXWARNING="";
963   ;;
964   *)
965     CONFIG_CXXWARNING="-Wall -Wno-return-type"
966   ;;
967 esac
969 AC_ARG_ENABLE(warnings,
970 [  --enable-warnings       print warning messages during compilation],
971     [], [enable_warnings="yes"])
972 case "$enable_warnings" in
973     yes)
974         AC_MSG_RESULT([enabling warning flags $CONFIG_CXXWARNING]) ;;
975     no)
976         CONFIG_CXXWARNING=""
977         AC_MSG_RESULT([disabling warning flags]) ;;
978     *)
979         CONFIG_CXXWARNING="$enable_warnings"
980         AC_MSG_RESULT([enabling warning flags $CONFIG_CXXWARNING]) ;;
981 esac
983 #--------------------------------------------------------------------
984 # Optimization options
985 #--------------------------------------------------------------------
987 if test "$optimize_default" = "yes"; then
988   case "$GXX_VERSION" in
989     3.3.3 | 3.3.4 | 4.*)
990       ;;
991     2.96 | 3.0 | 3.0.* | 3.1 | 3.1.* | 3.2 | 3.2.* | 3.3 | 3.3.*)
992       case "${host}" in
993         i*86-*-linux-gnu* | i*86-*-freebsd*)
994           AC_MSG_WARN([using g++ 3.*, optimize without inline by default])
995           optimize_default="no-inline"
996         ;;
997         *)
998           AC_MSG_WARN([using g++ 3.*, optimize without inline by default])
999           optimize_default="no-inline"
1000         ;;
1001       esac
1002     ;;
1003   esac
1006 AC_ARG_ENABLE(optimize,
1007 changequote(<<, >>)dnl
1008 <<  --enable-optimize[=ARG]   compile with optimizations [guessed]>>,
1009 changequote([, ])dnl
1010 [], [enable_optimize="$optimize_default"])
1012 case "$enable_optimize" in
1013     yes)
1014         # keep optimization options
1015         AC_MSG_RESULT([enabling optimizations, $CONFIG_CXXOPTIMIZE]) ;;
1016     no-inline)
1017         optimize_no_inline="-fno-default-inline -fno-inline"
1018         CONFIG_CXXOPTIMIZE="$CONFIG_CXXOPTIMIZE $optimize_no_inline"
1019         AC_MSG_RESULT([enabling optimizations, $CONFIG_CXXOPTIMIZE]) ;;
1020     no)
1021         CONFIG_CXXOPTIMIZE=""
1022         AC_MSG_RESULT([disabling optimizations]) ;;
1023     *)
1024         CONFIG_CXXOPTIMIZE="$enable_optimize"
1025         AC_MSG_RESULT([customizing optimizations, $enable_optimize]) ;;
1026 esac
1028 #--------------------------------------------------------------------
1029 # Substitute TeXmacs specific configuration parameters
1030 #--------------------------------------------------------------------
1032 AC_SUBST(CONFIG_OS)
1033 AC_SUBST(CONFIG_OS_SUFFIX)
1034 AC_SUBST(CONFIG_OS_COMPAT)
1035 AC_SUBST(CONFIG_CXXWARNING)
1036 AC_SUBST(CONFIG_CXXTEMPLATE)
1037 AC_SUBST(CONFIG_CXXOPTIMIZE)
1038 AC_SUBST(CONFIG_CXXDEBUG)
1039 AC_SUBST(CONFIG_BFLAGS)
1040 AC_SUBST(CONFIG_BSTATIC)
1041 AC_SUBST(CONFIG_BSHARED)
1042 AC_SUBST(CONFIG_BPATH)
1043 AC_SUBST(CONFIG_WORD_LENGTH)
1044 AC_SUBST(CONFIG_WORD_LENGTH_INC)
1045 AC_SUBST(CONFIG_WORD_MASK)
1046 AC_SUBST(CONFIG_MAX_FAST)
1047 AC_SUBST(CONFIG_CXXFLAGS)
1048 AC_SUBST(CONFIG_STD_SETENV)
1049 AC_SUBST(CONFIG_SO)
1050 AC_SUBST(CONFIG_LIB_PATH)
1051 AC_SUBST(CONFIG_STRIP)
1052 AC_SUBST(CONFIG_CHMOD)
1053 AC_SUBST(CONFIG_LDRT)
1054 AC_SUBST(CONFIG_NATIVE_ARCH_TAG)
1056 #--------------------------------------------------------------------
1057 # Default paths for installation
1058 #--------------------------------------------------------------------
1060 if test "$prefix" = ""; then
1061   prefix=/usr/local
1063 if test "$prefix" = "NONE"; then
1064   prefix=/usr/local
1066 if test "$exec_prefix" = ""; then
1067   exec_prefix='${prefix}'
1069 if test "$exec_prefix" = "NONE"; then
1070   exec_prefix='${prefix}'
1072 if test "$exec_prefix" = '${prefix}'; then
1073   exec_prefix='${prefix}'
1075 if test "$includedir" = ""; then
1076   includedir='${prefix}/include'
1078 if test "$includedir" = "NONE"; then
1079   includedir='${prefix}/include'
1081 if test "$includedir" = '${prefix}/include'; then
1082   includedir='${prefix}/include'
1084 if test "$libdir" = ""; then
1085   libdir='${exec_prefix}/lib'
1087 if test "$libdir" = "NONE"; then
1088   libdir='${exec_prefix}/lib'
1090 if test "$libdir" = '${exec_prefix}/lib'; then
1091   libdir='${exec_prefix}/lib'
1093 if test "$bindir" = ""; then
1094   bindir='${exec_prefix}/bin'
1096 if test "$bindir" = "NONE"; then
1097   bindir=${exec_prefix}/bin
1099 if test "$bindir" = '${exec_prefix}/bin'; then
1100   bindir='${exec_prefix}/bin'
1102 if test "$datarootdir" = ""; then
1103   datarootdir='${prefix}/share'
1105 if test "$datarootdir" = "NONE"; then
1106   datarootdir='${prefix}/share'
1108 if test "$datarootdir" = '${prefix}/share'; then
1109   datarootdir='${prefix}/share'
1111 if test "$datadir" = ""; then
1112   datadir='${prefix}/share'
1114 if test "$datadir" = "NONE"; then
1115   datadir='${prefix}/share'
1117 if test "$datadir" = '${prefix}/share'; then
1118   datadir='${prefix}/share'
1120 if test "$mandir" = ""; then
1121   mandir='${datarootdir}/man'
1123 if test "$mandir" = "NONE"; then
1124   mandir='${datarootdir}/man'
1126 if test "$mandir" = '${datarootdir}/man'; then
1127   mandir='${datarootdir}/man'
1129 if test "$libexecdir" = ""; then
1130   libexecdir='${exec_prefix}/libexec'
1132 if test "$libexecdir" = "NONE"; then
1133   libexecdir='${exec_prefix}/libexec'
1135 if test "$libexecdir" = '${exec_prefix}/libexec'; then
1136   libexecdir='${exec_prefix}/libexec'
1139 curdir="`pwd`"
1140 tmorig=${curdir}
1141 tmdir=${PACKAGE}
1142 tmsrc=${curdir}/${tmdir}
1143 tmbin=${libexecdir}/${tmdir}
1144 tmdata=${datadir}/${tmdir}
1145 AC_SUBST(tmorig)
1146 AC_SUBST(tmdir)
1147 AC_SUBST(tmsrc)
1148 AC_SUBST(tmbin)
1149 AC_SUBST(tmdata)
1151 if test "$DEVEL_RELEASE" = "1"; then
1152   tmtgz=${PACKAGE}-${DEVEL_VERSION}
1153 else
1154   tmtgz=${PACKAGE}-${DEVEL_VERSION}-R${DEVEL_RELEASE}
1156 tmrpm=${PACKAGE}-${DEVEL_VERSION}-${DEVEL_RELEASE}
1157 if test "$STABLE_RELEASE" = "1"; then
1158   tmstgz=${PACKAGE}-${STABLE_VERSION}
1159 else
1160   tmstgz=${PACKAGE}-${STABLE_VERSION}-R${STABLE_RELEASE}
1162 tmsrpm=${PACKAGE}-${STABLE_VERSION}-${STABLE_RELEASE}
1163 if test "$WINDOWS_RELEASE" = "1"; then
1164   tmwin=wintexmacs-${WINDOWS_VERSION}
1165 else
1166   tmwin=wintexmacs-${WINDOWS_VERSION}-R${WINDOWS_RELEASE}
1168 AC_SUBST(tmtgz)
1169 AC_SUBST(tmrpm)
1170 AC_SUBST(tmstgz)
1171 AC_SUBST(tmsrpm)
1172 AC_SUBST(tmwin)
1174 #--------------------------------------------------------------------
1175 # Done
1176 #--------------------------------------------------------------------
1178 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 misc/bundle/Base.xcconfig:misc/bundle/Base.xcconfig.in)