blob: 898e79cc94d9eeb1d0ccd87807901eece07e8c12 [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
26dnl Set default value for CFLAGS if none is defined or it's empty
27if test -z "$CFLAGS"; then
28 CFLAGS="-O"
29 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
30fi
31if test "$GCC" = yes; then
Bram Moolenaar910f66f2006-04-05 20:41:53 +000032 dnl method that should work for nearly all versions
33 gccversion=`"$CC" -dumpversion`
34 if test "x$gccversion" = "x"; then
35 dnl old method; fall-back for when -dumpversion doesn't work
36 gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
37 fi
Bram Moolenaara5792f52005-11-23 21:25:05 +000038 dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
39 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
Bram Moolenaare224ffa2006-03-01 00:01:28 +000040 echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
Bram Moolenaar071d4272004-06-13 20:20:40 +000041 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
42 else
43 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
44 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
45 CFLAGS="$CFLAGS -fno-strength-reduce"
46 fi
47 fi
48fi
49
50dnl If configure thinks we are cross compiling, there is probably something
51dnl wrong with the CC or CFLAGS settings, give an understandable error message
52if test "$cross_compiling" = yes; then
53 AC_MSG_ERROR([cannot compile a simple program, check CC and CFLAGS
54 (cross compiling doesn't work)])
55fi
56
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +000057dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies.
58dnl But gcc 3.1 changed the meaning! See near the end.
Bram Moolenaar071d4272004-06-13 20:20:40 +000059test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
60
61if test -f ./toolcheck; then
62 AC_CHECKING(for buggy tools)
63 sh ./toolcheck 1>&AC_FD_MSG
64fi
65
66OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
67
68dnl Check for BeOS, which needs an extra source file
69AC_MSG_CHECKING(for BeOS)
70case `uname` in
71 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
72 BEOS=yes; AC_MSG_RESULT(yes);;
73 *) BEOS=no; AC_MSG_RESULT(no);;
74esac
75
76dnl If QNX is found, assume we don't want to use Xphoton
77dnl unless it was specifically asked for (--with-x)
78AC_MSG_CHECKING(for QNX)
79case `uname` in
80 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
81 test -z "$with_x" && with_x=no
82 QNX=yes; AC_MSG_RESULT(yes);;
83 *) QNX=no; AC_MSG_RESULT(no);;
84esac
85
86dnl Check for Darwin and MacOS X
87dnl We do a check for MacOS X in the very beginning because there
88dnl are a lot of other things we need to change besides GUI stuff
Bram Moolenaar071d4272004-06-13 20:20:40 +000089AC_MSG_CHECKING([for Darwin (Mac OS X)])
90if test "`(uname) 2>/dev/null`" = Darwin; then
91 AC_MSG_RESULT(yes)
92
93 AC_MSG_CHECKING(--disable-darwin argument)
94 AC_ARG_ENABLE(darwin,
95 [ --disable-darwin Disable Darwin (Mac OS X) support.],
96 , [enable_darwin="yes"])
97 if test "$enable_darwin" = "yes"; then
98 AC_MSG_RESULT(no)
99 AC_MSG_CHECKING(if Darwin files are there)
100 if test -f os_macosx.c; then
101 AC_MSG_RESULT(yes)
102 else
103 AC_MSG_RESULT([no, Darwin support disabled])
104 enable_darwin=no
105 fi
106 else
107 AC_MSG_RESULT([yes, Darwin support excluded])
108 fi
109
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000110 AC_MSG_CHECKING(--with-mac-arch argument)
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000111 AC_ARG_WITH(mac-arch, [ --with-mac-arch=ARCH current, intel, ppc or both],
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000112 MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
Bram Moolenaar899dddf2006-03-26 21:06:50 +0000113 MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000114
115 if test "x$MACARCH" = "xboth"; then
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000116 AC_MSG_CHECKING(for 10.4 universal SDK)
117 dnl There is a terrible inconsistency (but we appear to get away with it):
118 dnl $CFLAGS uses the 10.4u SDK library for the headers, while $CPPFLAGS
119 dnl doesn't, because "gcc -E" doesn't grok it. That means the configure
120 dnl tests using the preprocessor are actually done with the wrong header
121 dnl files. $LDFLAGS is set at the end, because configure uses it together
122 dnl with $CFLAGS and we can only have one -sysroot argument.
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000123 save_cppflags="$CPPFLAGS"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000124 save_cflags="$CFLAGS"
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000125 save_ldflags="$LDFLAGS"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000126 CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000127 AC_TRY_LINK([ ], [ ],
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000128 AC_MSG_RESULT(found, will make universal binary),
129
130 AC_MSG_RESULT(not found)
Bram Moolenaar1f35bf92006-03-07 22:38:47 +0000131 CFLAGS="$save_cflags"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000132 AC_MSG_CHECKING(if Intel architecture is supported)
133 CPPFLAGS="$CPPFLAGS -arch i386"
134 LDFLAGS="$save_ldflags -arch i386"
135 AC_TRY_LINK([ ], [ ],
136 AC_MSG_RESULT(yes); MACARCH="intel",
137 AC_MSG_RESULT(no, using PowerPC)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000138 MACARCH="ppc"
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000139 CPPFLAGS="$save_cppflags -arch ppc"
140 LDFLAGS="$save_ldflags -arch ppc"))
141 elif test "x$MACARCH" = "xintel"; then
142 CPPFLAGS="$CPPFLAGS -arch intel"
143 LDFLAGS="$LDFLAGS -arch intel"
Bram Moolenaare2f98b92006-03-29 21:18:24 +0000144 elif test "x$MACARCH" = "xppc"; then
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000145 CPPFLAGS="$CPPFLAGS -arch ppc"
146 LDFLAGS="$LDFLAGS -arch ppc"
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000147 fi
148
Bram Moolenaar071d4272004-06-13 20:20:40 +0000149 if test "$enable_darwin" = "yes"; then
150 MACOSX=yes
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000151 OS_EXTRA_SCR="os_macosx.c os_mac_conv.c";
152 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
Bram Moolenaar32466aa2006-02-24 23:53:04 +0000153 dnl TODO: use -arch i386 on Intel machines
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000154 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
155 if test "x$MACARCH" = "xboth"; then
156 CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
157 else
158 CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
159 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000160
161 dnl If Carbon is found, assume we don't want X11
162 dnl unless it was specifically asked for (--with-x)
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000163 dnl or Motif, Athena or GTK GUI is used.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000164 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
165 if test "x$CARBON" = "xyes"; then
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000166 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 +0000167 with_x=no
Bram Moolenaar071d4272004-06-13 20:20:40 +0000168 fi
169 fi
170 fi
Bram Moolenaara23ccb82006-02-27 00:08:02 +0000171
Bram Moolenaardb552d602006-03-23 22:59:57 +0000172 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
Bram Moolenaarfd2ac762006-03-01 22:09:21 +0000173 dnl free. This happens in expand_filename(), because the optimizer swaps
Bram Moolenaardb552d602006-03-23 22:59:57 +0000174 dnl two blocks of code, both using "repl", that can't be swapped.
Bram Moolenaare224ffa2006-03-01 00:01:28 +0000175 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
176 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
177 fi
178
Bram Moolenaar071d4272004-06-13 20:20:40 +0000179else
180 AC_MSG_RESULT(no)
181fi
182
183AC_SUBST(OS_EXTRA_SRC)
184AC_SUBST(OS_EXTRA_OBJ)
185
186dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
187dnl Only when the directory exists and it wasn't there yet.
188dnl For gcc don't do this when it is already in the default search path.
189have_local_include=''
190have_local_lib=''
191if test "$GCC" = yes; then
192 echo 'void f(){}' > conftest.c
193 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
194 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep '/usr/local/include'`
195 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep '/usr/local/lib'`
196 rm -f conftest.c conftest.o
197fi
198if test -z "$have_local_lib" -a -d /usr/local/lib; then
199 tt=`echo "$LDFLAGS" | sed -e 's+-L/usr/local/lib ++g' -e 's+-L/usr/local/lib$++g'`
200 if test "$tt" = "$LDFLAGS"; then
201 LDFLAGS="$LDFLAGS -L/usr/local/lib"
202 fi
203fi
204if test -z "$have_local_include" -a -d /usr/local/include; then
205 tt=`echo "$CPPFLAGS" | sed -e 's+-I/usr/local/include ++g' -e 's+-I/usr/local/include$++g'`
206 if test "$tt" = "$CPPFLAGS"; then
207 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
208 fi
209fi
210
211AC_MSG_CHECKING(--with-vim-name argument)
212AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
213 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
Bram Moolenaare344bea2005-09-01 20:46:49 +0000214 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000215AC_SUBST(VIMNAME)
216AC_MSG_CHECKING(--with-ex-name argument)
217AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
218 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
219 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
220AC_SUBST(EXNAME)
221AC_MSG_CHECKING(--with-view-name argument)
222AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
223 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
224 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
225AC_SUBST(VIEWNAME)
226
227AC_MSG_CHECKING(--with-global-runtime argument)
228AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
229 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
230 AC_MSG_RESULT(no))
231
232AC_MSG_CHECKING(--with-modified-by argument)
233AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
234 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
235 AC_MSG_RESULT(no))
236
237dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
238AC_MSG_CHECKING(if character set is EBCDIC)
239AC_TRY_COMPILE([ ],
240[ /* TryCompile function for CharSet.
241 Treat any failure as ASCII for compatibility with existing art.
242 Use compile-time rather than run-time tests for cross-compiler
243 tolerance. */
244#if '0'!=240
245make an error "Character set is not EBCDIC"
246#endif ],
247[ # TryCompile action if true
248cf_cv_ebcdic=yes ],
249[ # TryCompile action if false
250cf_cv_ebcdic=no])
251# end of TryCompile ])
252# end of CacheVal CvEbcdic
253AC_MSG_RESULT($cf_cv_ebcdic)
254case "$cf_cv_ebcdic" in #(vi
255 yes) AC_DEFINE(EBCDIC)
256 line_break='"\\n"'
257 ;;
258 *) line_break='"\\012"';;
259esac
260AC_SUBST(line_break)
261
262if test "$cf_cv_ebcdic" = "yes"; then
263dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
264AC_MSG_CHECKING(for OS/390 Unix)
265case `uname` in
266 OS/390) OS390Unix="yes";
267 dnl If using cc the environment variable _CC_CCMODE must be
268 dnl set to "1", so that some compiler extensions are enabled.
269 dnl If using c89 the environment variable is named _CC_C89MODE.
270 dnl Note: compile with c89 never tested.
271 if test "$CC" = "cc"; then
272 ccm="$_CC_CCMODE"
273 ccn="CC"
274 else
275 if test "$CC" = "c89"; then
276 ccm="$_CC_C89MODE"
277 ccn="C89"
278 else
279 ccm=1
280 fi
281 fi
282 if test "$ccm" != "1"; then
283 echo ""
284 echo "------------------------------------------"
285 echo " On OS/390 Unix, the environment variable"
286 echo " __CC_${ccn}MODE must be set to \"1\"!"
287 echo " Do:"
288 echo " export _CC_${ccn}MODE=1"
289 echo " and then call configure again."
290 echo "------------------------------------------"
291 exit 1
292 fi
293 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
294 AC_MSG_RESULT(yes)
295 ;;
296 *) OS390Unix="no";
297 AC_MSG_RESULT(no)
298 ;;
299esac
300fi
301
302
303dnl Check user requested features.
304
305AC_MSG_CHECKING(--with-features argument)
306AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
307 features="$withval"; AC_MSG_RESULT($features),
308 features="normal"; AC_MSG_RESULT(Defaulting to normal))
309
310dovimdiff=""
311dogvimdiff=""
312case "$features" in
313 tiny) AC_DEFINE(FEAT_TINY) ;;
314 small) AC_DEFINE(FEAT_SMALL) ;;
315 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
316 dogvimdiff="installgvimdiff" ;;
317 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
318 dogvimdiff="installgvimdiff" ;;
319 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
320 dogvimdiff="installgvimdiff" ;;
321 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
322esac
323
324AC_SUBST(dovimdiff)
325AC_SUBST(dogvimdiff)
326
327AC_MSG_CHECKING(--with-compiledby argument)
328AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
329 compiledby="$withval"; AC_MSG_RESULT($withval),
330 compiledby=""; AC_MSG_RESULT(no))
331AC_SUBST(compiledby)
332
333AC_MSG_CHECKING(--disable-xsmp argument)
334AC_ARG_ENABLE(xsmp,
335 [ --disable-xsmp Disable XSMP session management],
336 , enable_xsmp="yes")
337
338if test "$enable_xsmp" = "yes"; then
339 AC_MSG_RESULT(no)
340 AC_MSG_CHECKING(--disable-xsmp-interact argument)
341 AC_ARG_ENABLE(xsmp-interact,
342 [ --disable-xsmp-interact Disable XSMP interaction],
343 , enable_xsmp_interact="yes")
344 if test "$enable_xsmp_interact" = "yes"; then
345 AC_MSG_RESULT(no)
346 AC_DEFINE(USE_XSMP_INTERACT)
347 else
348 AC_MSG_RESULT(yes)
349 fi
350else
351 AC_MSG_RESULT(yes)
352fi
353
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000354dnl Check for MzScheme feature.
355AC_MSG_CHECKING(--enable-mzschemeinterp argument)
356AC_ARG_ENABLE(mzschemeinterp,
357 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
358 [enable_mzschemeinterp="no"])
359AC_MSG_RESULT($enable_mzschemeinterp)
360
361if test "$enable_mzschemeinterp" = "yes"; then
362 dnl -- find the mzscheme executable
363 AC_SUBST(vi_cv_path_mzscheme)
364
365 AC_MSG_CHECKING(--with-plthome argument)
366 AC_ARG_WITH(plthome,
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000367 [ --with-plthome=PLTHOME Use PLTHOME.],
368 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000369 with_plthome="";AC_MSG_RESULT("no"))
370
371 if test "X$with_plthome" != "X"; then
372 vi_cv_path_mzscheme_pfx="$with_plthome"
373 else
374 AC_MSG_CHECKING(PLTHOME environment var)
375 if test "X$PLTHOME" != "X"; then
376 AC_MSG_RESULT("$PLTHOME")
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000377 vi_cv_path_mzscheme_pfx="$PLTHOME"
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000378 else
379 AC_MSG_RESULT("not set")
380 dnl -- try to find MzScheme executable
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000381 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000382
383 dnl resolve symbolic link, the executable is often elsewhere and there
384 dnl are no links for the include files.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000385 if test "X$vi_cv_path_mzscheme" != "X"; then
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000386 lsout=`ls -l $vi_cv_path_mzscheme`
387 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
388 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
389 fi
390 fi
391
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000392 if test "X$vi_cv_path_mzscheme" != "X"; then
393 dnl -- find where MzScheme thinks it was installed
394 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
395 [ vi_cv_path_mzscheme_pfx=`
396 ${vi_cv_path_mzscheme} -evm \
397 "(display (simplify-path \
398 (build-path (call-with-values \
399 (lambda () (split-path (find-system-path (quote exec-file)))) \
400 (lambda (base name must-be-dir?) base)) (quote up))))"` ])
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000401 dnl Remove a trailing slash.
402 vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'`
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000403 fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000404 fi
405 fi
406
Bram Moolenaard7afed32007-05-06 13:26:41 +0000407 SCHEME_INC=
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000408 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
409 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
410 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
411 AC_MSG_RESULT("yes")
412 else
413 AC_MSG_RESULT("no")
Bram Moolenaard7afed32007-05-06 13:26:41 +0000414 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/plt/include)
415 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
416 AC_MSG_RESULT("yes")
417 SCHEME_INC=/plt
418 else
419 AC_MSG_RESULT("no")
420 vi_cv_path_mzscheme_pfx=
421 fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000422 fi
423 fi
424
425 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
Bram Moolenaarf15f9432007-06-28 11:07:21 +0000426 if test "x$MACOSX" = "xyes"; then
427 MZSCHEME_LIBS="-framework PLT_MzScheme"
428 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
Bram Moolenaar9048f942007-05-12 14:32:25 +0000429 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 +0000430 else
Bram Moolenaar9048f942007-05-12 14:32:25 +0000431 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000432 if test "$GCC" = yes; then
433 dnl Make Vim remember the path to the library. For when it's not in
434 dnl $LD_LIBRARY_PATH.
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000435 MZSCHEME_LIBS="$MZSCHEME_LIBS -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
Bram Moolenaar21cf8232004-07-16 20:18:37 +0000436 elif test "`(uname) 2>/dev/null`" = SunOS &&
437 uname -r | grep '^5' >/dev/null; then
438 MZSCHEME_LIBS="$MZSCHEME_LIBS -R ${vi_cv_path_mzscheme_pfx}/lib"
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000439 fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000440 fi
Bram Moolenaard7afed32007-05-06 13:26:41 +0000441 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
442 SCHEME_COLLECTS=lib/plt/
443 fi
444 MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include${SCHEME_INC} \
445 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000446 MZSCHEME_SRC="if_mzsch.c"
447 MZSCHEME_OBJ="objects/if_mzsch.o"
448 MZSCHEME_PRO="if_mzsch.pro"
449 AC_DEFINE(FEAT_MZSCHEME)
450 fi
451 AC_SUBST(MZSCHEME_SRC)
452 AC_SUBST(MZSCHEME_OBJ)
453 AC_SUBST(MZSCHEME_PRO)
454 AC_SUBST(MZSCHEME_LIBS)
455 AC_SUBST(MZSCHEME_CFLAGS)
456fi
457
458
Bram Moolenaar071d4272004-06-13 20:20:40 +0000459AC_MSG_CHECKING(--enable-perlinterp argument)
460AC_ARG_ENABLE(perlinterp,
461 [ --enable-perlinterp Include Perl interpreter.], ,
462 [enable_perlinterp="no"])
463AC_MSG_RESULT($enable_perlinterp)
464if test "$enable_perlinterp" = "yes"; then
465 AC_SUBST(vi_cv_path_perl)
466 AC_PATH_PROG(vi_cv_path_perl, perl)
467 if test "X$vi_cv_path_perl" != "X"; then
468 AC_MSG_CHECKING(Perl version)
469 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
470 eval `$vi_cv_path_perl -V:usethreads`
471 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
472 badthreads=no
473 else
474 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
475 eval `$vi_cv_path_perl -V:use5005threads`
476 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
477 badthreads=no
478 else
479 badthreads=yes
480 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
481 fi
482 else
483 badthreads=yes
484 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
485 fi
486 fi
487 if test $badthreads = no; then
488 AC_MSG_RESULT(OK)
489 eval `$vi_cv_path_perl -V:shrpenv`
490 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
491 shrpenv=""
492 fi
493 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
494 AC_SUBST(vi_cv_perllib)
495 dnl Remove "-fno-something", it breaks using cproto.
496 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
497 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
498 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
499 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
500 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
501 -e 's/-bE:perl.exp//' -e 's/-lc //'`
502 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
503 dnl a test in configure may fail because of that.
504 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
505 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
506
507 dnl check that compiling a simple program still works with the flags
508 dnl added for Perl.
509 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
510 cflags_save=$CFLAGS
511 libs_save=$LIBS
512 ldflags_save=$LDFLAGS
513 CFLAGS="$CFLAGS $perlcppflags"
514 LIBS="$LIBS $perllibs"
515 LDFLAGS="$perlldflags $LDFLAGS"
516 AC_TRY_LINK(,[ ],
517 AC_MSG_RESULT(yes); perl_ok=yes,
518 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
519 CFLAGS=$cflags_save
520 LIBS=$libs_save
521 LDFLAGS=$ldflags_save
522 if test $perl_ok = yes; then
523 if test "X$perlcppflags" != "X"; then
Bram Moolenaard7afed32007-05-06 13:26:41 +0000524 dnl remove -pipe and -Wxxx, it confuses cproto
525 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
Bram Moolenaar071d4272004-06-13 20:20:40 +0000526 fi
527 if test "X$perlldflags" != "X"; then
528 LDFLAGS="$perlldflags $LDFLAGS"
529 fi
530 PERL_LIBS=$perllibs
531 PERL_SRC="auto/if_perl.c if_perlsfio.c"
532 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
533 PERL_PRO="if_perl.pro if_perlsfio.pro"
534 AC_DEFINE(FEAT_PERL)
535 fi
536 fi
537 else
538 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
539 fi
540 fi
541
542 if test "x$MACOSX" = "xyes"; then
Bram Moolenaar9372a112005-12-06 19:59:18 +0000543 dnl Mac OS X 10.2 or later
Bram Moolenaar071d4272004-06-13 20:20:40 +0000544 dir=/System/Library/Perl
545 darwindir=$dir/darwin
546 if test -d $darwindir; then
547 PERL=/usr/bin/perl
548 else
549 dnl Mac OS X 10.3
550 dir=/System/Library/Perl/5.8.1
551 darwindir=$dir/darwin-thread-multi-2level
552 if test -d $darwindir; then
553 PERL=/usr/bin/perl
554 fi
555 fi
556 if test -n "$PERL"; then
557 PERL_DIR="$dir"
558 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
559 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
560 PERL_LIBS="-L$darwindir/CORE -lperl"
561 fi
562 fi
563fi
564AC_SUBST(shrpenv)
565AC_SUBST(PERL_SRC)
566AC_SUBST(PERL_OBJ)
567AC_SUBST(PERL_PRO)
568AC_SUBST(PERL_CFLAGS)
569AC_SUBST(PERL_LIBS)
570
571AC_MSG_CHECKING(--enable-pythoninterp argument)
572AC_ARG_ENABLE(pythoninterp,
573 [ --enable-pythoninterp Include Python interpreter.], ,
574 [enable_pythoninterp="no"])
575AC_MSG_RESULT($enable_pythoninterp)
576if test "$enable_pythoninterp" = "yes"; then
577 dnl -- find the python executable
578 AC_PATH_PROG(vi_cv_path_python, python)
579 if test "X$vi_cv_path_python" != "X"; then
580
581 dnl -- get its version number
582 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
583 [[vi_cv_var_python_version=`
584 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
585 ]])
586
587 dnl -- it must be at least version 1.4
588 AC_MSG_CHECKING(Python is 1.4 or better)
589 if ${vi_cv_path_python} -c \
590 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
591 then
592 AC_MSG_RESULT(yep)
593
594 dnl -- find where python thinks it was installed
595 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
596 [ vi_cv_path_python_pfx=`
597 ${vi_cv_path_python} -c \
598 "import sys; print sys.prefix"` ])
599
600 dnl -- and where it thinks it runs
601 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
602 [ vi_cv_path_python_epfx=`
603 ${vi_cv_path_python} -c \
604 "import sys; print sys.exec_prefix"` ])
605
606 dnl -- python's internal library path
607
608 AC_CACHE_VAL(vi_cv_path_pythonpath,
609 [ vi_cv_path_pythonpath=`
610 unset PYTHONPATH;
611 ${vi_cv_path_python} -c \
612 "import sys, string; print string.join(sys.path,':')"` ])
613
614 dnl -- where the Python implementation library archives are
615
616 AC_ARG_WITH(python-config-dir,
617 [ --with-python-config-dir=PATH Python's config directory],
618 [ vi_cv_path_python_conf="${withval}" ] )
619
620 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
621 [
622 vi_cv_path_python_conf=
623 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
624 for subdir in lib share; do
625 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
626 if test -d "$d" && test -f "$d/config.c"; then
627 vi_cv_path_python_conf="$d"
628 fi
629 done
630 done
631 ])
632
633 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
634
635 if test "X$PYTHON_CONFDIR" = "X"; then
636 AC_MSG_RESULT([can't find it!])
637 else
638
639 dnl -- we need to examine Python's config/Makefile too
640 dnl see what the interpreter is built from
641 AC_CACHE_VAL(vi_cv_path_python_plibs,
642 [
643 tmp_mkf="/tmp/Makefile-conf$$"
644 cat ${PYTHON_CONFDIR}/Makefile - <<'eof' >${tmp_mkf}
645__:
646 @echo "python_MODLIBS='$(MODLIBS)'"
647 @echo "python_LIBS='$(LIBS)'"
648 @echo "python_SYSLIBS='$(SYSLIBS)'"
649 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
650eof
651 dnl -- delete the lines from make about Entering/Leaving directory
652 eval "`cd ${PYTHON_CONFDIR} && make -f ${tmp_mkf} __ | sed '/ directory /d'`"
653 rm -f ${tmp_mkf}
654 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
655 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
656 vi_cv_path_python_plibs="-framework Python"
657 else
658 if test "${vi_cv_var_python_version}" = "1.4"; then
659 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
660 else
661 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
662 fi
663 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
664 dnl remove -ltermcap, it can conflict with an earlier -lncurses
665 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
666 fi
667 ])
668
669 PYTHON_LIBS="${vi_cv_path_python_plibs}"
670 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
671 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
672 else
673 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}"
674 fi
675 PYTHON_SRC="if_python.c"
676 dnl For Mac OSX 10.2 config.o is included in the Python library.
677 if test "x$MACOSX" = "xyes"; then
678 PYTHON_OBJ="objects/if_python.o"
679 else
680 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
681 fi
682 if test "${vi_cv_var_python_version}" = "1.4"; then
683 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
684 fi
685 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
686
687 dnl On FreeBSD linking with "-pthread" is required to use threads.
688 dnl _THREAD_SAFE must be used for compiling then.
689 dnl The "-pthread" is added to $LIBS, so that the following check for
690 dnl sigaltstack() will look in libc_r (it's there in libc!).
691 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
692 dnl will then define target-specific defines, e.g., -D_REENTRANT.
693 dnl Don't do this for Mac OSX, -pthread will generate a warning.
694 AC_MSG_CHECKING([if -pthread should be used])
695 threadsafe_flag=
696 thread_lib=
Bram Moolenaara1b5aa52006-10-10 09:41:28 +0000697 dnl if test "x$MACOSX" != "xyes"; then
698 if test "`(uname) 2>/dev/null`" != Darwin; then
Bram Moolenaar071d4272004-06-13 20:20:40 +0000699 test "$GCC" = yes && threadsafe_flag="-pthread"
700 if test "`(uname) 2>/dev/null`" = FreeBSD; then
701 threadsafe_flag="-D_THREAD_SAFE"
702 thread_lib="-pthread"
703 fi
704 fi
705 libs_save_old=$LIBS
706 if test -n "$threadsafe_flag"; then
707 cflags_save=$CFLAGS
708 CFLAGS="$CFLAGS $threadsafe_flag"
709 LIBS="$LIBS $thread_lib"
710 AC_TRY_LINK(,[ ],
711 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
712 AC_MSG_RESULT(no); LIBS=$libs_save_old
713 )
714 CFLAGS=$cflags_save
715 else
716 AC_MSG_RESULT(no)
717 fi
718
719 dnl check that compiling a simple program still works with the flags
720 dnl added for Python.
721 AC_MSG_CHECKING([if compile and link flags for Python are sane])
722 cflags_save=$CFLAGS
723 libs_save=$LIBS
724 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
725 LIBS="$LIBS $PYTHON_LIBS"
726 AC_TRY_LINK(,[ ],
727 AC_MSG_RESULT(yes); python_ok=yes,
728 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
729 CFLAGS=$cflags_save
730 LIBS=$libs_save
731 if test $python_ok = yes; then
732 AC_DEFINE(FEAT_PYTHON)
733 else
734 LIBS=$libs_save_old
735 PYTHON_SRC=
736 PYTHON_OBJ=
737 PYTHON_LIBS=
738 PYTHON_CFLAGS=
739 fi
740
741 fi
742 else
743 AC_MSG_RESULT(too old)
744 fi
745 fi
746fi
747AC_SUBST(PYTHON_CONFDIR)
748AC_SUBST(PYTHON_LIBS)
749AC_SUBST(PYTHON_GETPATH_CFLAGS)
750AC_SUBST(PYTHON_CFLAGS)
751AC_SUBST(PYTHON_SRC)
752AC_SUBST(PYTHON_OBJ)
753
754AC_MSG_CHECKING(--enable-tclinterp argument)
755AC_ARG_ENABLE(tclinterp,
756 [ --enable-tclinterp Include Tcl interpreter.], ,
757 [enable_tclinterp="no"])
758AC_MSG_RESULT($enable_tclinterp)
759
760if test "$enable_tclinterp" = "yes"; then
761
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000762 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
Bram Moolenaar071d4272004-06-13 20:20:40 +0000763 AC_MSG_CHECKING(--with-tclsh argument)
764 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
765 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000766 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
Bram Moolenaar071d4272004-06-13 20:20:40 +0000767 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
768 AC_SUBST(vi_cv_path_tcl)
769
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000770 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
771 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
772 tclsh_name="tclsh8.4"
773 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
774 fi
Bram Moolenaardf3267e2005-01-25 22:07:05 +0000775 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
Bram Moolenaar071d4272004-06-13 20:20:40 +0000776 tclsh_name="tclsh8.2"
777 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
778 fi
Bram Moolenaardf3267e2005-01-25 22:07:05 +0000779 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
780 tclsh_name="tclsh8.0"
781 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
782 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +0000783 dnl still didn't find it, try without version number
784 if test "X$vi_cv_path_tcl" = "X"; then
785 tclsh_name="tclsh"
786 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
787 fi
788 if test "X$vi_cv_path_tcl" != "X"; then
789 AC_MSG_CHECKING(Tcl version)
790 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
791 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
792 AC_MSG_RESULT($tclver - OK);
793 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 -`
794
795 AC_MSG_CHECKING(for location of Tcl include)
796 if test "x$MACOSX" != "xyes"; then
Bram Moolenaar0ff8f602008-02-20 11:44:03 +0000797 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 +0000798 else
799 dnl For Mac OS X 10.3, use the OS-provided framework location
800 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
801 fi
Bram Moolenaar0ff8f602008-02-20 11:44:03 +0000802 TCL_INC=
Bram Moolenaar071d4272004-06-13 20:20:40 +0000803 for try in $tclinc; do
804 if test -f "$try/tcl.h"; then
805 AC_MSG_RESULT($try/tcl.h)
806 TCL_INC=$try
807 break
808 fi
809 done
810 if test -z "$TCL_INC"; then
811 AC_MSG_RESULT(<not found>)
812 SKIP_TCL=YES
813 fi
814 if test -z "$SKIP_TCL"; then
815 AC_MSG_CHECKING(for location of tclConfig.sh script)
816 if test "x$MACOSX" != "xyes"; then
817 tclcnf=`echo $tclinc | sed s/include/lib/g`
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000818 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000819 else
820 dnl For Mac OS X 10.3, use the OS-provided framework location
821 tclcnf="/System/Library/Frameworks/Tcl.framework"
822 fi
823 for try in $tclcnf; do
824 if test -f $try/tclConfig.sh; then
825 AC_MSG_RESULT($try/tclConfig.sh)
826 . $try/tclConfig.sh
827 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
828 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
829 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
Bram Moolenaardf3267e2005-01-25 22:07:05 +0000830 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
Bram Moolenaar9372a112005-12-06 19:59:18 +0000831 TCL_DEFS=`echo $TCL_DEFS | sed -e 's/\\\\ /\\\\X/g' | tr ' ' '\012' | sed -e '/^-[[^D]]/d' -e '/-D[[^_]]/d' -e 's/-D_/ -D_/' | tr '\012' ' ' | sed -e 's/\\\\X/\\\\ /g'`
Bram Moolenaar071d4272004-06-13 20:20:40 +0000832 break
833 fi
834 done
835 if test -z "$TCL_LIBS"; then
836 AC_MSG_RESULT(<not found>)
837 AC_MSG_CHECKING(for Tcl library by myself)
838 tcllib=`echo $tclinc | sed s/include/lib/g`
Bram Moolenaar9b5d4dd2008-01-01 15:26:45 +0000839 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000840 for ext in .so .a ; do
841 for ver in "" $tclver ; do
842 for try in $tcllib ; do
843 trylib=tcl$ver$ext
844 if test -f $try/lib$trylib ; then
845 AC_MSG_RESULT($try/lib$trylib)
846 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
847 if test "`(uname) 2>/dev/null`" = SunOS &&
848 uname -r | grep '^5' >/dev/null; then
849 TCL_LIBS="$TCL_LIBS -R $try"
850 fi
851 break 3
852 fi
853 done
854 done
855 done
856 if test -z "$TCL_LIBS"; then
857 AC_MSG_RESULT(<not found>)
858 SKIP_TCL=YES
859 fi
860 fi
861 if test -z "$SKIP_TCL"; then
862 AC_DEFINE(FEAT_TCL)
863 TCL_SRC=if_tcl.c
864 TCL_OBJ=objects/if_tcl.o
865 TCL_PRO=if_tcl.pro
866 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
867 fi
868 fi
869 else
870 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
871 fi
872 fi
873fi
874AC_SUBST(TCL_SRC)
875AC_SUBST(TCL_OBJ)
876AC_SUBST(TCL_PRO)
877AC_SUBST(TCL_CFLAGS)
878AC_SUBST(TCL_LIBS)
879
880AC_MSG_CHECKING(--enable-rubyinterp argument)
881AC_ARG_ENABLE(rubyinterp,
882 [ --enable-rubyinterp Include Ruby interpreter.], ,
883 [enable_rubyinterp="no"])
884AC_MSG_RESULT($enable_rubyinterp)
885if test "$enable_rubyinterp" = "yes"; then
886 AC_SUBST(vi_cv_path_ruby)
887 AC_PATH_PROG(vi_cv_path_ruby, ruby)
888 if test "X$vi_cv_path_ruby" != "X"; then
889 AC_MSG_CHECKING(Ruby version)
Bram Moolenaare4efc3b2005-03-07 23:16:51 +0000890 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 +0000891 AC_MSG_RESULT(OK)
892 AC_MSG_CHECKING(Ruby header files)
893 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
894 if test "X$rubyhdrdir" != "X"; then
895 AC_MSG_RESULT($rubyhdrdir)
896 RUBY_CFLAGS="-I$rubyhdrdir"
897 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
898 if test "X$rubylibs" != "X"; then
899 RUBY_LIBS="$rubylibs"
900 fi
901 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
902 if test -f "$rubyhdrdir/$librubyarg"; then
903 librubyarg="$rubyhdrdir/$librubyarg"
904 else
905 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
906 if test -f "$rubylibdir/$librubyarg"; then
907 librubyarg="$rubylibdir/$librubyarg"
908 elif test "$librubyarg" = "libruby.a"; then
909 dnl required on Mac OS 10.3 where libruby.a doesn't exist
910 librubyarg="-lruby"
911 else
912 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
913 fi
914 fi
915
916 if test "X$librubyarg" != "X"; then
917 RUBY_LIBS="$librubyarg $RUBY_LIBS"
918 fi
919 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
920 if test "X$rubyldflags" != "X"; then
921 LDFLAGS="$rubyldflags $LDFLAGS"
922 fi
923 RUBY_SRC="if_ruby.c"
924 RUBY_OBJ="objects/if_ruby.o"
925 RUBY_PRO="if_ruby.pro"
926 AC_DEFINE(FEAT_RUBY)
927 else
928 AC_MSG_RESULT(not found, disabling Ruby)
929 fi
930 else
931 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
932 fi
933 fi
934fi
935AC_SUBST(RUBY_SRC)
936AC_SUBST(RUBY_OBJ)
937AC_SUBST(RUBY_PRO)
938AC_SUBST(RUBY_CFLAGS)
939AC_SUBST(RUBY_LIBS)
940
941AC_MSG_CHECKING(--enable-cscope argument)
942AC_ARG_ENABLE(cscope,
943 [ --enable-cscope Include cscope interface.], ,
944 [enable_cscope="no"])
945AC_MSG_RESULT($enable_cscope)
946if test "$enable_cscope" = "yes"; then
947 AC_DEFINE(FEAT_CSCOPE)
948fi
949
950AC_MSG_CHECKING(--enable-workshop argument)
951AC_ARG_ENABLE(workshop,
952 [ --enable-workshop Include Sun Visual Workshop support.], ,
953 [enable_workshop="no"])
954AC_MSG_RESULT($enable_workshop)
955if test "$enable_workshop" = "yes"; then
956 AC_DEFINE(FEAT_SUN_WORKSHOP)
957 WORKSHOP_SRC="workshop.c integration.c"
958 AC_SUBST(WORKSHOP_SRC)
959 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
960 AC_SUBST(WORKSHOP_OBJ)
961 if test "${enable_gui-xxx}" = xxx; then
962 enable_gui=motif
963 fi
964fi
965
966AC_MSG_CHECKING(--disable-netbeans argument)
967AC_ARG_ENABLE(netbeans,
968 [ --disable-netbeans Disable NetBeans integration support.],
969 , [enable_netbeans="yes"])
970if test "$enable_netbeans" = "yes"; then
971 AC_MSG_RESULT(no)
972 dnl On Solaris we need the socket and nsl library.
973 AC_CHECK_LIB(socket, socket)
974 AC_CHECK_LIB(nsl, gethostbyname)
975 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
976 AC_TRY_LINK([
977#include <stdio.h>
978#include <stdlib.h>
979#include <stdarg.h>
980#include <fcntl.h>
981#include <netdb.h>
982#include <netinet/in.h>
983#include <errno.h>
984#include <sys/types.h>
985#include <sys/socket.h>
986 /* Check bitfields */
987 struct nbbuf {
988 unsigned int initDone:1;
989 ushort signmaplen;
990 };
991 ], [
992 /* Check creating a socket. */
993 struct sockaddr_in server;
994 (void)socket(AF_INET, SOCK_STREAM, 0);
995 (void)htons(100);
996 (void)gethostbyname("microsoft.com");
997 if (errno == ECONNREFUSED)
998 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
999 ],
1000 AC_MSG_RESULT(yes),
1001 AC_MSG_RESULT(no); enable_netbeans="no")
1002else
1003 AC_MSG_RESULT(yes)
1004fi
1005if test "$enable_netbeans" = "yes"; then
1006 AC_DEFINE(FEAT_NETBEANS_INTG)
1007 NETBEANS_SRC="netbeans.c"
1008 AC_SUBST(NETBEANS_SRC)
1009 NETBEANS_OBJ="objects/netbeans.o"
1010 AC_SUBST(NETBEANS_OBJ)
1011fi
1012
1013AC_MSG_CHECKING(--enable-sniff argument)
1014AC_ARG_ENABLE(sniff,
1015 [ --enable-sniff Include Sniff interface.], ,
1016 [enable_sniff="no"])
1017AC_MSG_RESULT($enable_sniff)
1018if test "$enable_sniff" = "yes"; then
1019 AC_DEFINE(FEAT_SNIFF)
1020 SNIFF_SRC="if_sniff.c"
1021 AC_SUBST(SNIFF_SRC)
1022 SNIFF_OBJ="objects/if_sniff.o"
1023 AC_SUBST(SNIFF_OBJ)
1024fi
1025
1026AC_MSG_CHECKING(--enable-multibyte argument)
1027AC_ARG_ENABLE(multibyte,
1028 [ --enable-multibyte Include multibyte editing support.], ,
1029 [enable_multibyte="no"])
1030AC_MSG_RESULT($enable_multibyte)
1031if test "$enable_multibyte" = "yes"; then
1032 AC_DEFINE(FEAT_MBYTE)
1033fi
1034
1035AC_MSG_CHECKING(--enable-hangulinput argument)
1036AC_ARG_ENABLE(hangulinput,
1037 [ --enable-hangulinput Include Hangul input support.], ,
1038 [enable_hangulinput="no"])
1039AC_MSG_RESULT($enable_hangulinput)
1040
1041AC_MSG_CHECKING(--enable-xim argument)
1042AC_ARG_ENABLE(xim,
1043 [ --enable-xim Include XIM input support.],
1044 AC_MSG_RESULT($enable_xim),
1045 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1046dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1047
1048AC_MSG_CHECKING(--enable-fontset argument)
1049AC_ARG_ENABLE(fontset,
1050 [ --enable-fontset Include X fontset output support.], ,
1051 [enable_fontset="no"])
1052AC_MSG_RESULT($enable_fontset)
1053dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1054
1055test -z "$with_x" && with_x=yes
1056test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1057if test "$with_x" = no; then
1058 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1059else
1060 dnl Do this check early, so that its failure can override user requests.
1061
1062 AC_PATH_PROG(xmkmfpath, xmkmf)
1063
1064 AC_PATH_XTRA
1065
1066 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1067 dnl be compiled with a special option.
1068 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1069 if test "$OS390Unix" = "yes"; then
1070 CFLAGS="$CFLAGS -W c,dll"
1071 LDFLAGS="$LDFLAGS -W l,dll"
1072 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1073 fi
1074
1075 dnl On my HPUX system the X include dir is found, but the lib dir not.
1076 dnl This is a desparate try to fix this.
1077
1078 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1079 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1080 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1081 X_LIBS="$X_LIBS -L$x_libraries"
1082 if test "`(uname) 2>/dev/null`" = SunOS &&
1083 uname -r | grep '^5' >/dev/null; then
1084 X_LIBS="$X_LIBS -R $x_libraries"
1085 fi
1086 fi
1087
1088 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1089 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1090 AC_MSG_RESULT(Corrected X includes to $x_includes)
1091 X_CFLAGS="$X_CFLAGS -I$x_includes"
1092 fi
1093
1094 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1095 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1096 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1097 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1098 dnl Same for "-R/usr/lib ".
1099 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1100
1101
1102 dnl Check if the X11 header files are correctly installed. On some systems
1103 dnl Xlib.h includes files that don't exist
1104 AC_MSG_CHECKING(if X11 header files can be found)
1105 cflags_save=$CFLAGS
1106 CFLAGS="$CFLAGS $X_CFLAGS"
1107 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1108 AC_MSG_RESULT(yes),
1109 AC_MSG_RESULT(no); no_x=yes)
1110 CFLAGS=$cflags_save
1111
1112 if test "${no_x-no}" = yes; then
1113 with_x=no
1114 else
1115 AC_DEFINE(HAVE_X11)
1116 X_LIB="-lXt -lX11";
1117 AC_SUBST(X_LIB)
1118
1119 ac_save_LDFLAGS="$LDFLAGS"
1120 LDFLAGS="-L$x_libraries $LDFLAGS"
1121
1122 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1123 dnl For HP-UX 10.20 it must be before -lSM -lICE
1124 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1125 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1126
1127 dnl Some systems need -lnsl -lsocket when testing for ICE.
1128 dnl The check above doesn't do this, try here (again). Also needed to get
1129 dnl them after Xdmcp. link.sh will remove them when not needed.
1130 dnl Check for other function than above to avoid the cached value
1131 AC_CHECK_LIB(ICE, IceOpenConnection,
1132 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1133
1134 dnl Check for -lXpm (needed for some versions of Motif)
1135 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1136 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1137 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1138
1139 dnl Check that the X11 header files don't use implicit declarations
1140 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1141 cflags_save=$CFLAGS
1142 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1143 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1144 AC_MSG_RESULT(no),
1145 CFLAGS="$CFLAGS -Wno-implicit-int"
1146 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1147 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1148 AC_MSG_RESULT(test failed)
1149 )
1150 )
1151 CFLAGS=$cflags_save
1152
1153 LDFLAGS="$ac_save_LDFLAGS"
1154
1155 fi
1156fi
1157
Bram Moolenaara7fc0102005-05-18 22:17:12 +00001158test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
Bram Moolenaar071d4272004-06-13 20:20:40 +00001159
1160AC_MSG_CHECKING(--enable-gui argument)
1161AC_ARG_ENABLE(gui,
Bram Moolenaar9372a112005-12-06 19:59:18 +00001162 [ --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 +00001163
1164dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1165dnl Do not use character classes for portability with old tools.
1166enable_gui_canon=`echo "_$enable_gui" | \
1167 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1168
1169dnl Skip everything by default.
1170SKIP_GTK=YES
1171SKIP_GTK2=YES
1172SKIP_GNOME=YES
1173SKIP_MOTIF=YES
1174SKIP_ATHENA=YES
1175SKIP_NEXTAW=YES
1176SKIP_PHOTON=YES
Bram Moolenaar071d4272004-06-13 20:20:40 +00001177SKIP_CARBON=YES
1178GUITYPE=NONE
1179
Bram Moolenaarb11160e2005-01-04 21:31:43 +00001180if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
Bram Moolenaar071d4272004-06-13 20:20:40 +00001181 SKIP_PHOTON=
1182 case "$enable_gui_canon" in
1183 no) AC_MSG_RESULT(no GUI support)
1184 SKIP_PHOTON=YES ;;
1185 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1186 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1187 photon) AC_MSG_RESULT(Photon GUI support) ;;
1188 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1189 SKIP_PHOTON=YES ;;
1190 esac
1191
1192elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1193 SKIP_CARBON=
1194 case "$enable_gui_canon" in
1195 no) AC_MSG_RESULT(no GUI support)
1196 SKIP_CARBON=YES ;;
1197 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1198 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1199 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1200 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1201 SKIP_CARBON=YES ;;
1202 esac
1203
1204else
1205
Bram Moolenaar071d4272004-06-13 20:20:40 +00001206 case "$enable_gui_canon" in
1207 no|none) AC_MSG_RESULT(no GUI support) ;;
1208 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1209 SKIP_GTK=
1210 SKIP_GTK2=
1211 SKIP_GNOME=
1212 SKIP_MOTIF=
1213 SKIP_ATHENA=
1214 SKIP_NEXTAW=
1215 SKIP_CARBON=;;
1216 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1217 SKIP_GTK=;;
1218 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1219 SKIP_GTK=
1220 SKIP_GTK2=;;
1221 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1222 SKIP_GNOME=
1223 SKIP_GTK=;;
1224 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1225 SKIP_GNOME=
1226 SKIP_GTK=
1227 SKIP_GTK2=;;
1228 motif) AC_MSG_RESULT(Motif GUI support)
1229 SKIP_MOTIF=;;
1230 athena) AC_MSG_RESULT(Athena GUI support)
1231 SKIP_ATHENA=;;
1232 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1233 SKIP_NEXTAW=;;
1234 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1235 esac
1236
1237fi
1238
1239if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1240 AC_MSG_CHECKING(whether or not to look for GTK)
1241 AC_ARG_ENABLE(gtk-check,
1242 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1243 , enable_gtk_check="yes")
1244 AC_MSG_RESULT($enable_gtk_check)
1245 if test "x$enable_gtk_check" = "xno"; then
1246 SKIP_GTK=YES
1247 SKIP_GNOME=YES
1248 fi
1249fi
1250
1251if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1252 -a "$enable_gui_canon" != "gnome2"; then
1253 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1254 AC_ARG_ENABLE(gtk2-check,
1255 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1256 , enable_gtk2_check="yes")
1257 AC_MSG_RESULT($enable_gtk2_check)
1258 if test "x$enable_gtk2_check" = "xno"; then
1259 SKIP_GTK2=YES
1260 fi
1261fi
1262
1263if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1264 -a "$enable_gui_canon" != "gnome2"; then
1265 AC_MSG_CHECKING(whether or not to look for GNOME)
1266 AC_ARG_ENABLE(gnome-check,
1267 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1268 , enable_gnome_check="no")
1269 AC_MSG_RESULT($enable_gnome_check)
1270 if test "x$enable_gnome_check" = "xno"; then
1271 SKIP_GNOME=YES
1272 fi
1273fi
1274
1275if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1276 AC_MSG_CHECKING(whether or not to look for Motif)
1277 AC_ARG_ENABLE(motif-check,
1278 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1279 , enable_motif_check="yes")
1280 AC_MSG_RESULT($enable_motif_check)
1281 if test "x$enable_motif_check" = "xno"; then
1282 SKIP_MOTIF=YES
1283 fi
1284fi
1285
1286if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1287 AC_MSG_CHECKING(whether or not to look for Athena)
1288 AC_ARG_ENABLE(athena-check,
1289 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1290 , enable_athena_check="yes")
1291 AC_MSG_RESULT($enable_athena_check)
1292 if test "x$enable_athena_check" = "xno"; then
1293 SKIP_ATHENA=YES
1294 fi
1295fi
1296
1297if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1298 AC_MSG_CHECKING(whether or not to look for neXtaw)
1299 AC_ARG_ENABLE(nextaw-check,
1300 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1301 , enable_nextaw_check="yes")
1302 AC_MSG_RESULT($enable_nextaw_check);
1303 if test "x$enable_nextaw_check" = "xno"; then
1304 SKIP_NEXTAW=YES
1305 fi
1306fi
1307
1308if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1309 AC_MSG_CHECKING(whether or not to look for Carbon)
1310 AC_ARG_ENABLE(carbon-check,
1311 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1312 , enable_carbon_check="yes")
1313 AC_MSG_RESULT($enable_carbon_check);
1314 if test "x$enable_carbon_check" = "xno"; then
1315 SKIP_CARBON=YES
1316 fi
1317fi
1318
Bram Moolenaar843ee412004-06-30 16:16:41 +00001319
Bram Moolenaar071d4272004-06-13 20:20:40 +00001320if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1321 AC_MSG_CHECKING(for Carbon GUI)
Bram Moolenaar14716812006-05-04 21:54:08 +00001322 dnl already did the check, just give the message
Bram Moolenaar071d4272004-06-13 20:20:40 +00001323 AC_MSG_RESULT(yes);
1324 GUITYPE=CARBONGUI
Bram Moolenaare344bea2005-09-01 20:46:49 +00001325 if test "$VIMNAME" = "vim"; then
1326 VIMNAME=Vim
1327 fi
Bram Moolenaar14716812006-05-04 21:54:08 +00001328
1329 dnl Default install directory is not /usr/local
1330 if test x$prefix = xNONE; then
1331 prefix=/Applications
1332 fi
1333
1334 dnl Sorry for the hard coded default
1335 datadir='${prefix}/Vim.app/Contents/Resources'
1336
Bram Moolenaar071d4272004-06-13 20:20:40 +00001337 dnl skip everything else
1338 SKIP_GTK=YES;
1339 SKIP_GTK2=YES;
1340 SKIP_GNOME=YES;
1341 SKIP_MOTIF=YES;
1342 SKIP_ATHENA=YES;
1343 SKIP_NEXTAW=YES;
1344 SKIP_PHOTON=YES;
Bram Moolenaar071d4272004-06-13 20:20:40 +00001345 SKIP_CARBON=YES
1346fi
1347
Bram Moolenaar071d4272004-06-13 20:20:40 +00001348dnl
1349dnl Get the cflags and libraries from the gtk-config script
1350dnl
1351
1352dnl define an autoconf function to check for a specified version of GTK, and
1353dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1354dnl
1355dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001356dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
Bram Moolenaar071d4272004-06-13 20:20:40 +00001357dnl
1358AC_DEFUN(AM_PATH_GTK,
1359[
1360 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1361 {
1362 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1363 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1364 no_gtk=""
1365 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1366 && $PKG_CONFIG --exists gtk+-2.0; then
1367 {
1368 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1369 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1370 dnl something like that.
1371 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001372 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
Bram Moolenaar071d4272004-06-13 20:20:40 +00001373 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1374 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1375 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1376 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1377 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1378 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1379 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1380 }
1381 elif test "X$GTK_CONFIG" != "Xno"; then
1382 {
1383 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001384 GTK_LIBDIR=
Bram Moolenaar071d4272004-06-13 20:20:40 +00001385 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1386 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1387 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1388 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1389 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1390 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1391 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1392 }
1393 else
1394 no_gtk=yes
1395 fi
1396
1397 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1398 {
1399 ac_save_CFLAGS="$CFLAGS"
1400 ac_save_LIBS="$LIBS"
1401 CFLAGS="$CFLAGS $GTK_CFLAGS"
1402 LIBS="$LIBS $GTK_LIBS"
1403
1404 dnl
1405 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1406 dnl checks the results of gtk-config to some extent
1407 dnl
1408 rm -f conf.gtktest
1409 AC_TRY_RUN([
1410#include <gtk/gtk.h>
1411#include <stdio.h>
1412
1413int
1414main ()
1415{
1416int major, minor, micro;
1417char *tmp_version;
1418
1419system ("touch conf.gtktest");
1420
1421/* HP/UX 9 (%@#!) writes to sscanf strings */
1422tmp_version = g_strdup("$min_gtk_version");
1423if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
1424 printf("%s, bad version string\n", "$min_gtk_version");
1425 exit(1);
1426 }
1427
1428if ((gtk_major_version > major) ||
1429 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1430 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1431 (gtk_micro_version >= micro)))
1432{
1433 return 0;
1434}
1435return 1;
1436}
1437],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1438 CFLAGS="$ac_save_CFLAGS"
1439 LIBS="$ac_save_LIBS"
1440 }
1441 fi
1442 if test "x$no_gtk" = x ; then
1443 if test "x$enable_gtktest" = "xyes"; then
1444 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1445 else
1446 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1447 fi
1448 ifelse([$2], , :, [$2])
1449 else
1450 {
1451 AC_MSG_RESULT(no)
1452 GTK_CFLAGS=""
1453 GTK_LIBS=""
1454 ifelse([$3], , :, [$3])
1455 }
1456 fi
1457 }
1458 else
1459 GTK_CFLAGS=""
1460 GTK_LIBS=""
1461 ifelse([$3], , :, [$3])
1462 fi
1463 AC_SUBST(GTK_CFLAGS)
1464 AC_SUBST(GTK_LIBS)
1465 rm -f conf.gtktest
1466])
1467
1468dnl ---------------------------------------------------------------------------
1469dnl gnome
1470dnl ---------------------------------------------------------------------------
1471AC_DEFUN([GNOME_INIT_HOOK],
1472[
1473 AC_SUBST(GNOME_LIBS)
1474 AC_SUBST(GNOME_LIBDIR)
1475 AC_SUBST(GNOME_INCLUDEDIR)
1476
1477 AC_ARG_WITH(gnome-includes,
1478 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1479 [CFLAGS="$CFLAGS -I$withval"]
1480 )
1481
1482 AC_ARG_WITH(gnome-libs,
1483 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1484 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1485 )
1486
1487 AC_ARG_WITH(gnome,
1488 [ --with-gnome Specify prefix for GNOME files],
1489 if test x$withval = xyes; then
1490 want_gnome=yes
1491 ifelse([$1], [], :, [$1])
1492 else
1493 if test "x$withval" = xno; then
1494 want_gnome=no
1495 else
1496 want_gnome=yes
1497 LDFLAGS="$LDFLAGS -L$withval/lib"
1498 CFLAGS="$CFLAGS -I$withval/include"
1499 gnome_prefix=$withval/lib
1500 fi
1501 fi,
1502 want_gnome=yes)
1503
1504 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1505 {
1506 AC_MSG_CHECKING(for libgnomeui-2.0)
1507 if $PKG_CONFIG --exists libgnomeui-2.0; then
1508 AC_MSG_RESULT(yes)
1509 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1510 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1511 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00001512
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001513 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1514 dnl This might not be the right way but it works for me...
1515 AC_MSG_CHECKING(for FreeBSD)
1516 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1517 AC_MSG_RESULT(yes, adding -pthread)
Bram Moolenaarc9b4b052006-04-30 18:54:39 +00001518 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
Bram Moolenaar97b2ad32006-03-18 21:40:56 +00001519 GNOME_LIBS="$GNOME_LIBS -pthread"
1520 else
1521 AC_MSG_RESULT(no)
1522 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00001523 $1
1524 else
1525 AC_MSG_RESULT(not found)
1526 if test "x$2" = xfail; then
1527 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1528 fi
1529 fi
1530 }
1531 elif test "x$want_gnome" = xyes; then
1532 {
1533 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1534 if test "$GNOME_CONFIG" = "no"; then
1535 no_gnome_config="yes"
1536 else
1537 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1538 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1539 AC_MSG_RESULT(yes)
1540 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1541 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1542 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1543 $1
1544 else
1545 AC_MSG_RESULT(no)
1546 no_gnome_config="yes"
1547 fi
1548 fi
1549
1550 if test x$exec_prefix = xNONE; then
1551 if test x$prefix = xNONE; then
1552 gnome_prefix=$ac_default_prefix/lib
1553 else
1554 gnome_prefix=$prefix/lib
1555 fi
1556 else
1557 gnome_prefix=`eval echo \`echo $libdir\``
1558 fi
1559
1560 if test "$no_gnome_config" = "yes"; then
1561 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1562 if test -f $gnome_prefix/gnomeConf.sh; then
1563 AC_MSG_RESULT(found)
1564 echo "loading gnome configuration from" \
1565 "$gnome_prefix/gnomeConf.sh"
1566 . $gnome_prefix/gnomeConf.sh
1567 $1
1568 else
1569 AC_MSG_RESULT(not found)
1570 if test x$2 = xfail; then
1571 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1572 fi
1573 fi
1574 fi
1575 }
1576 fi
1577])
1578
1579AC_DEFUN([GNOME_INIT],[
1580 GNOME_INIT_HOOK([],fail)
1581])
1582
1583
1584dnl ---------------------------------------------------------------------------
1585dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1586dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1587dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1588dnl ---------------------------------------------------------------------------
1589if test -z "$SKIP_GTK"; then
1590
1591 AC_MSG_CHECKING(--with-gtk-prefix argument)
1592 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1593 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1594 gtk_config_prefix=""; AC_MSG_RESULT(no))
1595
1596 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1597 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1598 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1599 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1600
1601 AC_MSG_CHECKING(--disable-gtktest argument)
1602 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1603 , enable_gtktest=yes)
1604 if test "x$enable_gtktest" = "xyes" ; then
1605 AC_MSG_RESULT(gtk test enabled)
1606 else
1607 AC_MSG_RESULT(gtk test disabled)
1608 fi
1609
1610 if test "x$gtk_config_prefix" != "x" ; then
1611 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1612 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1613 fi
1614 if test "x$gtk_config_exec_prefix" != "x" ; then
1615 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1616 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1617 fi
1618 if test "X$GTK_CONFIG" = "X"; then
1619 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1620 if test "X$GTK_CONFIG" = "Xno"; then
1621 dnl Some distributions call it gtk12-config, annoying!
1622 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1623 GTK_CONFIG="$GTK12_CONFIG"
1624 fi
1625 else
1626 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1627 fi
1628 if test "X$PKG_CONFIG" = "X"; then
1629 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1630 fi
1631
1632 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1633 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1634 dnl problems (bold fonts, --remote doesn't work).
1635 if test "X$SKIP_GTK2" != "XYES"; then
1636 AM_PATH_GTK(2.2.0,
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001637 [GUI_LIB_LOC="$GTK_LIBDIR"
1638 GTK_LIBNAME="$GTK_LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00001639 GUI_INC_LOC="$GTK_CFLAGS"], )
1640 if test "x$GTK_CFLAGS" != "x"; then
1641 SKIP_ATHENA=YES
1642 SKIP_NEXTAW=YES
1643 SKIP_MOTIF=YES
1644 GUITYPE=GTK
1645 AC_SUBST(GTK_LIBNAME)
1646 fi
1647 fi
1648
1649 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1650 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1651 dnl were test versions.
1652 if test "x$GUITYPE" != "xGTK"; then
1653 SKIP_GTK2=YES
1654 AM_PATH_GTK(1.1.16,
1655 [GTK_LIBNAME="$GTK_LIBS"
1656 GUI_INC_LOC="$GTK_CFLAGS"], )
1657 if test "x$GTK_CFLAGS" != "x"; then
1658 SKIP_ATHENA=YES
1659 SKIP_NEXTAW=YES
1660 SKIP_MOTIF=YES
1661 GUITYPE=GTK
1662 AC_SUBST(GTK_LIBNAME)
1663 fi
1664 fi
1665 fi
1666 dnl Give a warning if GTK is older than 1.2.3
1667 if test "x$GUITYPE" = "xGTK"; then
1668 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1669 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1670 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1671 else
1672 {
1673 if test "0$gtk_major_version" -ge 2; then
1674 AC_DEFINE(HAVE_GTK2)
1675 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1676 || test "0$gtk_minor_version" -ge 2 \
1677 || test "0$gtk_major_version" -gt 2; then
1678 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1679 fi
1680 fi
1681 dnl
1682 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1683 dnl
1684 if test -z "$SKIP_GNOME"; then
1685 {
1686 GNOME_INIT_HOOK([have_gnome=yes])
1687 if test x$have_gnome = xyes ; then
1688 AC_DEFINE(FEAT_GUI_GNOME)
1689 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1690 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1691 fi
1692 }
1693 fi
1694 }
1695 fi
1696 fi
1697fi
1698
1699dnl Check for Motif include files location.
1700dnl The LAST one found is used, this makes the highest version to be used,
1701dnl e.g. when Motif1.2 and Motif2.0 are both present.
1702
1703if test -z "$SKIP_MOTIF"; then
1704 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"
1705 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1706 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1707
1708 AC_MSG_CHECKING(for location of Motif GUI includes)
1709 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1710 GUI_INC_LOC=
1711 for try in $gui_includes; do
1712 if test -f "$try/Xm/Xm.h"; then
1713 GUI_INC_LOC=$try
1714 fi
1715 done
1716 if test -n "$GUI_INC_LOC"; then
1717 if test "$GUI_INC_LOC" = /usr/include; then
1718 GUI_INC_LOC=
1719 AC_MSG_RESULT(in default path)
1720 else
1721 AC_MSG_RESULT($GUI_INC_LOC)
1722 fi
1723 else
1724 AC_MSG_RESULT(<not found>)
1725 SKIP_MOTIF=YES
1726 fi
1727fi
1728
1729dnl Check for Motif library files location. In the same order as the include
1730dnl files, to avoid a mixup if several versions are present
1731
1732if test -z "$SKIP_MOTIF"; then
1733 AC_MSG_CHECKING(--with-motif-lib argument)
1734 AC_ARG_WITH(motif-lib,
1735 [ --with-motif-lib=STRING Library for Motif ],
1736 [ MOTIF_LIBNAME="${withval}" ] )
1737
1738 if test -n "$MOTIF_LIBNAME"; then
1739 AC_MSG_RESULT($MOTIF_LIBNAME)
1740 GUI_LIB_LOC=
1741 else
1742 AC_MSG_RESULT(no)
1743
1744 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1745 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1746
1747 AC_MSG_CHECKING(for location of Motif GUI libs)
1748 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"
1749 GUI_LIB_LOC=
1750 for try in $gui_libs; do
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001751 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
Bram Moolenaar071d4272004-06-13 20:20:40 +00001752 if test -f "$libtry"; then
1753 GUI_LIB_LOC=$try
1754 fi
1755 done
1756 done
1757 if test -n "$GUI_LIB_LOC"; then
1758 dnl Remove /usr/lib, it causes trouble on some systems
1759 if test "$GUI_LIB_LOC" = /usr/lib; then
1760 GUI_LIB_LOC=
1761 AC_MSG_RESULT(in default path)
1762 else
1763 if test -n "$GUI_LIB_LOC"; then
1764 AC_MSG_RESULT($GUI_LIB_LOC)
1765 if test "`(uname) 2>/dev/null`" = SunOS &&
1766 uname -r | grep '^5' >/dev/null; then
1767 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1768 fi
1769 fi
1770 fi
1771 MOTIF_LIBNAME=-lXm
1772 else
1773 AC_MSG_RESULT(<not found>)
1774 SKIP_MOTIF=YES
1775 fi
1776 fi
1777fi
1778
1779if test -z "$SKIP_MOTIF"; then
1780 SKIP_ATHENA=YES
1781 SKIP_NEXTAW=YES
1782 GUITYPE=MOTIF
1783 AC_SUBST(MOTIF_LIBNAME)
1784fi
1785
1786dnl Check if the Athena files can be found
1787
1788GUI_X_LIBS=
1789
1790if test -z "$SKIP_ATHENA"; then
1791 AC_MSG_CHECKING(if Athena header files can be found)
1792 cflags_save=$CFLAGS
1793 CFLAGS="$CFLAGS $X_CFLAGS"
1794 AC_TRY_COMPILE([
1795#include <X11/Intrinsic.h>
1796#include <X11/Xaw/Paned.h>], ,
1797 AC_MSG_RESULT(yes),
1798 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1799 CFLAGS=$cflags_save
1800fi
1801
1802if test -z "$SKIP_ATHENA"; then
1803 GUITYPE=ATHENA
1804fi
1805
1806if test -z "$SKIP_NEXTAW"; then
1807 AC_MSG_CHECKING(if neXtaw header files can be found)
1808 cflags_save=$CFLAGS
1809 CFLAGS="$CFLAGS $X_CFLAGS"
1810 AC_TRY_COMPILE([
1811#include <X11/Intrinsic.h>
1812#include <X11/neXtaw/Paned.h>], ,
1813 AC_MSG_RESULT(yes),
1814 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1815 CFLAGS=$cflags_save
1816fi
1817
1818if test -z "$SKIP_NEXTAW"; then
1819 GUITYPE=NEXTAW
1820fi
1821
1822if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1823 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1824 dnl Avoid adding it when it twice
1825 if test -n "$GUI_INC_LOC"; then
1826 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1827 fi
1828 if test -n "$GUI_LIB_LOC"; then
1829 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1830 fi
1831
1832 dnl Check for -lXext and then for -lXmu
1833 ldflags_save=$LDFLAGS
1834 LDFLAGS="$X_LIBS $LDFLAGS"
1835 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1836 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1837 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1838 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1839 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1840 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1841 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1842 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1843 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1844 if test -z "$SKIP_MOTIF"; then
1845 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1846 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1847 fi
1848 LDFLAGS=$ldflags_save
1849
1850 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1851 AC_MSG_CHECKING(for extra X11 defines)
1852 NARROW_PROTO=
1853 rm -fr conftestdir
1854 if mkdir conftestdir; then
1855 cd conftestdir
1856 cat > Imakefile <<'EOF'
1857acfindx:
1858 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
1859EOF
1860 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
1861 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
1862 fi
1863 cd ..
1864 rm -fr conftestdir
1865 fi
1866 if test -z "$NARROW_PROTO"; then
1867 AC_MSG_RESULT(no)
1868 else
1869 AC_MSG_RESULT($NARROW_PROTO)
1870 fi
1871 AC_SUBST(NARROW_PROTO)
1872fi
1873
1874dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
1875dnl use the X11 include path
1876if test "$enable_xsmp" = "yes"; then
1877 cppflags_save=$CPPFLAGS
1878 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1879 AC_CHECK_HEADERS(X11/SM/SMlib.h)
1880 CPPFLAGS=$cppflags_save
1881fi
1882
1883
1884if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
1885 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
1886 cppflags_save=$CPPFLAGS
1887 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1888 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
1889
1890 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
1891 if test ! "$enable_xim" = "no"; then
1892 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
1893 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
1894 AC_MSG_RESULT(yes),
1895 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
1896 fi
1897 CPPFLAGS=$cppflags_save
1898
1899 dnl automatically enable XIM when hangul input isn't enabled
1900 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
1901 -a "x$GUITYPE" != "xNONE" ; then
1902 AC_MSG_RESULT(X GUI selected; xim has been enabled)
1903 enable_xim="yes"
1904 fi
1905fi
1906
1907if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1908 cppflags_save=$CPPFLAGS
1909 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Bram Moolenaar2ce06f62005-01-31 19:19:04 +00001910dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
1911 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
1912 AC_TRY_COMPILE([
1913#include <X11/Intrinsic.h>
1914#include <X11/Xmu/Editres.h>],
1915 [int i; i = 0;],
1916 AC_MSG_RESULT(yes)
1917 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
1918 AC_MSG_RESULT(no))
Bram Moolenaar071d4272004-06-13 20:20:40 +00001919 CPPFLAGS=$cppflags_save
1920fi
1921
1922dnl Only use the Xm directory when compiling Motif, don't use it for Athena
1923if test -z "$SKIP_MOTIF"; then
1924 cppflags_save=$CPPFLAGS
1925 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
Bram Moolenaar2ce06f62005-01-31 19:19:04 +00001926 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 +00001927 Xm/UnhighlightT.h Xm/Notebook.h)
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001928
1929 if test $ac_cv_header_Xm_XpmP_h = yes; then
1930 dnl Solaris uses XpmAttributes_21, very annoying.
1931 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
1932 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
1933 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
1934 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
1935 )
1936 else
Bram Moolenaar57657d82006-04-21 22:12:41 +00001937 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
Bram Moolenaar910f66f2006-04-05 20:41:53 +00001938 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00001939 CPPFLAGS=$cppflags_save
1940fi
1941
1942if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
1943 AC_MSG_RESULT(no GUI selected; xim has been disabled)
1944 enable_xim="no"
1945fi
1946if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
1947 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
1948 enable_fontset="no"
1949fi
1950if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
1951 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
1952 enable_fontset="no"
1953fi
1954
Bram Moolenaar071d4272004-06-13 20:20:40 +00001955if test -z "$SKIP_PHOTON"; then
1956 GUITYPE=PHOTONGUI
1957fi
1958
1959AC_SUBST(GUI_INC_LOC)
1960AC_SUBST(GUI_LIB_LOC)
1961AC_SUBST(GUITYPE)
1962AC_SUBST(GUI_X_LIBS)
1963
1964if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
1965 AC_MSG_ERROR([cannot use workshop without Motif])
1966fi
1967
1968dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
1969if test "$enable_xim" = "yes"; then
1970 AC_DEFINE(FEAT_XIM)
1971fi
1972if test "$enable_fontset" = "yes"; then
1973 AC_DEFINE(FEAT_XFONTSET)
1974fi
1975
1976
1977dnl ---------------------------------------------------------------------------
1978dnl end of GUI-checking
1979dnl ---------------------------------------------------------------------------
1980
1981
1982dnl Only really enable hangul input when GUI and XFONTSET are available
1983if test "$enable_hangulinput" = "yes"; then
1984 if test "x$GUITYPE" = "xNONE"; then
1985 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
1986 enable_hangulinput=no
1987 else
1988 AC_DEFINE(FEAT_HANGULIN)
1989 HANGULIN_SRC=hangulin.c
1990 AC_SUBST(HANGULIN_SRC)
1991 HANGULIN_OBJ=objects/hangulin.o
1992 AC_SUBST(HANGULIN_OBJ)
1993 fi
1994fi
1995
1996dnl Checks for libraries and include files.
1997
1998AC_MSG_CHECKING(quality of toupper)
1999AC_TRY_RUN([#include <ctype.h>
2000main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }],
2001 AC_DEFINE(BROKEN_TOUPPER) AC_MSG_RESULT(bad),
2002 AC_MSG_RESULT(good), AC_MSG_ERROR(failed to compile test program))
2003
2004AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2005AC_TRY_COMPILE(, [printf("(" __DATE__ " " __TIME__ ")");],
2006 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2007 AC_MSG_RESULT(no))
2008
2009dnl Checks for header files.
2010AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2011dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2012if test "$HAS_ELF" = 1; then
2013 AC_CHECK_LIB(elf, main)
2014fi
2015
2016AC_HEADER_DIRENT
2017
2018dnl check for standard headers, we don't use this in Vim but other stuff
2019dnl in autoconf needs it
2020AC_HEADER_STDC
2021AC_HEADER_SYS_WAIT
2022
2023dnl If sys/wait.h is not found it might still exist but not be POSIX
2024dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2025if test $ac_cv_header_sys_wait_h = no; then
2026 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2027 AC_TRY_COMPILE([#include <sys/wait.h>],
2028 [union wait xx, yy; xx = yy],
2029 AC_MSG_RESULT(yes)
2030 AC_DEFINE(HAVE_SYS_WAIT_H)
2031 AC_DEFINE(HAVE_UNION_WAIT),
2032 AC_MSG_RESULT(no))
2033fi
2034
2035AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
Bram Moolenaare74455a2007-11-04 14:36:18 +00002036 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
Bram Moolenaar071d4272004-06-13 20:20:40 +00002037 iconv.h langinfo.h unistd.h stropts.h errno.h \
2038 sys/resource.h sys/systeminfo.h locale.h \
2039 sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
2040 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
Bram Moolenaardf3267e2005-01-25 22:07:05 +00002041 libgen.h util/debug.h util/msg18n.h frame.h \
Bram Moolenaar0cb032e2005-04-23 20:52:00 +00002042 sys/acl.h sys/access.h sys/sysctl.h sys/sysinfo.h wchar.h wctype.h)
Bram Moolenaar071d4272004-06-13 20:20:40 +00002043
Bram Moolenaardf3267e2005-01-25 22:07:05 +00002044dnl pthread_np.h may exist but can only be used after including pthread.h
2045AC_MSG_CHECKING([for pthread_np.h])
2046AC_TRY_COMPILE([
2047#include <pthread.h>
2048#include <pthread_np.h>],
2049 [int i; i = 0;],
2050 AC_MSG_RESULT(yes)
2051 AC_DEFINE(HAVE_PTHREAD_NP_H),
2052 AC_MSG_RESULT(no))
2053
Bram Moolenaare344bea2005-09-01 20:46:49 +00002054AC_CHECK_HEADERS(strings.h)
Bram Moolenaar9372a112005-12-06 19:59:18 +00002055if test "x$MACOSX" = "xyes"; then
2056 dnl The strings.h file on OS/X contains a warning and nothing useful.
2057 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2058else
Bram Moolenaar071d4272004-06-13 20:20:40 +00002059
2060dnl Check if strings.h and string.h can both be included when defined.
2061AC_MSG_CHECKING([if strings.h can be included after string.h])
2062cppflags_save=$CPPFLAGS
2063CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2064AC_TRY_COMPILE([
2065#if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2066# define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2067 /* but don't do it on AIX 5.1 (Uribarri) */
2068#endif
2069#ifdef HAVE_XM_XM_H
2070# include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2071#endif
2072#ifdef HAVE_STRING_H
2073# include <string.h>
2074#endif
2075#if defined(HAVE_STRINGS_H)
2076# include <strings.h>
2077#endif
2078 ], [int i; i = 0;],
2079 AC_MSG_RESULT(yes),
2080 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2081 AC_MSG_RESULT(no))
2082CPPFLAGS=$cppflags_save
Bram Moolenaar9372a112005-12-06 19:59:18 +00002083fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002084
2085dnl Checks for typedefs, structures, and compiler characteristics.
2086AC_PROG_GCC_TRADITIONAL
2087AC_C_CONST
2088AC_TYPE_MODE_T
2089AC_TYPE_OFF_T
2090AC_TYPE_PID_T
2091AC_TYPE_SIZE_T
2092AC_TYPE_UID_T
2093AC_HEADER_TIME
2094AC_CHECK_TYPE(ino_t, long)
2095AC_CHECK_TYPE(dev_t, unsigned)
2096
2097AC_MSG_CHECKING(for rlim_t)
2098if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2099 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2100else
2101 AC_EGREP_CPP(dnl
2102changequote(<<,>>)dnl
2103<<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2104changequote([,]),
2105 [
2106#include <sys/types.h>
2107#if STDC_HEADERS
2108#include <stdlib.h>
2109#include <stddef.h>
2110#endif
2111#ifdef HAVE_SYS_RESOURCE_H
2112#include <sys/resource.h>
2113#endif
2114 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2115 AC_MSG_RESULT($ac_cv_type_rlim_t)
2116fi
2117if test $ac_cv_type_rlim_t = no; then
2118 cat >> confdefs.h <<\EOF
2119#define rlim_t unsigned long
2120EOF
2121fi
2122
2123AC_MSG_CHECKING(for stack_t)
2124if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2125 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2126else
2127 AC_EGREP_CPP(stack_t,
2128 [
2129#include <sys/types.h>
2130#if STDC_HEADERS
2131#include <stdlib.h>
2132#include <stddef.h>
2133#endif
2134#include <signal.h>
2135 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2136 AC_MSG_RESULT($ac_cv_type_stack_t)
2137fi
2138if test $ac_cv_type_stack_t = no; then
2139 cat >> confdefs.h <<\EOF
2140#define stack_t struct sigaltstack
2141EOF
2142fi
2143
2144dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2145AC_MSG_CHECKING(whether stack_t has an ss_base field)
2146AC_TRY_COMPILE([
2147#include <sys/types.h>
2148#if STDC_HEADERS
2149#include <stdlib.h>
2150#include <stddef.h>
2151#endif
2152#include <signal.h>
2153#include "confdefs.h"
2154 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2155 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2156 AC_MSG_RESULT(no))
2157
2158olibs="$LIBS"
2159AC_MSG_CHECKING(--with-tlib argument)
2160AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2161if test -n "$with_tlib"; then
2162 AC_MSG_RESULT($with_tlib)
2163 LIBS="$LIBS -l$with_tlib"
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002164 AC_MSG_CHECKING(for linking with $with_tlib library)
2165 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2166 dnl Need to check for tgetent() below.
2167 olibs="$LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002168else
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002169 AC_MSG_RESULT([empty: automatic terminal library selection])
Bram Moolenaar071d4272004-06-13 20:20:40 +00002170 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2171 dnl curses, because curses is much slower.
2172 dnl Newer versions of ncurses are preferred over anything.
2173 dnl Older versions of ncurses have bugs, get a new one!
2174 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
Bram Moolenaara1b5aa52006-10-10 09:41:28 +00002175 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
Bram Moolenaar071d4272004-06-13 20:20:40 +00002176 case "`uname -s 2>/dev/null`" in
Bram Moolenaara1b5aa52006-10-10 09:41:28 +00002177 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
Bram Moolenaar071d4272004-06-13 20:20:40 +00002178 *) tlibs="ncurses termlib termcap curses";;
2179 esac
2180 for libname in $tlibs; do
2181 AC_CHECK_LIB(${libname}, tgetent,,)
2182 if test "x$olibs" != "x$LIBS"; then
2183 dnl It's possible that a library is found but it doesn't work
2184 dnl e.g., shared library that cannot be found
2185 dnl compile and run a test program to be sure
2186 AC_TRY_RUN([
2187#ifdef HAVE_TERMCAP_H
2188# include <termcap.h>
2189#endif
2190main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2191 res="OK", res="FAIL", res="FAIL")
2192 if test "$res" = "OK"; then
2193 break
2194 fi
2195 AC_MSG_RESULT($libname library is not usable)
2196 LIBS="$olibs"
2197 fi
2198 done
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002199 if test "x$olibs" = "x$LIBS"; then
2200 AC_MSG_RESULT(no terminal library found)
2201 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002202fi
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002203
2204if test "x$olibs" = "x$LIBS"; then
2205 AC_MSG_CHECKING([for tgetent()])
Bram Moolenaar2389c3c2005-05-22 22:07:59 +00002206 AC_TRY_LINK([],
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002207 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2208 AC_MSG_RESULT(yes),
2209 AC_MSG_ERROR([NOT FOUND!
2210 You need to install a terminal library; for example ncurses.
2211 Or specify the name of the library with --with-tlib.]))
2212fi
2213
2214AC_MSG_CHECKING(whether we talk terminfo)
2215AC_TRY_RUN([
Bram Moolenaar071d4272004-06-13 20:20:40 +00002216#ifdef HAVE_TERMCAP_H
2217# include <termcap.h>
2218#endif
2219main()
2220{char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }],
2221 AC_MSG_RESULT([no -- we are in termcap land]),
2222 AC_MSG_RESULT([yes -- terminfo spoken here]); AC_DEFINE(TERMINFO),
2223 AC_MSG_ERROR(failed to compile test program.))
Bram Moolenaar071d4272004-06-13 20:20:40 +00002224
2225if test "x$olibs" != "x$LIBS"; then
2226 AC_MSG_CHECKING(what tgetent() returns for an unknown terminal)
2227 AC_TRY_RUN([
2228#ifdef HAVE_TERMCAP_H
2229# include <termcap.h>
2230#endif
2231main()
2232{char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }],
2233 AC_MSG_RESULT(zero); AC_DEFINE(TGETENT_ZERO_ERR, 0),
2234 AC_MSG_RESULT(non-zero),
2235 AC_MSG_ERROR(failed to compile test program.))
2236fi
2237
2238AC_MSG_CHECKING(whether termcap.h contains ospeed)
2239AC_TRY_LINK([
2240#ifdef HAVE_TERMCAP_H
2241# include <termcap.h>
2242#endif
2243 ], [ospeed = 20000],
2244 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2245 [AC_MSG_RESULT(no)
2246 AC_MSG_CHECKING(whether ospeed can be extern)
2247 AC_TRY_LINK([
2248#ifdef HAVE_TERMCAP_H
2249# include <termcap.h>
2250#endif
2251extern short ospeed;
2252 ], [ospeed = 20000],
2253 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2254 AC_MSG_RESULT(no))]
2255 )
2256
2257AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2258AC_TRY_LINK([
2259#ifdef HAVE_TERMCAP_H
2260# include <termcap.h>
2261#endif
2262 ], [if (UP == 0 && BC == 0) PC = 1],
2263 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2264 [AC_MSG_RESULT(no)
2265 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2266 AC_TRY_LINK([
2267#ifdef HAVE_TERMCAP_H
2268# include <termcap.h>
2269#endif
2270extern char *UP, *BC, PC;
2271 ], [if (UP == 0 && BC == 0) PC = 1],
2272 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2273 AC_MSG_RESULT(no))]
2274 )
2275
2276AC_MSG_CHECKING(whether tputs() uses outfuntype)
2277AC_TRY_COMPILE([
2278#ifdef HAVE_TERMCAP_H
2279# include <termcap.h>
2280#endif
2281 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2282 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2283 AC_MSG_RESULT(no))
2284
2285dnl On some SCO machines sys/select redefines struct timeval
2286AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2287AC_TRY_COMPILE([
2288#include <sys/types.h>
2289#include <sys/time.h>
2290#include <sys/select.h>], ,
2291 AC_MSG_RESULT(yes)
2292 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2293 AC_MSG_RESULT(no))
2294
2295dnl AC_DECL_SYS_SIGLIST
2296
2297dnl Checks for pty.c (copied from screen) ==========================
2298AC_MSG_CHECKING(for /dev/ptc)
2299if test -r /dev/ptc; then
2300 AC_DEFINE(HAVE_DEV_PTC)
2301 AC_MSG_RESULT(yes)
2302else
2303 AC_MSG_RESULT(no)
2304fi
2305
2306AC_MSG_CHECKING(for SVR4 ptys)
2307if test -c /dev/ptmx ; then
2308 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2309 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2310 AC_MSG_RESULT(no))
2311else
2312 AC_MSG_RESULT(no)
2313fi
2314
2315AC_MSG_CHECKING(for ptyranges)
2316if test -d /dev/ptym ; then
2317 pdir='/dev/ptym'
2318else
2319 pdir='/dev'
2320fi
2321dnl SCO uses ptyp%d
2322AC_EGREP_CPP(yes,
2323[#ifdef M_UNIX
2324 yes;
2325#endif
2326 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2327dnl if test -c /dev/ptyp19; then
2328dnl ptys=`echo /dev/ptyp??`
2329dnl else
2330dnl ptys=`echo $pdir/pty??`
2331dnl fi
2332if test "$ptys" != "$pdir/pty??" ; then
2333 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2334 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2335 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2336 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2337 AC_MSG_RESULT([$p0 / $p1])
2338else
2339 AC_MSG_RESULT([don't know])
2340fi
2341
2342dnl **** pty mode/group handling ****
2343dnl
2344dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2345AC_MSG_CHECKING(default tty permissions/group)
2346rm -f conftest_grp
2347AC_TRY_RUN([
2348#include <sys/types.h>
2349#include <sys/stat.h>
2350#include <stdio.h>
2351main()
2352{
2353 struct stat sb;
2354 char *x,*ttyname();
2355 int om, m;
2356 FILE *fp;
2357
2358 if (!(x = ttyname(0))) exit(1);
2359 if (stat(x, &sb)) exit(1);
2360 om = sb.st_mode;
2361 if (om & 002) exit(0);
2362 m = system("mesg y");
2363 if (m == -1 || m == 127) exit(1);
2364 if (stat(x, &sb)) exit(1);
2365 m = sb.st_mode;
2366 if (chmod(x, om)) exit(1);
2367 if (m & 002) exit(0);
2368 if (sb.st_gid == getgid()) exit(1);
2369 if (!(fp=fopen("conftest_grp", "w")))
2370 exit(1);
2371 fprintf(fp, "%d\n", sb.st_gid);
2372 fclose(fp);
2373 exit(0);
2374}
2375],[
2376 if test -f conftest_grp; then
2377 ptygrp=`cat conftest_grp`
2378 AC_MSG_RESULT([pty mode: 0620, group: $ptygrp])
2379 AC_DEFINE(PTYMODE, 0620)
2380 AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
2381 else
2382 AC_MSG_RESULT([ptys are world accessable])
2383 fi
2384],
2385 AC_MSG_RESULT([can't determine - assume ptys are world accessable]),
2386 AC_MSG_ERROR(failed to compile test program))
2387rm -f conftest_grp
2388
2389dnl Checks for library functions. ===================================
2390
2391AC_TYPE_SIGNAL
2392
2393dnl find out what to use at the end of a signal function
2394if test $ac_cv_type_signal = void; then
2395 AC_DEFINE(SIGRETURN, [return])
2396else
2397 AC_DEFINE(SIGRETURN, [return 0])
2398fi
2399
2400dnl check if struct sigcontext is defined (used for SGI only)
2401AC_MSG_CHECKING(for struct sigcontext)
2402AC_TRY_COMPILE([
2403#include <signal.h>
2404test_sig()
2405{
2406 struct sigcontext *scont;
2407 scont = (struct sigcontext *)0;
2408 return 1;
2409} ], ,
2410 AC_MSG_RESULT(yes)
2411 AC_DEFINE(HAVE_SIGCONTEXT),
2412 AC_MSG_RESULT(no))
2413
2414dnl tricky stuff: try to find out if getcwd() is implemented with
2415dnl system("sh -c pwd")
2416AC_MSG_CHECKING(getcwd implementation)
2417AC_TRY_RUN([
2418char *dagger[] = { "IFS=pwd", 0 };
2419main()
2420{
2421 char buffer[500];
2422 extern char **environ;
2423 environ = dagger;
2424 return getcwd(buffer, 500) ? 0 : 1;
2425}],
2426 AC_MSG_RESULT(it is usable),
2427 AC_MSG_RESULT(it stinks)
2428 AC_DEFINE(BAD_GETCWD),
2429 AC_MSG_ERROR(failed to compile test program))
2430
2431dnl Check for functions in one big call, to reduce the size of configure
2432AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2433 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2434 memset nanosleep opendir putenv qsort readlink select setenv \
2435 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
Bram Moolenaar051b7822005-05-19 21:00:46 +00002436 sigvec strcasecmp strerror strftime stricmp strncasecmp \
Bram Moolenaar0cb032e2005-04-23 20:52:00 +00002437 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2438 usleep utime utimes)
Bram Moolenaar071d4272004-06-13 20:20:40 +00002439
2440dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2441AC_MSG_CHECKING(for st_blksize)
2442AC_TRY_COMPILE(
2443[#include <sys/types.h>
2444#include <sys/stat.h>],
2445[ struct stat st;
2446 int n;
2447
2448 stat("/", &st);
2449 n = (int)st.st_blksize;],
2450 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2451 AC_MSG_RESULT(no))
2452
2453AC_MSG_CHECKING(whether stat() ignores a trailing slash)
2454AC_TRY_RUN(
2455[#include <sys/types.h>
2456#include <sys/stat.h>
2457main() {struct stat st; exit(stat("configure/", &st) != 0); }],
2458 AC_MSG_RESULT(yes); AC_DEFINE(STAT_IGNORES_SLASH),
2459 AC_MSG_RESULT(no), AC_MSG_ERROR(failed to compile test program))
2460
2461dnl Link with iconv for charset translation, if not found without library.
2462dnl check for iconv() requires including iconv.h
2463dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2464dnl has been installed.
2465AC_MSG_CHECKING(for iconv_open())
2466save_LIBS="$LIBS"
2467LIBS="$LIBS -liconv"
2468AC_TRY_LINK([
2469#ifdef HAVE_ICONV_H
2470# include <iconv.h>
2471#endif
2472 ], [iconv_open("fr", "to");],
2473 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2474 LIBS="$save_LIBS"
2475 AC_TRY_LINK([
2476#ifdef HAVE_ICONV_H
2477# include <iconv.h>
2478#endif
2479 ], [iconv_open("fr", "to");],
2480 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2481 AC_MSG_RESULT(no)))
2482
2483
2484AC_MSG_CHECKING(for nl_langinfo(CODESET))
2485AC_TRY_LINK([
2486#ifdef HAVE_LANGINFO_H
2487# include <langinfo.h>
2488#endif
2489], [char *cs = nl_langinfo(CODESET);],
2490 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2491 AC_MSG_RESULT(no))
2492
2493dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2494dnl when -lacl works, also try to use -lattr (required for Debian).
2495AC_MSG_CHECKING(--disable-acl argument)
2496AC_ARG_ENABLE(acl,
2497 [ --disable-acl Don't check for ACL support.],
2498 , [enable_acl="yes"])
2499if test "$enable_acl" = "yes"; then
2500AC_MSG_RESULT(no)
2501AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2502 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2503 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2504
2505AC_MSG_CHECKING(for POSIX ACL support)
2506AC_TRY_LINK([
2507#include <sys/types.h>
2508#ifdef HAVE_SYS_ACL_H
2509# include <sys/acl.h>
2510#endif
2511acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2512 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2513 acl_free(acl);],
2514 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2515 AC_MSG_RESULT(no))
2516
2517AC_MSG_CHECKING(for Solaris ACL support)
2518AC_TRY_LINK([
2519#ifdef HAVE_SYS_ACL_H
2520# include <sys/acl.h>
2521#endif], [acl("foo", GETACLCNT, 0, NULL);
2522 ],
2523 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2524 AC_MSG_RESULT(no))
2525
2526AC_MSG_CHECKING(for AIX ACL support)
2527AC_TRY_LINK([
2528#ifdef HAVE_SYS_ACL_H
2529# include <sys/acl.h>
2530#endif
2531#ifdef HAVE_SYS_ACCESS_H
2532# include <sys/access.h>
2533#endif
2534#define _ALL_SOURCE
2535
2536#include <sys/stat.h>
2537
2538int aclsize;
2539struct acl *aclent;], [aclsize = sizeof(struct acl);
2540 aclent = (void *)malloc(aclsize);
2541 statacl("foo", STX_NORMAL, aclent, aclsize);
2542 ],
2543 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2544 AC_MSG_RESULT(no))
2545else
2546 AC_MSG_RESULT(yes)
2547fi
2548
2549AC_MSG_CHECKING(--disable-gpm argument)
2550AC_ARG_ENABLE(gpm,
2551 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2552 [enable_gpm="yes"])
2553
2554if test "$enable_gpm" = "yes"; then
2555 AC_MSG_RESULT(no)
2556 dnl Checking if gpm support can be compiled
2557 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2558 [olibs="$LIBS" ; LIBS="-lgpm"]
2559 AC_TRY_LINK(
2560 [#include <gpm.h>
2561 #include <linux/keyboard.h>],
2562 [Gpm_GetLibVersion(NULL);],
2563 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2564 dnl FEAT_MOUSE_GPM if mouse support is included
2565 [vi_cv_have_gpm=yes],
2566 [vi_cv_have_gpm=no])
2567 [LIBS="$olibs"]
2568 )
2569 if test $vi_cv_have_gpm = yes; then
2570 LIBS="$LIBS -lgpm"
2571 AC_DEFINE(HAVE_GPM)
2572 fi
2573else
2574 AC_MSG_RESULT(yes)
2575fi
2576
Bram Moolenaar071d4272004-06-13 20:20:40 +00002577dnl rename needs to be checked separately to work on Nextstep with cc
2578AC_MSG_CHECKING(for rename)
2579AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2580 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2581 AC_MSG_RESULT(no))
2582
2583dnl sysctl() may exist but not the arguments we use
2584AC_MSG_CHECKING(for sysctl)
2585AC_TRY_COMPILE(
2586[#include <sys/types.h>
2587#include <sys/sysctl.h>],
2588[ int mib[2], r;
2589 size_t len;
2590
2591 mib[0] = CTL_HW;
2592 mib[1] = HW_USERMEM;
2593 len = sizeof(r);
2594 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2595 ],
2596 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2597 AC_MSG_RESULT(not usable))
2598
2599dnl sysinfo() may exist but not be Linux compatible
2600AC_MSG_CHECKING(for sysinfo)
2601AC_TRY_COMPILE(
2602[#include <sys/types.h>
2603#include <sys/sysinfo.h>],
2604[ struct sysinfo sinfo;
2605 int t;
2606
2607 (void)sysinfo(&sinfo);
2608 t = sinfo.totalram;
2609 ],
2610 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2611 AC_MSG_RESULT(not usable))
2612
Bram Moolenaar914572a2007-05-01 11:37:47 +00002613dnl struct sysinfo may have the mem_unit field or not
2614AC_MSG_CHECKING(for sysinfo.mem_unit)
2615AC_TRY_COMPILE(
2616[#include <sys/types.h>
2617#include <sys/sysinfo.h>],
2618[ struct sysinfo sinfo;
2619 sinfo.mem_unit = 1;
2620 ],
2621 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2622 AC_MSG_RESULT(no))
2623
Bram Moolenaar071d4272004-06-13 20:20:40 +00002624dnl sysconf() may exist but not support what we want to use
2625AC_MSG_CHECKING(for sysconf)
2626AC_TRY_COMPILE(
2627[#include <unistd.h>],
2628[ (void)sysconf(_SC_PAGESIZE);
2629 (void)sysconf(_SC_PHYS_PAGES);
2630 ],
2631 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2632 AC_MSG_RESULT(not usable))
2633
2634dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2635dnl be printed with "%d", and avoids a warning for cross-compiling.
2636
2637AC_MSG_CHECKING(size of int)
2638AC_CACHE_VAL(ac_cv_sizeof_int,
2639 [AC_TRY_RUN([#include <stdio.h>
2640 main()
2641 {
2642 FILE *f=fopen("conftestval", "w");
2643 if (!f) exit(1);
2644 fprintf(f, "%d\n", (int)sizeof(int));
2645 exit(0);
2646 }],
2647 ac_cv_sizeof_int=`cat conftestval`,
2648 ac_cv_sizeof_int=0,
2649 AC_MSG_ERROR(failed to compile test program))])
2650AC_MSG_RESULT($ac_cv_sizeof_int)
2651AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2652
2653AC_MSG_CHECKING(whether memmove/bcopy/memcpy handle overlaps)
2654[bcopy_test_prog='
2655main() {
2656 char buf[10];
2657 strcpy(buf, "abcdefghi");
2658 mch_memmove(buf, buf + 2, 3);
2659 if (strncmp(buf, "ababcf", 6))
2660 exit(1);
2661 strcpy(buf, "abcdefghi");
2662 mch_memmove(buf + 2, buf, 3);
2663 if (strncmp(buf, "cdedef", 6))
2664 exit(1);
2665 exit(0); /* libc version works properly. */
2666}']
2667
2668dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2669dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2670
2671AC_TRY_RUN([#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog],
2672 AC_DEFINE(USEMEMMOVE) AC_MSG_RESULT(memmove does),
2673 AC_TRY_RUN([#define mch_memmove(s,d,l) bcopy(d,s,l) $bcopy_test_prog],
2674 AC_DEFINE(USEBCOPY) AC_MSG_RESULT(bcopy does),
2675 AC_TRY_RUN([#define mch_memmove(s,d,l) memcpy(d,s,l) $bcopy_test_prog],
2676 AC_DEFINE(USEMEMCPY) AC_MSG_RESULT(memcpy does), AC_MSG_RESULT(no),
2677 AC_MSG_ERROR(failed to compile test program)),
2678 AC_MSG_ERROR(failed to compile test program)),
2679 AC_MSG_ERROR(failed to compile test program))
2680
2681dnl Check for multibyte locale functions
2682dnl Find out if _Xsetlocale() is supported by libX11.
2683dnl Check if X_LOCALE should be defined.
2684
2685if test "$enable_multibyte" = "yes"; then
2686 cflags_save=$CFLAGS
2687 ldflags_save=$LDFLAGS
2688 if test -n "$x_includes" ; then
2689 CFLAGS="$CFLAGS -I$x_includes"
2690 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
2691 AC_MSG_CHECKING(whether X_LOCALE needed)
2692 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
2693 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
2694 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
2695 AC_MSG_RESULT(no))
2696 fi
2697 CFLAGS=$cflags_save
2698 LDFLAGS=$ldflags_save
2699fi
2700
2701dnl Link with xpg4, it is said to make Korean locale working
2702AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
2703
2704dnl Check how we can run ctags
2705dnl --version for Exuberant ctags (preferred)
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002706dnl Add --fields=+S to get function signatures for omni completion.
Bram Moolenaar071d4272004-06-13 20:20:40 +00002707dnl -t for typedefs (many ctags have this)
2708dnl -s for static functions (Elvis ctags only?)
2709dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
2710dnl -i+m to test for older Exuberant ctags
2711AC_MSG_CHECKING(how to create tags)
2712test -f tags && mv tags tags.save
2713if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
Bram Moolenaarb21e5842006-04-16 18:30:08 +00002714 TAGPRG="ctags -I INIT+ --fields=+S"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002715else
2716 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
2717 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
2718 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
2719 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
2720 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
2721 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
2722 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
2723fi
2724test -f tags.save && mv tags.save tags
2725AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
2726
2727dnl Check how we can run man with a section number
2728AC_MSG_CHECKING(how to run man with a section nr)
2729MANDEF="man"
Bram Moolenaar8b131502008-02-13 09:28:19 +00002730(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 +00002731AC_MSG_RESULT($MANDEF)
2732if test "$MANDEF" = "man -s"; then
2733 AC_DEFINE(USEMAN_S)
2734fi
2735
2736dnl Check if gettext() is working and if it needs -lintl
2737AC_MSG_CHECKING(--disable-nls argument)
2738AC_ARG_ENABLE(nls,
2739 [ --disable-nls Don't support NLS (gettext()).], ,
2740 [enable_nls="yes"])
2741
2742if test "$enable_nls" = "yes"; then
2743 AC_MSG_RESULT(no)
Bram Moolenaar2389c3c2005-05-22 22:07:59 +00002744
2745 INSTALL_LANGS=install-languages
2746 AC_SUBST(INSTALL_LANGS)
2747 INSTALL_TOOL_LANGS=install-tool-languages
2748 AC_SUBST(INSTALL_TOOL_LANGS)
2749
Bram Moolenaar071d4272004-06-13 20:20:40 +00002750 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
2751 AC_MSG_CHECKING([for NLS])
2752 if test -f po/Makefile; then
2753 have_gettext="no"
2754 if test -n "$MSGFMT"; then
2755 AC_TRY_LINK(
2756 [#include <libintl.h>],
2757 [gettext("Test");],
2758 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
2759 olibs=$LIBS
2760 LIBS="$LIBS -lintl"
2761 AC_TRY_LINK(
2762 [#include <libintl.h>],
2763 [gettext("Test");],
2764 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
2765 AC_MSG_RESULT([gettext() doesn't work]);
2766 LIBS=$olibs))
2767 else
2768 AC_MSG_RESULT([msgfmt not found - disabled]);
2769 fi
2770 if test $have_gettext = "yes"; then
2771 AC_DEFINE(HAVE_GETTEXT)
2772 MAKEMO=yes
2773 AC_SUBST(MAKEMO)
2774 dnl this was added in GNU gettext 0.10.36
2775 AC_CHECK_FUNCS(bind_textdomain_codeset)
2776 dnl _nl_msg_cat_cntr is required for GNU gettext
2777 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
2778 AC_TRY_LINK(
2779 [#include <libintl.h>
2780 extern int _nl_msg_cat_cntr;],
2781 [++_nl_msg_cat_cntr;],
2782 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
2783 AC_MSG_RESULT([no]))
2784 fi
2785 else
2786 AC_MSG_RESULT([no "po/Makefile" - disabled]);
2787 fi
2788else
2789 AC_MSG_RESULT(yes)
2790fi
2791
2792dnl Check for dynamic linking loader
2793AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
2794if test x${DLL} = xdlfcn.h; then
2795 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
2796 AC_MSG_CHECKING([for dlopen()])
2797 AC_TRY_LINK(,[
2798 extern void* dlopen();
2799 dlopen();
2800 ],
2801 AC_MSG_RESULT(yes);
2802 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
2803 AC_MSG_RESULT(no);
2804 AC_MSG_CHECKING([for dlopen() in -ldl])
2805 olibs=$LIBS
2806 LIBS="$LIBS -ldl"
2807 AC_TRY_LINK(,[
2808 extern void* dlopen();
2809 dlopen();
2810 ],
2811 AC_MSG_RESULT(yes);
2812 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
2813 AC_MSG_RESULT(no);
2814 LIBS=$olibs))
2815 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
2816 dnl ick :-)
2817 AC_MSG_CHECKING([for dlsym()])
2818 AC_TRY_LINK(,[
2819 extern void* dlsym();
2820 dlsym();
2821 ],
2822 AC_MSG_RESULT(yes);
2823 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
2824 AC_MSG_RESULT(no);
2825 AC_MSG_CHECKING([for dlsym() in -ldl])
2826 olibs=$LIBS
2827 LIBS="$LIBS -ldl"
2828 AC_TRY_LINK(,[
2829 extern void* dlsym();
2830 dlsym();
2831 ],
2832 AC_MSG_RESULT(yes);
2833 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
2834 AC_MSG_RESULT(no);
2835 LIBS=$olibs))
2836elif test x${DLL} = xdl.h; then
2837 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
2838 AC_MSG_CHECKING([for shl_load()])
2839 AC_TRY_LINK(,[
2840 extern void* shl_load();
2841 shl_load();
2842 ],
2843 AC_MSG_RESULT(yes);
2844 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
2845 AC_MSG_RESULT(no);
2846 AC_MSG_CHECKING([for shl_load() in -ldld])
2847 olibs=$LIBS
2848 LIBS="$LIBS -ldld"
2849 AC_TRY_LINK(,[
2850 extern void* shl_load();
2851 shl_load();
2852 ],
2853 AC_MSG_RESULT(yes);
2854 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
2855 AC_MSG_RESULT(no);
2856 LIBS=$olibs))
2857fi
2858AC_CHECK_HEADERS(setjmp.h)
2859
2860if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
2861 dnl -ldl must come after DynaLoader.a
2862 if echo $LIBS | grep -e '-ldl' >/dev/null; then
2863 LIBS=`echo $LIBS | sed s/-ldl//`
2864 PERL_LIBS="$PERL_LIBS -ldl"
2865 fi
2866fi
2867
2868if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
2869 && test "x$GUITYPE" != "xCARBONGUI"; then
2870 AC_MSG_CHECKING(whether we need -framework Carbon)
2871 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
Bram Moolenaarb90daee2006-10-17 09:49:09 +00002872 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
Bram Moolenaar071d4272004-06-13 20:20:40 +00002873 || test "x$features" = "xhuge"; then
2874 LIBS="$LIBS -framework Carbon"
2875 AC_MSG_RESULT(yes)
2876 else
2877 AC_MSG_RESULT(no)
2878 fi
2879fi
Bram Moolenaare224ffa2006-03-01 00:01:28 +00002880if test "x$MACARCH" = "xboth"; then
2881 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
2882fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002883
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00002884dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
2885dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
2886dnl But only when making dependencies, cproto and lint don't take "-isystem".
Bram Moolenaar32466aa2006-02-24 23:53:04 +00002887dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
2888dnl the number before the version number.
Bram Moolenaara5792f52005-11-23 21:25:05 +00002889AC_MSG_CHECKING(for GCC 3 or later)
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00002890DEPEND_CFLAGS_FILTER=
2891if test "$GCC" = yes; then
Bram Moolenaar2217cae2006-03-25 21:55:52 +00002892 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
Bram Moolenaarf740b292006-02-16 22:11:02 +00002893 if test "$gccmajor" -gt "2"; then
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00002894 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
2895 fi
2896fi
Bram Moolenaara5792f52005-11-23 21:25:05 +00002897if test "$DEPEND_CFLAGS_FILTER" = ""; then
2898 AC_MSG_RESULT(no)
2899else
2900 AC_MSG_RESULT(yes)
2901fi
Bram Moolenaard5cdbeb2005-10-10 20:59:28 +00002902AC_SUBST(DEPEND_CFLAGS_FILTER)
Bram Moolenaar071d4272004-06-13 20:20:40 +00002903
2904dnl write output files
2905AC_OUTPUT(auto/config.mk:config.mk.in)
2906
2907dnl vim: set sw=2 tw=78 fo+=l: