blob: b17353e2f164343c767ec31d5de0fa8a76d9748f [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001dnl configure.in: autoconf script for Vim
2
3dnl Process this file with autoconf 2.12 or 2.13 to produce "configure".
4dnl Should also work with autoconf 2.54 and later.
5
6AC_INIT(vim.h)
7AC_CONFIG_HEADER(auto/config.h:config.h.in)
8
9dnl Being able to run configure means the system is Unix (compatible).
10AC_DEFINE(UNIX)
11AC_PROG_MAKE_SET
12
13dnl Checks for programs.
14AC_PROG_CC dnl required by almost everything
15AC_PROG_CPP dnl required by header file checks
16AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
17AC_ISC_POSIX dnl required by AC_C_CROSS
18AC_PROG_AWK dnl required for "make html" in ../doc
19
20dnl Don't strip if we don't have it
21AC_CHECK_PROG(STRIP, strip, strip, :)
22
Bram Moolenaar325b7a22004-07-05 15:58:32 +000023dnl Check for extension of executables
Bram Moolenaar071d4272004-06-13 20:20:40 +000024AC_EXEEXT
25
Bram Moolenaar446cb832008-06-24 21:56:24 +000026dnl Check for standard headers. We don't use this in Vim but other stuff
27dnl in autoconf needs it, where it uses STDC_HEADERS.
28AC_HEADER_STDC
29AC_HEADER_SYS_WAIT
30
Bram Moolenaar071d4272004-06-13 20:20:40 +000031dnl Set default value for CFLAGS if none is defined or it's empty
32if test -z "$CFLAGS"; then
33 CFLAGS="-O"
34 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
35fi
36if test "$GCC" = yes; then
Bram Moolenaar910f66f2006-04-05 20:41:53 +000037 dnl method that should work for nearly all versions
38 gccversion=`"$CC" -dumpversion`
39 if test "x$gccversion" = "x"; then
40 dnl old method; fall-back for when -dumpversion doesn't work
41 gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
42 fi
Bram Moolenaara5792f52005-11-23 21:25:05 +000043 dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
44 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
Bram Moolenaare224ffa2006-03-01 00:01:28 +000045 echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
Bram Moolenaar071d4272004-06-13 20:20:40 +000046 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
47 else
48 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
49 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
50 CFLAGS="$CFLAGS -fno-strength-reduce"
51 fi
52 fi
53fi
54
Bram Moolenaar446cb832008-06-24 21:56:24 +000055dnl If configure thinks we are cross compiling, there might be something
56dnl wrong with the CC or CFLAGS settings, give a useful warning message
Bram Moolenaar071d4272004-06-13 20:20:40 +000057if test "$cross_compiling" = yes; then
Bram Moolenaar446cb832008-06-24 21:56:24 +000058 AC_MSG_RESULT([cannot compile a simple program; if not cross compiling check CC and CFLAGS])
Bram Moolenaar071d4272004-06-13 20:20:40 +000059fi
60
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +000061dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies.
62dnl But gcc 3.1 changed the meaning! See near the end.
Bram Moolenaar071d4272004-06-13 20:20:40 +000063test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
64
65if test -f ./toolcheck; then
66 AC_CHECKING(for buggy tools)
67 sh ./toolcheck 1>&AC_FD_MSG
68fi
69
70OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
71
72dnl Check for BeOS, which needs an extra source file
73AC_MSG_CHECKING(for BeOS)
74case `uname` in
75 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
76 BEOS=yes; AC_MSG_RESULT(yes);;
77 *) BEOS=no; AC_MSG_RESULT(no);;
78esac
79
80dnl If QNX is found, assume we don't want to use Xphoton
81dnl unless it was specifically asked for (--with-x)
82AC_MSG_CHECKING(for QNX)
83case `uname` in
84 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
85 test -z "$with_x" && with_x=no
86 QNX=yes; AC_MSG_RESULT(yes);;
87 *) QNX=no; AC_MSG_RESULT(no);;
88esac
89
90dnl Check for Darwin and MacOS X
91dnl We do a check for MacOS X in the very beginning because there
92dnl are a lot of other things we need to change besides GUI stuff
Bram Moolenaar071d4272004-06-13 20:20:40 +000093AC_MSG_CHECKING([for Darwin (Mac OS X)])
94if test "`(uname) 2>/dev/null`" = Darwin; then
95 AC_MSG_RESULT(yes)
96
97 AC_MSG_CHECKING(--disable-darwin argument)
98 AC_ARG_ENABLE(darwin,
99 [ --disable-darwin Disable Darwin (Mac OS X) support.],
100 , [enable_darwin="yes"])
101 if test "$enable_darwin" = "yes"; then
102 AC_MSG_RESULT(no)
103 AC_MSG_CHECKING(if Darwin files are there)
104 if test -f os_macosx.c; then
105 AC_MSG_RESULT(yes)
106 else
107 AC_MSG_RESULT([no, Darwin support disabled])
108 enable_darwin=no
109 fi
110 else
111 AC_MSG_RESULT([yes, Darwin support excluded])
112 fi
113
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000114 AC_MSG_CHECKING(--with-mac-arch argument)
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000115 AC_ARG_WITH(mac-arch, [ --with-mac-arch=ARCH current, intel, ppc or both],
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000116 MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000117 MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000118
119 if test "x$MACARCH" = "xboth"; then
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000120 AC_MSG_CHECKING(for 10.4 universal SDK)
121 dnl There is a terrible inconsistency (but we appear to get away with it):
122 dnl $CFLAGS uses the 10.4u SDK library for the headers, while $CPPFLAGS
123 dnl doesn't, because "gcc -E" doesn't grok it. That means the configure
124 dnl tests using the preprocessor are actually done with the wrong header
125 dnl files. $LDFLAGS is set at the end, because configure uses it together
126 dnl with $CFLAGS and we can only have one -sysroot argument.
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000127 save_cppflags="$CPPFLAGS"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000128 save_cflags="$CFLAGS"
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000129 save_ldflags="$LDFLAGS"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000130 CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000131 AC_TRY_LINK([ ], [ ],
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000132 AC_MSG_RESULT(found, will make universal binary),
133
134 AC_MSG_RESULT(not found)
Bram Moolenaar1f35bf92006-03-07 22:38:47 +0000135 CFLAGS="$save_cflags"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000136 AC_MSG_CHECKING(if Intel architecture is supported)
137 CPPFLAGS="$CPPFLAGS -arch i386"
138 LDFLAGS="$save_ldflags -arch i386"
139 AC_TRY_LINK([ ], [ ],
140 AC_MSG_RESULT(yes); MACARCH="intel",
141 AC_MSG_RESULT(no, using PowerPC)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000142 MACARCH="ppc"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000143 CPPFLAGS="$save_cppflags -arch ppc"
144 LDFLAGS="$save_ldflags -arch ppc"))
145 elif test "x$MACARCH" = "xintel"; then
146 CPPFLAGS="$CPPFLAGS -arch intel"
147 LDFLAGS="$LDFLAGS -arch intel"
Bram Moolenaare2f98b92006-03-29 21:18:24 +0000148 elif test "x$MACARCH" = "xppc"; then
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000149 CPPFLAGS="$CPPFLAGS -arch ppc"
150 LDFLAGS="$LDFLAGS -arch ppc"
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000151 fi
152
Bram Moolenaar071d4272004-06-13 20:20:40 +0000153 if test "$enable_darwin" = "yes"; then
154 MACOSX=yes
Bram Moolenaar3a025402008-07-24 15:20:50 +0000155 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000156 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
Bram Moolenaar32466aa2006-02-24 23:53:04 +0000157 dnl TODO: use -arch i386 on Intel machines
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000158 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
159 if test "x$MACARCH" = "xboth"; then
160 CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
161 else
162 CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
163 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000164
165 dnl If Carbon is found, assume we don't want X11
166 dnl unless it was specifically asked for (--with-x)
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000167 dnl or Motif, Athena or GTK GUI is used.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000168 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
169 if test "x$CARBON" = "xyes"; then
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000170 if test -z "$with_x" -a "X$enable_gui" != Xmotif -a "X$enable_gui" != Xathena -a "X$enable_gui" != Xgtk -a "X$enable_gui" != Xgtk2; then
Bram Moolenaar071d4272004-06-13 20:20:40 +0000171 with_x=no
Bram Moolenaar071d4272004-06-13 20:20:40 +0000172 fi
173 fi
174 fi
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000175
Bram Moolenaardb552d602006-03-23 22:59:57 +0000176 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
Bram Moolenaarfd2ac762006-03-01 22:09:21 +0000177 dnl free. This happens in expand_filename(), because the optimizer swaps
Bram Moolenaardb552d602006-03-23 22:59:57 +0000178 dnl two blocks of code, both using "repl", that can't be swapped.
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000179 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
180 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
181 fi
182
Bram Moolenaar071d4272004-06-13 20:20:40 +0000183else
184 AC_MSG_RESULT(no)
185fi
186
187AC_SUBST(OS_EXTRA_SRC)
188AC_SUBST(OS_EXTRA_OBJ)
189
190dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
191dnl Only when the directory exists and it wasn't there yet.
192dnl For gcc don't do this when it is already in the default search path.
Bram Moolenaar446cb832008-06-24 21:56:24 +0000193dnl Skip all of this when cross-compiling.
194if test "$cross_compiling" = no; then
Bram Moolenaarc236c162008-07-13 17:41:49 +0000195 AC_MSG_CHECKING(--with-local-dir argument)
Bram Moolenaar446cb832008-06-24 21:56:24 +0000196 have_local_include=''
197 have_local_lib=''
Bram Moolenaarc236c162008-07-13 17:41:49 +0000198 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
199 --without-local-dir do not search /usr/local for local libraries.], [
200 local_dir="$withval"
201 case "$withval" in
202 */*) ;;
203 no)
204 # avoid adding local dir to LDFLAGS and CPPFLAGS
205 have_local_dir=yes
206 have_local_lib=yes
207 ;;
208 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
209 esac
210 AC_MSG_RESULT($local_dir)
211 ], [
212 local_dir=/usr/local
213 AC_MSG_RESULT(Defaulting to $local_dir)
214 ])
215 if test "$GCC" = yes -a "$local_dir" != no; then
Bram Moolenaar446cb832008-06-24 21:56:24 +0000216 echo 'void f(){}' > conftest.c
217 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
Bram Moolenaarc236c162008-07-13 17:41:49 +0000218 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
219 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
Bram Moolenaar446cb832008-06-24 21:56:24 +0000220 rm -f conftest.c conftest.o
Bram Moolenaar071d4272004-06-13 20:20:40 +0000221 fi
Bram Moolenaarc236c162008-07-13 17:41:49 +0000222 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
223 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
Bram Moolenaar446cb832008-06-24 21:56:24 +0000224 if test "$tt" = "$LDFLAGS"; then
Bram Moolenaarc236c162008-07-13 17:41:49 +0000225 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
Bram Moolenaar446cb832008-06-24 21:56:24 +0000226 fi
227 fi
Bram Moolenaarc236c162008-07-13 17:41:49 +0000228 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
229 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
Bram Moolenaar446cb832008-06-24 21:56:24 +0000230 if test "$tt" = "$CPPFLAGS"; then
Bram Moolenaarc236c162008-07-13 17:41:49 +0000231 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
Bram Moolenaar446cb832008-06-24 21:56:24 +0000232 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000233 fi
234fi
235
236AC_MSG_CHECKING(--with-vim-name argument)
237AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
238 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
Bram Moolenaare344bea2005-09-01 20:46:49 +0000239 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000240AC_SUBST(VIMNAME)
241AC_MSG_CHECKING(--with-ex-name argument)
242AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
243 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
244 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
245AC_SUBST(EXNAME)
246AC_MSG_CHECKING(--with-view-name argument)
247AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
248 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
249 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
250AC_SUBST(VIEWNAME)
251
252AC_MSG_CHECKING(--with-global-runtime argument)
253AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
254 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
255 AC_MSG_RESULT(no))
256
257AC_MSG_CHECKING(--with-modified-by argument)
258AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
259 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
260 AC_MSG_RESULT(no))
261
262dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
263AC_MSG_CHECKING(if character set is EBCDIC)
264AC_TRY_COMPILE([ ],
265[ /* TryCompile function for CharSet.
266 Treat any failure as ASCII for compatibility with existing art.
267 Use compile-time rather than run-time tests for cross-compiler
268 tolerance. */
269#if '0'!=240
270make an error "Character set is not EBCDIC"
271#endif ],
272[ # TryCompile action if true
273cf_cv_ebcdic=yes ],
274[ # TryCompile action if false
275cf_cv_ebcdic=no])
276# end of TryCompile ])
277# end of CacheVal CvEbcdic
278AC_MSG_RESULT($cf_cv_ebcdic)
279case "$cf_cv_ebcdic" in #(vi
280 yes) AC_DEFINE(EBCDIC)
281 line_break='"\\n"'
282 ;;
283 *) line_break='"\\012"';;
284esac
285AC_SUBST(line_break)
286
287if test "$cf_cv_ebcdic" = "yes"; then
288dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
289AC_MSG_CHECKING(for OS/390 Unix)
290case `uname` in
291 OS/390) OS390Unix="yes";
292 dnl If using cc the environment variable _CC_CCMODE must be
293 dnl set to "1", so that some compiler extensions are enabled.
294 dnl If using c89 the environment variable is named _CC_C89MODE.
295 dnl Note: compile with c89 never tested.
296 if test "$CC" = "cc"; then
297 ccm="$_CC_CCMODE"
298 ccn="CC"
299 else
300 if test "$CC" = "c89"; then
301 ccm="$_CC_C89MODE"
302 ccn="C89"
303 else
304 ccm=1
305 fi
306 fi
307 if test "$ccm" != "1"; then
308 echo ""
309 echo "------------------------------------------"
310 echo " On OS/390 Unix, the environment variable"
311 echo " __CC_${ccn}MODE must be set to \"1\"!"
312 echo " Do:"
313 echo " export _CC_${ccn}MODE=1"
314 echo " and then call configure again."
315 echo "------------------------------------------"
316 exit 1
317 fi
318 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
319 AC_MSG_RESULT(yes)
320 ;;
321 *) OS390Unix="no";
322 AC_MSG_RESULT(no)
323 ;;
324esac
325fi
326
Bram Moolenaar588ebeb2008-05-07 17:09:24 +0000327dnl Link with -lselinux for SELinux stuff; if not found
328AC_MSG_CHECKING(--disable-selinux argument)
329AC_ARG_ENABLE(selinux,
330 [ --disable-selinux Don't check for SELinux support.],
331 , enable_selinux="yes")
332if test "$enable_selinux" = "yes"; then
333 AC_MSG_RESULT(no)
334 AC_CHECK_LIB(selinux, is_selinux_enabled,
335 [LIBS="$LIBS -lselinux"
336 AC_DEFINE(HAVE_SELINUX)])
337else
338 AC_MSG_RESULT(yes)
339fi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000340
341dnl Check user requested features.
342
343AC_MSG_CHECKING(--with-features argument)
344AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
345 features="$withval"; AC_MSG_RESULT($features),
346 features="normal"; AC_MSG_RESULT(Defaulting to normal))
347
348dovimdiff=""
349dogvimdiff=""
350case "$features" in
351 tiny) AC_DEFINE(FEAT_TINY) ;;
352 small) AC_DEFINE(FEAT_SMALL) ;;
353 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
354 dogvimdiff="installgvimdiff" ;;
355 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
356 dogvimdiff="installgvimdiff" ;;
357 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
358 dogvimdiff="installgvimdiff" ;;
359 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
360esac
361
362AC_SUBST(dovimdiff)
363AC_SUBST(dogvimdiff)
364
365AC_MSG_CHECKING(--with-compiledby argument)
366AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
367 compiledby="$withval"; AC_MSG_RESULT($withval),
368 compiledby=""; AC_MSG_RESULT(no))
369AC_SUBST(compiledby)
370
371AC_MSG_CHECKING(--disable-xsmp argument)
372AC_ARG_ENABLE(xsmp,
373 [ --disable-xsmp Disable XSMP session management],
374 , enable_xsmp="yes")
375
376if test "$enable_xsmp" = "yes"; then
377 AC_MSG_RESULT(no)
378 AC_MSG_CHECKING(--disable-xsmp-interact argument)
379 AC_ARG_ENABLE(xsmp-interact,
380 [ --disable-xsmp-interact Disable XSMP interaction],
381 , enable_xsmp_interact="yes")
382 if test "$enable_xsmp_interact" = "yes"; then
383 AC_MSG_RESULT(no)
384 AC_DEFINE(USE_XSMP_INTERACT)
385 else
386 AC_MSG_RESULT(yes)
387 fi
388else
389 AC_MSG_RESULT(yes)
390fi
391
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000392dnl Check for MzScheme feature.
393AC_MSG_CHECKING(--enable-mzschemeinterp argument)
394AC_ARG_ENABLE(mzschemeinterp,
395 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
396 [enable_mzschemeinterp="no"])
397AC_MSG_RESULT($enable_mzschemeinterp)
398
399if test "$enable_mzschemeinterp" = "yes"; then
400 dnl -- find the mzscheme executable
401 AC_SUBST(vi_cv_path_mzscheme)
402
403 AC_MSG_CHECKING(--with-plthome argument)
404 AC_ARG_WITH(plthome,
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000405 [ --with-plthome=PLTHOME Use PLTHOME.],
406 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000407 with_plthome="";AC_MSG_RESULT("no"))
408
409 if test "X$with_plthome" != "X"; then
410 vi_cv_path_mzscheme_pfx="$with_plthome"
411 else
412 AC_MSG_CHECKING(PLTHOME environment var)
413 if test "X$PLTHOME" != "X"; then
414 AC_MSG_RESULT("$PLTHOME")
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000415 vi_cv_path_mzscheme_pfx="$PLTHOME"
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000416 else
417 AC_MSG_RESULT("not set")
418 dnl -- try to find MzScheme executable
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000419 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000420
421 dnl resolve symbolic link, the executable is often elsewhere and there
422 dnl are no links for the include files.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000423 if test "X$vi_cv_path_mzscheme" != "X"; then
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000424 lsout=`ls -l $vi_cv_path_mzscheme`
425 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
426 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
427 fi
428 fi
429
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000430 if test "X$vi_cv_path_mzscheme" != "X"; then
431 dnl -- find where MzScheme thinks it was installed
432 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
433 [ vi_cv_path_mzscheme_pfx=`
434 ${vi_cv_path_mzscheme} -evm \
435 "(display (simplify-path \
436 (build-path (call-with-values \
437 (lambda () (split-path (find-system-path (quote exec-file)))) \
438 (lambda (base name must-be-dir?) base)) (quote up))))"` ])
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000439 dnl Remove a trailing slash.
440 vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'`
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000441 fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000442 fi
443 fi
444
Bram Moolenaard7afed32007-05-06 13:26:41 +0000445 SCHEME_INC=
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000446 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
447 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
448 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
449 AC_MSG_RESULT("yes")
450 else
451 AC_MSG_RESULT("no")
Bram Moolenaard7afed32007-05-06 13:26:41 +0000452 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/plt/include)
453 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
454 AC_MSG_RESULT("yes")
455 SCHEME_INC=/plt
456 else
457 AC_MSG_RESULT("no")
458 vi_cv_path_mzscheme_pfx=
459 fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000460 fi
461 fi
462
463 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
Bram Moolenaarf15f9432007-06-28 11:07:21 +0000464 if test "x$MACOSX" = "xyes"; then
465 MZSCHEME_LIBS="-framework PLT_MzScheme"
466 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
Bram Moolenaar9048f942007-05-12 14:32:25 +0000467 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000468 else
Bram Moolenaar9048f942007-05-12 14:32:25 +0000469 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000470 if test "$GCC" = yes; then
471 dnl Make Vim remember the path to the library. For when it's not in
472 dnl $LD_LIBRARY_PATH.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000473 MZSCHEME_LIBS="$MZSCHEME_LIBS -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
Bram Moolenaar21cf8232004-07-16 20:18:37 +0000474 elif test "`(uname) 2>/dev/null`" = SunOS &&
475 uname -r | grep '^5' >/dev/null; then
476 MZSCHEME_LIBS="$MZSCHEME_LIBS -R ${vi_cv_path_mzscheme_pfx}/lib"
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000477 fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000478 fi
Bram Moolenaard7afed32007-05-06 13:26:41 +0000479 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
480 SCHEME_COLLECTS=lib/plt/
481 fi
482 MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include${SCHEME_INC} \
483 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000484 MZSCHEME_SRC="if_mzsch.c"
485 MZSCHEME_OBJ="objects/if_mzsch.o"
486 MZSCHEME_PRO="if_mzsch.pro"
487 AC_DEFINE(FEAT_MZSCHEME)
488 fi
489 AC_SUBST(MZSCHEME_SRC)
490 AC_SUBST(MZSCHEME_OBJ)
491 AC_SUBST(MZSCHEME_PRO)
492 AC_SUBST(MZSCHEME_LIBS)
493 AC_SUBST(MZSCHEME_CFLAGS)
494fi
495
496
Bram Moolenaar071d4272004-06-13 20:20:40 +0000497AC_MSG_CHECKING(--enable-perlinterp argument)
498AC_ARG_ENABLE(perlinterp,
499 [ --enable-perlinterp Include Perl interpreter.], ,
500 [enable_perlinterp="no"])
501AC_MSG_RESULT($enable_perlinterp)
502if test "$enable_perlinterp" = "yes"; then
503 AC_SUBST(vi_cv_path_perl)
504 AC_PATH_PROG(vi_cv_path_perl, perl)
505 if test "X$vi_cv_path_perl" != "X"; then
506 AC_MSG_CHECKING(Perl version)
507 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
508 eval `$vi_cv_path_perl -V:usethreads`
509 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
510 badthreads=no
511 else
512 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
513 eval `$vi_cv_path_perl -V:use5005threads`
514 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
515 badthreads=no
516 else
517 badthreads=yes
518 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
519 fi
520 else
521 badthreads=yes
522 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
523 fi
524 fi
525 if test $badthreads = no; then
526 AC_MSG_RESULT(OK)
527 eval `$vi_cv_path_perl -V:shrpenv`
528 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
529 shrpenv=""
530 fi
531 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
532 AC_SUBST(vi_cv_perllib)
533 dnl Remove "-fno-something", it breaks using cproto.
534 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
535 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
536 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
537 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
538 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
539 -e 's/-bE:perl.exp//' -e 's/-lc //'`
540 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
541 dnl a test in configure may fail because of that.
542 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
543 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
544
545 dnl check that compiling a simple program still works with the flags
546 dnl added for Perl.
547 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
548 cflags_save=$CFLAGS
549 libs_save=$LIBS
550 ldflags_save=$LDFLAGS
551 CFLAGS="$CFLAGS $perlcppflags"
552 LIBS="$LIBS $perllibs"
553 LDFLAGS="$perlldflags $LDFLAGS"
554 AC_TRY_LINK(,[ ],
555 AC_MSG_RESULT(yes); perl_ok=yes,
556 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
557 CFLAGS=$cflags_save
558 LIBS=$libs_save
559 LDFLAGS=$ldflags_save
560 if test $perl_ok = yes; then
561 if test "X$perlcppflags" != "X"; then
Bram Moolenaard7afed32007-05-06 13:26:41 +0000562 dnl remove -pipe and -Wxxx, it confuses cproto
563 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
Bram Moolenaar071d4272004-06-13 20:20:40 +0000564 fi
565 if test "X$perlldflags" != "X"; then
566 LDFLAGS="$perlldflags $LDFLAGS"
567 fi
568 PERL_LIBS=$perllibs
569 PERL_SRC="auto/if_perl.c if_perlsfio.c"
570 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
571 PERL_PRO="if_perl.pro if_perlsfio.pro"
572 AC_DEFINE(FEAT_PERL)
573 fi
574 fi
575 else
576 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
577 fi
578 fi
579
580 if test "x$MACOSX" = "xyes"; then
Bram Moolenaar9372a112005-12-06 19:59:18 +0000581 dnl Mac OS X 10.2 or later
Bram Moolenaar071d4272004-06-13 20:20:40 +0000582 dir=/System/Library/Perl
583 darwindir=$dir/darwin
584 if test -d $darwindir; then
585 PERL=/usr/bin/perl
586 else
587 dnl Mac OS X 10.3
588 dir=/System/Library/Perl/5.8.1
589 darwindir=$dir/darwin-thread-multi-2level
590 if test -d $darwindir; then
591 PERL=/usr/bin/perl
592 fi
593 fi
594 if test -n "$PERL"; then
595 PERL_DIR="$dir"
596 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
597 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
598 PERL_LIBS="-L$darwindir/CORE -lperl"
599 fi
600 fi
601fi
602AC_SUBST(shrpenv)
603AC_SUBST(PERL_SRC)
604AC_SUBST(PERL_OBJ)
605AC_SUBST(PERL_PRO)
606AC_SUBST(PERL_CFLAGS)
607AC_SUBST(PERL_LIBS)
608
609AC_MSG_CHECKING(--enable-pythoninterp argument)
610AC_ARG_ENABLE(pythoninterp,
611 [ --enable-pythoninterp Include Python interpreter.], ,
612 [enable_pythoninterp="no"])
613AC_MSG_RESULT($enable_pythoninterp)
614if test "$enable_pythoninterp" = "yes"; then
615 dnl -- find the python executable
616 AC_PATH_PROG(vi_cv_path_python, python)
617 if test "X$vi_cv_path_python" != "X"; then
618
619 dnl -- get its version number
620 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
621 [[vi_cv_var_python_version=`
622 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
623 ]])
624
625 dnl -- it must be at least version 1.4
626 AC_MSG_CHECKING(Python is 1.4 or better)
627 if ${vi_cv_path_python} -c \
628 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
629 then
630 AC_MSG_RESULT(yep)
631
632 dnl -- find where python thinks it was installed
633 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
634 [ vi_cv_path_python_pfx=`
635 ${vi_cv_path_python} -c \
636 "import sys; print sys.prefix"` ])
637
638 dnl -- and where it thinks it runs
639 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
640 [ vi_cv_path_python_epfx=`
641 ${vi_cv_path_python} -c \
642 "import sys; print sys.exec_prefix"` ])
643
644 dnl -- python's internal library path
645
646 AC_CACHE_VAL(vi_cv_path_pythonpath,
647 [ vi_cv_path_pythonpath=`
648 unset PYTHONPATH;
649 ${vi_cv_path_python} -c \
650 "import sys, string; print string.join(sys.path,':')"` ])
651
652 dnl -- where the Python implementation library archives are
653
654 AC_ARG_WITH(python-config-dir,
655 [ --with-python-config-dir=PATH Python's config directory],
656 [ vi_cv_path_python_conf="${withval}" ] )
657
658 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
659 [
660 vi_cv_path_python_conf=
661 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
662 for subdir in lib share; do
663 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
664 if test -d "$d" && test -f "$d/config.c"; then
665 vi_cv_path_python_conf="$d"
666 fi
667 done
668 done
669 ])
670
671 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
672
673 if test "X$PYTHON_CONFDIR" = "X"; then
674 AC_MSG_RESULT([can't find it!])
675 else
676
677 dnl -- we need to examine Python's config/Makefile too
678 dnl see what the interpreter is built from
679 AC_CACHE_VAL(vi_cv_path_python_plibs,
680 [
Bram Moolenaar01dd60c2008-07-24 14:24:48 +0000681 pwd=`pwd`
682 tmp_mkf="$pwd/config-PyMake$$"
683 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000684__:
685 @echo "python_MODLIBS='$(MODLIBS)'"
686 @echo "python_LIBS='$(LIBS)'"
687 @echo "python_SYSLIBS='$(SYSLIBS)'"
688 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
689eof
690 dnl -- delete the lines from make about Entering/Leaving directory
Bram Moolenaar01dd60c2008-07-24 14:24:48 +0000691 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
692 rm -f -- "${tmp_mkf}"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000693 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
694 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
695 vi_cv_path_python_plibs="-framework Python"
696 else
697 if test "${vi_cv_var_python_version}" = "1.4"; then
698 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
699 else
700 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
701 fi
702 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
703 dnl remove -ltermcap, it can conflict with an earlier -lncurses
704 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
705 fi
706 ])
707
708 PYTHON_LIBS="${vi_cv_path_python_plibs}"
709 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
710 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
711 else
712 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
713 fi
714 PYTHON_SRC="if_python.c"
715 dnl For Mac OSX 10.2 config.o is included in the Python library.
716 if test "x$MACOSX" = "xyes"; then
717 PYTHON_OBJ="objects/if_python.o"
718 else
719 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
720 fi
721 if test "${vi_cv_var_python_version}" = "1.4"; then
722 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
723 fi
724 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
725
726 dnl On FreeBSD linking with "-pthread" is required to use threads.
727 dnl _THREAD_SAFE must be used for compiling then.
728 dnl The "-pthread" is added to $LIBS, so that the following check for
729 dnl sigaltstack() will look in libc_r (it's there in libc!).
730 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
731 dnl will then define target-specific defines, e.g., -D_REENTRANT.
732 dnl Don't do this for Mac OSX, -pthread will generate a warning.
733 AC_MSG_CHECKING([if -pthread should be used])
734 threadsafe_flag=
735 thread_lib=
Bram Moolenaara1b5aa52006-10-10 09:41:28 +0000736 dnl if test "x$MACOSX" != "xyes"; then
737 if test "`(uname) 2>/dev/null`" != Darwin; then
Bram Moolenaar071d4272004-06-13 20:20:40 +0000738 test "$GCC" = yes && threadsafe_flag="-pthread"
739 if test "`(uname) 2>/dev/null`" = FreeBSD; then
740 threadsafe_flag="-D_THREAD_SAFE"
741 thread_lib="-pthread"
742 fi
743 fi
744 libs_save_old=$LIBS
745 if test -n "$threadsafe_flag"; then
746 cflags_save=$CFLAGS
747 CFLAGS="$CFLAGS $threadsafe_flag"
748 LIBS="$LIBS $thread_lib"
749 AC_TRY_LINK(,[ ],
750 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
751 AC_MSG_RESULT(no); LIBS=$libs_save_old
752 )
753 CFLAGS=$cflags_save
754 else
755 AC_MSG_RESULT(no)
756 fi
757
758 dnl check that compiling a simple program still works with the flags
759 dnl added for Python.
760 AC_MSG_CHECKING([if compile and link flags for Python are sane])
761 cflags_save=$CFLAGS
762 libs_save=$LIBS
763 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
764 LIBS="$LIBS $PYTHON_LIBS"
765 AC_TRY_LINK(,[ ],
766 AC_MSG_RESULT(yes); python_ok=yes,
767 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
768 CFLAGS=$cflags_save
769 LIBS=$libs_save
770 if test $python_ok = yes; then
771 AC_DEFINE(FEAT_PYTHON)
772 else
773 LIBS=$libs_save_old
774 PYTHON_SRC=
775 PYTHON_OBJ=
776 PYTHON_LIBS=
777 PYTHON_CFLAGS=
778 fi
779
780 fi
781 else
782 AC_MSG_RESULT(too old)
783 fi
784 fi
785fi
786AC_SUBST(PYTHON_CONFDIR)
787AC_SUBST(PYTHON_LIBS)
788AC_SUBST(PYTHON_GETPATH_CFLAGS)
789AC_SUBST(PYTHON_CFLAGS)
790AC_SUBST(PYTHON_SRC)
791AC_SUBST(PYTHON_OBJ)
792
793AC_MSG_CHECKING(--enable-tclinterp argument)
794AC_ARG_ENABLE(tclinterp,
795 [ --enable-tclinterp Include Tcl interpreter.], ,
796 [enable_tclinterp="no"])
797AC_MSG_RESULT($enable_tclinterp)
798
799if test "$enable_tclinterp" = "yes"; then
800
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000801 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
Bram Moolenaar071d4272004-06-13 20:20:40 +0000802 AC_MSG_CHECKING(--with-tclsh argument)
803 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
804 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000805 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000806 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
807 AC_SUBST(vi_cv_path_tcl)
808
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000809 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
810 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
811 tclsh_name="tclsh8.4"
812 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
813 fi
Bram Moolenaardf3267e2005-01-25 22:07:05 +0000814 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
Bram Moolenaar071d4272004-06-13 20:20:40 +0000815 tclsh_name="tclsh8.2"
816 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
817 fi
Bram Moolenaardf3267e2005-01-25 22:07:05 +0000818 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
819 tclsh_name="tclsh8.0"
820 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
821 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000822 dnl still didn't find it, try without version number
823 if test "X$vi_cv_path_tcl" = "X"; then
824 tclsh_name="tclsh"
825 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
826 fi
827 if test "X$vi_cv_path_tcl" != "X"; then
828 AC_MSG_CHECKING(Tcl version)
829 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
830 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
831 AC_MSG_RESULT($tclver - OK);
832 tclloc=`echo 'set l [[info library]];set i [[string last lib $l]];incr i -2;puts [[string range $l 0 $i]]' | $vi_cv_path_tcl -`
833
834 AC_MSG_CHECKING(for location of Tcl include)
835 if test "x$MACOSX" != "xyes"; then
Bram Moolenaar0ff8f602008-02-20 11:44:03 +0000836 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000837 else
838 dnl For Mac OS X 10.3, use the OS-provided framework location
839 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
840 fi
Bram Moolenaar0ff8f602008-02-20 11:44:03 +0000841 TCL_INC=
Bram Moolenaar071d4272004-06-13 20:20:40 +0000842 for try in $tclinc; do
843 if test -f "$try/tcl.h"; then
844 AC_MSG_RESULT($try/tcl.h)
845 TCL_INC=$try
846 break
847 fi
848 done
849 if test -z "$TCL_INC"; then
850 AC_MSG_RESULT(<not found>)
851 SKIP_TCL=YES
852 fi
853 if test -z "$SKIP_TCL"; then
854 AC_MSG_CHECKING(for location of tclConfig.sh script)
855 if test "x$MACOSX" != "xyes"; then
856 tclcnf=`echo $tclinc | sed s/include/lib/g`
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000857 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000858 else
859 dnl For Mac OS X 10.3, use the OS-provided framework location
860 tclcnf="/System/Library/Frameworks/Tcl.framework"
861 fi
862 for try in $tclcnf; do
863 if test -f $try/tclConfig.sh; then
864 AC_MSG_RESULT($try/tclConfig.sh)
865 . $try/tclConfig.sh
866 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
867 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
868 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
Bram Moolenaardf3267e2005-01-25 22:07:05 +0000869 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
Bram Moolenaar4394bff2008-07-24 11:21:31 +0000870 TCL_DEFS=`echo $TCL_DEFS | sed -e 's/\\\\ /\\\\X/g' | tr ' ' '\012' | sed -e '/^[[^-]]/d' -e '/^-[[^D]]/d' -e '/-D[[^_]]/d' -e 's/-D_/ -D_/' | tr '\012' ' ' | sed -e 's/\\\\X/\\\\ /g'`
Bram Moolenaar071d4272004-06-13 20:20:40 +0000871 break
872 fi
873 done
874 if test -z "$TCL_LIBS"; then
875 AC_MSG_RESULT(<not found>)
876 AC_MSG_CHECKING(for Tcl library by myself)
877 tcllib=`echo $tclinc | sed s/include/lib/g`
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000878 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000879 for ext in .so .a ; do
880 for ver in "" $tclver ; do
881 for try in $tcllib ; do
882 trylib=tcl$ver$ext
883 if test -f $try/lib$trylib ; then
884 AC_MSG_RESULT($try/lib$trylib)
885 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
886 if test "`(uname) 2>/dev/null`" = SunOS &&
887 uname -r | grep '^5' >/dev/null; then
888 TCL_LIBS="$TCL_LIBS -R $try"
889 fi
890 break 3
891 fi
892 done
893 done
894 done
895 if test -z "$TCL_LIBS"; then
896 AC_MSG_RESULT(<not found>)
897 SKIP_TCL=YES
898 fi
899 fi
900 if test -z "$SKIP_TCL"; then
901 AC_DEFINE(FEAT_TCL)
902 TCL_SRC=if_tcl.c
903 TCL_OBJ=objects/if_tcl.o
904 TCL_PRO=if_tcl.pro
905 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
906 fi
907 fi
908 else
909 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
910 fi
911 fi
912fi
913AC_SUBST(TCL_SRC)
914AC_SUBST(TCL_OBJ)
915AC_SUBST(TCL_PRO)
916AC_SUBST(TCL_CFLAGS)
917AC_SUBST(TCL_LIBS)
918
919AC_MSG_CHECKING(--enable-rubyinterp argument)
920AC_ARG_ENABLE(rubyinterp,
921 [ --enable-rubyinterp Include Ruby interpreter.], ,
922 [enable_rubyinterp="no"])
923AC_MSG_RESULT($enable_rubyinterp)
924if test "$enable_rubyinterp" = "yes"; then
925 AC_SUBST(vi_cv_path_ruby)
926 AC_PATH_PROG(vi_cv_path_ruby, ruby)
927 if test "X$vi_cv_path_ruby" != "X"; then
928 AC_MSG_CHECKING(Ruby version)
Bram Moolenaare4efc3b2005-03-07 23:16:51 +0000929 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
Bram Moolenaar071d4272004-06-13 20:20:40 +0000930 AC_MSG_RESULT(OK)
931 AC_MSG_CHECKING(Ruby header files)
932 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
933 if test "X$rubyhdrdir" != "X"; then
934 AC_MSG_RESULT($rubyhdrdir)
935 RUBY_CFLAGS="-I$rubyhdrdir"
936 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
937 if test "X$rubylibs" != "X"; then
938 RUBY_LIBS="$rubylibs"
939 fi
940 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
941 if test -f "$rubyhdrdir/$librubyarg"; then
942 librubyarg="$rubyhdrdir/$librubyarg"
943 else
944 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
945 if test -f "$rubylibdir/$librubyarg"; then
946 librubyarg="$rubylibdir/$librubyarg"
947 elif test "$librubyarg" = "libruby.a"; then
948 dnl required on Mac OS 10.3 where libruby.a doesn't exist
949 librubyarg="-lruby"
950 else
951 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
952 fi
953 fi
954
955 if test "X$librubyarg" != "X"; then
956 RUBY_LIBS="$librubyarg $RUBY_LIBS"
957 fi
958 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
959 if test "X$rubyldflags" != "X"; then
960 LDFLAGS="$rubyldflags $LDFLAGS"
961 fi
962 RUBY_SRC="if_ruby.c"
963 RUBY_OBJ="objects/if_ruby.o"
964 RUBY_PRO="if_ruby.pro"
965 AC_DEFINE(FEAT_RUBY)
966 else
967 AC_MSG_RESULT(not found, disabling Ruby)
968 fi
969 else
970 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
971 fi
972 fi
973fi
974AC_SUBST(RUBY_SRC)
975AC_SUBST(RUBY_OBJ)
976AC_SUBST(RUBY_PRO)
977AC_SUBST(RUBY_CFLAGS)
978AC_SUBST(RUBY_LIBS)
979
980AC_MSG_CHECKING(--enable-cscope argument)
981AC_ARG_ENABLE(cscope,
982 [ --enable-cscope Include cscope interface.], ,
983 [enable_cscope="no"])
984AC_MSG_RESULT($enable_cscope)
985if test "$enable_cscope" = "yes"; then
986 AC_DEFINE(FEAT_CSCOPE)
987fi
988
989AC_MSG_CHECKING(--enable-workshop argument)
990AC_ARG_ENABLE(workshop,
991 [ --enable-workshop Include Sun Visual Workshop support.], ,
992 [enable_workshop="no"])
993AC_MSG_RESULT($enable_workshop)
994if test "$enable_workshop" = "yes"; then
995 AC_DEFINE(FEAT_SUN_WORKSHOP)
996 WORKSHOP_SRC="workshop.c integration.c"
997 AC_SUBST(WORKSHOP_SRC)
998 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
999 AC_SUBST(WORKSHOP_OBJ)
1000 if test "${enable_gui-xxx}" = xxx; then
1001 enable_gui=motif
1002 fi
1003fi
1004
1005AC_MSG_CHECKING(--disable-netbeans argument)
1006AC_ARG_ENABLE(netbeans,
1007 [ --disable-netbeans Disable NetBeans integration support.],
1008 , [enable_netbeans="yes"])
1009if test "$enable_netbeans" = "yes"; then
1010 AC_MSG_RESULT(no)
1011 dnl On Solaris we need the socket and nsl library.
1012 AC_CHECK_LIB(socket, socket)
1013 AC_CHECK_LIB(nsl, gethostbyname)
1014 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1015 AC_TRY_LINK([
1016#include <stdio.h>
1017#include <stdlib.h>
1018#include <stdarg.h>
1019#include <fcntl.h>
1020#include <netdb.h>
1021#include <netinet/in.h>
1022#include <errno.h>
1023#include <sys/types.h>
1024#include <sys/socket.h>
1025 /* Check bitfields */
1026 struct nbbuf {
1027 unsigned int initDone:1;
1028 ushort signmaplen;
1029 };
1030 ], [
1031 /* Check creating a socket. */
1032 struct sockaddr_in server;
1033 (void)socket(AF_INET, SOCK_STREAM, 0);
1034 (void)htons(100);
1035 (void)gethostbyname("microsoft.com");
1036 if (errno == ECONNREFUSED)
1037 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1038 ],
1039 AC_MSG_RESULT(yes),
1040 AC_MSG_RESULT(no); enable_netbeans="no")
1041else
1042 AC_MSG_RESULT(yes)
1043fi
1044if test "$enable_netbeans" = "yes"; then
1045 AC_DEFINE(FEAT_NETBEANS_INTG)
1046 NETBEANS_SRC="netbeans.c"
1047 AC_SUBST(NETBEANS_SRC)
1048 NETBEANS_OBJ="objects/netbeans.o"
1049 AC_SUBST(NETBEANS_OBJ)
1050fi
1051
1052AC_MSG_CHECKING(--enable-sniff argument)
1053AC_ARG_ENABLE(sniff,
1054 [ --enable-sniff Include Sniff interface.], ,
1055 [enable_sniff="no"])
1056AC_MSG_RESULT($enable_sniff)
1057if test "$enable_sniff" = "yes"; then
1058 AC_DEFINE(FEAT_SNIFF)
1059 SNIFF_SRC="if_sniff.c"
1060 AC_SUBST(SNIFF_SRC)
1061 SNIFF_OBJ="objects/if_sniff.o"
1062 AC_SUBST(SNIFF_OBJ)
1063fi
1064
1065AC_MSG_CHECKING(--enable-multibyte argument)
1066AC_ARG_ENABLE(multibyte,
1067 [ --enable-multibyte Include multibyte editing support.], ,
1068 [enable_multibyte="no"])
1069AC_MSG_RESULT($enable_multibyte)
1070if test "$enable_multibyte" = "yes"; then
1071 AC_DEFINE(FEAT_MBYTE)
1072fi
1073
1074AC_MSG_CHECKING(--enable-hangulinput argument)
1075AC_ARG_ENABLE(hangulinput,
1076 [ --enable-hangulinput Include Hangul input support.], ,
1077 [enable_hangulinput="no"])
1078AC_MSG_RESULT($enable_hangulinput)
1079
1080AC_MSG_CHECKING(--enable-xim argument)
1081AC_ARG_ENABLE(xim,
1082 [ --enable-xim Include XIM input support.],
1083 AC_MSG_RESULT($enable_xim),
1084 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1085dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1086
1087AC_MSG_CHECKING(--enable-fontset argument)
1088AC_ARG_ENABLE(fontset,
1089 [ --enable-fontset Include X fontset output support.], ,
1090 [enable_fontset="no"])
1091AC_MSG_RESULT($enable_fontset)
1092dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1093
1094test -z "$with_x" && with_x=yes
1095test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1096if test "$with_x" = no; then
1097 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1098else
1099 dnl Do this check early, so that its failure can override user requests.
1100
1101 AC_PATH_PROG(xmkmfpath, xmkmf)
1102
1103 AC_PATH_XTRA
1104
1105 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1106 dnl be compiled with a special option.
1107 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1108 if test "$OS390Unix" = "yes"; then
1109 CFLAGS="$CFLAGS -W c,dll"
1110 LDFLAGS="$LDFLAGS -W l,dll"
1111 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1112 fi
1113
1114 dnl On my HPUX system the X include dir is found, but the lib dir not.
1115 dnl This is a desparate try to fix this.
1116
1117 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1118 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1119 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1120 X_LIBS="$X_LIBS -L$x_libraries"
1121 if test "`(uname) 2>/dev/null`" = SunOS &&
1122 uname -r | grep '^5' >/dev/null; then
1123 X_LIBS="$X_LIBS -R $x_libraries"
1124 fi
1125 fi
1126
1127 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1128 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1129 AC_MSG_RESULT(Corrected X includes to $x_includes)
1130 X_CFLAGS="$X_CFLAGS -I$x_includes"
1131 fi
1132
1133 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1134 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1135 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1136 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1137 dnl Same for "-R/usr/lib ".
1138 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1139
1140
1141 dnl Check if the X11 header files are correctly installed. On some systems
Bram Moolenaar00ca2842008-06-26 20:14:00 +00001142 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1143 dnl is missing.
Bram Moolenaar071d4272004-06-13 20:20:40 +00001144 AC_MSG_CHECKING(if X11 header files can be found)
1145 cflags_save=$CFLAGS
1146 CFLAGS="$CFLAGS $X_CFLAGS"
Bram Moolenaar00ca2842008-06-26 20:14:00 +00001147 AC_TRY_COMPILE([#include <X11/Xlib.h>
1148#include <X11/Intrinsic.h>], ,
Bram Moolenaar071d4272004-06-13 20:20:40 +00001149 AC_MSG_RESULT(yes),
1150 AC_MSG_RESULT(no); no_x=yes)
1151 CFLAGS=$cflags_save
1152
1153 if test "${no_x-no}" = yes; then
1154 with_x=no
1155 else
1156 AC_DEFINE(HAVE_X11)
1157 X_LIB="-lXt -lX11";
1158 AC_SUBST(X_LIB)
1159
1160 ac_save_LDFLAGS="$LDFLAGS"
1161 LDFLAGS="-L$x_libraries $LDFLAGS"
1162
1163 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1164 dnl For HP-UX 10.20 it must be before -lSM -lICE
1165 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1166 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1167
1168 dnl Some systems need -lnsl -lsocket when testing for ICE.
1169 dnl The check above doesn't do this, try here (again). Also needed to get
1170 dnl them after Xdmcp. link.sh will remove them when not needed.
1171 dnl Check for other function than above to avoid the cached value
1172 AC_CHECK_LIB(ICE, IceOpenConnection,
1173 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1174
1175 dnl Check for -lXpm (needed for some versions of Motif)
1176 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1177 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1178 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1179
1180 dnl Check that the X11 header files don't use implicit declarations
1181 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1182 cflags_save=$CFLAGS
1183 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1184 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1185 AC_MSG_RESULT(no),
1186 CFLAGS="$CFLAGS -Wno-implicit-int"
1187 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1188 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1189 AC_MSG_RESULT(test failed)
1190 )
1191 )
1192 CFLAGS=$cflags_save
1193
1194 LDFLAGS="$ac_save_LDFLAGS"
1195
1196 fi
1197fi
1198
Bram Moolenaara7fc0102005-05-18 22:17:12 +00001199test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
Bram Moolenaar071d4272004-06-13 20:20:40 +00001200
1201AC_MSG_CHECKING(--enable-gui argument)
1202AC_ARG_ENABLE(gui,
Bram Moolenaar9372a112005-12-06 19:59:18 +00001203 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
Bram Moolenaar071d4272004-06-13 20:20:40 +00001204
1205dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1206dnl Do not use character classes for portability with old tools.
1207enable_gui_canon=`echo "_$enable_gui" | \
1208 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1209
1210dnl Skip everything by default.
1211SKIP_GTK=YES
1212SKIP_GTK2=YES
1213SKIP_GNOME=YES
1214SKIP_MOTIF=YES
1215SKIP_ATHENA=YES
1216SKIP_NEXTAW=YES
1217SKIP_PHOTON=YES
Bram Moolenaar071d4272004-06-13 20:20:40 +00001218SKIP_CARBON=YES
1219GUITYPE=NONE
1220
Bram Moolenaarb11160e2005-01-04 21:31:43 +00001221if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
Bram Moolenaar071d4272004-06-13 20:20:40 +00001222 SKIP_PHOTON=
1223 case "$enable_gui_canon" in
1224 no) AC_MSG_RESULT(no GUI support)
1225 SKIP_PHOTON=YES ;;
1226 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1227 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1228 photon) AC_MSG_RESULT(Photon GUI support) ;;
1229 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1230 SKIP_PHOTON=YES ;;
1231 esac
1232
1233elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1234 SKIP_CARBON=
1235 case "$enable_gui_canon" in
1236 no) AC_MSG_RESULT(no GUI support)
1237 SKIP_CARBON=YES ;;
1238 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1239 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1240 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1241 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1242 SKIP_CARBON=YES ;;
1243 esac
1244
1245else
1246
Bram Moolenaar071d4272004-06-13 20:20:40 +00001247 case "$enable_gui_canon" in
1248 no|none) AC_MSG_RESULT(no GUI support) ;;
1249 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1250 SKIP_GTK=
1251 SKIP_GTK2=
1252 SKIP_GNOME=
1253 SKIP_MOTIF=
1254 SKIP_ATHENA=
1255 SKIP_NEXTAW=
1256 SKIP_CARBON=;;
1257 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1258 SKIP_GTK=;;
1259 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1260 SKIP_GTK=
1261 SKIP_GTK2=;;
1262 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1263 SKIP_GNOME=
1264 SKIP_GTK=;;
1265 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1266 SKIP_GNOME=
1267 SKIP_GTK=
1268 SKIP_GTK2=;;
1269 motif) AC_MSG_RESULT(Motif GUI support)
1270 SKIP_MOTIF=;;
1271 athena) AC_MSG_RESULT(Athena GUI support)
1272 SKIP_ATHENA=;;
1273 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1274 SKIP_NEXTAW=;;
1275 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1276 esac
1277
1278fi
1279
1280if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1281 AC_MSG_CHECKING(whether or not to look for GTK)
1282 AC_ARG_ENABLE(gtk-check,
1283 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1284 , enable_gtk_check="yes")
1285 AC_MSG_RESULT($enable_gtk_check)
1286 if test "x$enable_gtk_check" = "xno"; then
1287 SKIP_GTK=YES
1288 SKIP_GNOME=YES
1289 fi
1290fi
1291
1292if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1293 -a "$enable_gui_canon" != "gnome2"; then
1294 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1295 AC_ARG_ENABLE(gtk2-check,
1296 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1297 , enable_gtk2_check="yes")
1298 AC_MSG_RESULT($enable_gtk2_check)
1299 if test "x$enable_gtk2_check" = "xno"; then
1300 SKIP_GTK2=YES
1301 fi
1302fi
1303
1304if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1305 -a "$enable_gui_canon" != "gnome2"; then
1306 AC_MSG_CHECKING(whether or not to look for GNOME)
1307 AC_ARG_ENABLE(gnome-check,
1308 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1309 , enable_gnome_check="no")
1310 AC_MSG_RESULT($enable_gnome_check)
1311 if test "x$enable_gnome_check" = "xno"; then
1312 SKIP_GNOME=YES
1313 fi
1314fi
1315
1316if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1317 AC_MSG_CHECKING(whether or not to look for Motif)
1318 AC_ARG_ENABLE(motif-check,
1319 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1320 , enable_motif_check="yes")
1321 AC_MSG_RESULT($enable_motif_check)
1322 if test "x$enable_motif_check" = "xno"; then
1323 SKIP_MOTIF=YES
1324 fi
1325fi
1326
1327if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1328 AC_MSG_CHECKING(whether or not to look for Athena)
1329 AC_ARG_ENABLE(athena-check,
1330 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1331 , enable_athena_check="yes")
1332 AC_MSG_RESULT($enable_athena_check)
1333 if test "x$enable_athena_check" = "xno"; then
1334 SKIP_ATHENA=YES
1335 fi
1336fi
1337
1338if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1339 AC_MSG_CHECKING(whether or not to look for neXtaw)
1340 AC_ARG_ENABLE(nextaw-check,
1341 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1342 , enable_nextaw_check="yes")
1343 AC_MSG_RESULT($enable_nextaw_check);
1344 if test "x$enable_nextaw_check" = "xno"; then
1345 SKIP_NEXTAW=YES
1346 fi
1347fi
1348
1349if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1350 AC_MSG_CHECKING(whether or not to look for Carbon)
1351 AC_ARG_ENABLE(carbon-check,
1352 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1353 , enable_carbon_check="yes")
1354 AC_MSG_RESULT($enable_carbon_check);
1355 if test "x$enable_carbon_check" = "xno"; then
1356 SKIP_CARBON=YES
1357 fi
1358fi
1359
Bram Moolenaar843ee412004-06-30 16:16:41 +00001360
Bram Moolenaar071d4272004-06-13 20:20:40 +00001361if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1362 AC_MSG_CHECKING(for Carbon GUI)
Bram Moolenaar14716812006-05-04 21:54:08 +00001363 dnl already did the check, just give the message
Bram Moolenaar071d4272004-06-13 20:20:40 +00001364 AC_MSG_RESULT(yes);
1365 GUITYPE=CARBONGUI
Bram Moolenaare344bea2005-09-01 20:46:49 +00001366 if test "$VIMNAME" = "vim"; then
1367 VIMNAME=Vim
1368 fi
Bram Moolenaar14716812006-05-04 21:54:08 +00001369
1370 dnl Default install directory is not /usr/local
1371 if test x$prefix = xNONE; then
1372 prefix=/Applications
1373 fi
1374
1375 dnl Sorry for the hard coded default
1376 datadir='${prefix}/Vim.app/Contents/Resources'
1377
Bram Moolenaar071d4272004-06-13 20:20:40 +00001378 dnl skip everything else
1379 SKIP_GTK=YES;
1380 SKIP_GTK2=YES;
1381 SKIP_GNOME=YES;
1382 SKIP_MOTIF=YES;
1383 SKIP_ATHENA=YES;
1384 SKIP_NEXTAW=YES;
1385 SKIP_PHOTON=YES;
Bram Moolenaar071d4272004-06-13 20:20:40 +00001386 SKIP_CARBON=YES
1387fi
1388
Bram Moolenaar071d4272004-06-13 20:20:40 +00001389dnl
1390dnl Get the cflags and libraries from the gtk-config script
1391dnl
1392
1393dnl define an autoconf function to check for a specified version of GTK, and
1394dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1395dnl
1396dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001397dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
Bram Moolenaar071d4272004-06-13 20:20:40 +00001398dnl
1399AC_DEFUN(AM_PATH_GTK,
1400[
1401 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1402 {
1403 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1404 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1405 no_gtk=""
1406 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1407 && $PKG_CONFIG --exists gtk+-2.0; then
1408 {
1409 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1410 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1411 dnl something like that.
1412 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001413 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
Bram Moolenaar071d4272004-06-13 20:20:40 +00001414 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1415 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1416 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1417 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1418 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1419 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1420 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1421 }
1422 elif test "X$GTK_CONFIG" != "Xno"; then
1423 {
1424 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001425 GTK_LIBDIR=
Bram Moolenaar071d4272004-06-13 20:20:40 +00001426 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1427 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1428 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1429 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1430 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1431 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1432 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1433 }
1434 else
1435 no_gtk=yes
1436 fi
1437
1438 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1439 {
1440 ac_save_CFLAGS="$CFLAGS"
1441 ac_save_LIBS="$LIBS"
1442 CFLAGS="$CFLAGS $GTK_CFLAGS"
1443 LIBS="$LIBS $GTK_LIBS"
1444
1445 dnl
1446 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1447 dnl checks the results of gtk-config to some extent
1448 dnl
1449 rm -f conf.gtktest
1450 AC_TRY_RUN([
1451#include <gtk/gtk.h>
1452#include <stdio.h>
Bram Moolenaar446cb832008-06-24 21:56:24 +00001453#if STDC_HEADERS
1454# include <stdlib.h>
1455# include <stddef.h>
1456#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00001457
1458int
1459main ()
1460{
1461int major, minor, micro;
1462char *tmp_version;
1463
1464system ("touch conf.gtktest");
1465
1466/* HP/UX 9 (%@#!) writes to sscanf strings */
1467tmp_version = g_strdup("$min_gtk_version");
1468if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
1469 printf("%s, bad version string\n", "$min_gtk_version");
1470 exit(1);
1471 }
1472
1473if ((gtk_major_version > major) ||
1474 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1475 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1476 (gtk_micro_version >= micro)))
1477{
1478 return 0;
1479}
1480return 1;
1481}
1482],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1483 CFLAGS="$ac_save_CFLAGS"
1484 LIBS="$ac_save_LIBS"
1485 }
1486 fi
1487 if test "x$no_gtk" = x ; then
1488 if test "x$enable_gtktest" = "xyes"; then
1489 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1490 else
1491 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1492 fi
1493 ifelse([$2], , :, [$2])
1494 else
1495 {
1496 AC_MSG_RESULT(no)
1497 GTK_CFLAGS=""
1498 GTK_LIBS=""
1499 ifelse([$3], , :, [$3])
1500 }
1501 fi
1502 }
1503 else
1504 GTK_CFLAGS=""
1505 GTK_LIBS=""
1506 ifelse([$3], , :, [$3])
1507 fi
1508 AC_SUBST(GTK_CFLAGS)
1509 AC_SUBST(GTK_LIBS)
1510 rm -f conf.gtktest
1511])
1512
1513dnl ---------------------------------------------------------------------------
1514dnl gnome
1515dnl ---------------------------------------------------------------------------
1516AC_DEFUN([GNOME_INIT_HOOK],
1517[
1518 AC_SUBST(GNOME_LIBS)
1519 AC_SUBST(GNOME_LIBDIR)
1520 AC_SUBST(GNOME_INCLUDEDIR)
1521
1522 AC_ARG_WITH(gnome-includes,
1523 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1524 [CFLAGS="$CFLAGS -I$withval"]
1525 )
1526
1527 AC_ARG_WITH(gnome-libs,
1528 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1529 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1530 )
1531
1532 AC_ARG_WITH(gnome,
1533 [ --with-gnome Specify prefix for GNOME files],
1534 if test x$withval = xyes; then
1535 want_gnome=yes
1536 ifelse([$1], [], :, [$1])
1537 else
1538 if test "x$withval" = xno; then
1539 want_gnome=no
1540 else
1541 want_gnome=yes
1542 LDFLAGS="$LDFLAGS -L$withval/lib"
1543 CFLAGS="$CFLAGS -I$withval/include"
1544 gnome_prefix=$withval/lib
1545 fi
1546 fi,
1547 want_gnome=yes)
1548
1549 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1550 {
1551 AC_MSG_CHECKING(for libgnomeui-2.0)
1552 if $PKG_CONFIG --exists libgnomeui-2.0; then
1553 AC_MSG_RESULT(yes)
1554 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1555 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1556 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00001557
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001558 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1559 dnl This might not be the right way but it works for me...
1560 AC_MSG_CHECKING(for FreeBSD)
1561 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1562 AC_MSG_RESULT(yes, adding -pthread)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00001563 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001564 GNOME_LIBS="$GNOME_LIBS -pthread"
1565 else
1566 AC_MSG_RESULT(no)
1567 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00001568 $1
1569 else
1570 AC_MSG_RESULT(not found)
1571 if test "x$2" = xfail; then
1572 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1573 fi
1574 fi
1575 }
1576 elif test "x$want_gnome" = xyes; then
1577 {
1578 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1579 if test "$GNOME_CONFIG" = "no"; then
1580 no_gnome_config="yes"
1581 else
1582 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1583 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1584 AC_MSG_RESULT(yes)
1585 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1586 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1587 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1588 $1
1589 else
1590 AC_MSG_RESULT(no)
1591 no_gnome_config="yes"
1592 fi
1593 fi
1594
1595 if test x$exec_prefix = xNONE; then
1596 if test x$prefix = xNONE; then
1597 gnome_prefix=$ac_default_prefix/lib
1598 else
1599 gnome_prefix=$prefix/lib
1600 fi
1601 else
1602 gnome_prefix=`eval echo \`echo $libdir\``
1603 fi
1604
1605 if test "$no_gnome_config" = "yes"; then
1606 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1607 if test -f $gnome_prefix/gnomeConf.sh; then
1608 AC_MSG_RESULT(found)
1609 echo "loading gnome configuration from" \
1610 "$gnome_prefix/gnomeConf.sh"
1611 . $gnome_prefix/gnomeConf.sh
1612 $1
1613 else
1614 AC_MSG_RESULT(not found)
1615 if test x$2 = xfail; then
1616 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1617 fi
1618 fi
1619 fi
1620 }
1621 fi
1622])
1623
1624AC_DEFUN([GNOME_INIT],[
1625 GNOME_INIT_HOOK([],fail)
1626])
1627
1628
1629dnl ---------------------------------------------------------------------------
1630dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1631dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1632dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1633dnl ---------------------------------------------------------------------------
1634if test -z "$SKIP_GTK"; then
1635
1636 AC_MSG_CHECKING(--with-gtk-prefix argument)
1637 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1638 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1639 gtk_config_prefix=""; AC_MSG_RESULT(no))
1640
1641 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1642 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1643 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1644 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1645
1646 AC_MSG_CHECKING(--disable-gtktest argument)
1647 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1648 , enable_gtktest=yes)
1649 if test "x$enable_gtktest" = "xyes" ; then
1650 AC_MSG_RESULT(gtk test enabled)
1651 else
1652 AC_MSG_RESULT(gtk test disabled)
1653 fi
1654
1655 if test "x$gtk_config_prefix" != "x" ; then
1656 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1657 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1658 fi
1659 if test "x$gtk_config_exec_prefix" != "x" ; then
1660 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1661 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1662 fi
1663 if test "X$GTK_CONFIG" = "X"; then
1664 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1665 if test "X$GTK_CONFIG" = "Xno"; then
1666 dnl Some distributions call it gtk12-config, annoying!
1667 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1668 GTK_CONFIG="$GTK12_CONFIG"
1669 fi
1670 else
1671 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1672 fi
1673 if test "X$PKG_CONFIG" = "X"; then
1674 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1675 fi
1676
1677 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1678 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1679 dnl problems (bold fonts, --remote doesn't work).
1680 if test "X$SKIP_GTK2" != "XYES"; then
1681 AM_PATH_GTK(2.2.0,
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001682 [GUI_LIB_LOC="$GTK_LIBDIR"
1683 GTK_LIBNAME="$GTK_LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00001684 GUI_INC_LOC="$GTK_CFLAGS"], )
1685 if test "x$GTK_CFLAGS" != "x"; then
1686 SKIP_ATHENA=YES
1687 SKIP_NEXTAW=YES
1688 SKIP_MOTIF=YES
1689 GUITYPE=GTK
1690 AC_SUBST(GTK_LIBNAME)
1691 fi
1692 fi
1693
1694 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1695 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1696 dnl were test versions.
1697 if test "x$GUITYPE" != "xGTK"; then
1698 SKIP_GTK2=YES
1699 AM_PATH_GTK(1.1.16,
1700 [GTK_LIBNAME="$GTK_LIBS"
1701 GUI_INC_LOC="$GTK_CFLAGS"], )
1702 if test "x$GTK_CFLAGS" != "x"; then
1703 SKIP_ATHENA=YES
1704 SKIP_NEXTAW=YES
1705 SKIP_MOTIF=YES
1706 GUITYPE=GTK
1707 AC_SUBST(GTK_LIBNAME)
1708 fi
1709 fi
1710 fi
1711 dnl Give a warning if GTK is older than 1.2.3
1712 if test "x$GUITYPE" = "xGTK"; then
1713 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1714 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1715 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1716 else
1717 {
1718 if test "0$gtk_major_version" -ge 2; then
1719 AC_DEFINE(HAVE_GTK2)
1720 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1721 || test "0$gtk_minor_version" -ge 2 \
1722 || test "0$gtk_major_version" -gt 2; then
1723 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1724 fi
1725 fi
1726 dnl
1727 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1728 dnl
1729 if test -z "$SKIP_GNOME"; then
1730 {
1731 GNOME_INIT_HOOK([have_gnome=yes])
1732 if test x$have_gnome = xyes ; then
1733 AC_DEFINE(FEAT_GUI_GNOME)
1734 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1735 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1736 fi
1737 }
1738 fi
1739 }
1740 fi
1741 fi
1742fi
1743
1744dnl Check for Motif include files location.
1745dnl The LAST one found is used, this makes the highest version to be used,
1746dnl e.g. when Motif1.2 and Motif2.0 are both present.
1747
1748if test -z "$SKIP_MOTIF"; then
1749 gui_XXX="/usr/XXX/Motif* /usr/Motif*/XXX /usr/XXX /usr/shlib /usr/X11*/XXX /usr/XXX/X11* /usr/dt/XXX /local/Motif*/XXX /local/XXX/Motif* /usr/local/Motif*/XXX /usr/local/XXX/Motif* /usr/local/XXX /usr/local/X11*/XXX /usr/local/LessTif/Motif*/XXX $MOTIFHOME/XXX"
1750 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1751 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1752
1753 AC_MSG_CHECKING(for location of Motif GUI includes)
1754 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1755 GUI_INC_LOC=
1756 for try in $gui_includes; do
1757 if test -f "$try/Xm/Xm.h"; then
1758 GUI_INC_LOC=$try
1759 fi
1760 done
1761 if test -n "$GUI_INC_LOC"; then
1762 if test "$GUI_INC_LOC" = /usr/include; then
1763 GUI_INC_LOC=
1764 AC_MSG_RESULT(in default path)
1765 else
1766 AC_MSG_RESULT($GUI_INC_LOC)
1767 fi
1768 else
1769 AC_MSG_RESULT(<not found>)
1770 SKIP_MOTIF=YES
1771 fi
1772fi
1773
1774dnl Check for Motif library files location. In the same order as the include
1775dnl files, to avoid a mixup if several versions are present
1776
1777if test -z "$SKIP_MOTIF"; then
1778 AC_MSG_CHECKING(--with-motif-lib argument)
1779 AC_ARG_WITH(motif-lib,
1780 [ --with-motif-lib=STRING Library for Motif ],
1781 [ MOTIF_LIBNAME="${withval}" ] )
1782
1783 if test -n "$MOTIF_LIBNAME"; then
1784 AC_MSG_RESULT($MOTIF_LIBNAME)
1785 GUI_LIB_LOC=
1786 else
1787 AC_MSG_RESULT(no)
1788
1789 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1790 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1791
1792 AC_MSG_CHECKING(for location of Motif GUI libs)
1793 gui_libs="`echo $x_libraries|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/lib/g` `echo "$GUI_INC_LOC" | sed s/include/lib/` $GUI_LIB_LOC"
1794 GUI_LIB_LOC=
1795 for try in $gui_libs; do
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001796 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
Bram Moolenaar071d4272004-06-13 20:20:40 +00001797 if test -f "$libtry"; then
1798 GUI_LIB_LOC=$try
1799 fi
1800 done
1801 done
1802 if test -n "$GUI_LIB_LOC"; then
1803 dnl Remove /usr/lib, it causes trouble on some systems
1804 if test "$GUI_LIB_LOC" = /usr/lib; then
1805 GUI_LIB_LOC=
1806 AC_MSG_RESULT(in default path)
1807 else
1808 if test -n "$GUI_LIB_LOC"; then
1809 AC_MSG_RESULT($GUI_LIB_LOC)
1810 if test "`(uname) 2>/dev/null`" = SunOS &&
1811 uname -r | grep '^5' >/dev/null; then
1812 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1813 fi
1814 fi
1815 fi
1816 MOTIF_LIBNAME=-lXm
1817 else
1818 AC_MSG_RESULT(<not found>)
1819 SKIP_MOTIF=YES
1820 fi
1821 fi
1822fi
1823
1824if test -z "$SKIP_MOTIF"; then
1825 SKIP_ATHENA=YES
1826 SKIP_NEXTAW=YES
1827 GUITYPE=MOTIF
1828 AC_SUBST(MOTIF_LIBNAME)
1829fi
1830
1831dnl Check if the Athena files can be found
1832
1833GUI_X_LIBS=
1834
1835if test -z "$SKIP_ATHENA"; then
1836 AC_MSG_CHECKING(if Athena header files can be found)
1837 cflags_save=$CFLAGS
1838 CFLAGS="$CFLAGS $X_CFLAGS"
1839 AC_TRY_COMPILE([
1840#include <X11/Intrinsic.h>
1841#include <X11/Xaw/Paned.h>], ,
1842 AC_MSG_RESULT(yes),
1843 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1844 CFLAGS=$cflags_save
1845fi
1846
1847if test -z "$SKIP_ATHENA"; then
1848 GUITYPE=ATHENA
1849fi
1850
1851if test -z "$SKIP_NEXTAW"; then
1852 AC_MSG_CHECKING(if neXtaw header files can be found)
1853 cflags_save=$CFLAGS
1854 CFLAGS="$CFLAGS $X_CFLAGS"
1855 AC_TRY_COMPILE([
1856#include <X11/Intrinsic.h>
1857#include <X11/neXtaw/Paned.h>], ,
1858 AC_MSG_RESULT(yes),
1859 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1860 CFLAGS=$cflags_save
1861fi
1862
1863if test -z "$SKIP_NEXTAW"; then
1864 GUITYPE=NEXTAW
1865fi
1866
1867if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1868 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1869 dnl Avoid adding it when it twice
1870 if test -n "$GUI_INC_LOC"; then
1871 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1872 fi
1873 if test -n "$GUI_LIB_LOC"; then
1874 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1875 fi
1876
1877 dnl Check for -lXext and then for -lXmu
1878 ldflags_save=$LDFLAGS
1879 LDFLAGS="$X_LIBS $LDFLAGS"
1880 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1881 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1882 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1883 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1884 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1885 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1886 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1887 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1888 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1889 if test -z "$SKIP_MOTIF"; then
1890 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1891 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1892 fi
1893 LDFLAGS=$ldflags_save
1894
1895 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1896 AC_MSG_CHECKING(for extra X11 defines)
1897 NARROW_PROTO=
1898 rm -fr conftestdir
1899 if mkdir conftestdir; then
1900 cd conftestdir
1901 cat > Imakefile <<'EOF'
1902acfindx:
1903 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
1904EOF
1905 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
1906 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
1907 fi
1908 cd ..
1909 rm -fr conftestdir
1910 fi
1911 if test -z "$NARROW_PROTO"; then
1912 AC_MSG_RESULT(no)
1913 else
1914 AC_MSG_RESULT($NARROW_PROTO)
1915 fi
1916 AC_SUBST(NARROW_PROTO)
1917fi
1918
1919dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
1920dnl use the X11 include path
1921if test "$enable_xsmp" = "yes"; then
1922 cppflags_save=$CPPFLAGS
1923 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1924 AC_CHECK_HEADERS(X11/SM/SMlib.h)
1925 CPPFLAGS=$cppflags_save
1926fi
1927
1928
1929if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
1930 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
1931 cppflags_save=$CPPFLAGS
1932 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1933 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
1934
1935 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
1936 if test ! "$enable_xim" = "no"; then
1937 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
1938 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
1939 AC_MSG_RESULT(yes),
1940 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
1941 fi
1942 CPPFLAGS=$cppflags_save
1943
1944 dnl automatically enable XIM when hangul input isn't enabled
1945 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
1946 -a "x$GUITYPE" != "xNONE" ; then
1947 AC_MSG_RESULT(X GUI selected; xim has been enabled)
1948 enable_xim="yes"
1949 fi
1950fi
1951
1952if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1953 cppflags_save=$CPPFLAGS
1954 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Bram Moolenaar2ce06f62005-01-31 19:19:04 +00001955dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
1956 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
1957 AC_TRY_COMPILE([
1958#include <X11/Intrinsic.h>
1959#include <X11/Xmu/Editres.h>],
1960 [int i; i = 0;],
1961 AC_MSG_RESULT(yes)
1962 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
1963 AC_MSG_RESULT(no))
Bram Moolenaar071d4272004-06-13 20:20:40 +00001964 CPPFLAGS=$cppflags_save
1965fi
1966
1967dnl Only use the Xm directory when compiling Motif, don't use it for Athena
1968if test -z "$SKIP_MOTIF"; then
1969 cppflags_save=$CPPFLAGS
1970 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Bram Moolenaar2ce06f62005-01-31 19:19:04 +00001971 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
Bram Moolenaarfc1421e2006-04-20 22:17:20 +00001972 Xm/UnhighlightT.h Xm/Notebook.h)
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001973
1974 if test $ac_cv_header_Xm_XpmP_h = yes; then
1975 dnl Solaris uses XpmAttributes_21, very annoying.
1976 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
1977 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
1978 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
1979 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
1980 )
1981 else
Bram Moolenaar57657d82006-04-21 22:12:41 +00001982 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001983 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00001984 CPPFLAGS=$cppflags_save
1985fi
1986
1987if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
1988 AC_MSG_RESULT(no GUI selected; xim has been disabled)
1989 enable_xim="no"
1990fi
1991if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
1992 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
1993 enable_fontset="no"
1994fi
1995if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
1996 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
1997 enable_fontset="no"
1998fi
1999
Bram Moolenaar071d4272004-06-13 20:20:40 +00002000if test -z "$SKIP_PHOTON"; then
2001 GUITYPE=PHOTONGUI
2002fi
2003
2004AC_SUBST(GUI_INC_LOC)
2005AC_SUBST(GUI_LIB_LOC)
2006AC_SUBST(GUITYPE)
2007AC_SUBST(GUI_X_LIBS)
2008
2009if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2010 AC_MSG_ERROR([cannot use workshop without Motif])
2011fi
2012
2013dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2014if test "$enable_xim" = "yes"; then
2015 AC_DEFINE(FEAT_XIM)
2016fi
2017if test "$enable_fontset" = "yes"; then
2018 AC_DEFINE(FEAT_XFONTSET)
2019fi
2020
2021
2022dnl ---------------------------------------------------------------------------
2023dnl end of GUI-checking
2024dnl ---------------------------------------------------------------------------
2025
2026
2027dnl Only really enable hangul input when GUI and XFONTSET are available
2028if test "$enable_hangulinput" = "yes"; then
2029 if test "x$GUITYPE" = "xNONE"; then
2030 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2031 enable_hangulinput=no
2032 else
2033 AC_DEFINE(FEAT_HANGULIN)
2034 HANGULIN_SRC=hangulin.c
2035 AC_SUBST(HANGULIN_SRC)
2036 HANGULIN_OBJ=objects/hangulin.o
2037 AC_SUBST(HANGULIN_OBJ)
2038 fi
2039fi
2040
2041dnl Checks for libraries and include files.
2042
Bram Moolenaar446cb832008-06-24 21:56:24 +00002043AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2044 [
2045 AC_RUN_IFELSE([[
2046#include "confdefs.h"
2047#include <ctype.h>
2048#if STDC_HEADERS
2049# include <stdlib.h>
2050# include <stddef.h>
2051#endif
2052main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2053 ]],[
2054 vim_cv_toupper_broken=yes
2055 ],[
2056 vim_cv_toupper_broken=no
2057 ],[
2058 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2059 ])])
2060
2061if test "x$vim_cv_toupper_broken" = "xyes" ; then
2062 AC_DEFINE(BROKEN_TOUPPER)
2063fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002064
2065AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002066AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
Bram Moolenaar071d4272004-06-13 20:20:40 +00002067 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2068 AC_MSG_RESULT(no))
2069
Bram Moolenaar0c094b92009-05-14 20:20:33 +00002070AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2071AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2072 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2073 AC_MSG_RESULT(no))
2074
Bram Moolenaar071d4272004-06-13 20:20:40 +00002075dnl Checks for header files.
2076AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2077dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2078if test "$HAS_ELF" = 1; then
2079 AC_CHECK_LIB(elf, main)
2080fi
2081
2082AC_HEADER_DIRENT
2083
Bram Moolenaar071d4272004-06-13 20:20:40 +00002084dnl If sys/wait.h is not found it might still exist but not be POSIX
2085dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2086if test $ac_cv_header_sys_wait_h = no; then
2087 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2088 AC_TRY_COMPILE([#include <sys/wait.h>],
2089 [union wait xx, yy; xx = yy],
2090 AC_MSG_RESULT(yes)
2091 AC_DEFINE(HAVE_SYS_WAIT_H)
2092 AC_DEFINE(HAVE_UNION_WAIT),
2093 AC_MSG_RESULT(no))
2094fi
2095
2096AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
Bram Moolenaare74455a2007-11-04 14:36:18 +00002097 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
Bram Moolenaar446cb832008-06-24 21:56:24 +00002098 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
Bram Moolenaar071d4272004-06-13 20:20:40 +00002099 sys/resource.h sys/systeminfo.h locale.h \
Bram Moolenaar00ca2842008-06-26 20:14:00 +00002100 sys/stream.h termios.h libc.h sys/statfs.h \
Bram Moolenaar071d4272004-06-13 20:20:40 +00002101 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
Bram Moolenaardf3267e2005-01-25 22:07:05 +00002102 libgen.h util/debug.h util/msg18n.h frame.h \
Bram Moolenaar32f31b12009-05-21 13:20:59 +00002103 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
Bram Moolenaar071d4272004-06-13 20:20:40 +00002104
Bram Moolenaar00ca2842008-06-26 20:14:00 +00002105dnl sys/ptem.h depends on sys/stream.h on Solaris
2106AC_CHECK_HEADERS(sys/ptem.h, [], [],
2107[#if defined HAVE_SYS_STREAM_H
2108# include <sys/stream.h>
2109#endif])
2110
Bram Moolenaar32f31b12009-05-21 13:20:59 +00002111dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2112AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2113[#if defined HAVE_SYS_PARAM_H
2114# include <sys/param.h>
2115#endif])
2116
Bram Moolenaar00ca2842008-06-26 20:14:00 +00002117
Bram Moolenaardf3267e2005-01-25 22:07:05 +00002118dnl pthread_np.h may exist but can only be used after including pthread.h
2119AC_MSG_CHECKING([for pthread_np.h])
2120AC_TRY_COMPILE([
2121#include <pthread.h>
2122#include <pthread_np.h>],
2123 [int i; i = 0;],
2124 AC_MSG_RESULT(yes)
2125 AC_DEFINE(HAVE_PTHREAD_NP_H),
2126 AC_MSG_RESULT(no))
2127
Bram Moolenaare344bea2005-09-01 20:46:49 +00002128AC_CHECK_HEADERS(strings.h)
Bram Moolenaar9372a112005-12-06 19:59:18 +00002129if test "x$MACOSX" = "xyes"; then
2130 dnl The strings.h file on OS/X contains a warning and nothing useful.
2131 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2132else
Bram Moolenaar071d4272004-06-13 20:20:40 +00002133
2134dnl Check if strings.h and string.h can both be included when defined.
2135AC_MSG_CHECKING([if strings.h can be included after string.h])
2136cppflags_save=$CPPFLAGS
2137CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2138AC_TRY_COMPILE([
2139#if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2140# define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2141 /* but don't do it on AIX 5.1 (Uribarri) */
2142#endif
2143#ifdef HAVE_XM_XM_H
2144# include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2145#endif
2146#ifdef HAVE_STRING_H
2147# include <string.h>
2148#endif
2149#if defined(HAVE_STRINGS_H)
2150# include <strings.h>
2151#endif
2152 ], [int i; i = 0;],
2153 AC_MSG_RESULT(yes),
2154 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2155 AC_MSG_RESULT(no))
2156CPPFLAGS=$cppflags_save
Bram Moolenaar9372a112005-12-06 19:59:18 +00002157fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002158
2159dnl Checks for typedefs, structures, and compiler characteristics.
2160AC_PROG_GCC_TRADITIONAL
2161AC_C_CONST
Bram Moolenaar76243bd2009-03-02 01:47:02 +00002162AC_C_VOLATILE
Bram Moolenaar071d4272004-06-13 20:20:40 +00002163AC_TYPE_MODE_T
2164AC_TYPE_OFF_T
2165AC_TYPE_PID_T
2166AC_TYPE_SIZE_T
2167AC_TYPE_UID_T
2168AC_HEADER_TIME
2169AC_CHECK_TYPE(ino_t, long)
2170AC_CHECK_TYPE(dev_t, unsigned)
2171
2172AC_MSG_CHECKING(for rlim_t)
2173if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2174 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2175else
2176 AC_EGREP_CPP(dnl
2177changequote(<<,>>)dnl
2178<<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2179changequote([,]),
2180 [
2181#include <sys/types.h>
2182#if STDC_HEADERS
Bram Moolenaar446cb832008-06-24 21:56:24 +00002183# include <stdlib.h>
2184# include <stddef.h>
Bram Moolenaar071d4272004-06-13 20:20:40 +00002185#endif
2186#ifdef HAVE_SYS_RESOURCE_H
Bram Moolenaar446cb832008-06-24 21:56:24 +00002187# include <sys/resource.h>
Bram Moolenaar071d4272004-06-13 20:20:40 +00002188#endif
2189 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2190 AC_MSG_RESULT($ac_cv_type_rlim_t)
2191fi
2192if test $ac_cv_type_rlim_t = no; then
2193 cat >> confdefs.h <<\EOF
2194#define rlim_t unsigned long
2195EOF
2196fi
2197
2198AC_MSG_CHECKING(for stack_t)
2199if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2200 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2201else
2202 AC_EGREP_CPP(stack_t,
2203 [
2204#include <sys/types.h>
2205#if STDC_HEADERS
Bram Moolenaar446cb832008-06-24 21:56:24 +00002206# include <stdlib.h>
2207# include <stddef.h>
Bram Moolenaar071d4272004-06-13 20:20:40 +00002208#endif
2209#include <signal.h>
2210 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2211 AC_MSG_RESULT($ac_cv_type_stack_t)
2212fi
2213if test $ac_cv_type_stack_t = no; then
2214 cat >> confdefs.h <<\EOF
2215#define stack_t struct sigaltstack
2216EOF
2217fi
2218
2219dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2220AC_MSG_CHECKING(whether stack_t has an ss_base field)
2221AC_TRY_COMPILE([
2222#include <sys/types.h>
2223#if STDC_HEADERS
Bram Moolenaar446cb832008-06-24 21:56:24 +00002224# include <stdlib.h>
2225# include <stddef.h>
Bram Moolenaar071d4272004-06-13 20:20:40 +00002226#endif
2227#include <signal.h>
2228#include "confdefs.h"
2229 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2230 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2231 AC_MSG_RESULT(no))
2232
2233olibs="$LIBS"
2234AC_MSG_CHECKING(--with-tlib argument)
2235AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2236if test -n "$with_tlib"; then
2237 AC_MSG_RESULT($with_tlib)
2238 LIBS="$LIBS -l$with_tlib"
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002239 AC_MSG_CHECKING(for linking with $with_tlib library)
2240 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2241 dnl Need to check for tgetent() below.
2242 olibs="$LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002243else
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002244 AC_MSG_RESULT([empty: automatic terminal library selection])
Bram Moolenaar071d4272004-06-13 20:20:40 +00002245 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2246 dnl curses, because curses is much slower.
2247 dnl Newer versions of ncurses are preferred over anything.
2248 dnl Older versions of ncurses have bugs, get a new one!
2249 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
Bram Moolenaara1b5aa52006-10-10 09:41:28 +00002250 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
Bram Moolenaar071d4272004-06-13 20:20:40 +00002251 case "`uname -s 2>/dev/null`" in
Bram Moolenaara1b5aa52006-10-10 09:41:28 +00002252 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
Bram Moolenaar071d4272004-06-13 20:20:40 +00002253 *) tlibs="ncurses termlib termcap curses";;
2254 esac
2255 for libname in $tlibs; do
2256 AC_CHECK_LIB(${libname}, tgetent,,)
2257 if test "x$olibs" != "x$LIBS"; then
2258 dnl It's possible that a library is found but it doesn't work
2259 dnl e.g., shared library that cannot be found
2260 dnl compile and run a test program to be sure
2261 AC_TRY_RUN([
2262#ifdef HAVE_TERMCAP_H
2263# include <termcap.h>
2264#endif
Bram Moolenaar446cb832008-06-24 21:56:24 +00002265#if STDC_HEADERS
2266# include <stdlib.h>
2267# include <stddef.h>
2268#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00002269main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2270 res="OK", res="FAIL", res="FAIL")
2271 if test "$res" = "OK"; then
2272 break
2273 fi
2274 AC_MSG_RESULT($libname library is not usable)
2275 LIBS="$olibs"
2276 fi
2277 done
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002278 if test "x$olibs" = "x$LIBS"; then
2279 AC_MSG_RESULT(no terminal library found)
2280 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002281fi
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002282
2283if test "x$olibs" = "x$LIBS"; then
2284 AC_MSG_CHECKING([for tgetent()])
Bram Moolenaar2389c3c2005-05-22 22:07:59 +00002285 AC_TRY_LINK([],
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002286 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2287 AC_MSG_RESULT(yes),
2288 AC_MSG_ERROR([NOT FOUND!
2289 You need to install a terminal library; for example ncurses.
2290 Or specify the name of the library with --with-tlib.]))
2291fi
2292
Bram Moolenaar446cb832008-06-24 21:56:24 +00002293AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2294 [
2295 AC_RUN_IFELSE([[
2296#include "confdefs.h"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002297#ifdef HAVE_TERMCAP_H
2298# include <termcap.h>
2299#endif
Bram Moolenaar446cb832008-06-24 21:56:24 +00002300#ifdef HAVE_STRING_H
2301# include <string.h>
2302#endif
2303#if STDC_HEADERS
2304# include <stdlib.h>
2305# include <stddef.h>
2306#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00002307main()
Bram Moolenaar446cb832008-06-24 21:56:24 +00002308{char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2309 ]],[
2310 vim_cv_terminfo=no
2311 ],[
2312 vim_cv_terminfo=yes
2313 ],[
2314 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2315 ])
2316 ])
2317
2318if test "x$vim_cv_terminfo" = "xyes" ; then
2319 AC_DEFINE(TERMINFO)
2320fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002321
2322if test "x$olibs" != "x$LIBS"; then
Bram Moolenaar446cb832008-06-24 21:56:24 +00002323 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2324 [
2325 AC_RUN_IFELSE([[
2326#include "confdefs.h"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002327#ifdef HAVE_TERMCAP_H
2328# include <termcap.h>
2329#endif
Bram Moolenaar446cb832008-06-24 21:56:24 +00002330#if STDC_HEADERS
2331# include <stdlib.h>
2332# include <stddef.h>
2333#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00002334main()
Bram Moolenaar446cb832008-06-24 21:56:24 +00002335{char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2336 ]],[
2337 vim_cv_tgent=zero
2338 ],[
2339 vim_cv_tgent=non-zero
2340 ],[
2341 AC_MSG_ERROR(failed to compile test program.)
2342 ])
2343 ])
2344
2345 if test "x$vim_cv_tgent" = "xzero" ; then
2346 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2347 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002348fi
2349
2350AC_MSG_CHECKING(whether termcap.h contains ospeed)
2351AC_TRY_LINK([
2352#ifdef HAVE_TERMCAP_H
2353# include <termcap.h>
2354#endif
2355 ], [ospeed = 20000],
2356 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2357 [AC_MSG_RESULT(no)
2358 AC_MSG_CHECKING(whether ospeed can be extern)
2359 AC_TRY_LINK([
2360#ifdef HAVE_TERMCAP_H
2361# include <termcap.h>
2362#endif
2363extern short ospeed;
2364 ], [ospeed = 20000],
2365 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2366 AC_MSG_RESULT(no))]
2367 )
2368
2369AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2370AC_TRY_LINK([
2371#ifdef HAVE_TERMCAP_H
2372# include <termcap.h>
2373#endif
2374 ], [if (UP == 0 && BC == 0) PC = 1],
2375 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2376 [AC_MSG_RESULT(no)
2377 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2378 AC_TRY_LINK([
2379#ifdef HAVE_TERMCAP_H
2380# include <termcap.h>
2381#endif
2382extern char *UP, *BC, PC;
2383 ], [if (UP == 0 && BC == 0) PC = 1],
2384 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2385 AC_MSG_RESULT(no))]
2386 )
2387
2388AC_MSG_CHECKING(whether tputs() uses outfuntype)
2389AC_TRY_COMPILE([
2390#ifdef HAVE_TERMCAP_H
2391# include <termcap.h>
2392#endif
2393 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2394 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2395 AC_MSG_RESULT(no))
2396
2397dnl On some SCO machines sys/select redefines struct timeval
2398AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2399AC_TRY_COMPILE([
2400#include <sys/types.h>
2401#include <sys/time.h>
2402#include <sys/select.h>], ,
2403 AC_MSG_RESULT(yes)
2404 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2405 AC_MSG_RESULT(no))
2406
2407dnl AC_DECL_SYS_SIGLIST
2408
2409dnl Checks for pty.c (copied from screen) ==========================
2410AC_MSG_CHECKING(for /dev/ptc)
2411if test -r /dev/ptc; then
2412 AC_DEFINE(HAVE_DEV_PTC)
2413 AC_MSG_RESULT(yes)
2414else
2415 AC_MSG_RESULT(no)
2416fi
2417
2418AC_MSG_CHECKING(for SVR4 ptys)
2419if test -c /dev/ptmx ; then
2420 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2421 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2422 AC_MSG_RESULT(no))
2423else
2424 AC_MSG_RESULT(no)
2425fi
2426
2427AC_MSG_CHECKING(for ptyranges)
2428if test -d /dev/ptym ; then
2429 pdir='/dev/ptym'
2430else
2431 pdir='/dev'
2432fi
2433dnl SCO uses ptyp%d
2434AC_EGREP_CPP(yes,
2435[#ifdef M_UNIX
2436 yes;
2437#endif
2438 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2439dnl if test -c /dev/ptyp19; then
2440dnl ptys=`echo /dev/ptyp??`
2441dnl else
2442dnl ptys=`echo $pdir/pty??`
2443dnl fi
2444if test "$ptys" != "$pdir/pty??" ; then
2445 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2446 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2447 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2448 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2449 AC_MSG_RESULT([$p0 / $p1])
2450else
2451 AC_MSG_RESULT([don't know])
2452fi
2453
2454dnl **** pty mode/group handling ****
2455dnl
2456dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
Bram Moolenaar071d4272004-06-13 20:20:40 +00002457rm -f conftest_grp
Bram Moolenaar446cb832008-06-24 21:56:24 +00002458AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2459 [
2460 AC_RUN_IFELSE([[
2461#include "confdefs.h"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002462#include <sys/types.h>
Bram Moolenaar446cb832008-06-24 21:56:24 +00002463#if STDC_HEADERS
2464# include <stdlib.h>
2465# include <stddef.h>
2466#endif
2467#ifdef HAVE_UNISTD_H
2468#include <unistd.h>
2469#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00002470#include <sys/stat.h>
2471#include <stdio.h>
2472main()
2473{
2474 struct stat sb;
2475 char *x,*ttyname();
2476 int om, m;
2477 FILE *fp;
2478
2479 if (!(x = ttyname(0))) exit(1);
2480 if (stat(x, &sb)) exit(1);
2481 om = sb.st_mode;
2482 if (om & 002) exit(0);
2483 m = system("mesg y");
2484 if (m == -1 || m == 127) exit(1);
2485 if (stat(x, &sb)) exit(1);
2486 m = sb.st_mode;
2487 if (chmod(x, om)) exit(1);
2488 if (m & 002) exit(0);
2489 if (sb.st_gid == getgid()) exit(1);
2490 if (!(fp=fopen("conftest_grp", "w")))
2491 exit(1);
2492 fprintf(fp, "%d\n", sb.st_gid);
2493 fclose(fp);
2494 exit(0);
2495}
Bram Moolenaar446cb832008-06-24 21:56:24 +00002496 ]],[
2497 if test -f conftest_grp; then
2498 vim_cv_tty_group=`cat conftest_grp`
2499 if test "x$vim_cv_tty_mode" = "x" ; then
2500 vim_cv_tty_mode=0620
2501 fi
2502 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2503 else
2504 vim_cv_tty_group=world
Bram Moolenaar071d4272004-06-13 20:20:40 +00002505 AC_MSG_RESULT([ptys are world accessable])
Bram Moolenaar446cb832008-06-24 21:56:24 +00002506 fi
2507 ],[
2508 vim_cv_tty_group=world
2509 AC_MSG_RESULT([can't determine - assume ptys are world accessable])
2510 ],[
2511 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2512 ])
2513 ])
Bram Moolenaar071d4272004-06-13 20:20:40 +00002514rm -f conftest_grp
2515
Bram Moolenaar446cb832008-06-24 21:56:24 +00002516if test "x$vim_cv_tty_group" != "xworld" ; then
2517 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2518 if test "x$vim_cv_tty_mode" = "x" ; then
2519 AC_MSG_ERROR([It seems you're cross compiling and have 'vim_cv_tty_group' set, please also set the environment variable 'vim_cv_tty_mode' to the correct mode (propably 0620)])
2520 else
2521 AC_DEFINE(PTYMODE, 0620)
2522 fi
2523fi
2524
Bram Moolenaar071d4272004-06-13 20:20:40 +00002525dnl Checks for library functions. ===================================
2526
2527AC_TYPE_SIGNAL
2528
2529dnl find out what to use at the end of a signal function
2530if test $ac_cv_type_signal = void; then
2531 AC_DEFINE(SIGRETURN, [return])
2532else
2533 AC_DEFINE(SIGRETURN, [return 0])
2534fi
2535
2536dnl check if struct sigcontext is defined (used for SGI only)
2537AC_MSG_CHECKING(for struct sigcontext)
2538AC_TRY_COMPILE([
2539#include <signal.h>
2540test_sig()
2541{
2542 struct sigcontext *scont;
2543 scont = (struct sigcontext *)0;
2544 return 1;
2545} ], ,
2546 AC_MSG_RESULT(yes)
2547 AC_DEFINE(HAVE_SIGCONTEXT),
2548 AC_MSG_RESULT(no))
2549
2550dnl tricky stuff: try to find out if getcwd() is implemented with
2551dnl system("sh -c pwd")
Bram Moolenaar446cb832008-06-24 21:56:24 +00002552AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2553 [
2554 AC_RUN_IFELSE([[
2555#include "confdefs.h"
2556#ifdef HAVE_UNISTD_H
2557#include <unistd.h>
2558#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00002559char *dagger[] = { "IFS=pwd", 0 };
2560main()
2561{
2562 char buffer[500];
2563 extern char **environ;
2564 environ = dagger;
2565 return getcwd(buffer, 500) ? 0 : 1;
Bram Moolenaar446cb832008-06-24 21:56:24 +00002566}
2567 ]],[
2568 vim_cv_getcwd_broken=no
2569 ],[
2570 vim_cv_getcwd_broken=yes
2571 ],[
2572 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2573 ])
2574 ])
2575
2576if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2577 AC_DEFINE(BAD_GETCWD)
2578fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002579
2580dnl Check for functions in one big call, to reduce the size of configure
2581AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2582 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2583 memset nanosleep opendir putenv qsort readlink select setenv \
2584 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
Bram Moolenaar051b7822005-05-19 21:00:46 +00002585 sigvec strcasecmp strerror strftime stricmp strncasecmp \
Bram Moolenaar0cb032e2005-04-23 20:52:00 +00002586 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2587 usleep utime utimes)
Bram Moolenaar071d4272004-06-13 20:20:40 +00002588
2589dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2590AC_MSG_CHECKING(for st_blksize)
2591AC_TRY_COMPILE(
2592[#include <sys/types.h>
2593#include <sys/stat.h>],
2594[ struct stat st;
2595 int n;
2596
2597 stat("/", &st);
2598 n = (int)st.st_blksize;],
2599 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2600 AC_MSG_RESULT(no))
2601
Bram Moolenaar446cb832008-06-24 21:56:24 +00002602AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2603 [
2604 AC_RUN_IFELSE([[
2605#include "confdefs.h"
2606#if STDC_HEADERS
2607# include <stdlib.h>
2608# include <stddef.h>
2609#endif
2610#include <sys/types.h>
Bram Moolenaar071d4272004-06-13 20:20:40 +00002611#include <sys/stat.h>
Bram Moolenaar446cb832008-06-24 21:56:24 +00002612main() {struct stat st; exit(stat("configure/", &st) != 0); }
2613 ]],[
2614 vim_cv_stat_ignores_slash=yes
2615 ],[
2616 vim_cv_stat_ignores_slash=no
2617 ],[
2618 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2619 ])
2620 ])
Bram Moolenaar071d4272004-06-13 20:20:40 +00002621
Bram Moolenaar446cb832008-06-24 21:56:24 +00002622if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2623 AC_DEFINE(STAT_IGNORES_SLASH)
2624fi
2625
Bram Moolenaar071d4272004-06-13 20:20:40 +00002626dnl Link with iconv for charset translation, if not found without library.
2627dnl check for iconv() requires including iconv.h
2628dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2629dnl has been installed.
2630AC_MSG_CHECKING(for iconv_open())
2631save_LIBS="$LIBS"
2632LIBS="$LIBS -liconv"
2633AC_TRY_LINK([
2634#ifdef HAVE_ICONV_H
2635# include <iconv.h>
2636#endif
2637 ], [iconv_open("fr", "to");],
2638 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2639 LIBS="$save_LIBS"
2640 AC_TRY_LINK([
2641#ifdef HAVE_ICONV_H
2642# include <iconv.h>
2643#endif
2644 ], [iconv_open("fr", "to");],
2645 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2646 AC_MSG_RESULT(no)))
2647
2648
2649AC_MSG_CHECKING(for nl_langinfo(CODESET))
2650AC_TRY_LINK([
2651#ifdef HAVE_LANGINFO_H
2652# include <langinfo.h>
2653#endif
2654], [char *cs = nl_langinfo(CODESET);],
2655 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2656 AC_MSG_RESULT(no))
2657
Bram Moolenaar446cb832008-06-24 21:56:24 +00002658dnl Need various functions for floating point support. Only enable
2659dnl floating point when they are all present.
2660AC_CHECK_LIB(m, strtod)
2661AC_MSG_CHECKING([for strtod() and other floating point functions])
2662AC_TRY_LINK([
2663#ifdef HAVE_MATH_H
2664# include <math.h>
2665#endif
2666#if STDC_HEADERS
2667# include <stdlib.h>
2668# include <stddef.h>
2669#endif
2670], [char *s; double d;
2671 d = strtod("1.1", &s);
2672 d = fabs(1.11);
2673 d = ceil(1.11);
2674 d = floor(1.11);
2675 d = log10(1.11);
2676 d = pow(1.11, 2.22);
2677 d = sqrt(1.11);
2678 d = sin(1.11);
2679 d = cos(1.11);
2680 d = atan(1.11);
2681 ],
2682 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2683 AC_MSG_RESULT(no))
2684
Bram Moolenaar071d4272004-06-13 20:20:40 +00002685dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2686dnl when -lacl works, also try to use -lattr (required for Debian).
2687AC_MSG_CHECKING(--disable-acl argument)
2688AC_ARG_ENABLE(acl,
2689 [ --disable-acl Don't check for ACL support.],
2690 , [enable_acl="yes"])
2691if test "$enable_acl" = "yes"; then
2692AC_MSG_RESULT(no)
2693AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2694 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2695 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2696
2697AC_MSG_CHECKING(for POSIX ACL support)
2698AC_TRY_LINK([
2699#include <sys/types.h>
2700#ifdef HAVE_SYS_ACL_H
2701# include <sys/acl.h>
2702#endif
2703acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2704 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2705 acl_free(acl);],
2706 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2707 AC_MSG_RESULT(no))
2708
2709AC_MSG_CHECKING(for Solaris ACL support)
2710AC_TRY_LINK([
2711#ifdef HAVE_SYS_ACL_H
2712# include <sys/acl.h>
2713#endif], [acl("foo", GETACLCNT, 0, NULL);
2714 ],
2715 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2716 AC_MSG_RESULT(no))
2717
2718AC_MSG_CHECKING(for AIX ACL support)
2719AC_TRY_LINK([
Bram Moolenaar446cb832008-06-24 21:56:24 +00002720#if STDC_HEADERS
2721# include <stdlib.h>
2722# include <stddef.h>
2723#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00002724#ifdef HAVE_SYS_ACL_H
2725# include <sys/acl.h>
2726#endif
2727#ifdef HAVE_SYS_ACCESS_H
2728# include <sys/access.h>
2729#endif
2730#define _ALL_SOURCE
2731
2732#include <sys/stat.h>
2733
2734int aclsize;
2735struct acl *aclent;], [aclsize = sizeof(struct acl);
2736 aclent = (void *)malloc(aclsize);
2737 statacl("foo", STX_NORMAL, aclent, aclsize);
2738 ],
2739 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2740 AC_MSG_RESULT(no))
2741else
2742 AC_MSG_RESULT(yes)
2743fi
2744
2745AC_MSG_CHECKING(--disable-gpm argument)
2746AC_ARG_ENABLE(gpm,
2747 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2748 [enable_gpm="yes"])
2749
2750if test "$enable_gpm" = "yes"; then
2751 AC_MSG_RESULT(no)
2752 dnl Checking if gpm support can be compiled
2753 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2754 [olibs="$LIBS" ; LIBS="-lgpm"]
2755 AC_TRY_LINK(
2756 [#include <gpm.h>
2757 #include <linux/keyboard.h>],
2758 [Gpm_GetLibVersion(NULL);],
2759 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2760 dnl FEAT_MOUSE_GPM if mouse support is included
2761 [vi_cv_have_gpm=yes],
2762 [vi_cv_have_gpm=no])
2763 [LIBS="$olibs"]
2764 )
2765 if test $vi_cv_have_gpm = yes; then
2766 LIBS="$LIBS -lgpm"
2767 AC_DEFINE(HAVE_GPM)
2768 fi
2769else
2770 AC_MSG_RESULT(yes)
2771fi
2772
Bram Moolenaar446cb832008-06-24 21:56:24 +00002773AC_MSG_CHECKING(--disable-sysmouse argument)
2774AC_ARG_ENABLE(sysmouse,
2775 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2776 [enable_sysmouse="yes"])
2777
2778if test "$enable_sysmouse" = "yes"; then
2779 AC_MSG_RESULT(no)
2780 dnl Checking if sysmouse support can be compiled
2781 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2782 dnl defines FEAT_SYSMOUSE if mouse support is included
2783 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2784 AC_TRY_LINK(
2785 [#include <sys/consio.h>
2786 #include <signal.h>
2787 #include <sys/fbio.h>],
2788 [struct mouse_info mouse;
2789 mouse.operation = MOUSE_MODE;
2790 mouse.operation = MOUSE_SHOW;
2791 mouse.u.mode.mode = 0;
2792 mouse.u.mode.signal = SIGUSR2;],
2793 [vi_cv_have_sysmouse=yes],
2794 [vi_cv_have_sysmouse=no])
2795 )
2796 if test $vi_cv_have_sysmouse = yes; then
2797 AC_DEFINE(HAVE_SYSMOUSE)
2798 fi
2799else
2800 AC_MSG_RESULT(yes)
2801fi
2802
Bram Moolenaar071d4272004-06-13 20:20:40 +00002803dnl rename needs to be checked separately to work on Nextstep with cc
2804AC_MSG_CHECKING(for rename)
2805AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2806 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2807 AC_MSG_RESULT(no))
2808
2809dnl sysctl() may exist but not the arguments we use
2810AC_MSG_CHECKING(for sysctl)
2811AC_TRY_COMPILE(
2812[#include <sys/types.h>
2813#include <sys/sysctl.h>],
2814[ int mib[2], r;
2815 size_t len;
2816
2817 mib[0] = CTL_HW;
2818 mib[1] = HW_USERMEM;
2819 len = sizeof(r);
2820 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2821 ],
2822 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2823 AC_MSG_RESULT(not usable))
2824
2825dnl sysinfo() may exist but not be Linux compatible
2826AC_MSG_CHECKING(for sysinfo)
2827AC_TRY_COMPILE(
2828[#include <sys/types.h>
2829#include <sys/sysinfo.h>],
2830[ struct sysinfo sinfo;
2831 int t;
2832
2833 (void)sysinfo(&sinfo);
2834 t = sinfo.totalram;
2835 ],
2836 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2837 AC_MSG_RESULT(not usable))
2838
Bram Moolenaar914572a2007-05-01 11:37:47 +00002839dnl struct sysinfo may have the mem_unit field or not
2840AC_MSG_CHECKING(for sysinfo.mem_unit)
2841AC_TRY_COMPILE(
2842[#include <sys/types.h>
2843#include <sys/sysinfo.h>],
2844[ struct sysinfo sinfo;
2845 sinfo.mem_unit = 1;
2846 ],
2847 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2848 AC_MSG_RESULT(no))
2849
Bram Moolenaar071d4272004-06-13 20:20:40 +00002850dnl sysconf() may exist but not support what we want to use
2851AC_MSG_CHECKING(for sysconf)
2852AC_TRY_COMPILE(
2853[#include <unistd.h>],
2854[ (void)sysconf(_SC_PAGESIZE);
2855 (void)sysconf(_SC_PHYS_PAGES);
2856 ],
2857 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2858 AC_MSG_RESULT(not usable))
2859
2860dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2861dnl be printed with "%d", and avoids a warning for cross-compiling.
2862
2863AC_MSG_CHECKING(size of int)
2864AC_CACHE_VAL(ac_cv_sizeof_int,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002865 [AC_TRY_RUN([
2866#include <stdio.h>
2867#if STDC_HEADERS
2868# include <stdlib.h>
2869# include <stddef.h>
2870#endif
2871main()
2872{
2873 FILE *f=fopen("conftestval", "w");
2874 if (!f) exit(1);
2875 fprintf(f, "%d\n", (int)sizeof(int));
2876 exit(0);
2877}],
Bram Moolenaar071d4272004-06-13 20:20:40 +00002878 ac_cv_sizeof_int=`cat conftestval`,
2879 ac_cv_sizeof_int=0,
2880 AC_MSG_ERROR(failed to compile test program))])
2881AC_MSG_RESULT($ac_cv_sizeof_int)
2882AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2883
Bram Moolenaar446cb832008-06-24 21:56:24 +00002884
2885dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2886dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2887
Bram Moolenaar071d4272004-06-13 20:20:40 +00002888[bcopy_test_prog='
Bram Moolenaar446cb832008-06-24 21:56:24 +00002889#include "confdefs.h"
2890#ifdef HAVE_STRING_H
2891# include <string.h>
2892#endif
2893#if STDC_HEADERS
2894# include <stdlib.h>
2895# include <stddef.h>
2896#endif
Bram Moolenaar071d4272004-06-13 20:20:40 +00002897main() {
2898 char buf[10];
2899 strcpy(buf, "abcdefghi");
2900 mch_memmove(buf, buf + 2, 3);
2901 if (strncmp(buf, "ababcf", 6))
2902 exit(1);
2903 strcpy(buf, "abcdefghi");
2904 mch_memmove(buf + 2, buf, 3);
2905 if (strncmp(buf, "cdedef", 6))
2906 exit(1);
2907 exit(0); /* libc version works properly. */
2908}']
2909
Bram Moolenaar446cb832008-06-24 21:56:24 +00002910AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
2911 [
2912 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
2913 [
2914 vim_cv_memmove_handles_overlap=yes
2915 ],[
2916 vim_cv_memmove_handles_overlap=no
2917 ],[
2918 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
2919 ])
2920 ])
Bram Moolenaar071d4272004-06-13 20:20:40 +00002921
Bram Moolenaar446cb832008-06-24 21:56:24 +00002922if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
2923 AC_DEFINE(USEMEMMOVE)
2924else
2925 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
2926 [
2927 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
2928 [
2929 vim_cv_bcopy_handles_overlap=yes
2930 ],[
2931 vim_cv_bcopy_handles_overlap=no
2932 ],[
2933 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
2934 ])
2935 ])
2936
2937 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
2938 AC_DEFINE(USEBCOPY)
2939 else
2940 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
2941 [
2942 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
2943 [
2944 vim_cv_memcpy_handles_overlap=yes
2945 ],[
2946 vim_cv_memcpy_handles_overlap=no
2947 ],[
2948 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
2949 ])
2950 ])
2951
2952 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
2953 AC_DEFINE(USEMEMCPY)
2954 fi
2955 fi
2956fi
2957
Bram Moolenaar071d4272004-06-13 20:20:40 +00002958
2959dnl Check for multibyte locale functions
2960dnl Find out if _Xsetlocale() is supported by libX11.
2961dnl Check if X_LOCALE should be defined.
2962
2963if test "$enable_multibyte" = "yes"; then
2964 cflags_save=$CFLAGS
2965 ldflags_save=$LDFLAGS
Bram Moolenaar94ba1ce2009-04-22 15:53:09 +00002966 if test "x$x_includes" != "xNONE" ; then
Bram Moolenaar071d4272004-06-13 20:20:40 +00002967 CFLAGS="$CFLAGS -I$x_includes"
2968 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
2969 AC_MSG_CHECKING(whether X_LOCALE needed)
2970 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
2971 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
2972 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
2973 AC_MSG_RESULT(no))
2974 fi
2975 CFLAGS=$cflags_save
2976 LDFLAGS=$ldflags_save
2977fi
2978
2979dnl Link with xpg4, it is said to make Korean locale working
2980AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
2981
Bram Moolenaar0c7ce772009-05-13 12:49:39 +00002982dnl Check how we can run ctags. Default to "ctags" when nothing works.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002983dnl --version for Exuberant ctags (preferred)
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002984dnl Add --fields=+S to get function signatures for omni completion.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002985dnl -t for typedefs (many ctags have this)
2986dnl -s for static functions (Elvis ctags only?)
2987dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
2988dnl -i+m to test for older Exuberant ctags
2989AC_MSG_CHECKING(how to create tags)
2990test -f tags && mv tags tags.save
2991if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002992 TAGPRG="ctags -I INIT+ --fields=+S"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002993else
Bram Moolenaar0c7ce772009-05-13 12:49:39 +00002994 TAGPRG="ctags"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002995 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
2996 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
2997 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
2998 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
2999 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3000 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3001 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3002fi
3003test -f tags.save && mv tags.save tags
3004AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3005
3006dnl Check how we can run man with a section number
3007AC_MSG_CHECKING(how to run man with a section nr)
3008MANDEF="man"
Bram Moolenaar8b131502008-02-13 09:28:19 +00003009(eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
Bram Moolenaar071d4272004-06-13 20:20:40 +00003010AC_MSG_RESULT($MANDEF)
3011if test "$MANDEF" = "man -s"; then
3012 AC_DEFINE(USEMAN_S)
3013fi
3014
3015dnl Check if gettext() is working and if it needs -lintl
3016AC_MSG_CHECKING(--disable-nls argument)
3017AC_ARG_ENABLE(nls,
3018 [ --disable-nls Don't support NLS (gettext()).], ,
3019 [enable_nls="yes"])
3020
3021if test "$enable_nls" = "yes"; then
3022 AC_MSG_RESULT(no)
Bram Moolenaar2389c3c2005-05-22 22:07:59 +00003023
3024 INSTALL_LANGS=install-languages
3025 AC_SUBST(INSTALL_LANGS)
3026 INSTALL_TOOL_LANGS=install-tool-languages
3027 AC_SUBST(INSTALL_TOOL_LANGS)
3028
Bram Moolenaar071d4272004-06-13 20:20:40 +00003029 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3030 AC_MSG_CHECKING([for NLS])
3031 if test -f po/Makefile; then
3032 have_gettext="no"
3033 if test -n "$MSGFMT"; then
3034 AC_TRY_LINK(
3035 [#include <libintl.h>],
3036 [gettext("Test");],
3037 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3038 olibs=$LIBS
3039 LIBS="$LIBS -lintl"
3040 AC_TRY_LINK(
3041 [#include <libintl.h>],
3042 [gettext("Test");],
3043 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3044 AC_MSG_RESULT([gettext() doesn't work]);
3045 LIBS=$olibs))
3046 else
3047 AC_MSG_RESULT([msgfmt not found - disabled]);
3048 fi
3049 if test $have_gettext = "yes"; then
3050 AC_DEFINE(HAVE_GETTEXT)
3051 MAKEMO=yes
3052 AC_SUBST(MAKEMO)
3053 dnl this was added in GNU gettext 0.10.36
3054 AC_CHECK_FUNCS(bind_textdomain_codeset)
3055 dnl _nl_msg_cat_cntr is required for GNU gettext
3056 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3057 AC_TRY_LINK(
3058 [#include <libintl.h>
3059 extern int _nl_msg_cat_cntr;],
3060 [++_nl_msg_cat_cntr;],
3061 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3062 AC_MSG_RESULT([no]))
3063 fi
3064 else
3065 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3066 fi
3067else
3068 AC_MSG_RESULT(yes)
3069fi
3070
3071dnl Check for dynamic linking loader
3072AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3073if test x${DLL} = xdlfcn.h; then
3074 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3075 AC_MSG_CHECKING([for dlopen()])
3076 AC_TRY_LINK(,[
3077 extern void* dlopen();
3078 dlopen();
3079 ],
3080 AC_MSG_RESULT(yes);
3081 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3082 AC_MSG_RESULT(no);
3083 AC_MSG_CHECKING([for dlopen() in -ldl])
3084 olibs=$LIBS
3085 LIBS="$LIBS -ldl"
3086 AC_TRY_LINK(,[
3087 extern void* dlopen();
3088 dlopen();
3089 ],
3090 AC_MSG_RESULT(yes);
3091 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3092 AC_MSG_RESULT(no);
3093 LIBS=$olibs))
3094 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3095 dnl ick :-)
3096 AC_MSG_CHECKING([for dlsym()])
3097 AC_TRY_LINK(,[
3098 extern void* dlsym();
3099 dlsym();
3100 ],
3101 AC_MSG_RESULT(yes);
3102 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3103 AC_MSG_RESULT(no);
3104 AC_MSG_CHECKING([for dlsym() in -ldl])
3105 olibs=$LIBS
3106 LIBS="$LIBS -ldl"
3107 AC_TRY_LINK(,[
3108 extern void* dlsym();
3109 dlsym();
3110 ],
3111 AC_MSG_RESULT(yes);
3112 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3113 AC_MSG_RESULT(no);
3114 LIBS=$olibs))
3115elif test x${DLL} = xdl.h; then
3116 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3117 AC_MSG_CHECKING([for shl_load()])
3118 AC_TRY_LINK(,[
3119 extern void* shl_load();
3120 shl_load();
3121 ],
3122 AC_MSG_RESULT(yes);
3123 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3124 AC_MSG_RESULT(no);
3125 AC_MSG_CHECKING([for shl_load() in -ldld])
3126 olibs=$LIBS
3127 LIBS="$LIBS -ldld"
3128 AC_TRY_LINK(,[
3129 extern void* shl_load();
3130 shl_load();
3131 ],
3132 AC_MSG_RESULT(yes);
3133 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3134 AC_MSG_RESULT(no);
3135 LIBS=$olibs))
3136fi
3137AC_CHECK_HEADERS(setjmp.h)
3138
3139if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3140 dnl -ldl must come after DynaLoader.a
3141 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3142 LIBS=`echo $LIBS | sed s/-ldl//`
3143 PERL_LIBS="$PERL_LIBS -ldl"
3144 fi
3145fi
3146
3147if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3148 && test "x$GUITYPE" != "xCARBONGUI"; then
3149 AC_MSG_CHECKING(whether we need -framework Carbon)
3150 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
Bram Moolenaarb90daee2006-10-17 09:49:09 +00003151 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
Bram Moolenaar071d4272004-06-13 20:20:40 +00003152 || test "x$features" = "xhuge"; then
3153 LIBS="$LIBS -framework Carbon"
3154 AC_MSG_RESULT(yes)
3155 else
3156 AC_MSG_RESULT(no)
3157 fi
3158fi
Bram Moolenaare224ffa2006-03-01 00:01:28 +00003159if test "x$MACARCH" = "xboth"; then
3160 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3161fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00003162
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00003163dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3164dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3165dnl But only when making dependencies, cproto and lint don't take "-isystem".
Bram Moolenaar32466aa2006-02-24 23:53:04 +00003166dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3167dnl the number before the version number.
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00003168DEPEND_CFLAGS_FILTER=
3169if test "$GCC" = yes; then
Bram Moolenaar0cd49302008-11-20 09:37:01 +00003170 AC_MSG_CHECKING(for GCC 3 or later)
Bram Moolenaar2217cae2006-03-25 21:55:52 +00003171 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
Bram Moolenaarf740b292006-02-16 22:11:02 +00003172 if test "$gccmajor" -gt "2"; then
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00003173 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
Bram Moolenaar0cd49302008-11-20 09:37:01 +00003174 AC_MSG_RESULT(yes)
3175 else
3176 AC_MSG_RESULT(no)
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00003177 fi
Bram Moolenaar0cd49302008-11-20 09:37:01 +00003178 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3179 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3180 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3181 if test "$gccmajor" -gt "3"; then
3182 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
3183 AC_MSG_RESULT(yes)
3184 else
3185 AC_MSG_RESULT(no)
3186 fi
Bram Moolenaara5792f52005-11-23 21:25:05 +00003187fi
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00003188AC_SUBST(DEPEND_CFLAGS_FILTER)
Bram Moolenaar071d4272004-06-13 20:20:40 +00003189
3190dnl write output files
3191AC_OUTPUT(auto/config.mk:config.mk.in)
3192
3193dnl vim: set sw=2 tw=78 fo+=l: