]> git.lyx.org Git - lyx.git/blob - configure.ac
remove stuff from LyXText::checkParagraph() I don't understand
[lyx.git] / configure.ac
1 dnl Process with autoconf to generate configure script   -*- sh -*-
2
3 AC_INIT(lyx,1.4.0cvs,lyx-devel@lists.lyx.org)
4 AC_PREREQ(2.52)
5 AC_CONFIG_SRCDIR(src/main.C)
6 AM_CONFIG_HEADER([src/config.h])
7
8 AC_CONFIG_AUX_DIR(config)
9
10 PACKAGE=lyx${program_suffix}
11 VERSION="1.4.0cvs"
12 LYX_CHECK_VERSION
13
14 AM_MAINTAINER_MODE
15 AC_CANONICAL_TARGET
16
17 LYX_VERSION_SUFFIX
18
19 AM_INIT_AUTOMAKE($lyxname, $VERSION)
20
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"
24
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}'
28
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}
32 done
33
34 ### Check for programs
35 AC_PROG_MAKE_SET
36 AC_PROG_INSTALL
37 #AC_PROG_RANLIB
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.])
42 fi
43 AC_CHECK_PROGS(M4, gm4 gnum4 m4, m4)
44
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}'
50
51 ### we will also need a C compiler to compile GNU gettext
52 AC_PROG_CC
53
54 ### check for special systems
55 AC_ISC_POSIX
56 AC_AIX
57
58 ### check which frontend we want to use
59 LYX_USE_FRONTEND
60
61 ### Check for a C++ compiler
62 LYX_PROG_CXX
63 ### Some checks on what the C++ compiler can(not) do
64 AC_LANG(C++)
65 dnl we do not need that currently (and probably all our supported
66 dnl compiler allow that)
67 dnl LYX_CXX_PARTIAL
68 LYX_CXX_EXPLICIT
69 LYX_CXX_STL_STRING
70 LYX_CXX_GOOD_STD_STRING
71 LYX_CXX_CHEADERS
72 LYX_CXX_GLOBAL_CSTD
73 LYX_STD_COUNT
74 dnl we disable rtti for now
75 dnl LYX_CXX_RTTI
76 AC_CHECK_HEADERS(ostream istream sstream locale limits ios)
77 LYX_CXX_STL_MODERN_STREAMS
78
79 ### and now some special lyx flags.
80 AC_ARG_ENABLE(assertions,
81   [  --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;
84     else
85         enable_assertions=no;
86     fi;])
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])
91 fi
92
93 ### Library Files
94 dnl by testing these we check if it is ok to have
95 dnl -lc and -lm as args to the compiler
96 AC_CHECK_LIB(m, sin)
97 AC_CHECK_LIB(c, fopen)
98
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"
103
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"
108
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)])
114
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"
122         ],,"-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])
130 fi
131 AC_SUBST(AIKSAURUS_LIBS)
132
133 LYX_USE_INCLUDED_BOOST
134
135 ### Setup libtool
136 AC_DISABLE_SHARED
137 AC_LIBTOOL_WIN32_DLL
138 #AM_PROG_LIBTOOL
139 LYX_PROG_LIBTOOL
140
141 ### Check if we want spell libraries, prefer new aspell
142 CHECK_WITH_ASPELL
143 if test "$USING_ASPELL" != "yes"; then
144         CHECK_WITH_PSPELL
145 fi
146
147 ### Check for some Cygwin-specific details.
148 CHECK_WITH_CYGWIN
149
150 ### Check for X libraries
151 AC_PATH_XTRA
152 case $have_x in
153   yes) LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
154        CPPFLAGS="$CPPFLAGS $X_CFLAGS";;
155   no) LYX_ERROR(dnl
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.]);;
159   disable) ;;
160 esac
161
162 ### check which frontend we want to use
163
164 # XForms tests
165 LYX_PATH_XPM
166 LYX_PATH_XFORMS
167 LYX_CHECK_XFORMS_IMAGE_LOADER
168 # QT tests
169 QT_DO_IT_ALL
170
171 #LYX_USE_FRONTEND
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
175   xforms)
176         FRONTEND="xforms"
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"
182         ;;
183 dnl   gnome)
184 dnl     LYX_PATH_XPM
185 dnl     LYX_PATH_XFORMS
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)
190
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}"
196 dnl     ;;
197   qt)
198     RPM_FRONTEND="qt"
199     RPM_FRONTEND_DEPS='qt >= 2.2.1'
200     FRONTEND="qt2"
201     FRONTEND_GUILIB="frontends/qt2/libqt2.la"
202     FRONTEND_INCLUDES="\$(QT_INCLUDES)"
203     FRONTEND_INFO="    Qt version:                   ${QT_VERSION}\n"
204     ;;
205   *)
206     LYX_ERROR(Unknown frontend $lyx_use_frontend);;
207 esac
208
209 ### Setup GNU gettext
210 dnl GNU gettext is written in C
211 AC_LANG_PUSH(C)
212 # Some tests that may be useful for gettext
213 AC_C_CONST
214 AC_C_INLINE
215 # Do the real setup now
216 AM_GNU_GETTEXT
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 ; :'
220 esac
221
222 AC_SUBST(LINGUAS)
223
224 AC_LANG_POP(C)
225
226 # some standard header files
227 AC_HEADER_DIRENT
228 AC_HEADER_MAJOR
229 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h)
230
231 # some standard structures
232 AC_HEADER_STAT
233 AC_HEADER_TIME
234
235 # some standard types
236 AC_TYPE_MODE_T
237 AC_TYPE_OFF_T
238 AC_TYPE_PID_T
239 AC_TYPE_SIGNAL
240 AC_TYPE_SIZE_T
241 AC_TYPE_UID_T
242
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])
248
249 dnl This is a slight hack: the tests generated by autoconf 2.52 do not
250 dnl work correctly because of some conflict with stdlib.h with g++ 2.96
251 dnl We aim to remove this eventually, since we should test as much as
252 dnl possible with the compiler which will use the functions (JMarc)
253 AC_LANG_PUSH(C)
254 AC_CHECK_FUNCS(memmove memset strchr mkfifo mkstemp mktemp)
255 AC_LANG_POP(C)
256
257 AC_FUNC_SELECT_ARGTYPES
258
259 ### Some information on what just happened
260 real_bindir=`eval "echo \`eval \"echo ${bindir}\"\`"`
261 real_datadir=`eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
262 VERSION_INFO="Configuration\n\
263   Host type:                      ${host}\n\
264   Special build flags:           ${lyx_flags}\n\
265   C   Compiler:                   ${CC}\n\
266   C   Compiler flags:             ${CFLAGS}\n\
267   C++ Compiler:                   ${CXX} ${CXX_VERSION}\n\
268   C++ Compiler flags:             ${CXXFLAGS}\n\
269   Linker flags:                   ${LDFLAGS}\n\
270   Frontend:                       ${lyx_use_frontend}\n\
271 ${FRONTEND_INFO}\
272   LyX binary dir:                 ${real_bindir}\n\
273   LyX files dir:                  ${real_datadir}\n"
274
275
276 AC_SUBST(VERSION_INFO)
277 AC_SUBST(RPM_FRONTEND)
278 AC_SUBST(RPM_FRONTEND_DEPS)
279
280 ## Some config.h stuff
281
282 AH_TOP([
283 /* -*- C++ -*- */
284 /* This is the compilation configuration file for LyX. It was generated by
285    autoconfs configure. You might want to change some of the defaults if
286    something goes wrong during the compilation
287
288    * This file is part of
289    * ======================================================
290    *
291    *           LyX, the High Level Word Processor
292    *
293    *           Copyright 1995 Matthias Ettrich
294    *           Copyright 1995-2001 The LyX Team.
295    *
296    *======================================================*/
297
298 #ifndef _CONFIG_H
299 #define _CONFIG_H
300 ])
301
302 AH_BOTTOM([
303 /************************************************************
304  ** You should not need to change anything beyond this point */
305
306 #ifndef HAVE_STRCHR
307 # define strchr(a,b)    index(a,b)
308 #endif
309
310 #ifndef HAVE_MEMMOVE
311 # define memmove(a,b,c) bcopy(b,a,c)
312 #endif
313
314 #ifndef HAVE_STRERROR
315 #if defined(__cplusplus)
316 extern "C"
317 #endif
318 char * strerror(int n);
319 #endif
320
321 #ifdef BROKEN_HEADERS
322 #include "broken_headers.h"
323 #endif
324
325 #ifdef HAVE_MKSTEMP
326 #ifndef HAVE_DECL_MKSTEMP
327 #if defined(__cplusplus)
328 extern "C"
329 #endif
330 int mkstemp(char*);
331 #endif
332 #endif
333
334 #ifdef __EMX__
335 #include "support/os2_defines.h"
336 #endif
337
338 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
339 #include "support/nt_defines.h"
340 #endif
341
342 #if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM)
343 #define USE_BOOST_FORMAT 1
344 #else
345 #define USE_BOOST_FORMAT 0
346 #endif
347
348 #define BOOST_DISABLE_THREADS 1
349 #define BOOST_NO_EXCEPTIONS 1
350 #define BOOST_NO_WREGEX 1
351 #define BOOST_NO_WSTRING 1
352
353 #endif
354 ])
355
356 ### Finish the work.
357 AC_CONFIG_SUBDIRS(lib lib/reLyX)
358 AC_CONFIG_FILES([Makefile \
359        boost/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 \
365        config/Makefile \
366        development/Makefile \
367        development/lyx.spec \
368        lib/Makefile \
369        intl/Makefile \
370        po/Makefile.in \
371        sourcedoc/Doxyfile \
372        sourcedoc/Makefile \
373        src/Makefile \
374        src/version.C \
375        src/tex2lyx/Makefile \
376        src/mathed/Makefile \
377        src/graphics/Makefile \
378        src/insets/Makefile \
379        src/support/Makefile \
380        src/frontends/Makefile \
381        src/frontends/controllers/Makefile \
382        src/frontends/xforms/Makefile \
383        src/frontends/xforms/lyx_forms.h \
384        src/frontends/xforms/lyx_xpm.h \
385        src/frontends/xforms/forms/Makefile \
386        src/frontends/qt2/Makefile \
387        src/frontends/qt2/moc/Makefile \
388        src/frontends/qt2/ui/Makefile \
389        src/frontends/qt2/ui/moc/Makefile \
390        src/frontends/gnome/Makefile \
391 ])
392
393 AC_OUTPUT
394 # show version information
395 echo
396 printf "$VERSION_INFO"
397 echo
398
399 # Display a final warning if there has been a LYX_ERROR
400 LYX_CHECK_ERRORS