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