1 dnl Process with autoconf to generate configure script -*- sh -*-
4 AC_PREREQ(2.13) dnl We want to use autoconf 2.13
5 AM_CONFIG_HEADER(src/config.h)
6 dnl This is a trick to make autoheader do the right thing
7 dnl AM_CONFIG_HEADER(src/config.h)
8 AC_CONFIG_AUX_DIR(config)
9 LYX_GET_VERSION(${srcdir}/src/version.h)
12 AC_VALIDATE_CACHE_SYSTEM_TYPE
15 [ --with-lyxname the name under which lyx will be installed],
16 [lyxname=$withval],[lyxname=lyx])
18 AM_INIT_AUTOMAKE($lyxname, $VERSION)
20 # The list of languages known to LyX
21 # This is needed by GNU gettext
22 ALL_LINGUAS="ca cs da de es eu fi fr he hu it nl no pl pt ro ru sl sv tr wa"
24 AC_PREFIX_PROGRAM(lyx)
26 # fix the value of the prefixes.
27 test "x$prefix" = xNONE && prefix=$ac_default_prefix
28 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
30 ### Set the execute permissions of the various scripts correctly
31 for file in config/install-sh config/mkinstalldirs lib/configure ; do
32 chmod 755 ${srcdir}/${file}
35 ### Check for programs
39 AC_CHECK_PROG(KPSEWHICH, kpsewhich, kpsewhich, :)
40 if test "x$KPSEWHICH" = xkpsewhich ; then
41 AC_DEFINE(HAVE_KPSEWHICH, 1,
42 [Define this if you have the kpsewhich program working on your system.])
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
61 ### Check for program extensions (.exe or nothing)
64 ### Check for a C++ compiler
72 ### Some checks on what the C++ compiler can(not) do
76 dnl we do not use stl stack, or at least not on gcc 2.7, which was the
77 dnl cause for this test.
83 dnl we disable rtti for now
85 AC_CHECK_HEADERS(ostream istream sstream)
86 LYX_CXX_STL_MODERN_STREAMS
88 ### We need a regex implementation, so we provide our own if none is found.
92 dnl by testing these we check if it is ok to have
93 dnl -lc and -lm as args to the compiler
95 AC_CHECK_LIB(c, fopen)
97 ### Add extra directories to check for libraries.
98 LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE)
99 LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir))
100 test ! x"$lyx_ldflags" = x && LDFLAGS="$lyx_ldflags $LDFLAGS"
102 ### Add extra directories to check for include files.
103 LYX_WITH_DIR([extra-inc],[extra include directory],extra_inc, NONE)
104 LYX_LOOP_DIR($lyx_cv_extra_inc,LYX_ADD_INC_DIR(lyx_cppflags,$dir))
105 test ! x"$lyx_cppflags" = x && CPPFLAGS="$lyx_cppflags $CPPFLAGS"
107 ### Add both includes and libraries
108 LYX_WITH_DIR([extra-prefix],[extra lib+include directory],extra_prefix, NONE, ${prefix})
109 LYX_LOOP_DIR($lyx_cv_extra_prefix,[
110 LYX_ADD_INC_DIR(CPPFLAGS,$dir/include)
111 LYX_ADD_LIB_DIR(LDFLAGS,$dir/lib)])
113 ### Check for the -liberty library
114 test "x$GXX" = xyes && lyx_use_liberty=yes
116 [ --without-liberty do not try to link against libiberty.a],
117 [lyx_use_liberty=$withval])
118 if test x$lyx_use_liberty = xyes; then
119 # AC_CHECK_LIB(iberty,main,LIBS="-liberty $LIBS")
120 AC_CHECK_LIB(iberty,main)
123 ### Check which libsigc++ we're using
126 ### Check for X libraries
127 # Check for the pt library (for SCO, needed for X)
128 AC_CHECK_LIB(pt,ptsname,X_EXTRA_LIBS="-lpt $X_EXTRA_LIBS")
131 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
132 # Since solaris X headers use int as implicit return type and modern
133 # gcc's do not like that, let's use -isystem instead of -I.
134 # We should test for gcc version and see whether it supports -isystem,
135 # but since at least gcc 2.6.x supports it and it is still too old for
136 # us, it seems we are safe.
137 if test -n "$GXX" ; then
138 X_CFLAGS=`echo ${X_CFLAGS} | sed -e 's/-I/-isystem /'`
140 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
142 ## Check whether X is new enough to handle the input method stuff
143 AC_CHECK_FUNCS(XOpenIM)
145 ### check which frontend we want to use
147 dnl The code below is not in a macro, because this would cause big
148 dnl problems with the AC_REQUIRE contained in KDE_DO_IT_ALL.
149 case "$lyx_use_frontend" in
153 FRONTEND_GUILIB="\${top_builddir}/src/frontends/kde/libkde.la"
154 FRONTEND_LDFLAGS="\$(QT_LDFLAGS) \$(KDE_LDFLAGS)"
155 FRONTEND_INCLUDES="\$(QT_INCLUDES) \$(KDE_INCLUDES)"
156 FRONTEND_LIBS="\$(KDE_LIBS)"
160 FRONTEND_GUILIB="\${top_builddir}/src/frontends/xforms/libxforms.la";;
162 LYX_ERROR(Unknown frontend $lyx_use_frontend);;
165 ### Check for xforms and xpm (only if X has been found).
166 if test "$have_x" = yes ; then
167 # We surely need these two libraries and want to check carefully the
174 [Cannot find X window libraries and/or headers. Check your installation.
175 If you use a Linux system, check that you have installed
176 the development tools.])
179 ### Setup GNU gettext
180 dnl GNUÂ gettext is written in C
182 # Some tests that may be useful for gettext
185 # Do the real setup now
187 # a hack for those who try to change LyX, but do not have gettext installed
188 case "${XGETTEXT}" in
189 *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
196 # some standard header files
199 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h)
201 # some annoying header files
202 #LYX_PATH_HEADER(stl_string_fwd.h)
205 # some standard structures
212 # some standard types
220 # some functions we'd like to have
221 AC_ARG_WITH(broken-headers,
222 [ --with-broken-headers define some functions on SunOS4 and SCO],
223 [lyx_broken_headers=$withval])
224 if test "x$lyx_broken_headers" = "xyes"; then
225 lyx_flags="$lyx_flags broken-headers"
226 AC_DEFINE(BROKEN_HEADERS, 1,
227 [Define on SunOS 4 and SCO, were some functions are missing from the headers])
229 AC_CHECK_FUNCS(memmove memset strchr putenv setenv mkfifo)
231 dnl Until this is fixed in autoconf we provide our own version
232 LYX_FUNC_SELECT_ARGTYPES
234 dnl check whether we have to work around solaris broken putenv()
235 LYX_FUNC_PUTENV_ARGTYPE
237 # SunOS 4.1.3 does not have strerror and atexit
238 AC_REPLACE_FUNCS(strerror atexit)
240 ### and now some special lyx flags.
241 AC_ARG_ENABLE(assertions,
242 [ --enable-assertions add runtime sanity checks in the program],,
243 [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
244 enable_assertions=yes;
246 enable_assertions=no;
248 if test "x$enable_assertions" = xyes ; then
249 lyx_flags="$lyx_flags assertions"
250 AC_DEFINE(ENABLE_ASSERTIONS,1,
251 [Define if you want assertions to be enabled in the code])
255 AC_CONFIG_SUBDIRS(sigc++ lib lib/reLyX)
256 AC_OUTPUT([Makefile \
257 development/lyx.spec \
262 src/mathed/Makefile \
263 src/insets/Makefile \
264 src/support/Makefile \
266 src/frontends/Makefile \
267 src/frontends/xforms/Makefile \
268 src/frontends/kde/Makefile \
269 ], [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
275 Source code location: ${srcdir}
277 C++ Compiler flags: ${CXXFLAGS}
279 C Compiler flags: ${CFLAGS}
280 LyX binary dir: `eval "echo \`eval \"echo ${bindir}\"\`"`
281 LyX files dir: `eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
282 Special flags: ${lyx_flags}
286 # Display a final warning if there has been a LYX_ERROR