]> git.lyx.org Git - lyx.git/blob - config/configure.ac
the ios issue
[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 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 fi
124 AC_SUBST(AIKSAURUS_LIBS)
125
126 LYX_USE_INCLUDED_BOOST
127
128 ### Setup libtool
129 AC_DISABLE_SHARED
130 AC_LIBTOOL_WIN32_DLL
131 #AM_PROG_LIBTOOL
132 LYX_PROG_LIBTOOL
133
134 ### Check if we want spell libraries, prefer new aspell
135 CHECK_WITH_ASPELL
136 if test "$USING_ASPELL" != "yes"; then
137         CHECK_WITH_PSPELL
138 fi
139
140 ### Check for some Cygwin-specific details.
141 CHECK_WITH_CYGWIN
142
143 ### Check for X libraries
144 # The real thing.
145 AC_PATH_XTRA
146 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
147 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
148
149 ### check which frontend we want to use
150
151 # XForms tests
152 LYX_PATH_XPM
153 LYX_PATH_XFORMS
154 LYX_CHECK_XFORMS_IMAGE_LOADER
155 # QT tests
156 QT_DO_IT_ALL
157
158 #LYX_USE_FRONTEND
159 dnl The code below is not in a macro, because this would cause big
160 dnl problems with the AC_REQUIRE contained in KDE_DO_IT_ALL.
161 case "$lyx_use_frontend" in
162   xforms)
163         FRONTEND="xforms"
164         RPM_FRONTEND="xforms"
165         RPM_FRONTEND_DEPS='libforms >= 1.0'
166         FRONTEND_GUILIB="frontends/xforms/libxforms.la"
167         FRONTEND_INCLUDES="-I\$(srcdir)/xforms"
168         FRONTEND_INFO="    libXpm version:               ${XPM_VERSION}\n\
169     libforms version:             ${XFORMS_VERSION}\n"
170         ;;
171 dnl   gnome)
172 dnl     LYX_PATH_XPM
173 dnl     LYX_PATH_XFORMS
174 dnl     LYX_CHECK_XFORMS_IMAGE_LOADER
175 dnl     PKG_CHECK_MODULES(GNOME_FRONTEND, gtkmm-2.0 libglademm-2.0)
176 dnl     AC_SUBST(GNOME_FRONTEND_CFLAGS)
177 dnl     AC_SUBST(GNOME_FRONTEND_LIBS)
178
179 dnl     FRONTEND="xforms gnome"
180 dnl     FRONTEND_GUILIB="gnome/*.lo"
181 dnl     FRONTEND_LDFLAGS="${GNOME_FRONTEND_LIBS}"
182 dnl     FRONTEND_INCLUDES="-I\${srcdir}/gnome -I\${srcdir}/xforms ${GNOME_FRONTEND_CFLAGS} "
183 dnl     FRONTEND_LIBS="@XPM_LIB@ @XFORMS_LIB@ ${GNOME_FRONTEND_LIBS}"
184 dnl     ;;
185   qt)
186     RPM_FRONTEND="qt"
187     RPM_FRONTEND_DEPS='qt >= 2.2.1'
188     FRONTEND="qt2"
189     FRONTEND_GUILIB="frontends/qt2/libqt2.la"
190     FRONTEND_INCLUDES="-I\${srcdir}/qt2 \$(QT_INCLUDES)"
191     FRONTEND_INFO="    Qt version:                   ${QT_VERSION}\n"
192     ;;
193   *)
194     LYX_ERROR(Unknown frontend $lyx_use_frontend);;
195 esac
196
197 ### Check for xforms and xpm (only if X has been found).
198 if test "$have_x" = no ; then
199 LYX_ERROR(dnl
200 [Cannot find X window libraries and/or headers. Check your installation.
201    If you use a Linux system, check that you have installed
202    the development tools.])
203 fi
204
205 ### Setup GNU gettext
206 dnl GNU gettext is written in C
207 AC_LANG_PUSH(C)
208 # Some tests that may be useful for gettext
209 AC_C_CONST
210 AC_C_INLINE
211 # Do the real setup now
212 AM_GNU_GETTEXT
213 # a hack for those who try to change LyX, but do not have gettext installed
214 case  "${XGETTEXT}" in
215  *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
216 esac
217
218 AC_SUBST(LINGUAS)
219
220 AC_LANG_POP(C)
221
222 # some standard header files
223 AC_HEADER_DIRENT
224 AC_HEADER_MAJOR
225 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h)
226
227 # some standard structures
228 AC_HEADER_STAT
229 AC_HEADER_TIME
230
231 # some standard types
232 AC_TYPE_MODE_T
233 AC_TYPE_OFF_T
234 AC_TYPE_PID_T
235 AC_TYPE_SIGNAL
236 AC_TYPE_SIZE_T
237 AC_TYPE_UID_T
238
239 AC_CHECK_FUNCS(snprintf vsnprintf strerror)
240 LYX_CHECK_DECL(snprintf, stdio.h)
241 LYX_CHECK_DECL(vsnprintf, stdio.h)
242 LYX_CHECK_DECL(istreambuf_iterator, iterator)
243 LYX_CHECK_DECL(mkstemp,[unistd.h stdlib.h])
244
245 dnl This is a slight hack: the tests generated by autoconf 2.52 do not
246 dnl work correctly because of some conflict with stdlib.h with g++ 2.96
247 dnl We aim to remove this eventually, since we should test as much as
248 dnl possible with the compiler which will use the functions (JMarc)
249 AC_LANG_PUSH(C)
250 AC_CHECK_FUNCS(memmove memset strchr mkfifo mkstemp mktemp)
251 AC_LANG_POP(C)
252
253 AC_FUNC_SELECT_ARGTYPES
254
255 ### Some information on what just happened
256 real_bindir=`eval "echo \`eval \"echo ${bindir}\"\`"`
257 real_datadir=`eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
258 VERSION_INFO="Configuration\n\
259   Host type:                      ${host}\n\
260   Special build flags:           ${lyx_flags}\n\
261   C   Compiler:                   ${CC}\n\
262   C   Compiler flags:             ${CFLAGS}\n\
263   C++ Compiler:                   ${CXX} ${CXX_VERSION}\n\
264   C++ Compiler flags:             ${CXXFLAGS}\n\
265   Linker flags:                   ${LDFLAGS}\n\
266   Frontend:                       ${lyx_use_frontend}\n\
267 ${FRONTEND_INFO}\
268   LyX binary dir:                 ${real_bindir}\n\
269   LyX files dir:                  ${real_datadir}\n"
270
271
272 AC_SUBST(VERSION_INFO)
273 AC_SUBST(RPM_FRONTEND)
274 AC_SUBST(RPM_FRONTEND_DEPS)
275
276 ## Some config.h stuff
277
278 AH_TOP([
279 /* -*- C++ -*- */
280 /* This is the compilation configuration file for LyX. It was generated by
281    autoconfs configure. You might want to change some of the defaults if
282    something goes wrong during the compilation
283
284    * This file is part of
285    * ======================================================
286    *
287    *           LyX, the High Level Word Processor
288    *
289    *           Copyright 1995 Matthias Ettrich
290    *           Copyright 1995-2001 The LyX Team.
291    *
292    *======================================================*/
293
294 #ifndef _CONFIG_H
295 #define _CONFIG_H
296 ])
297
298 AH_BOTTOM([
299 /************************************************************
300  ** You should not need to change anything beyond this point */
301
302 #ifndef HAVE_STRCHR
303 # define strchr(a,b)    index(a,b)
304 #endif
305
306 #ifndef HAVE_MEMMOVE
307 # define memmove(a,b,c) bcopy(b,a,c)
308 #endif
309
310 #ifndef HAVE_STRERROR
311 #if defined(__cplusplus)
312 extern "C"
313 #endif
314 char * strerror(int n);
315 #endif
316
317 #ifdef BROKEN_HEADERS
318 #include "broken_headers.h"
319 #endif
320
321 #ifdef HAVE_MKSTEMP
322 #ifndef HAVE_DECL_MKSTEMP
323 #if defined(__cplusplus)
324 extern "C"
325 #endif
326 int mkstemp(char*);
327 #endif
328 #endif
329
330 #ifdef __EMX__
331 #include "support/os2_defines.h"
332 #endif
333
334 #if defined(__CYGWIN__) || defined(__CYGWIN32__)
335 #include "support/nt_defines.h"
336 #endif
337
338 #if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM)
339 #define USE_BOOST_FORMAT 1
340 #else
341 #define USE_BOOST_FORMAT 0
342 #endif
343
344 #define BOOST_DISABLE_THREADS 1
345 #define BOOST_NO_EXCEPTIONS 1
346 #define BOOST_NO_WREGEX 1
347 #define BOOST_NO_WSTRING 1
348
349 #endif
350 ])
351
352 ### Finish the work.
353 AC_CONFIG_SUBDIRS(lib lib/reLyX)
354 AC_CONFIG_FILES([Makefile \
355        boost/Makefile \
356        boost/libs/Makefile \
357        boost/libs/regex/Makefile \
358        boost/libs/regex/src/Makefile \
359        boost/libs/signals/Makefile \
360        boost/libs/signals/src/Makefile \
361        config/Makefile \
362        development/Makefile \
363        development/lyx.spec \
364        lib/Makefile \
365        intl/Makefile \
366        po/Makefile.in \
367        sourcedoc/Doxyfile \
368        sourcedoc/Makefile \
369        src/Makefile \
370        src/version.C \
371        src/tex2lyx/Makefile \
372        src/mathed/Makefile \
373        src/graphics/Makefile \
374        src/insets/Makefile \
375        src/support/Makefile \
376        src/frontends/Makefile \
377        src/frontends/controllers/Makefile \
378        src/frontends/xforms/Makefile \
379        src/frontends/xforms/lyx_forms.h \
380        src/frontends/xforms/lyx_xpm.h \
381        src/frontends/xforms/forms/Makefile \
382        src/frontends/qt2/Makefile \
383        src/frontends/qt2/moc/Makefile \
384        src/frontends/qt2/ui/Makefile \
385        src/frontends/qt2/ui/moc/Makefile \
386        src/frontends/gnome/Makefile \
387 ])
388
389 AC_OUTPUT
390 # show version information
391 echo
392 printf "$VERSION_INFO"
393 echo
394
395 # Display a final warning if there has been a LYX_ERROR
396 LYX_CHECK_ERRORS