1 dnl Process with autoconf to generate configure script -*- sh -*-
3 AC_INIT(lyx,1.3.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}
18 AM_INIT_AUTOMAKE($lyxname, $VERSION)
20 # The list of languages known to LyX
21 # This is needed by GNU gettext
22 ALL_LINGUAS="bg ca cs da de es eu fi fr he hu it nl no pl pt ro ru sk sl sv tr wa"
24 # fix the value of the prefixes.
25 test "x$prefix" = xNONE && prefix=$ac_default_prefix
26 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
28 ### Set the execute permissions of the various scripts correctly
29 for file in config/install-sh config/mkinstalldirs lib/configure ; do
30 chmod 755 ${srcdir}/${file}
33 ### Check for programs
37 AC_CHECK_PROG(KPSEWHICH, kpsewhich, kpsewhich, :)
38 if test "x$KPSEWHICH" = xkpsewhich ; then
39 AC_DEFINE(HAVE_KPSEWHICH, 1,
40 [Define this if you have the kpsewhich program working on your system.])
42 AC_CHECK_PROGS(M4, gm4 gnum4 m4, m4)
44 # Work around a problem in automake 1.4: when invoking install-strip,
45 # INSTALL_PROGRAM is changed to 'install -s', and since
46 # INSTALL_SCRIPT==INSTALL_PROGRAM, we get errors with fileutils-4.0
47 # which returns an error condition when stripping fails.
48 INSTALL_SCRIPT='${INSTALL}'
50 ### we will also need a C compiler to compile GNU gettext
53 ### check for special systems
57 ### check which frontend we want to use
60 #old gnome stuff removed by Michael Koziarski 25-05-2002
62 ### Check for a C++ compiler
64 ### Some checks on what the C++ compiler can(not) do
66 dnl we do not need that currently (and probably all our supported
67 dnl compiler allow that)
71 LYX_CXX_GOOD_STD_STRING
75 dnl we disable rtti for now
77 AC_CHECK_HEADERS(ostream istream sstream locale limits)
78 LYX_CXX_STL_MODERN_STREAMS
80 ### and now some special lyx flags.
81 AC_ARG_ENABLE(assertions,
82 [ --enable-assertions add runtime sanity checks in the program],,
83 [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
84 enable_assertions=yes;
88 if test "x$enable_assertions" = xyes ; then
89 lyx_flags="$lyx_flags assertions"
90 AC_DEFINE(ENABLE_ASSERTIONS,1,
91 [Define if you want assertions to be enabled in the code])
95 dnl by testing these we check if it is ok to have
96 dnl -lc and -lm as args to the compiler
98 AC_CHECK_LIB(c, fopen)
100 ### Add extra directories to check for libraries.
101 LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE)
102 LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir))
103 test ! x"$lyx_ldflags" = x && LDFLAGS="$lyx_ldflags $LDFLAGS"
105 ### Add extra directories to check for include files.
106 LYX_WITH_DIR([extra-inc],[extra include directory],extra_inc, NONE)
107 LYX_LOOP_DIR($lyx_cv_extra_inc,LYX_ADD_INC_DIR(lyx_cppflags,$dir))
108 test ! x"$lyx_cppflags" = x && CPPFLAGS="$lyx_cppflags $CPPFLAGS"
110 ### Add both includes and libraries
111 LYX_WITH_DIR([extra-prefix],[extra lib+include directory],extra_prefix, NONE, ${prefix})
112 LYX_LOOP_DIR($lyx_cv_extra_prefix,[
113 LYX_ADD_INC_DIR(CPPFLAGS,$dir/include)
114 LYX_ADD_LIB_DIR(LDFLAGS,$dir/lib)])
116 AC_ARG_WITH(aiksaurus,
117 [ --without-aiksaurus do not use the Aiksaurus library],
118 [lyx_use_aiksaurus=$withval])
119 if test x$lyx_use_aiksaurus != xno; then
120 AC_CHECK_LIB(Aiksaurus, main,
121 [AC_DEFINE(HAVE_LIBAIKSAURUS,1,[Define this if you have the AikSaurus library])
122 AIKSAURUS_LIBS="-lAiksaurus -lbz2"
125 AC_SUBST(AIKSAURUS_LIBS)
133 ### Check if we want pspell libraries
136 ### Check for X libraries
139 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
140 # Since solaris X headers use int as implicit return type and modern
141 # gcc's do not like that, let's use -isystem instead of -I.
142 # We should test for gcc version and see whether it supports -isystem,
143 # but since at least gcc 2.6.x supports it and it is still too old for
144 # us, it seems we are safe.
145 if test -n "$GXX" ; then
146 X_CFLAGS=`echo ${X_CFLAGS} | sed -e 's/-I/-isystem /'`
148 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
150 ## Check whether X is new enough to handle the input method stuff
151 AC_CHECK_FUNCS(XOpenIM)
153 ### check which frontend we want to use
156 dnl The code below is not in a macro, because this would cause big
157 dnl problems with the AC_REQUIRE contained in KDE_DO_IT_ALL.
158 case "$lyx_use_frontend" in
162 LYX_USE_XFORMS_IMAGE_LOADER
164 FRONTEND_GUILIB="xforms/*.lo xforms/forms/*.lo"
165 FRONTEND_INCLUDES="-I\$(srcdir)/xforms"
168 FRONTEND_LIBS="@XFORMS_LIB@ @XFORMS_IMAGE_LIB@ @XPM_LIB@"
171 FRONTEND_LIBS="@XFORMS_IMAGE_LIB@ @XFORMS_LIB@ @XPM_LIB@"
174 FRONTEND_INFO=" libXpm version: ${XPM_VERSION}\n\
175 libforms version: ${XFORMS_VERSION}\n"
180 LYX_USE_XFORMS_IMAGE_LOADER
181 PKG_CHECK_MODULES(GNOME_FRONTEND, gtkmm-2.0 libglademm-2.0)
182 AC_SUBST(GNOME_FRONTEND_CFLAGS)
183 AC_SUBST(GNOME_FRONTEND_LIBS)
185 FRONTEND="xforms gnome"
186 FRONTEND_GUILIB="gnome/*.lo"
187 FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}"
188 FRONTEND_INCLUDES="-I\${srcdir}/gnome -I\${srcdir}/xforms ${GNOME_FRONTEND_CFLAGS} "
189 FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}"
194 FRONTEND_GUILIB="qt2/*.lo qt2/ui/*.lo qt2/moc/*.lo qt2/ui/moc/*.lo"
195 FRONTEND_LDFLAGS="\$(QT_LDFLAGS)"
196 FRONTEND_INCLUDES="-I\${srcdir}/qt2 \$(QT_INCLUDES)"
197 FRONTEND_LIBS="\$(QT_LIB)"
198 FRONTEND_INFO=" Qt version: ${QT_VERSION}\n"
201 LYX_ERROR(Unknown frontend $lyx_use_frontend);;
204 # Do this here instead of in the LYX_USE_XFORMS_IMAGE_LOADER macro
205 AM_CONDITIONAL(USE_BASIC_IMAGE_LOADER,
206 test x$lyx_use_xforms_image_loader = xno)
208 ### Check for xforms and xpm (only if X has been found).
209 if test "$have_x" = no ; then
211 [Cannot find X window libraries and/or headers. Check your installation.
212 If you use a Linux system, check that you have installed
213 the development tools.])
216 ### Setup GNU gettext
217 dnl GNUÂ gettext is written in C
219 # Some tests that may be useful for gettext
222 # Do the real setup now
224 # a hack for those who try to change LyX, but do not have gettext installed
225 case "${XGETTEXT}" in
226 *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
233 # some standard header files
236 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h)
238 # some standard structures
242 # some standard types
250 AC_CHECK_FUNCS(snprintf vsnprintf)
251 LYX_CHECK_DECL(snprintf, stdio.h)
252 LYX_CHECK_DECL(vsnprintf, stdio.h)
253 LYX_CHECK_DECL(istreambuf_iterator, iterator)
255 dnl This is a slight hack: the tests generated by autoconf 2.52 do not
256 dnl work correctly because of some conflict with stdlib.h with g++ 2.96
257 dnl We aim to remove this eventually, since we should test as much as
258 dnl possible with the compiler which will use the functions (JMarc)
260 AC_CHECK_FUNCS(memmove memset strchr putenv setenv mkfifo mkstemp mktemp)
263 dnl Until this is fixed in autoconf we provide our own version
264 LYX_FUNC_SELECT_ARGTYPES
266 dnl check whether we have to work around solaris broken putenv()
267 LYX_FUNC_PUTENV_ARGTYPE
270 LYX_CHECK_DECL_HDRS(mkstemp,[unistd.h stdlib.h])
272 ### Some information on what just happened
273 real_bindir=`eval "echo \`eval \"echo ${bindir}\"\`"`
274 real_datadir=`eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
275 VERSION_INFO="Configuration\n\
276 Host type: ${host}\n\
277 Special build flags: ${lyx_flags}\n\
279 C Compiler flags: ${CFLAGS}\n\
280 C++ Compiler: ${CXX} ${CXX_VERSION}\n\
281 C++ Compiler flags: ${CXXFLAGS}\n\
282 Linker flags: ${LDFLAGS}\n\
283 Frontend: ${lyx_use_frontend}\n\
285 LyX binary dir: ${real_bindir}\n\
286 LyX files dir: ${real_datadir}\n"
289 AC_SUBST(VERSION_INFO)
291 ## Some config.h stuff
295 /* This is the compilation configuration file for LyX. It was generated by
296 autoconf's configure. You might want to change some of the defaults if
297 something goes wrong during the compilation
299 * This file is part of
300 * ======================================================
302 * LyX, the High Level Word Processor
304 * Copyright 1995 Matthias Ettrich
305 * Copyright 1995-2001 The LyX Team.
307 *======================================================*/
314 /************************************************************
315 ** You should not need to change anything beyond this point */
318 # define strchr(a,b) index(a,b)
322 # define memmove(a,b,c) bcopy(b,a,c)
325 #ifndef HAVE_STRERROR
326 #if defined(__cplusplus)
329 char * strerror(int n);
332 #ifdef BROKEN_HEADERS
333 #include "broken_headers.h"
337 #ifndef HAVE_DECL_MKSTEMP
338 #if defined(__cplusplus)
346 #include "support/os2_defines.h"
349 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
350 #include "support/nt_defines.h"
357 AC_CONFIG_SUBDIRS(lib lib/reLyX)
358 AC_CONFIG_FILES([Makefile \
360 boost/libs/Makefile \
361 boost/libs/regex/Makefile \
362 boost/libs/regex/src/Makefile \
363 boost/libs/signals/Makefile \
364 boost/libs/signals/src/Makefile \
366 development/lyx.spec \
373 src/mathed/Makefile \
374 src/graphics/Makefile \
375 src/insets/Makefile \
376 src/support/Makefile \
377 src/frontends/Makefile \
378 src/frontends/controllers/Makefile \
379 src/frontends/xforms/Makefile \
380 src/frontends/xforms/forms/Makefile \
381 src/frontends/qt2/Makefile \
382 src/frontends/qt2/moc/Makefile \
383 src/frontends/qt2/ui/Makefile \
384 src/frontends/qt2/ui/moc/Makefile \
385 src/frontends/gnome/Makefile \
388 # show version information
390 printf "$VERSION_INFO"
393 # Display a final warning if there has been a LYX_ERROR