]> git.lyx.org Git - lyx.git/blob - configure.in
- Backported the HTML export feature (Jean-Marc, can configure
[lyx.git] / configure.in
1 dnl Process with autoconf to generate configure script   -*- sh -*-
2
3 AC_INIT(src/lyx.C)
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)
10
11 AC_CANONICAL_SYSTEM
12 AC_VALIDATE_CACHE_SYSTEM_TYPE
13
14 AM_INIT_AUTOMAKE(lyx, $VERSION)
15
16 # The list of languages known to LyX
17 # This is needed by GNU gettext
18 ALL_LINGUAS="ca cs da de es fi fr hu it nl no pl pt ru sl sv tr wa"
19
20 AC_PREFIX_PROGRAM(lyx)
21
22 # fix the value of the prefixes.
23 test "x$prefix" = xNONE && prefix=$ac_default_prefix
24 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
25
26 ### Set the execute permissions of the various scripts correctly
27 for file in config/install-sh config/mkinstalldirs config/hack-gcc \
28             lib/configure ; do
29   chmod 755 ${srcdir}/${file}
30 done
31
32 ### Check for programs
33 AC_PROG_MAKE_SET
34 AC_PROG_INSTALL
35 AC_PROG_RANLIB
36 AC_CHECK_PROG(KPSEWHICH, kpsewhich, kpsewhich, :)
37 if test "x$KPSEWHICH" = xkpsewhich ; then
38     AC_DEFINE(HAVE_KPSEWHICH, 1,
39     [Define this if you have the kpsewhich program working on your system.])
40 fi
41
42 ### we will also need a C compiler to compile GNU gettext
43 AC_PROG_CC
44
45 ### check for special systems
46 AC_ISC_POSIX
47 AC_AIX
48 LYX_HPUX
49 LYX_SUNOS4
50 LYX_SCO
51
52 ### Check for program extensions (.exe or nothing)
53 AC_EXEEXT
54
55 ### Check for a C++ compiler
56 AC_LANG_CPLUSPLUS
57 LYX_PROG_CXX
58 AC_PROG_CXXCPP
59
60 ### check the size of pointers and ints
61 # the defaults are given for cross compilation.
62 LYX_CXX_MUTABLE
63 LYX_CXX_PARTIAL
64 LYX_CXX_EXPLICIT
65 LYX_CXX_STL_STACK
66 LYX_CXX_STL_STRING
67 LYX_CXX_NAMESPACES
68 LYX_CXX_RTTI
69
70 ### Libarary Files
71 dnl by testing these we check if it is ok to have
72 dnl -lc and -lm as args to the compiler
73 AC_CHECK_LIB(m, sin)
74 AC_CHECK_LIB(c, fopen)
75
76 # A hack to work around gcc compiler errors
77 AC_ARG_WITH(gcc-hack,[  --with-gcc-hack         add a wrapper around gcc])
78 if test "x$with_gcc_hack" = xyes ; then
79   CXX_COMMAND='${top_srcdir}/config/hack-gcc ${CXX}'
80   lyx_flags="$lyx_flags gcc-hack"
81 else
82   CXX_COMMAND='${CXX}'
83 fi
84 AC_SUBST(CXX_COMMAND)
85
86 ### Add extra directories to check for libraries.
87 LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE)
88 LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir))
89 test ! x"$lyx_ldflags" = x && LDFLAGS="$lyx_ldflags $LDFLAGS"
90
91 ### Add extra directories to check for include files.
92 LYX_WITH_DIR([extra-inc],[extra include directory],extra_inc, NONE)
93 LYX_LOOP_DIR($lyx_cv_extra_inc,LYX_ADD_INC_DIR(lyx_cppflags,$dir))
94 test ! x"$lyx_cppflags" = x && CPPFLAGS="$lyx_cppflags $CPPFLAGS"
95
96 ### Add both includes and libraries
97 LYX_WITH_DIR([extra-prefix],[extra lib+include directory],extra_prefix, NONE, ${prefix})
98 LYX_LOOP_DIR($lyx_cv_extra_prefix,[
99 LYX_ADD_INC_DIR(CPPFLAGS,$dir/include)
100   LYX_ADD_LIB_DIR(LDFLAGS,$dir/lib)])
101  
102 ### Check for the -liberty library
103 test "x$GXX" = xyes && lyx_use_liberty=yes
104 AC_ARG_WITH(liberty,
105   [  --without-liberty       do not try to link against libiberty.a],
106   [lyx_use_liberty=$withval])
107 if test x$lyx_use_liberty = xyes; then
108   # AC_CHECK_LIB(iberty,main,LIBS="-liberty $LIBS")
109   AC_CHECK_LIB(iberty,main)
110 fi
111
112 ### Check for X libraries
113 # Check for the pt library (for SCO, needed for X)
114 AC_CHECK_LIB(pt,ptsname,X_EXTRA_LIBS="-lpt $X_EXTRA_LIBS")
115 # The real thing.
116 AC_PATH_XTRA
117 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
118 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
119
120 ## Check whether X is new enough to handle the input method stuff
121 AC_CHECK_FUNC(XOpenIM)
122
123 ### Check for xforms and xpm (only if X has been found).
124 if test "$have_x" = yes ; then
125 # We surely need these two libraries and want to check carefully the
126 # version numbers... 
127 LYX_PATH_XPM
128 LYX_PATH_XFORMS
129 AC_SUBST(LYX_LIBS)
130 else
131 LYX_ERROR(dnl
132 [Cannot find X window libraries and/or headers. Check your installation. 
133    If you use a Linux system, check that you have installed 
134    the development tools.])
135 fi
136
137
138 ### Setup GNU gettext
139 dnl GNU gettext is written in C
140 AC_LANG_C
141 # Some tests that may be useful for gettext
142 AC_C_CONST
143 AC_C_INLINE
144 # Do the real setup now
145 AM_GNU_GETTEXT
146 # a hack for those who try to change LyX, but do not have gettext installed 
147 case  "${XGETTEXT}" in 
148  *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
149 esac
150
151 AC_SUBST(LINGUAS)
152
153 AC_LANG_CPLUSPLUS
154
155 # some standard header files
156 AC_HEADER_DIRENT
157 AC_HEADER_MAJOR
158 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h)
159
160 # some standard structures
161 AC_HEADER_STAT
162 AC_HEADER_TIME
163 AC_STRUCT_ST_BLKSIZE
164 AC_STRUCT_ST_BLOCKS
165 AC_STRUCT_ST_RDEV
166
167 # some standard types
168 AC_TYPE_MODE_T
169 AC_TYPE_OFF_T
170 AC_TYPE_PID_T
171 AC_TYPE_SIGNAL
172 AC_TYPE_SIZE_T
173 AC_TYPE_UID_T
174
175 # some functions we'd like to have
176 AC_ARG_WITH(broken-headers,
177     [  --with-broken-headers      define some functions on SunOS4 and SCO],
178     [lyx_broken_headers=$withval])
179 if test "x$lyx_broken_headers" = "xyes"; then
180   lyx_flags="$lyx_flags broken-headers"
181   AC_DEFINE(BROKEN_HEADERS, 1,
182     [Define on SunOS 4 and SCO, were some functions are missing from the headers])
183 fi
184 AC_CHECK_FUNCS(memmove memset strchr putenv setenv mkfifo)
185
186 dnl Until this is fixed in autoconf we provide our own version
187 LYX_FUNC_SELECT_ARGTYPES
188
189 # SunOS 4.1.3 does not have strerror and atexit
190 AC_REPLACE_FUNCS(strerror atexit)
191
192 dnl This check should be removed. If the compiler does not understand
193 dnl bool it is so broken that we should not support it. (Lgb)
194 dnl AC_CACHE_CHECK([for bool type],lyx_cv_have_bool,[
195 dnl AC_TRY_LINK(, [bool foo = true;], lyx_cv_have_bool=yes,lyx_cv_have_bool=no)])
196 dnl if test $lyx_cv_have_bool = 'yes' ; then
197 dnl    AC_DEFINE(HAVE_bool,1,
198 dnl  [Define if the bool type is known to your compiler])
199 dnl fi
200
201 ### and now some special lyx flags.
202 AC_ARG_WITH(two-colors,[  --with-two-colors       use two color pixmaps],
203   [AC_DEFINE(TWO_COLOR_ICONS)
204    lyx_flags="$lyx_flags two-colors"])
205 AC_ARG_WITH(debug,[  --with-debug            output debug information by default],
206   [AC_DEFINE(DEBUG_AS_DEFAULT,1,
207     [Define if you want debugging turned on as default.])
208    lyx_flags="$lyx_flags debug"])
209
210 ### Finish the work.
211 AC_CONFIG_SUBDIRS(lib lib/reLyX)
212 AC_OUTPUT([Makefile \
213        lib/Makefile \
214        intl/Makefile \
215        po/Makefile.in \
216        src/Makefile \
217        src/mathed/Makefile \
218        src/insets/Makefile \
219        src/support/Makefile \
220 ],  [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
221
222
223 cat <<EOF
224
225 Configuration:
226   Source code location:       ${srcdir}
227   C++ Compiler:                   ${CXX}
228   C++ Compiler flags:             ${CXXFLAGS}
229   C   Compiler:                   ${CC}
230   C   Compiler flags:             ${CFLAGS}
231   LyX binary dir:             `eval "echo \`eval \"echo ${bindir}\"\`"`
232   LyX files dir:              `eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
233   Special flags:              ${lyx_flags}
234
235 EOF
236
237 # Display a final warning if there has been a LYX_ERROR
238 LYX_CHECK_ERRORS
239