]> git.lyx.org Git - lyx.git/blob - configure.in
f06dce6d43182d4aff1f427f8db77eea5dfc69be
[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_CHEADERS
69 LYX_CXX_RTTI
70
71 ### Libarary Files
72 dnl by testing these we check if it is ok to have
73 dnl -lc and -lm as args to the compiler
74 AC_CHECK_LIB(m, sin)
75 AC_CHECK_LIB(c, fopen)
76
77 # A hack to work around gcc compiler errors
78 AC_ARG_WITH(gcc-hack,[  --with-gcc-hack         add a wrapper around gcc])
79 if test "x$with_gcc_hack" = xyes ; then
80   CXX_COMMAND='${top_srcdir}/config/hack-gcc ${CXX}'
81   lyx_flags="$lyx_flags gcc-hack"
82 else
83   CXX_COMMAND='${CXX}'
84 fi
85 AC_SUBST(CXX_COMMAND)
86
87 ### Add extra directories to check for libraries.
88 LYX_WITH_DIR([extra-lib],[extra library directory],extra_lib, NONE)
89 LYX_LOOP_DIR($lyx_cv_extra_lib,LYX_ADD_LIB_DIR(lyx_ldflags,$dir))
90 test ! x"$lyx_ldflags" = x && LDFLAGS="$lyx_ldflags $LDFLAGS"
91
92 ### Add extra directories to check for include files.
93 LYX_WITH_DIR([extra-inc],[extra include directory],extra_inc, NONE)
94 LYX_LOOP_DIR($lyx_cv_extra_inc,LYX_ADD_INC_DIR(lyx_cppflags,$dir))
95 test ! x"$lyx_cppflags" = x && CPPFLAGS="$lyx_cppflags $CPPFLAGS"
96
97 ### Add both includes and libraries
98 LYX_WITH_DIR([extra-prefix],[extra lib+include directory],extra_prefix, NONE, ${prefix})
99 LYX_LOOP_DIR($lyx_cv_extra_prefix,[
100 LYX_ADD_INC_DIR(CPPFLAGS,$dir/include)
101   LYX_ADD_LIB_DIR(LDFLAGS,$dir/lib)])
102  
103 ### Check for the -liberty library
104 test "x$GXX" = xyes && lyx_use_liberty=yes
105 AC_ARG_WITH(liberty,
106   [  --without-liberty       do not try to link against libiberty.a],
107   [lyx_use_liberty=$withval])
108 if test x$lyx_use_liberty = xyes; then
109   # AC_CHECK_LIB(iberty,main,LIBS="-liberty $LIBS")
110   AC_CHECK_LIB(iberty,main)
111 fi
112
113 ### Check for X libraries
114 # Check for the pt library (for SCO, needed for X)
115 AC_CHECK_LIB(pt,ptsname,X_EXTRA_LIBS="-lpt $X_EXTRA_LIBS")
116 # The real thing.
117 AC_PATH_XTRA
118 LIBS="$X_PRE_LIBS $LIBS $X_LIBS -lX11 $X_EXTRA_LIBS"
119 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
120
121 ## Check whether X is new enough to handle the input method stuff
122 AC_CHECK_FUNC(XOpenIM)
123
124 ### Check for xforms and xpm (only if X has been found).
125 if test "$have_x" = yes ; then
126 # We surely need these two libraries and want to check carefully the
127 # version numbers... 
128 LYX_PATH_XPM
129 LYX_PATH_XFORMS
130 AC_SUBST(LYX_LIBS)
131 else
132 LYX_ERROR(dnl
133 [Cannot find X window libraries and/or headers. Check your installation. 
134    If you use a Linux system, check that you have installed 
135    the development tools.])
136 fi
137
138
139 ### Setup GNU gettext
140 dnl GNU gettext is written in C
141 AC_LANG_C
142 # Some tests that may be useful for gettext
143 AC_C_CONST
144 AC_C_INLINE
145 # Do the real setup now
146 AM_GNU_GETTEXT
147 # a hack for those who try to change LyX, but do not have gettext installed 
148 case  "${XGETTEXT}" in 
149  *:) XGETTEXT='cp ${srcdir}/lyx.pot ./${PACKAGE}.po ; :'
150 esac
151
152 AC_SUBST(LINGUAS)
153
154 AC_LANG_CPLUSPLUS
155
156 # some standard header files
157 AC_HEADER_DIRENT
158 AC_HEADER_MAJOR
159 AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h)
160
161 # some standard structures
162 AC_HEADER_STAT
163 AC_HEADER_TIME
164 AC_STRUCT_ST_BLKSIZE
165 AC_STRUCT_ST_BLOCKS
166 AC_STRUCT_ST_RDEV
167
168 # some standard types
169 AC_TYPE_MODE_T
170 AC_TYPE_OFF_T
171 AC_TYPE_PID_T
172 AC_TYPE_SIGNAL
173 AC_TYPE_SIZE_T
174 AC_TYPE_UID_T
175
176 # some functions we'd like to have
177 AC_ARG_WITH(broken-headers,
178     [  --with-broken-headers      define some functions on SunOS4 and SCO],
179     [lyx_broken_headers=$withval])
180 if test "x$lyx_broken_headers" = "xyes"; then
181   lyx_flags="$lyx_flags broken-headers"
182   AC_DEFINE(BROKEN_HEADERS, 1,
183     [Define on SunOS 4 and SCO, were some functions are missing from the headers])
184 fi
185 AC_CHECK_FUNCS(memmove memset strchr putenv setenv mkfifo)
186
187 dnl Until this is fixed in autoconf we provide our own version
188 LYX_FUNC_SELECT_ARGTYPES
189
190 # SunOS 4.1.3 does not have strerror and atexit
191 AC_REPLACE_FUNCS(strerror atexit)
192
193 dnl This check should be removed. If the compiler does not understand
194 dnl bool it is so broken that we should not support it. (Lgb)
195 dnl AC_CACHE_CHECK([for bool type],lyx_cv_have_bool,[
196 dnl AC_TRY_LINK(, [bool foo = true;], lyx_cv_have_bool=yes,lyx_cv_have_bool=no)])
197 dnl if test $lyx_cv_have_bool = 'yes' ; then
198 dnl    AC_DEFINE(HAVE_bool,1,
199 dnl  [Define if the bool type is known to your compiler])
200 dnl fi
201
202 ### and now some special lyx flags.
203 AC_ARG_WITH(two-colors,[  --with-two-colors       use two color pixmaps],
204   [AC_DEFINE(TWO_COLOR_ICONS)
205    lyx_flags="$lyx_flags two-colors"])
206 AC_ARG_WITH(debug,[  --with-debug            output debug information by default],
207   [AC_DEFINE(DEBUG_AS_DEFAULT,1,
208     [Define if you want debugging turned on as default.])
209    lyx_flags="$lyx_flags debug"])
210
211 ### Finish the work.
212 AC_CONFIG_SUBDIRS(lib lib/reLyX)
213 AC_OUTPUT([Makefile \
214        development/lyx.spec \
215        lib/Makefile \
216        intl/Makefile \
217        po/Makefile.in \
218        src/Makefile \
219        src/mathed/Makefile \
220        src/insets/Makefile \
221        src/support/Makefile \
222 ],  [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
223
224
225 cat <<EOF
226
227 Configuration:
228   Source code location:       ${srcdir}
229   C++ Compiler:                   ${CXX}
230   C++ Compiler flags:             ${CXXFLAGS}
231   C   Compiler:                   ${CC}
232   C   Compiler flags:             ${CFLAGS}
233   LyX binary dir:             `eval "echo \`eval \"echo ${bindir}\"\`"`
234   LyX files dir:              `eval "echo \`eval \"echo ${datadir}/${PACKAGE}\"\`"`
235   Special flags:              ${lyx_flags}
236
237 EOF
238
239 # Display a final warning if there has been a LYX_ERROR
240 LYX_CHECK_ERRORS
241