]> git.lyx.org Git - lyx.git/blob - config/configure.ac
Use PanelStack for the document dialog too
[lyx.git] / config / 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 AC_CANONICAL_TARGET
15
16 LYX_VERSION_SUFFIX
17
18 AM_INIT_AUTOMAKE($lyxname, $VERSION)
19
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"
23
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}'
27
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}
31 done
32
33 ### Check for programs
34 AC_PROG_MAKE_SET
35 AC_PROG_INSTALL
36 #AC_PROG_RANLIB
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.])
41 fi
42 AC_CHECK_PROGS(M4, gm4 gnum4 m4, m4)
43
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}'
49
50 ### we will also need a C compiler to compile GNU gettext
51 AC_PROG_CC
52
53 ### check for special systems
54 AC_ISC_POSIX
55 AC_AIX
56
57 ### check which frontend we want to use
58 LYX_USE_FRONTEND
59
60 ### Check for a C++ compiler
61 LYX_PROG_CXX
62 ### Some checks on what the C++ compiler can(not) do
63 AC_LANG(C++)
64 dnl we do not need that currently (and probably all our supported
65 dnl compiler allow that)
66 dnl LYX_CXX_PARTIAL
67 LYX_CXX_EXPLICIT
68 LYX_CXX_STL_STRING
69 LYX_CXX_GOOD_STD_STRING
70 LYX_CXX_CHEADERS
71 LYX_CXX_GLOBAL_CSTD
72 LYX_STD_COUNT
73 dnl we disable rtti for now
74 dnl LYX_CXX_RTTI
75 AC_CHECK_HEADERS(ostream istream sstream locale limits)
76 LYX_CXX_STL_MODERN_STREAMS
77
78 ### and now some special lyx flags.
79 AC_ARG_ENABLE(assertions,
80   [  --enable-assertions     add runtime sanity checks in the program],,
81   [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
82         enable_assertions=yes;
83     else
84         enable_assertions=no;
85     fi;])
86 if test "x$enable_assertions" = xyes ; then
87    lyx_flags="$lyx_flags assertions"
88    AC_DEFINE(ENABLE_ASSERTIONS,1,
89     [Define if you want assertions to be enabled in the code])
90 fi
91
92 ### Library Files
93 dnl by testing these we check if it is ok to have
94 dnl -lc and -lm as args to the compiler
95 AC_CHECK_LIB(m, sin)
96 AC_CHECK_LIB(c, fopen)
97
98 ### Add extra directories to check for libraries.
99 LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE)
100 LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir))
101 test ! x"$lyx_ldflags" = x && LDFLAGS="$lyx_ldflags $LDFLAGS"
102
103 ### Add extra directories to check for include files.
104 LYX_WITH_DIR([extra-inc],[extra include directory],extra_inc, NONE)
105 LYX_LOOP_DIR($lyx_cv_extra_inc,LYX_ADD_INC_DIR(lyx_cppflags,$dir))
106 test ! x"$lyx_cppflags" = x && CPPFLAGS="$lyx_cppflags $CPPFLAGS"
107
108 ### Add both includes and libraries
109 LYX_WITH_DIR([extra-prefix],[extra lib+include directory],extra_prefix, NONE, ${prefix})
110 LYX_LOOP_DIR($lyx_cv_extra_prefix,[
111 LYX_ADD_INC_DIR(CPPFLAGS,$dir/include)
112   LYX_ADD_LIB_DIR(LDFLAGS,$dir/lib)])
113
114 AC_ARG_WITH(aiksaurus,
115   [  --without-aiksaurus     do not use the Aiksaurus library],
116   [lyx_use_aiksaurus=$withval])
117 if test x$lyx_use_aiksaurus != xno; then
118 AC_CHECK_LIB(Aiksaurus, main,
119         [AC_DEFINE(HAVE_LIBAIKSAURUS,1,[Define this if you have the AikSaurus library])
120          AIKSAURUS_LIBS="-lAiksaurus -lbz2"
121         ],,"-lbz2")
122 fi
123 AC_SUBST(AIKSAURUS_LIBS)
124
125 ### Setup libtool
126 AC_DISABLE_SHARED
127 AC_LIBTOOL_WIN32_DLL
128 #AM_PROG_LIBTOOL
129 LYX_PROG_LIBTOOL
130
131 ### Check if we want spell libraries, prefer new aspell
132 CHECK_WITH_ASPELL
133 if test "$USING_ASPELL" != "yes"; then
134         CHECK_WITH_PSPELL
135 fi
136
137 ### Check for some Cygwin-specific details.
138 CHECK_WITH_CYGWIN
139
140 ### Check for X libraries
141 # The real thing.
142 AC_PATH_XTRA
143 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
144 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
145
146 ### check which frontend we want to use
147
148 #LYX_USE_FRONTEND
149 dnl The code below is not in a macro, because this would cause big
150 dnl problems with the AC_REQUIRE contained in KDE_DO_IT_ALL.
151 case "$lyx_use_frontend" in
152   xforms)
153         LYX_PATH_XPM
154         LYX_PATH_XFORMS
155         LYX_CHECK_XFORMS_IMAGE_LOADER
156         FRONTEND="xforms"
157         RPM_FRONTEND="xforms"
158         RPM_FRONTEND_DEPS='libforms >= 1.0'
159         FRONTEND_GUILIB="xforms/*.lo xforms/forms/*.lo"
160         FRONTEND_INCLUDES="-I\$(srcdir)/xforms"
161         FRONTEND_LIBS="@XFORMS_IMAGE_LIB@ @XFORMS_LIB@ @XPM_LIB@"
162         FRONTEND_INFO="    libXpm version:               ${XPM_VERSION}\n\
163     libforms version:             ${XFORMS_VERSION}\n"
164         ;;
165 dnl   gnome)
166 dnl     LYX_PATH_XPM
167 dnl     LYX_PATH_XFORMS
168 dnl     LYX_CHECK_XFORMS_IMAGE_LOADER
169 dnl     PKG_CHECK_MODULES(GNOME_FRONTEND, gtkmm-2.0 libglademm-2.0)
170 dnl     AC_SUBST(GNOME_FRONTEND_CFLAGS)
171 dnl     AC_SUBST(GNOME_FRONTEND_LIBS)
172
173 dnl     FRONTEND="xforms gnome"
174 dnl     FRONTEND_GUILIB="gnome/*.lo"
175 dnl     FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}"
176 dnl     FRONTEND_INCLUDES="-I\${srcdir}/gnome -I\${srcdir}/xforms ${GNOME_FRONTEND_CFLAGS} "
177 dnl     FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}"
178 dnl     ;;
179   qt)
180     QT_DO_IT_ALL
181     RPM_FRONTEND="qt"
182     RPM_FRONTEND_DEPS='qt >= 2.2.1'
183     FRONTEND="qt2"
184     FRONTEND_GUILIB="qt2/*.lo qt2/ui/*.lo qt2/moc/*.lo qt2/ui/moc/*.lo"
185     FRONTEND_LDFLAGS="\$(QT_LDFLAGS)"
186     FRONTEND_INCLUDES="-I\${srcdir}/qt2 \$(QT_INCLUDES)"
187     FRONTEND_LIBS="\$(QT_LIB)"
188     FRONTEND_INFO="    Qt version:                   ${QT_VERSION}\n"
189     ;;
190   *)
191     LYX_ERROR(Unknown frontend $lyx_use_frontend);;
192 esac
193
194 ### Check for xforms and xpm (only if X has been found).
195 if test "$have_x" = no ; then
196 LYX_ERROR(dnl
197 [Cannot find X window libraries and/or headers. Check your installation.
198    If you use a Linux system, check that you have installed
199    the development tools.])
200 fi
201
202 ### Setup GNU gettext
203 dnl GNU gettext is written in C
204 AC_LANG_PUSH(C)
205 # Some tests that may be useful for gettext
206 AC_C_CONST
207 AC_C_INLINE
208 # Do the real setup now
209 AM_GNU_GETTEXT
210 # a hack for those who try to change LyX, but do not have gettext installed
211 case  "${XGETTEXT}" in
212  *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
213 esac
214
215 AC_SUBST(LINGUAS)
216
217 AC_LANG_POP(C)
218
219 # some standard header files
220 AC_HEADER_DIRENT
221 AC_HEADER_MAJOR
222 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h)
223
224 # some standard structures
225 AC_HEADER_STAT
226 AC_HEADER_TIME
227
228 # some standard types
229 AC_TYPE_MODE_T
230 AC_TYPE_OFF_T
231 AC_TYPE_PID_T
232 AC_TYPE_SIGNAL
233 AC_TYPE_SIZE_T
234 AC_TYPE_UID_T
235
236 AC_CHECK_FUNCS(snprintf vsnprintf strerror)
237 LYX_CHECK_DECL(snprintf, stdio.h)
238 LYX_CHECK_DECL(vsnprintf, stdio.h)
239 LYX_CHECK_DECL(istreambuf_iterator, iterator)
240 LYX_CHECK_DECL(mkstemp,[unistd.h stdlib.h])
241
242 dnl This is a slight hack: the tests generated by autoconf 2.52 do not
243 dnl work correctly because of some conflict with stdlib.h with g++ 2.96
244 dnl We aim to remove this eventually, since we should test as much as
245 dnl possible with the compiler which will use the functions (JMarc)
246 AC_LANG_PUSH(C)
247 AC_CHECK_FUNCS(memmove memset strchr mkfifo mkstemp mktemp)
248 AC_LANG_POP(C)
249
250 AC_FUNC_SELECT_ARGTYPES
251
252 ### Some information on what just happened
253 real_bindir=`eval "echo \`eval \"echo ${bindir}\"\`"`
254 real_datadir=`eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
255 VERSION_INFO="Configuration\n\
256   Host type:                      ${host}\n\
257   Special build flags:           ${lyx_flags}\n\
258   C   Compiler:                   ${CC}\n\
259   C   Compiler flags:             ${CFLAGS}\n\
260   C++ Compiler:                   ${CXX} ${CXX_VERSION}\n\
261   C++ Compiler flags:             ${CXXFLAGS}\n\
262   Linker flags:                   ${LDFLAGS}\n\
263   Frontend:                       ${lyx_use_frontend}\n\
264 ${FRONTEND_INFO}\
265   LyX binary dir:                 ${real_bindir}\n\
266   LyX files dir:                  ${real_datadir}\n"
267
268
269 AC_SUBST(VERSION_INFO)
270 AC_SUBST(RPM_FRONTEND)
271 AC_SUBST(RPM_FRONTEND_DEPS)
272
273 ## Some config.h stuff
274
275 AH_TOP([
276 /* -*- C++ -*- */
277 /* This is the compilation configuration file for LyX. It was generated by
278    autoconfs configure. You might want to change some of the defaults if
279    something goes wrong during the compilation
280
281    * This file is part of
282    * ======================================================
283    *
284    *           LyX, the High Level Word Processor
285    *
286    *           Copyright 1995 Matthias Ettrich
287    *           Copyright 1995-2001 The LyX Team.
288    *
289    *======================================================*/
290
291 #ifndef _CONFIG_H
292 #define _CONFIG_H
293 ])
294
295 AH_BOTTOM([
296 /************************************************************
297  ** You should not need to change anything beyond this point */
298
299 #ifndef HAVE_STRCHR
300 # define strchr(a,b)    index(a,b)
301 #endif
302
303 #ifndef HAVE_MEMMOVE
304 # define memmove(a,b,c) bcopy(b,a,c)
305 #endif
306
307 #ifndef HAVE_STRERROR
308 #if defined(__cplusplus)
309 extern "C"
310 #endif
311 char * strerror(int n);
312 #endif
313
314 #ifdef BROKEN_HEADERS
315 #include "broken_headers.h"
316 #endif
317
318 #ifdef HAVE_MKSTEMP
319 #ifndef HAVE_DECL_MKSTEMP
320 #if defined(__cplusplus)
321 extern "C"
322 #endif
323 int mkstemp(char*);
324 #endif
325 #endif
326
327 #ifdef __EMX__
328 #include "support/os2_defines.h"
329 #endif
330
331 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
332 #include "support/nt_defines.h"
333 #endif
334
335 #if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM)
336 #define USE_BOOST_FORMAT 1
337 #else
338 #define USE_BOOST_FORMAT 0
339 #endif
340
341 #endif
342 ])
343
344 ### Finish the work.
345 AC_CONFIG_SUBDIRS(lib lib/reLyX)
346 AC_CONFIG_FILES([Makefile \
347        boost/Makefile \
348        boost/libs/Makefile \
349        boost/libs/regex/Makefile \
350        boost/libs/regex/src/Makefile \
351        boost/libs/signals/Makefile \
352        boost/libs/signals/src/Makefile \
353        config/Makefile \
354        development/Makefile \
355        development/lyx.spec \
356        lib/Makefile \
357        intl/Makefile \
358        po/Makefile.in \
359        sourcedoc/Doxyfile \
360        sourcedoc/Makefile \
361        src/Makefile \
362        src/version.C \
363        src/tex2lyx/Makefile \
364        src/mathed/Makefile \
365        src/graphics/Makefile \
366        src/insets/Makefile \
367        src/support/Makefile \
368        src/frontends/Makefile \
369        src/frontends/controllers/Makefile \
370        src/frontends/xforms/Makefile \
371        src/frontends/xforms/forms/Makefile \
372        src/frontends/qt2/Makefile \
373        src/frontends/qt2/moc/Makefile \
374        src/frontends/qt2/ui/Makefile \
375        src/frontends/qt2/ui/moc/Makefile \
376        src/frontends/gnome/Makefile \
377 ])
378
379 AC_OUTPUT
380 # show version information
381 echo
382 printf "$VERSION_INFO"
383 echo
384
385 # Display a final warning if there has been a LYX_ERROR
386 LYX_CHECK_ERRORS