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 which frontend we want to use
128 dnl The code below is not in a macro, because this would cause big
129 dnl problems with the AC_REQUIRE contained in KDE_DO_IT_ALL.
130 case "$lyx_use_frontend" in
134 FRONTEND_GUILIB="\${top_builddir}/src/frontends/kde/libkde.la"
135 FRONTEND_LDFLAGS="\$(QT_LDFLAGS) \$(KDE_LDFLAGS)"
136 FRONTEND_INCLUDES="\$(QT_INCLUDES) \$(KDE_INCLUDES)"
137 FRONTEND_LIBS="\$(KDE_LIBS)"
141 FRONTEND_GUILIB="\${top_builddir}/src/frontends/xforms/libxforms.la";;
143 LYX_ERROR(Unknown frontend $lyx_use_frontend);;
146 ### Check for X libraries
147 # Check for the pt library (for SCO, needed for X)
148 AC_CHECK_LIB(pt,ptsname,X_EXTRA_LIBS="-lpt $X_EXTRA_LIBS")
151 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
152 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
154 ## Check whether X is new enough to handle the input method stuff
155 AC_CHECK_FUNCS(XOpenIM)
157 ### Check for xforms and xpm (only if X has been found).
158 if test "$have_x" = yes ; then
159 # We surely need these two libraries and want to check carefully the
166 [Cannot find X window libraries and/or headers. Check your installation.
167 If you use a Linux system, check that you have installed
168 the development tools.])
171 ### Setup GNU gettext
172 dnl GNUÂ gettext is written in C
174 # Some tests that may be useful for gettext
177 # Do the real setup now
179 # a hack for those who try to change LyX, but do not have gettext installed
180 case "${XGETTEXT}" in
181 *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
188 # some standard header files
191 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h)
193 # some annoying header files
194 #LYX_PATH_HEADER(stl_string_fwd.h)
197 # some standard structures
204 # some standard types
212 # some functions we'd like to have
213 AC_ARG_WITH(broken-headers,
214 [ --with-broken-headers define some functions on SunOS4 and SCO],
215 [lyx_broken_headers=$withval])
216 if test "x$lyx_broken_headers" = "xyes"; then
217 lyx_flags="$lyx_flags broken-headers"
218 AC_DEFINE(BROKEN_HEADERS, 1,
219 [Define on SunOS 4 and SCO, were some functions are missing from the headers])
221 AC_CHECK_FUNCS(memmove memset strchr putenv setenv mkfifo)
223 dnl Until this is fixed in autoconf we provide our own version
224 LYX_FUNC_SELECT_ARGTYPES
226 dnl check whether we have to work around solaris broken putenv()
227 LYX_FUNC_PUTENV_ARGTYPE
229 # SunOS 4.1.3 does not have strerror and atexit
230 AC_REPLACE_FUNCS(strerror atexit)
232 ### and now some special lyx flags.
233 AC_ARG_WITH(two-colors,[ --with-two-colors use two color pixmaps],
234 [AC_DEFINE(TWO_COLOR_ICONS,1,
235 [You might want to define TWO_COLOR_ICONS if you want to spare
236 your colormap. This will use monochrome icons instead of colored ones.])
237 lyx_flags="$lyx_flags two-colors"])
238 AC_ARG_ENABLE(assertions,
239 [ --enable-assertions add runtime sanity checks in the program],,
240 [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
241 enable_assertions=yes;
243 enable_assertions=no;
245 if test "x$enable_assertions" = xyes ; then
246 lyx_flags="$lyx_flags assertions"
247 AC_DEFINE(ENABLE_ASSERTIONS,1,
248 [Define if you want assertions to be enabled in the code])
252 AC_CONFIG_SUBDIRS(lib lib/reLyX sigc++)
253 AC_OUTPUT([Makefile \
254 development/lyx.spec \
259 src/mathed/Makefile \
260 src/insets/Makefile \
261 src/support/Makefile \
263 src/frontends/Makefile \
264 src/frontends/xforms/Makefile \
265 src/frontends/kde/Makefile \
266 ], [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
272 Source code location: ${srcdir}
274 C++ Compiler flags: ${CXXFLAGS}
276 C Compiler flags: ${CFLAGS}
277 LyX binary dir: `eval "echo \`eval \"echo ${bindir}\"\`"`
278 LyX files dir: `eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
279 Special flags: ${lyx_flags}
283 # Display a final warning if there has been a LYX_ERROR