1 dnl Process with autoconf to generate configure script -*- sh -*-
3 AC_INIT(lyx,1.4.0cvs,lyx-devel@lists.lyx.org)
5 AC_CONFIG_SRCDIR(src/main.C)
6 AM_CONFIG_HEADER([src/config.h])
8 AC_CONFIG_AUX_DIR(config)
10 PACKAGE=lyx${program_suffix}
19 AM_INIT_AUTOMAKE($lyxname, $VERSION)
21 # The list of languages known to LyX
22 # This is needed by GNU gettext
23 ALL_LINGUAS="bg ca cs da de es eu fi fr he hu it nl nn no pl pt ro ru sk sl sv tr wa"
25 # fix the value of the prefixes.
26 test "x$prefix" = xNONE && prefix=$ac_default_prefix
27 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
29 ### Set the execute permissions of the various scripts correctly
30 for file in config/install-sh config/mkinstalldirs lib/configure ; do
31 chmod 755 ${srcdir}/${file}
34 ### Check for programs
38 AC_CHECK_PROG(KPSEWHICH, kpsewhich, kpsewhich, :)
39 if test "x$KPSEWHICH" = xkpsewhich ; then
40 AC_DEFINE(HAVE_KPSEWHICH, 1,
41 [Define this if you have the kpsewhich program working on your system.])
43 AC_CHECK_PROGS(M4, gm4 gnum4 m4, m4)
45 # Work around a problem in automake 1.4: when invoking install-strip,
46 # INSTALL_PROGRAM is changed to 'install -s', and since
47 # INSTALL_SCRIPT==INSTALL_PROGRAM, we get errors with fileutils-4.0
48 # which returns an error condition when stripping fails.
49 INSTALL_SCRIPT='${INSTALL}'
51 ### we will also need a C compiler to compile GNU gettext
54 ### check for special systems
58 ### check which frontend we want to use
61 ### Check for a C++ compiler
63 ### Some checks on what the C++ compiler can(not) do
65 dnl we do not need that currently (and probably all our supported
66 dnl compiler allow that)
70 LYX_CXX_GOOD_STD_STRING
74 dnl we disable rtti for now
76 AC_CHECK_HEADERS(ostream istream sstream locale limits ios)
77 LYX_CXX_STL_MODERN_STREAMS
79 ### and now some special lyx flags.
80 AC_ARG_ENABLE(assertions,
81 AC_HELP_STRING([--enable-assertions],[add runtime sanity checks in the program]),,
82 [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
83 enable_assertions=yes;
87 if test "x$enable_assertions" = xyes ; then
88 lyx_flags="$lyx_flags assertions"
89 AC_DEFINE(ENABLE_ASSERTIONS,1,
90 [Define if you want assertions to be enabled in the code])
94 dnl by testing these we check if it is ok to have
95 dnl -lc and -lm as args to the compiler
97 AC_CHECK_LIB(c, fopen)
99 ### Add extra directories to check for libraries.
100 LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE)
101 LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir))
102 test ! x"$lyx_ldflags" = x && LDFLAGS="$lyx_ldflags $LDFLAGS"
104 ### Add extra directories to check for include files.
105 LYX_WITH_DIR([extra-inc],[extra include directory],extra_inc, NONE)
106 LYX_LOOP_DIR($lyx_cv_extra_inc,LYX_ADD_INC_DIR(lyx_cppflags,$dir))
107 test ! x"$lyx_cppflags" = x && CPPFLAGS="$lyx_cppflags $CPPFLAGS"
109 ### Add both includes and libraries
110 LYX_WITH_DIR([extra-prefix],[extra lib+include directory],extra_prefix, NONE, ${prefix})
111 LYX_LOOP_DIR($lyx_cv_extra_prefix,[
112 LYX_ADD_INC_DIR(CPPFLAGS,$dir/include)
113 LYX_ADD_LIB_DIR(LDFLAGS,$dir/lib)])
115 AC_ARG_WITH(aiksaurus,
116 [ --without-aiksaurus do not use the Aiksaurus library],
117 [lyx_use_aiksaurus=$withval])
118 if test x$lyx_use_aiksaurus != xno; then
119 AC_CHECK_LIB(Aiksaurus, main,
120 [AC_DEFINE(HAVE_LIBAIKSAURUS,1,[Define this if you have the AikSaurus library])
121 AIKSAURUS_LIBS="-lAiksaurus -lbz2"
123 AC_CHECK_HEADER(Aiksaurus.h,[
124 ac_cv_header_aiksaurus_h=yes
125 lyx_cv_aiksaurus_h_location="<Aiksaurus.h>"])
126 AC_CHECK_HEADER(Aiksaurus/Aiksaurus.h,[
127 ac_cv_header_aiksaurus_h=yes
128 lyx_cv_aiksaurus_h_location="<Aiksaurus/Aiksaurus.h>"])
129 AC_DEFINE_UNQUOTED(AIKSAURUS_H_LOCATION,$lyx_cv_aiksaurus_h_location,[Location of Aiksaurus.h])
131 AC_SUBST(AIKSAURUS_LIBS)
133 LYX_USE_INCLUDED_BOOST
141 ### Check if we want spell libraries, prefer new aspell
143 if test "$USING_ASPELL" != "yes"; then
147 ### Check for some Cygwin-specific details.
150 ### Check for X libraries
153 yes) LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
154 CPPFLAGS="$CPPFLAGS $X_CFLAGS";;
156 [Cannot find X window libraries and/or headers. Check your installation.
157 If you use a Linux system, check that you have installed
158 the development tools.]);;
162 ### check which frontend we want to use
167 LYX_CHECK_XFORMS_IMAGE_LOADER
172 dnl The code below is not in a macro, because this would cause big
173 dnl problems with the AC_REQUIRE contained in KDE_DO_IT_ALL.
174 case "$lyx_use_frontend" in
177 RPM_FRONTEND="xforms"
178 RPM_FRONTEND_DEPS='libforms >= 1.0'
179 FRONTEND_GUILIB="frontends/xforms/libxforms.la"
180 FRONTEND_INFO=" libXpm version: ${XPM_VERSION}\n\
181 libforms version: ${XFORMS_VERSION}\n"
186 dnl LYX_CHECK_XFORMS_IMAGE_LOADER
187 dnl PKG_CHECK_MODULES(GNOME_FRONTEND, gtkmm-2.0 libglademm-2.0)
188 dnl AC_SUBST(GNOME_FRONTEND_CFLAGS)
189 dnl AC_SUBST(GNOME_FRONTEND_LIBS)
191 dnl FRONTEND="xforms gnome"
192 dnl FRONTEND_GUILIB="gnome/*.lo"
193 dnl FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}"
194 dnl FRONTEND_INCLUDES="${GNOME_FRONTEND_CFLAGS}"
195 dnl FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}"
199 RPM_FRONTEND_DEPS='qt >= 2.2.1'
201 FRONTEND_GUILIB="frontends/qt2/libqt2.la"
202 FRONTEND_INCLUDES="\$(QT_INCLUDES)"
203 FRONTEND_INFO=" Qt version: ${QT_VERSION}\n"
206 LYX_ERROR(Unknown frontend $lyx_use_frontend);;
209 ### Setup GNU gettext
210 dnl GNUÂ gettext is written in C
212 # Some tests that may be useful for gettext
215 # Do the real setup now
217 # a hack for those who try to change LyX, but do not have gettext installed
218 case "${XGETTEXT}" in
219 *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
226 # some standard header files
229 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h)
231 # some standard structures
235 # some standard types
243 AC_CHECK_FUNCS(snprintf vsnprintf strerror)
244 LYX_CHECK_DECL(snprintf, stdio.h)
245 LYX_CHECK_DECL(vsnprintf, stdio.h)
246 LYX_CHECK_DECL(istreambuf_iterator, iterator)
247 LYX_CHECK_DECL(mkstemp,[unistd.h stdlib.h])
249 AC_ARG_ENABLE(compression-support, AC_HELP_STRING([--enable-compression-support],[Support for compressed files.]),[
250 case "${enableval}" in
251 yes) use_compression=true ;;
252 no) use_compression=false ;;
253 *) AC_MSG_ERROR(bad value ${enableval} for --enable-compression-support) ;;
255 ],[use_compression=true])
256 if test $use_compression=true ; then
257 AC_CHECK_HEADERS(zlib.h, use_compression=true, use_compression=false)
258 AC_CHECK_LIB(z, gzopen,[use_compression=true;LIBS="$LIBS -lz"], use_compression=false)
259 if test $use_compression = true ; then
260 AC_DEFINE(USE_COMRESSION, 1, [Define as 1 if you want to supprot compressed files.])
261 lyx_flags="$lyx_flags compression"
264 AM_CONDITIONAL(USE_COMPRESSION, test x$use_compression = xtrue)
265 AC_MSG_CHECKING([whether to support compressed files])
266 AC_MSG_RESULT($use_compression)
269 dnl This is a slight hack: the tests generated by autoconf 2.52 do not
270 dnl work correctly because of some conflict with stdlib.h with g++ 2.96
271 dnl We aim to remove this eventually, since we should test as much as
272 dnl possible with the compiler which will use the functions (JMarc)
274 AC_CHECK_FUNCS(memmove memset strchr mkfifo mkstemp mktemp)
277 AC_FUNC_SELECT_ARGTYPES
279 ### Some information on what just happened
280 real_bindir=`eval "echo \`eval \"echo ${bindir}\"\`"`
281 real_datadir=`eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
282 VERSION_INFO="Configuration\n\
283 Host type: ${host}\n\
284 Special build flags: ${lyx_flags}\n\
286 C Compiler flags: ${CFLAGS}\n\
287 C++ Compiler: ${CXX} ${CXX_VERSION}\n\
288 C++ Compiler flags: ${CXXFLAGS}\n\
289 Linker flags: ${LDFLAGS}\n\
290 Frontend: ${lyx_use_frontend}\n\
292 LyX binary dir: ${real_bindir}\n\
293 LyX files dir: ${real_datadir}\n"
296 AC_SUBST(VERSION_INFO)
297 AC_SUBST(RPM_FRONTEND)
298 AC_SUBST(RPM_FRONTEND_DEPS)
300 ## Some config.h stuff
304 /* This is the compilation configuration file for LyX. It was generated by
305 autoconfs configure. You might want to change some of the defaults if
306 something goes wrong during the compilation
308 * This file is part of
309 * ======================================================
311 * LyX, the High Level Word Processor
313 * Copyright 1995 Matthias Ettrich
314 * Copyright 1995-2001 The LyX Team.
316 *======================================================*/
323 /************************************************************
324 ** You should not need to change anything beyond this point */
327 # define strchr(a,b) index(a,b)
331 # define memmove(a,b,c) bcopy(b,a,c)
334 #ifndef HAVE_STRERROR
335 #if defined(__cplusplus)
338 char * strerror(int n);
341 #ifdef BROKEN_HEADERS
342 #include "broken_headers.h"
346 #ifndef HAVE_DECL_MKSTEMP
347 #if defined(__cplusplus)
355 #include "support/os2_defines.h"
358 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
359 #include "support/nt_defines.h"
362 #if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM)
363 #define USE_BOOST_FORMAT 1
365 #define USE_BOOST_FORMAT 0
368 #define BOOST_DISABLE_THREADS 1
369 #define BOOST_NO_EXCEPTIONS 1
370 #define BOOST_NO_WREGEX 1
371 #define BOOST_NO_WSTRING 1
377 AC_CONFIG_SUBDIRS(lib lib/reLyX)
378 AC_CONFIG_FILES([Makefile \
380 boost/libs/Makefile \
381 boost/libs/regex/Makefile \
382 boost/libs/regex/src/Makefile \
383 boost/libs/signals/Makefile \
384 boost/libs/signals/src/Makefile \
386 development/Makefile \
387 development/lyx.spec \
395 src/tex2lyx/Makefile \
396 src/mathed/Makefile \
397 src/graphics/Makefile \
398 src/insets/Makefile \
399 src/support/Makefile \
400 src/frontends/Makefile \
401 src/frontends/controllers/Makefile \
402 src/frontends/xforms/Makefile \
403 src/frontends/xforms/lyx_forms.h \
404 src/frontends/xforms/lyx_xpm.h \
405 src/frontends/xforms/forms/Makefile \
406 src/frontends/qt2/Makefile \
407 src/frontends/qt2/moc/Makefile \
408 src/frontends/qt2/ui/Makefile \
409 src/frontends/qt2/ui/moc/Makefile \
410 src/frontends/gnome/Makefile \
414 # show version information
416 printf "$VERSION_INFO"
419 # Display a final warning if there has been a LYX_ERROR