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