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 fi fr 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 ### we will also need a C compiler to compile GNU gettext
48 ### check for special systems
55 ### Check for program extensions (.exe or nothing)
58 ### Check for a C++ compiler
66 ### Some checks on what the C++ compiler can(not) do
70 dnl we do not use stl stack, or at least not on gcc 2.7, which was the
71 dnl cause for this test.
77 dnl we disable rtti for now
79 AC_CHECK_HEADERS(ostream istream sstream)
80 LYX_CXX_STL_MODERN_STREAMS
82 ### We need a regex implementation, so we provide our own if none is found.
86 dnl by testing these we check if it is ok to have
87 dnl -lc and -lm as args to the compiler
89 AC_CHECK_LIB(c, fopen)
91 ### Add extra directories to check for libraries.
92 LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE)
93 LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir))
94 test ! x"$lyx_ldflags" = x && LDFLAGS="$lyx_ldflags $LDFLAGS"
96 ### Add extra directories to check for include files.
97 LYX_WITH_DIR([extra-inc],[extra include directory],extra_inc, NONE)
98 LYX_LOOP_DIR($lyx_cv_extra_inc,LYX_ADD_INC_DIR(lyx_cppflags,$dir))
99 test ! x"$lyx_cppflags" = x && CPPFLAGS="$lyx_cppflags $CPPFLAGS"
101 ### Add both includes and libraries
102 LYX_WITH_DIR([extra-prefix],[extra lib+include directory],extra_prefix, NONE, ${prefix})
103 LYX_LOOP_DIR($lyx_cv_extra_prefix,[
104 LYX_ADD_INC_DIR(CPPFLAGS,$dir/include)
105 LYX_ADD_LIB_DIR(LDFLAGS,$dir/lib)])
107 ### Check for the -liberty library
108 test "x$GXX" = xyes && lyx_use_liberty=yes
110 [ --without-liberty do not try to link against libiberty.a],
111 [lyx_use_liberty=$withval])
112 if test x$lyx_use_liberty = xyes; then
113 # AC_CHECK_LIB(iberty,main,LIBS="-liberty $LIBS")
114 AC_CHECK_LIB(iberty,main)
117 ### Check for X libraries
118 # Check for the pt library (for SCO, needed for X)
119 AC_CHECK_LIB(pt,ptsname,X_EXTRA_LIBS="-lpt $X_EXTRA_LIBS")
122 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
123 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
125 ## Check whether X is new enough to handle the input method stuff
126 AC_CHECK_FUNCS(XOpenIM)
128 ### Check for xforms and xpm (only if X has been found).
129 if test "$have_x" = yes ; then
130 # We surely need these two libraries and want to check carefully the
137 [Cannot find X window libraries and/or headers. Check your installation.
138 If you use a Linux system, check that you have installed
139 the development tools.])
142 ### Setup GNU gettext
143 dnl GNUÂ gettext is written in C
145 # Some tests that may be useful for gettext
148 # Do the real setup now
150 # a hack for those who try to change LyX, but do not have gettext installed
151 case "${XGETTEXT}" in
152 *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
159 # some standard header files
162 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h)
164 # some annoying header files
165 #LYX_PATH_HEADER(stl_string_fwd.h)
168 # some standard structures
175 # some standard types
183 # some functions we'd like to have
184 AC_ARG_WITH(broken-headers,
185 [ --with-broken-headers define some functions on SunOS4 and SCO],
186 [lyx_broken_headers=$withval])
187 if test "x$lyx_broken_headers" = "xyes"; then
188 lyx_flags="$lyx_flags broken-headers"
189 AC_DEFINE(BROKEN_HEADERS, 1,
190 [Define on SunOS 4 and SCO, were some functions are missing from the headers])
192 AC_CHECK_FUNCS(memmove memset strchr putenv setenv mkfifo)
194 dnl Until this is fixed in autoconf we provide our own version
195 LYX_FUNC_SELECT_ARGTYPES
197 dnl check whether we have to work around solaris broken putenv()
198 LYX_FUNC_PUTENV_ARGTYPE
200 # SunOS 4.1.3 does not have strerror and atexit
201 AC_REPLACE_FUNCS(strerror atexit)
203 ### and now some special lyx flags.
204 AC_ARG_WITH(two-colors,[ --with-two-colors use two color pixmaps],
205 [AC_DEFINE(TWO_COLOR_ICONS,1,
206 [You might want to define TWO_COLOR_ICONS if you want to spare
207 your colormap. This will use monochrome icons instead of colored ones.])
208 lyx_flags="$lyx_flags two-colors"])
209 AC_ARG_ENABLE(assertions,
210 [ --enable-assertions add runtime sanity checks in the program],,
211 [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
212 enable_assertions=yes;
214 enable_assertions=no;
216 if test "x$enable_assertions" = xyes ; then
217 lyx_flags="$lyx_flags assertions"
218 AC_DEFINE(ENABLE_ASSERTIONS,1,
219 [Define if you want assertions to be enabled in the code])
223 AC_CONFIG_SUBDIRS(lib lib/reLyX)
224 AC_OUTPUT([Makefile \
225 development/lyx.spec \
230 src/mathed/Makefile \
231 src/insets/Makefile \
232 src/support/Makefile \
233 ], [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
239 Source code location: ${srcdir}
241 C++ Compiler flags: ${CXXFLAGS}
243 C Compiler flags: ${CFLAGS}
244 LyX binary dir: `eval "echo \`eval \"echo ${bindir}\"\`"`
245 LyX files dir: `eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
246 Special flags: ${lyx_flags}
250 # Display a final warning if there has been a LYX_ERROR