1 dnl configure.in: autoconf script for Vim
3 dnl Process this file with autoconf 2.12 or 2.13 to produce "configure".
4 dnl Should also work with autoconf 2.54 and later.
7 AC_CONFIG_HEADER(auto/config.h:config.h.in)
9 dnl Being able to run configure means the system is Unix (compatible).
13 dnl Checks for programs.
14 AC_PROG_CC dnl required by almost everything
15 AC_PROG_CPP dnl required by header file checks
16 AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
17 AC_ISC_POSIX dnl required by AC_C_CROSS
18 AC_PROG_AWK dnl required for "make html" in ../doc
20 dnl Don't strip if we don't have it
21 AC_CHECK_PROG(STRIP, strip, strip, :)
23 dnl Check for extension of executables
26 dnl Check for standard headers. We don't use this in Vim but other stuff
27 dnl in autoconf needs it, where it uses STDC_HEADERS.
31 dnl Set default value for CFLAGS if none is defined or it's empty
32 if test -z "$CFLAGS"; then
34 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
36 if test "$GCC" = yes; then
37 dnl method that should work for nearly all versions
38 gccversion=`"$CC" -dumpversion`
39 if test "x$gccversion" = "x"; then
40 dnl old method; fall-back for when -dumpversion doesn't work
41 gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
43 dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
44 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
45 echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
46 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
48 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
49 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
50 CFLAGS="$CFLAGS -fno-strength-reduce"
55 dnl If configure thinks we are cross compiling, there might be something
56 dnl wrong with the CC or CFLAGS settings, give a useful warning message
57 if test "$cross_compiling" = yes; then
58 AC_MSG_RESULT([cannot compile a simple program; if not cross compiling check CC and CFLAGS])
61 dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies.
62 dnl But gcc 3.1 changed the meaning! See near the end.
63 test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
65 if test -f ./toolcheck; then
66 AC_CHECKING(for buggy tools)
67 sh ./toolcheck 1>&AC_FD_MSG
70 OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
72 dnl Check for BeOS, which needs an extra source file
73 AC_MSG_CHECKING(for BeOS)
75 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
76 BEOS=yes; AC_MSG_RESULT(yes);;
77 *) BEOS=no; AC_MSG_RESULT(no);;
80 dnl If QNX is found, assume we don't want to use Xphoton
81 dnl unless it was specifically asked for (--with-x)
82 AC_MSG_CHECKING(for QNX)
84 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
85 test -z "$with_x" && with_x=no
86 QNX=yes; AC_MSG_RESULT(yes);;
87 *) QNX=no; AC_MSG_RESULT(no);;
90 dnl Check for Darwin and MacOS X
91 dnl We do a check for MacOS X in the very beginning because there
92 dnl are a lot of other things we need to change besides GUI stuff
93 AC_MSG_CHECKING([for Darwin (Mac OS X)])
94 if test "`(uname) 2>/dev/null`" = Darwin; then
97 AC_MSG_CHECKING(--disable-darwin argument)
99 [ --disable-darwin Disable Darwin (Mac OS X) support.],
100 , [enable_darwin="yes"])
101 if test "$enable_darwin" = "yes"; then
103 AC_MSG_CHECKING(if Darwin files are there)
104 if test -f os_macosx.c; then
107 AC_MSG_RESULT([no, Darwin support disabled])
111 AC_MSG_RESULT([yes, Darwin support excluded])
114 AC_MSG_CHECKING(--with-mac-arch argument)
115 AC_ARG_WITH(mac-arch, [ --with-mac-arch=ARCH current, intel, ppc or both],
116 MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
117 MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
119 if test "x$MACARCH" = "xboth"; then
120 AC_MSG_CHECKING(for 10.4 universal SDK)
121 dnl There is a terrible inconsistency (but we appear to get away with it):
122 dnl $CFLAGS uses the 10.4u SDK library for the headers, while $CPPFLAGS
123 dnl doesn't, because "gcc -E" doesn't grok it. That means the configure
124 dnl tests using the preprocessor are actually done with the wrong header
125 dnl files. $LDFLAGS is set at the end, because configure uses it together
126 dnl with $CFLAGS and we can only have one -sysroot argument.
127 save_cppflags="$CPPFLAGS"
128 save_cflags="$CFLAGS"
129 save_ldflags="$LDFLAGS"
130 CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
131 AC_TRY_LINK([ ], [ ],
132 AC_MSG_RESULT(found, will make universal binary),
134 AC_MSG_RESULT(not found)
135 CFLAGS="$save_cflags"
136 AC_MSG_CHECKING(if Intel architecture is supported)
137 CPPFLAGS="$CPPFLAGS -arch i386"
138 LDFLAGS="$save_ldflags -arch i386"
139 AC_TRY_LINK([ ], [ ],
140 AC_MSG_RESULT(yes); MACARCH="intel",
141 AC_MSG_RESULT(no, using PowerPC)
143 CPPFLAGS="$save_cppflags -arch ppc"
144 LDFLAGS="$save_ldflags -arch ppc"))
145 elif test "x$MACARCH" = "xintel"; then
146 CPPFLAGS="$CPPFLAGS -arch intel"
147 LDFLAGS="$LDFLAGS -arch intel"
148 elif test "x$MACARCH" = "xppc"; then
149 CPPFLAGS="$CPPFLAGS -arch ppc"
150 LDFLAGS="$LDFLAGS -arch ppc"
153 if test "$enable_darwin" = "yes"; then
155 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
156 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
157 dnl TODO: use -arch i386 on Intel machines
158 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
159 if test "x$MACARCH" = "xboth"; then
160 CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
162 CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
165 dnl If Carbon or Cocoa is found, assume we don't want
166 dnl X11 unless it was specifically asked for (--with-x)
167 dnl or Motif, Athena or GTK GUI is used.
168 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
170 SAVE_CPPFLAGS=$CPPFLAGS
172 CPPFLAGS="$CPPFLAGS -ObjC"
173 CFLAGS="$CFLAGS -ObjC"
174 AC_CHECK_HEADER(Cocoa/Cocoa.h, COCOA=yes)
175 CPPFLAGS=$SAVE_CPPFLAGS
178 if test "x$CARBON" = "xyes" -o "x$COCOA" = "xyes"; then
179 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
185 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
186 dnl free. This happens in expand_filename(), because the optimizer swaps
187 dnl two blocks of code, both using "repl", that can't be swapped.
188 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
189 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
196 AC_SUBST(OS_EXTRA_SRC)
197 AC_SUBST(OS_EXTRA_OBJ)
199 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
200 dnl Only when the directory exists and it wasn't there yet.
201 dnl For gcc don't do this when it is already in the default search path.
202 dnl Skip all of this when cross-compiling.
203 if test "$cross_compiling" = no; then
204 AC_MSG_CHECKING(--with-local-dir argument)
205 have_local_include=''
207 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
208 --without-local-dir do not search /usr/local for local libraries.], [
213 # avoid adding local dir to LDFLAGS and CPPFLAGS
217 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
219 AC_MSG_RESULT($local_dir)
222 AC_MSG_RESULT(Defaulting to $local_dir)
224 if test "$GCC" = yes -a "$local_dir" != no; then
225 echo 'void f(){}' > conftest.c
226 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
227 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
228 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
229 rm -f conftest.c conftest.o
231 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
232 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
233 if test "$tt" = "$LDFLAGS"; then
234 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
237 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
238 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
239 if test "$tt" = "$CPPFLAGS"; then
240 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
245 AC_MSG_CHECKING(--with-vim-name argument)
246 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
247 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
248 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
250 AC_MSG_CHECKING(--with-ex-name argument)
251 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
252 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
253 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
255 AC_MSG_CHECKING(--with-view-name argument)
256 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
257 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
258 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
261 AC_MSG_CHECKING(--with-global-runtime argument)
262 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
263 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
266 AC_MSG_CHECKING(--with-modified-by argument)
267 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
268 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
271 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
272 AC_MSG_CHECKING(if character set is EBCDIC)
274 [ /* TryCompile function for CharSet.
275 Treat any failure as ASCII for compatibility with existing art.
276 Use compile-time rather than run-time tests for cross-compiler
279 make an error "Character set is not EBCDIC"
281 [ # TryCompile action if true
283 [ # TryCompile action if false
285 # end of TryCompile ])
286 # end of CacheVal CvEbcdic
287 AC_MSG_RESULT($cf_cv_ebcdic)
288 case "$cf_cv_ebcdic" in #(vi
289 yes) AC_DEFINE(EBCDIC)
292 *) line_break='"\\012"';;
296 if test "$cf_cv_ebcdic" = "yes"; then
297 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
298 AC_MSG_CHECKING(for OS/390 Unix)
300 OS/390) OS390Unix="yes";
301 dnl If using cc the environment variable _CC_CCMODE must be
302 dnl set to "1", so that some compiler extensions are enabled.
303 dnl If using c89 the environment variable is named _CC_C89MODE.
304 dnl Note: compile with c89 never tested.
305 if test "$CC" = "cc"; then
309 if test "$CC" = "c89"; then
316 if test "$ccm" != "1"; then
318 echo "------------------------------------------"
319 echo " On OS/390 Unix, the environment variable"
320 echo " __CC_${ccn}MODE must be set to \"1\"!"
322 echo " export _CC_${ccn}MODE=1"
323 echo " and then call configure again."
324 echo "------------------------------------------"
327 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
336 dnl Link with -lselinux for SELinux stuff; if not found
337 AC_MSG_CHECKING(--disable-selinux argument)
338 AC_ARG_ENABLE(selinux,
339 [ --disable-selinux Don't check for SELinux support.],
340 , enable_selinux="yes")
341 if test "$enable_selinux" = "yes"; then
343 AC_CHECK_LIB(selinux, is_selinux_enabled,
344 [LIBS="$LIBS -lselinux"
345 AC_DEFINE(HAVE_SELINUX)])
350 dnl Check user requested features.
352 AC_MSG_CHECKING(--with-features argument)
353 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
354 features="$withval"; AC_MSG_RESULT($features),
355 features="normal"; AC_MSG_RESULT(Defaulting to normal))
360 tiny) AC_DEFINE(FEAT_TINY) ;;
361 small) AC_DEFINE(FEAT_SMALL) ;;
362 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
363 dogvimdiff="installgvimdiff" ;;
364 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
365 dogvimdiff="installgvimdiff" ;;
366 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
367 dogvimdiff="installgvimdiff" ;;
368 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
374 AC_MSG_CHECKING(--with-compiledby argument)
375 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
376 compiledby="$withval"; AC_MSG_RESULT($withval),
377 compiledby=""; AC_MSG_RESULT(no))
380 AC_MSG_CHECKING(--disable-xsmp argument)
382 [ --disable-xsmp Disable XSMP session management],
385 if test "$enable_xsmp" = "yes"; then
387 AC_MSG_CHECKING(--disable-xsmp-interact argument)
388 AC_ARG_ENABLE(xsmp-interact,
389 [ --disable-xsmp-interact Disable XSMP interaction],
390 , enable_xsmp_interact="yes")
391 if test "$enable_xsmp_interact" = "yes"; then
393 AC_DEFINE(USE_XSMP_INTERACT)
401 dnl Check for MzScheme feature.
402 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
403 AC_ARG_ENABLE(mzschemeinterp,
404 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
405 [enable_mzschemeinterp="no"])
406 AC_MSG_RESULT($enable_mzschemeinterp)
408 if test "$enable_mzschemeinterp" = "yes"; then
409 dnl -- find the mzscheme executable
410 AC_SUBST(vi_cv_path_mzscheme)
412 AC_MSG_CHECKING(--with-plthome argument)
414 [ --with-plthome=PLTHOME Use PLTHOME.],
415 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
416 with_plthome="";AC_MSG_RESULT("no"))
418 if test "X$with_plthome" != "X"; then
419 vi_cv_path_mzscheme_pfx="$with_plthome"
421 AC_MSG_CHECKING(PLTHOME environment var)
422 if test "X$PLTHOME" != "X"; then
423 AC_MSG_RESULT("$PLTHOME")
424 vi_cv_path_mzscheme_pfx="$PLTHOME"
426 AC_MSG_RESULT(not set)
427 dnl -- try to find MzScheme executable
428 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
430 dnl resolve symbolic link, the executable is often elsewhere and there
431 dnl are no links for the include files.
432 if test "X$vi_cv_path_mzscheme" != "X"; then
433 lsout=`ls -l $vi_cv_path_mzscheme`
434 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
435 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
439 if test "X$vi_cv_path_mzscheme" != "X"; then
440 dnl -- find where MzScheme thinks it was installed
441 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
442 dnl different versions of MzScheme differ in command line processing
443 dnl use universal approach
444 echo "(display (simplify-path \
445 (build-path (call-with-values \
446 (lambda () (split-path (find-system-path (quote exec-file)))) \
447 (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
448 dnl Remove a trailing slash
449 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
457 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
458 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
459 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
460 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
464 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
465 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
467 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
470 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
471 if test -f /usr/include/plt/scheme.h; then
473 SCHEME_INC=/usr/include/plt
476 vi_cv_path_mzscheme_pfx=
482 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
483 if test "x$MACOSX" = "xyes"; then
484 MZSCHEME_LIBS="-framework PLT_MzScheme"
485 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
486 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
487 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
488 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
489 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
491 dnl Using shared objects
492 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
493 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
494 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
496 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
498 if test "$GCC" = yes; then
499 dnl Make Vim remember the path to the library. For when it's not in
500 dnl $LD_LIBRARY_PATH.
501 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
502 elif test "`(uname) 2>/dev/null`" = SunOS &&
503 uname -r | grep '^5' >/dev/null; then
504 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
507 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
508 SCHEME_COLLECTS=lib/plt/
510 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
511 dnl need to generate bytecode for MzScheme base
512 MZSCHEME_EXTRA="mzscheme_base.c"
513 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
514 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
516 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
517 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
518 MZSCHEME_SRC="if_mzsch.c"
519 MZSCHEME_OBJ="objects/if_mzsch.o"
520 MZSCHEME_PRO="if_mzsch.pro"
521 AC_DEFINE(FEAT_MZSCHEME)
523 AC_SUBST(MZSCHEME_SRC)
524 AC_SUBST(MZSCHEME_OBJ)
525 AC_SUBST(MZSCHEME_PRO)
526 AC_SUBST(MZSCHEME_LIBS)
527 AC_SUBST(MZSCHEME_CFLAGS)
528 AC_SUBST(MZSCHEME_EXTRA)
529 AC_SUBST(MZSCHEME_MZC)
533 AC_MSG_CHECKING(--enable-perlinterp argument)
534 AC_ARG_ENABLE(perlinterp,
535 [ --enable-perlinterp Include Perl interpreter.], ,
536 [enable_perlinterp="no"])
537 AC_MSG_RESULT($enable_perlinterp)
538 if test "$enable_perlinterp" = "yes"; then
539 AC_SUBST(vi_cv_path_perl)
540 AC_PATH_PROG(vi_cv_path_perl, perl)
541 if test "X$vi_cv_path_perl" != "X"; then
542 AC_MSG_CHECKING(Perl version)
543 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
544 eval `$vi_cv_path_perl -V:usethreads`
545 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
548 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
549 eval `$vi_cv_path_perl -V:use5005threads`
550 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
554 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
558 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
561 if test $badthreads = no; then
563 eval `$vi_cv_path_perl -V:shrpenv`
564 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
567 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
568 AC_SUBST(vi_cv_perllib)
569 dnl Remove "-fno-something", it breaks using cproto.
570 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
571 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
572 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
573 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
574 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
575 -e 's/-bE:perl.exp//' -e 's/-lc //'`
576 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
577 dnl a test in configure may fail because of that.
578 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
579 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
581 dnl check that compiling a simple program still works with the flags
583 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
586 ldflags_save=$LDFLAGS
587 CFLAGS="$CFLAGS $perlcppflags"
588 LIBS="$LIBS $perllibs"
589 LDFLAGS="$perlldflags $LDFLAGS"
591 AC_MSG_RESULT(yes); perl_ok=yes,
592 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
595 LDFLAGS=$ldflags_save
596 if test $perl_ok = yes; then
597 if test "X$perlcppflags" != "X"; then
598 dnl remove -pipe and -Wxxx, it confuses cproto
599 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
601 if test "X$perlldflags" != "X"; then
602 LDFLAGS="$perlldflags $LDFLAGS"
605 PERL_SRC="auto/if_perl.c if_perlsfio.c"
606 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
607 PERL_PRO="if_perl.pro if_perlsfio.pro"
612 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
616 if test "x$MACOSX" = "xyes"; then
617 dnl Mac OS X 10.2 or later
618 dir=/System/Library/Perl
619 darwindir=$dir/darwin
620 if test -d $darwindir; then
624 dir=/System/Library/Perl/5.8.1
625 darwindir=$dir/darwin-thread-multi-2level
626 if test -d $darwindir; then
630 if test -n "$PERL"; then
632 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
633 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
634 PERL_LIBS="-L$darwindir/CORE -lperl"
642 AC_SUBST(PERL_CFLAGS)
645 AC_MSG_CHECKING(--enable-pythoninterp argument)
646 AC_ARG_ENABLE(pythoninterp,
647 [ --enable-pythoninterp Include Python interpreter.], ,
648 [enable_pythoninterp="no"])
649 AC_MSG_RESULT($enable_pythoninterp)
650 if test "$enable_pythoninterp" = "yes"; then
651 dnl -- find the python executable
652 AC_PATH_PROG(vi_cv_path_python, python)
653 if test "X$vi_cv_path_python" != "X"; then
655 dnl -- get its version number
656 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
657 [[vi_cv_var_python_version=`
658 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
661 dnl -- it must be at least version 1.4
662 AC_MSG_CHECKING(Python is 1.4 or better)
663 if ${vi_cv_path_python} -c \
664 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
668 dnl -- find where python thinks it was installed
669 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
670 [ vi_cv_path_python_pfx=`
671 ${vi_cv_path_python} -c \
672 "import sys; print sys.prefix"` ])
674 dnl -- and where it thinks it runs
675 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
676 [ vi_cv_path_python_epfx=`
677 ${vi_cv_path_python} -c \
678 "import sys; print sys.exec_prefix"` ])
680 dnl -- python's internal library path
682 AC_CACHE_VAL(vi_cv_path_pythonpath,
683 [ vi_cv_path_pythonpath=`
685 ${vi_cv_path_python} -c \
686 "import sys, string; print string.join(sys.path,':')"` ])
688 dnl -- where the Python implementation library archives are
690 AC_ARG_WITH(python-config-dir,
691 [ --with-python-config-dir=PATH Python's config directory],
692 [ vi_cv_path_python_conf="${withval}" ] )
694 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
696 vi_cv_path_python_conf=
697 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
698 for subdir in lib share; do
699 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
700 if test -d "$d" && test -f "$d/config.c"; then
701 vi_cv_path_python_conf="$d"
707 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
709 if test "X$PYTHON_CONFDIR" = "X"; then
710 AC_MSG_RESULT([can't find it!])
713 dnl -- we need to examine Python's config/Makefile too
714 dnl see what the interpreter is built from
715 AC_CACHE_VAL(vi_cv_path_python_plibs,
718 tmp_mkf="$pwd/config-PyMake$$"
719 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
721 @echo "python_MODLIBS='$(MODLIBS)'"
722 @echo "python_LIBS='$(LIBS)'"
723 @echo "python_SYSLIBS='$(SYSLIBS)'"
724 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
726 dnl -- delete the lines from make about Entering/Leaving directory
727 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
728 rm -f -- "${tmp_mkf}"
729 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
730 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
731 vi_cv_path_python_plibs="-framework Python"
733 if test "${vi_cv_var_python_version}" = "1.4"; then
734 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
736 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
738 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
739 dnl remove -ltermcap, it can conflict with an earlier -lncurses
740 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
744 PYTHON_LIBS="${vi_cv_path_python_plibs}"
745 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
746 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
748 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}"
750 PYTHON_SRC="if_python.c"
751 dnl For Mac OSX 10.2 config.o is included in the Python library.
752 if test "x$MACOSX" = "xyes"; then
753 PYTHON_OBJ="objects/if_python.o"
755 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
757 if test "${vi_cv_var_python_version}" = "1.4"; then
758 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
760 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
762 dnl On FreeBSD linking with "-pthread" is required to use threads.
763 dnl _THREAD_SAFE must be used for compiling then.
764 dnl The "-pthread" is added to $LIBS, so that the following check for
765 dnl sigaltstack() will look in libc_r (it's there in libc!).
766 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
767 dnl will then define target-specific defines, e.g., -D_REENTRANT.
768 dnl Don't do this for Mac OSX, -pthread will generate a warning.
769 AC_MSG_CHECKING([if -pthread should be used])
772 dnl if test "x$MACOSX" != "xyes"; then
773 if test "`(uname) 2>/dev/null`" != Darwin; then
774 test "$GCC" = yes && threadsafe_flag="-pthread"
775 if test "`(uname) 2>/dev/null`" = FreeBSD; then
776 threadsafe_flag="-D_THREAD_SAFE"
777 thread_lib="-pthread"
781 if test -n "$threadsafe_flag"; then
783 CFLAGS="$CFLAGS $threadsafe_flag"
784 LIBS="$LIBS $thread_lib"
786 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
787 AC_MSG_RESULT(no); LIBS=$libs_save_old
794 dnl check that compiling a simple program still works with the flags
795 dnl added for Python.
796 AC_MSG_CHECKING([if compile and link flags for Python are sane])
799 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
800 LIBS="$LIBS $PYTHON_LIBS"
802 AC_MSG_RESULT(yes); python_ok=yes,
803 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
806 if test $python_ok = yes; then
807 AC_DEFINE(FEAT_PYTHON)
818 AC_MSG_RESULT(too old)
822 AC_SUBST(PYTHON_CONFDIR)
823 AC_SUBST(PYTHON_LIBS)
824 AC_SUBST(PYTHON_GETPATH_CFLAGS)
825 AC_SUBST(PYTHON_CFLAGS)
829 AC_MSG_CHECKING(--enable-tclinterp argument)
830 AC_ARG_ENABLE(tclinterp,
831 [ --enable-tclinterp Include Tcl interpreter.], ,
832 [enable_tclinterp="no"])
833 AC_MSG_RESULT($enable_tclinterp)
835 if test "$enable_tclinterp" = "yes"; then
837 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
838 AC_MSG_CHECKING(--with-tclsh argument)
839 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
840 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
841 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
842 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
843 AC_SUBST(vi_cv_path_tcl)
845 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
846 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
847 tclsh_name="tclsh8.4"
848 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
850 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
851 tclsh_name="tclsh8.2"
852 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
854 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
855 tclsh_name="tclsh8.0"
856 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
858 dnl still didn't find it, try without version number
859 if test "X$vi_cv_path_tcl" = "X"; then
861 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
863 if test "X$vi_cv_path_tcl" != "X"; then
864 AC_MSG_CHECKING(Tcl version)
865 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
866 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
867 AC_MSG_RESULT($tclver - OK);
868 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 -`
870 AC_MSG_CHECKING(for location of Tcl include)
871 if test "x$MACOSX" != "xyes"; then
872 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
874 dnl For Mac OS X 10.3, use the OS-provided framework location
875 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
878 for try in $tclinc; do
879 if test -f "$try/tcl.h"; then
880 AC_MSG_RESULT($try/tcl.h)
885 if test -z "$TCL_INC"; then
886 AC_MSG_RESULT(<not found>)
889 if test -z "$SKIP_TCL"; then
890 AC_MSG_CHECKING(for location of tclConfig.sh script)
891 if test "x$MACOSX" != "xyes"; then
892 tclcnf=`echo $tclinc | sed s/include/lib/g`
893 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
895 dnl For Mac OS X 10.3, use the OS-provided framework location
896 tclcnf="/System/Library/Frameworks/Tcl.framework"
898 for try in $tclcnf; do
899 if test -f $try/tclConfig.sh; then
900 AC_MSG_RESULT($try/tclConfig.sh)
902 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
903 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
904 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
905 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
906 TCL_DEFS=`echo $TCL_DEFS | sed -e 's/\\\\ /\\\\X/g' | tr ' ' '\012' | sed -e '/^[[^-]]/d' -e '/^-[[^D]]/d' -e '/-D[[^_]]/d' -e 's/-D_/ -D_/' | tr '\012' ' ' | sed -e 's/\\\\X/\\\\ /g'`
910 if test -z "$TCL_LIBS"; then
911 AC_MSG_RESULT(<not found>)
912 AC_MSG_CHECKING(for Tcl library by myself)
913 tcllib=`echo $tclinc | sed s/include/lib/g`
914 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
915 for ext in .so .a ; do
916 for ver in "" $tclver ; do
917 for try in $tcllib ; do
919 if test -f $try/lib$trylib ; then
920 AC_MSG_RESULT($try/lib$trylib)
921 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
922 if test "`(uname) 2>/dev/null`" = SunOS &&
923 uname -r | grep '^5' >/dev/null; then
924 TCL_LIBS="$TCL_LIBS -R $try"
931 if test -z "$TCL_LIBS"; then
932 AC_MSG_RESULT(<not found>)
936 if test -z "$SKIP_TCL"; then
939 TCL_OBJ=objects/if_tcl.o
941 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
945 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
955 AC_MSG_CHECKING(--enable-rubyinterp argument)
956 AC_ARG_ENABLE(rubyinterp,
957 [ --enable-rubyinterp Include Ruby interpreter.], ,
958 [enable_rubyinterp="no"])
959 AC_MSG_RESULT($enable_rubyinterp)
960 if test "$enable_rubyinterp" = "yes"; then
961 AC_SUBST(vi_cv_path_ruby)
962 AC_PATH_PROG(vi_cv_path_ruby, ruby)
963 if test "X$vi_cv_path_ruby" != "X"; then
964 AC_MSG_CHECKING(Ruby version)
965 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
967 AC_MSG_CHECKING(Ruby header files)
968 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
969 if test "X$rubyhdrdir" != "X"; then
970 AC_MSG_RESULT($rubyhdrdir)
971 RUBY_CFLAGS="-I$rubyhdrdir"
972 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
973 if test "X$rubylibs" != "X"; then
974 RUBY_LIBS="$rubylibs"
976 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
977 if test -f "$rubyhdrdir/$librubyarg"; then
978 librubyarg="$rubyhdrdir/$librubyarg"
980 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
981 if test -f "$rubylibdir/$librubyarg"; then
982 librubyarg="$rubylibdir/$librubyarg"
983 elif test "$librubyarg" = "libruby.a"; then
984 dnl required on Mac OS 10.3 where libruby.a doesn't exist
987 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
991 if test "X$librubyarg" != "X"; then
992 RUBY_LIBS="$librubyarg $RUBY_LIBS"
994 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
995 if test "X$rubyldflags" != "X"; then
996 dnl Ruby on Mac OS X 10.5 and later adds "-arch" flags but these
997 dnl should only be included if requested by passing --with-mac-arch
998 dnl to configure, so strip these flags first (if present)
999 rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'`
1000 if test "X$rubyldflags" != "X"; then
1001 LDFLAGS="$rubyldflags $LDFLAGS"
1004 RUBY_SRC="if_ruby.c"
1005 RUBY_OBJ="objects/if_ruby.o"
1006 RUBY_PRO="if_ruby.pro"
1007 AC_DEFINE(FEAT_RUBY)
1009 AC_MSG_RESULT(not found, disabling Ruby)
1012 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1019 AC_SUBST(RUBY_CFLAGS)
1022 AC_MSG_CHECKING(--enable-cscope argument)
1023 AC_ARG_ENABLE(cscope,
1024 [ --enable-cscope Include cscope interface.], ,
1025 [enable_cscope="no"])
1026 AC_MSG_RESULT($enable_cscope)
1027 if test "$enable_cscope" = "yes"; then
1028 AC_DEFINE(FEAT_CSCOPE)
1031 AC_MSG_CHECKING(--enable-workshop argument)
1032 AC_ARG_ENABLE(workshop,
1033 [ --enable-workshop Include Sun Visual Workshop support.], ,
1034 [enable_workshop="no"])
1035 AC_MSG_RESULT($enable_workshop)
1036 if test "$enable_workshop" = "yes"; then
1037 AC_DEFINE(FEAT_SUN_WORKSHOP)
1038 WORKSHOP_SRC="workshop.c integration.c"
1039 AC_SUBST(WORKSHOP_SRC)
1040 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1041 AC_SUBST(WORKSHOP_OBJ)
1042 if test "${enable_gui-xxx}" = xxx; then
1047 AC_MSG_CHECKING(--disable-netbeans argument)
1048 AC_ARG_ENABLE(netbeans,
1049 [ --disable-netbeans Disable NetBeans integration support.],
1050 , [enable_netbeans="yes"])
1051 if test "$enable_netbeans" = "yes"; then
1053 dnl On Solaris we need the socket and nsl library.
1054 AC_CHECK_LIB(socket, socket)
1055 AC_CHECK_LIB(nsl, gethostbyname)
1056 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1063 #include <netinet/in.h>
1065 #include <sys/types.h>
1066 #include <sys/socket.h>
1067 /* Check bitfields */
1069 unsigned int initDone:1;
1073 /* Check creating a socket. */
1074 struct sockaddr_in server;
1075 (void)socket(AF_INET, SOCK_STREAM, 0);
1077 (void)gethostbyname("microsoft.com");
1078 if (errno == ECONNREFUSED)
1079 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1082 AC_MSG_RESULT(no); enable_netbeans="no")
1086 if test "$enable_netbeans" = "yes"; then
1087 AC_DEFINE(FEAT_NETBEANS_INTG)
1088 NETBEANS_SRC="netbeans.c"
1089 AC_SUBST(NETBEANS_SRC)
1090 NETBEANS_OBJ="objects/netbeans.o"
1091 AC_SUBST(NETBEANS_OBJ)
1094 AC_MSG_CHECKING(--enable-sniff argument)
1095 AC_ARG_ENABLE(sniff,
1096 [ --enable-sniff Include Sniff interface.], ,
1097 [enable_sniff="no"])
1098 AC_MSG_RESULT($enable_sniff)
1099 if test "$enable_sniff" = "yes"; then
1100 AC_DEFINE(FEAT_SNIFF)
1101 SNIFF_SRC="if_sniff.c"
1103 SNIFF_OBJ="objects/if_sniff.o"
1107 AC_MSG_CHECKING(--enable-multibyte argument)
1108 AC_ARG_ENABLE(multibyte,
1109 [ --enable-multibyte Include multibyte editing support.], ,
1110 [enable_multibyte="no"])
1111 AC_MSG_RESULT($enable_multibyte)
1112 if test "$enable_multibyte" = "yes"; then
1113 AC_DEFINE(FEAT_MBYTE)
1116 AC_MSG_CHECKING(--enable-hangulinput argument)
1117 AC_ARG_ENABLE(hangulinput,
1118 [ --enable-hangulinput Include Hangul input support.], ,
1119 [enable_hangulinput="no"])
1120 AC_MSG_RESULT($enable_hangulinput)
1122 AC_MSG_CHECKING(--enable-xim argument)
1124 [ --enable-xim Include XIM input support.],
1125 AC_MSG_RESULT($enable_xim),
1126 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1127 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1129 AC_MSG_CHECKING(--enable-fontset argument)
1130 AC_ARG_ENABLE(fontset,
1131 [ --enable-fontset Include X fontset output support.], ,
1132 [enable_fontset="no"])
1133 AC_MSG_RESULT($enable_fontset)
1134 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1136 test -z "$with_x" && with_x=yes
1137 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1138 if test "$with_x" = no; then
1139 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1141 dnl Do this check early, so that its failure can override user requests.
1143 AC_PATH_PROG(xmkmfpath, xmkmf)
1147 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1148 dnl be compiled with a special option.
1149 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1150 if test "$OS390Unix" = "yes"; then
1151 CFLAGS="$CFLAGS -W c,dll"
1152 LDFLAGS="$LDFLAGS -W l,dll"
1153 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1156 dnl On my HPUX system the X include dir is found, but the lib dir not.
1157 dnl This is a desparate try to fix this.
1159 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1160 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1161 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1162 X_LIBS="$X_LIBS -L$x_libraries"
1163 if test "`(uname) 2>/dev/null`" = SunOS &&
1164 uname -r | grep '^5' >/dev/null; then
1165 X_LIBS="$X_LIBS -R $x_libraries"
1169 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1170 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1171 AC_MSG_RESULT(Corrected X includes to $x_includes)
1172 X_CFLAGS="$X_CFLAGS -I$x_includes"
1175 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1176 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1177 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1178 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1179 dnl Same for "-R/usr/lib ".
1180 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1183 dnl Check if the X11 header files are correctly installed. On some systems
1184 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1186 AC_MSG_CHECKING(if X11 header files can be found)
1188 CFLAGS="$CFLAGS $X_CFLAGS"
1189 AC_TRY_COMPILE([#include <X11/Xlib.h>
1190 #include <X11/Intrinsic.h>], ,
1192 AC_MSG_RESULT(no); no_x=yes)
1195 if test "${no_x-no}" = yes; then
1202 ac_save_LDFLAGS="$LDFLAGS"
1203 LDFLAGS="-L$x_libraries $LDFLAGS"
1205 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1206 dnl For HP-UX 10.20 it must be before -lSM -lICE
1207 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1208 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1210 dnl Some systems need -lnsl -lsocket when testing for ICE.
1211 dnl The check above doesn't do this, try here (again). Also needed to get
1212 dnl them after Xdmcp. link.sh will remove them when not needed.
1213 dnl Check for other function than above to avoid the cached value
1214 AC_CHECK_LIB(ICE, IceOpenConnection,
1215 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1217 dnl Check for -lXpm (needed for some versions of Motif)
1218 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1219 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1220 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1222 dnl Check that the X11 header files don't use implicit declarations
1223 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1225 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1226 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1228 CFLAGS="$CFLAGS -Wno-implicit-int"
1229 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1230 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1231 AC_MSG_RESULT(test failed)
1236 LDFLAGS="$ac_save_LDFLAGS"
1238 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1239 AC_CACHE_VAL(ac_cv_small_wchar_t,
1241 #include <X11/Xlib.h>
1243 # include <stdlib.h>
1244 # include <stddef.h>
1248 if (sizeof(wchar_t) <= 2)
1252 ac_cv_small_wchar_t="no",
1253 ac_cv_small_wchar_t="yes",
1254 AC_MSG_ERROR(failed to compile test program))])
1255 AC_MSG_RESULT($ac_cv_small_wchar_t)
1256 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1257 AC_DEFINE(SMALL_WCHAR_T)
1263 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1265 AC_MSG_CHECKING(--enable-gui argument)
1267 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon/macvim]], , enable_gui="auto")
1269 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1270 dnl Do not use character classes for portability with old tools.
1271 enable_gui_canon=`echo "_$enable_gui" | \
1272 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1274 dnl Skip everything by default.
1286 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1288 case "$enable_gui_canon" in
1289 no) AC_MSG_RESULT(no GUI support)
1291 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1292 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1293 photon) AC_MSG_RESULT(Photon GUI support) ;;
1294 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1298 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1301 case "$enable_gui_canon" in
1302 no) AC_MSG_RESULT(no GUI support)
1305 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1306 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1307 carbon) AC_MSG_RESULT(Carbon GUI support)
1309 macvim) AC_MSG_RESULT(MacVim GUI support)
1311 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1318 case "$enable_gui_canon" in
1319 no|none) AC_MSG_RESULT(no GUI support) ;;
1320 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1329 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1331 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1334 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1337 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1341 motif) AC_MSG_RESULT(Motif GUI support)
1343 athena) AC_MSG_RESULT(Athena GUI support)
1345 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1347 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1352 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1353 AC_MSG_CHECKING(whether or not to look for GTK)
1354 AC_ARG_ENABLE(gtk-check,
1355 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1356 , enable_gtk_check="yes")
1357 AC_MSG_RESULT($enable_gtk_check)
1358 if test "x$enable_gtk_check" = "xno"; then
1364 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1365 -a "$enable_gui_canon" != "gnome2"; then
1366 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1367 AC_ARG_ENABLE(gtk2-check,
1368 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1369 , enable_gtk2_check="yes")
1370 AC_MSG_RESULT($enable_gtk2_check)
1371 if test "x$enable_gtk2_check" = "xno"; then
1376 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1377 -a "$enable_gui_canon" != "gnome2"; then
1378 AC_MSG_CHECKING(whether or not to look for GNOME)
1379 AC_ARG_ENABLE(gnome-check,
1380 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1381 , enable_gnome_check="no")
1382 AC_MSG_RESULT($enable_gnome_check)
1383 if test "x$enable_gnome_check" = "xno"; then
1388 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1389 AC_MSG_CHECKING(whether or not to look for Motif)
1390 AC_ARG_ENABLE(motif-check,
1391 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1392 , enable_motif_check="yes")
1393 AC_MSG_RESULT($enable_motif_check)
1394 if test "x$enable_motif_check" = "xno"; then
1399 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1400 AC_MSG_CHECKING(whether or not to look for Athena)
1401 AC_ARG_ENABLE(athena-check,
1402 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1403 , enable_athena_check="yes")
1404 AC_MSG_RESULT($enable_athena_check)
1405 if test "x$enable_athena_check" = "xno"; then
1410 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1411 AC_MSG_CHECKING(whether or not to look for neXtaw)
1412 AC_ARG_ENABLE(nextaw-check,
1413 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1414 , enable_nextaw_check="yes")
1415 AC_MSG_RESULT($enable_nextaw_check);
1416 if test "x$enable_nextaw_check" = "xno"; then
1421 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1422 AC_MSG_CHECKING(whether or not to look for Carbon)
1423 AC_ARG_ENABLE(carbon-check,
1424 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1425 , enable_carbon_check="yes")
1426 AC_MSG_RESULT($enable_carbon_check);
1427 if test "x$enable_carbon_check" = "xno"; then
1432 if test "x$SKIP_MACVIM" != "xYES" -a "$enable_gui_canon" != "macvim"; then
1433 AC_MSG_CHECKING(whether or not to look for MacVim)
1434 AC_ARG_ENABLE(macvim-check,
1435 [ --enable-macvim-check If auto-select GUI, check for MacVim [default=yes]],
1436 , enable_macvim_check="yes")
1437 AC_MSG_RESULT($enable_macvim_check);
1438 if test "x$enable_macvim_check" = "xno"; then
1443 if test "x$MACOSX" = "xyes"; then
1444 dnl Default install directory is not /usr/local
1445 if test x$prefix = xNONE; then
1446 prefix=/Applications
1449 if test -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1450 AC_MSG_CHECKING(for Carbon GUI)
1451 dnl already did the check, just give the message
1454 dnl Sorry for the hard coded default
1455 datadir='${prefix}/Vim.app/Contents/Resources'
1456 elif test -z "$SKIP_MACVIM" -a "x$COCOA" = "xyes"; then
1457 AC_MSG_CHECKING(for MacVim GUI)
1458 dnl already did the check, just give the message
1461 dnl Sorry for the hard coded default
1462 datadir='${prefix}/MacVim.app/Contents/Resources'
1464 dnl Mac OS X 10.6 compiles 64 bit by default, but the MacVim binary is 32
1465 dnl bit. This ensures Vim is 32 bit as well.
1466 CFLAGS="$CFLAGS -m32"
1467 LDFLAGS="$LDFLAGS -m32"
1470 if test "$VIMNAME" = "vim"; then
1474 dnl skip everything else
1487 dnl Get the cflags and libraries from the gtk-config script
1490 dnl define an autoconf function to check for a specified version of GTK, and
1491 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1493 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1494 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1496 AC_DEFUN(AM_PATH_GTK,
1498 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1500 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1501 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1503 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1504 && $PKG_CONFIG --exists gtk+-2.0; then
1506 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1507 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1508 dnl something like that.
1509 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1510 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1511 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1512 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1513 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1514 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1515 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1516 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1517 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1519 elif test "X$GTK_CONFIG" != "Xno"; then
1521 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1523 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1524 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1525 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1526 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1527 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1528 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1529 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1535 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1537 ac_save_CFLAGS="$CFLAGS"
1538 ac_save_LIBS="$LIBS"
1539 CFLAGS="$CFLAGS $GTK_CFLAGS"
1540 LIBS="$LIBS $GTK_LIBS"
1543 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1544 dnl checks the results of gtk-config to some extent
1548 #include <gtk/gtk.h>
1551 # include <stdlib.h>
1552 # include <stddef.h>
1558 int major, minor, micro;
1561 system ("touch conf.gtktest");
1563 /* HP/UX 9 (%@#!) writes to sscanf strings */
1564 tmp_version = g_strdup("$min_gtk_version");
1565 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1566 printf("%s, bad version string\n", "$min_gtk_version");
1570 if ((gtk_major_version > major) ||
1571 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1572 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1573 (gtk_micro_version >= micro)))
1579 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1580 CFLAGS="$ac_save_CFLAGS"
1581 LIBS="$ac_save_LIBS"
1584 if test "x$no_gtk" = x ; then
1585 if test "x$enable_gtktest" = "xyes"; then
1586 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1588 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1590 ifelse([$2], , :, [$2])
1596 ifelse([$3], , :, [$3])
1603 ifelse([$3], , :, [$3])
1605 AC_SUBST(GTK_CFLAGS)
1610 dnl ---------------------------------------------------------------------------
1612 dnl ---------------------------------------------------------------------------
1613 AC_DEFUN([GNOME_INIT_HOOK],
1615 AC_SUBST(GNOME_LIBS)
1616 AC_SUBST(GNOME_LIBDIR)
1617 AC_SUBST(GNOME_INCLUDEDIR)
1619 AC_ARG_WITH(gnome-includes,
1620 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1621 [CFLAGS="$CFLAGS -I$withval"]
1624 AC_ARG_WITH(gnome-libs,
1625 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1626 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1630 [ --with-gnome Specify prefix for GNOME files],
1631 if test x$withval = xyes; then
1633 ifelse([$1], [], :, [$1])
1635 if test "x$withval" = xno; then
1639 LDFLAGS="$LDFLAGS -L$withval/lib"
1640 CFLAGS="$CFLAGS -I$withval/include"
1641 gnome_prefix=$withval/lib
1646 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1648 AC_MSG_CHECKING(for libgnomeui-2.0)
1649 if $PKG_CONFIG --exists libgnomeui-2.0; then
1651 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1652 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1653 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1655 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1656 dnl This might not be the right way but it works for me...
1657 AC_MSG_CHECKING(for FreeBSD)
1658 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1659 AC_MSG_RESULT(yes, adding -pthread)
1660 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1661 GNOME_LIBS="$GNOME_LIBS -pthread"
1667 AC_MSG_RESULT(not found)
1668 if test "x$2" = xfail; then
1669 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1673 elif test "x$want_gnome" = xyes; then
1675 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1676 if test "$GNOME_CONFIG" = "no"; then
1677 no_gnome_config="yes"
1679 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1680 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1682 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1683 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1684 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1688 no_gnome_config="yes"
1692 if test x$exec_prefix = xNONE; then
1693 if test x$prefix = xNONE; then
1694 gnome_prefix=$ac_default_prefix/lib
1696 gnome_prefix=$prefix/lib
1699 gnome_prefix=`eval echo \`echo $libdir\``
1702 if test "$no_gnome_config" = "yes"; then
1703 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1704 if test -f $gnome_prefix/gnomeConf.sh; then
1705 AC_MSG_RESULT(found)
1706 echo "loading gnome configuration from" \
1707 "$gnome_prefix/gnomeConf.sh"
1708 . $gnome_prefix/gnomeConf.sh
1711 AC_MSG_RESULT(not found)
1712 if test x$2 = xfail; then
1713 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1721 AC_DEFUN([GNOME_INIT],[
1722 GNOME_INIT_HOOK([],fail)
1726 dnl ---------------------------------------------------------------------------
1727 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1728 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1729 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1730 dnl ---------------------------------------------------------------------------
1731 if test -z "$SKIP_GTK"; then
1733 AC_MSG_CHECKING(--with-gtk-prefix argument)
1734 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1735 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1736 gtk_config_prefix=""; AC_MSG_RESULT(no))
1738 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1739 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1740 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1741 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1743 AC_MSG_CHECKING(--disable-gtktest argument)
1744 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1745 , enable_gtktest=yes)
1746 if test "x$enable_gtktest" = "xyes" ; then
1747 AC_MSG_RESULT(gtk test enabled)
1749 AC_MSG_RESULT(gtk test disabled)
1752 if test "x$gtk_config_prefix" != "x" ; then
1753 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1754 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1756 if test "x$gtk_config_exec_prefix" != "x" ; then
1757 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1758 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1760 if test "X$GTK_CONFIG" = "X"; then
1761 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1762 if test "X$GTK_CONFIG" = "Xno"; then
1763 dnl Some distributions call it gtk12-config, annoying!
1764 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1765 GTK_CONFIG="$GTK12_CONFIG"
1768 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1770 if test "X$PKG_CONFIG" = "X"; then
1771 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1774 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1775 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1776 dnl problems (bold fonts, --remote doesn't work).
1777 if test "X$SKIP_GTK2" != "XYES"; then
1779 [GUI_LIB_LOC="$GTK_LIBDIR"
1780 GTK_LIBNAME="$GTK_LIBS"
1781 GUI_INC_LOC="$GTK_CFLAGS"], )
1782 if test "x$GTK_CFLAGS" != "x"; then
1787 AC_SUBST(GTK_LIBNAME)
1791 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1792 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1793 dnl were test versions.
1794 if test "x$GUITYPE" != "xGTK"; then
1797 [GTK_LIBNAME="$GTK_LIBS"
1798 GUI_INC_LOC="$GTK_CFLAGS"], )
1799 if test "x$GTK_CFLAGS" != "x"; then
1804 AC_SUBST(GTK_LIBNAME)
1808 dnl Give a warning if GTK is older than 1.2.3
1809 if test "x$GUITYPE" = "xGTK"; then
1810 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1811 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1812 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1815 if test "0$gtk_major_version" -ge 2; then
1816 AC_DEFINE(HAVE_GTK2)
1817 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1818 || test "0$gtk_minor_version" -ge 2 \
1819 || test "0$gtk_major_version" -gt 2; then
1820 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1824 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1826 if test -z "$SKIP_GNOME"; then
1828 GNOME_INIT_HOOK([have_gnome=yes])
1829 if test x$have_gnome = xyes ; then
1830 AC_DEFINE(FEAT_GUI_GNOME)
1831 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1832 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1841 dnl Check for Motif include files location.
1842 dnl The LAST one found is used, this makes the highest version to be used,
1843 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1845 if test -z "$SKIP_MOTIF"; then
1846 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"
1847 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1848 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1850 AC_MSG_CHECKING(for location of Motif GUI includes)
1851 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1853 for try in $gui_includes; do
1854 if test -f "$try/Xm/Xm.h"; then
1858 if test -n "$GUI_INC_LOC"; then
1859 if test "$GUI_INC_LOC" = /usr/include; then
1861 AC_MSG_RESULT(in default path)
1863 AC_MSG_RESULT($GUI_INC_LOC)
1866 AC_MSG_RESULT(<not found>)
1871 dnl Check for Motif library files location. In the same order as the include
1872 dnl files, to avoid a mixup if several versions are present
1874 if test -z "$SKIP_MOTIF"; then
1875 AC_MSG_CHECKING(--with-motif-lib argument)
1876 AC_ARG_WITH(motif-lib,
1877 [ --with-motif-lib=STRING Library for Motif ],
1878 [ MOTIF_LIBNAME="${withval}" ] )
1880 if test -n "$MOTIF_LIBNAME"; then
1881 AC_MSG_RESULT($MOTIF_LIBNAME)
1886 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1887 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1889 AC_MSG_CHECKING(for location of Motif GUI libs)
1890 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"
1892 for try in $gui_libs; do
1893 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1894 if test -f "$libtry"; then
1899 if test -n "$GUI_LIB_LOC"; then
1900 dnl Remove /usr/lib, it causes trouble on some systems
1901 if test "$GUI_LIB_LOC" = /usr/lib; then
1903 AC_MSG_RESULT(in default path)
1905 if test -n "$GUI_LIB_LOC"; then
1906 AC_MSG_RESULT($GUI_LIB_LOC)
1907 if test "`(uname) 2>/dev/null`" = SunOS &&
1908 uname -r | grep '^5' >/dev/null; then
1909 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1915 AC_MSG_RESULT(<not found>)
1921 if test -z "$SKIP_MOTIF"; then
1925 AC_SUBST(MOTIF_LIBNAME)
1928 dnl Check if the Athena files can be found
1932 if test -z "$SKIP_ATHENA"; then
1933 AC_MSG_CHECKING(if Athena header files can be found)
1935 CFLAGS="$CFLAGS $X_CFLAGS"
1937 #include <X11/Intrinsic.h>
1938 #include <X11/Xaw/Paned.h>], ,
1940 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1944 if test -z "$SKIP_ATHENA"; then
1948 if test -z "$SKIP_NEXTAW"; then
1949 AC_MSG_CHECKING(if neXtaw header files can be found)
1951 CFLAGS="$CFLAGS $X_CFLAGS"
1953 #include <X11/Intrinsic.h>
1954 #include <X11/neXtaw/Paned.h>], ,
1956 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1960 if test -z "$SKIP_NEXTAW"; then
1964 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1965 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1966 dnl Avoid adding it when it twice
1967 if test -n "$GUI_INC_LOC"; then
1968 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1970 if test -n "$GUI_LIB_LOC"; then
1971 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1974 dnl Check for -lXext and then for -lXmu
1975 ldflags_save=$LDFLAGS
1976 LDFLAGS="$X_LIBS $LDFLAGS"
1977 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1978 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1979 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1980 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1981 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1982 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1983 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1984 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1985 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1986 if test -z "$SKIP_MOTIF"; then
1987 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1988 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1990 LDFLAGS=$ldflags_save
1992 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1993 AC_MSG_CHECKING(for extra X11 defines)
1996 if mkdir conftestdir; then
1998 cat > Imakefile <<'EOF'
2000 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2002 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2003 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2008 if test -z "$NARROW_PROTO"; then
2011 AC_MSG_RESULT($NARROW_PROTO)
2013 AC_SUBST(NARROW_PROTO)
2016 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2017 dnl use the X11 include path
2018 if test "$enable_xsmp" = "yes"; then
2019 cppflags_save=$CPPFLAGS
2020 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2021 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2022 CPPFLAGS=$cppflags_save
2026 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2027 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2028 cppflags_save=$CPPFLAGS
2029 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2030 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2032 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2033 if test ! "$enable_xim" = "no"; then
2034 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2035 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2037 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2039 CPPFLAGS=$cppflags_save
2041 dnl automatically enable XIM when hangul input isn't enabled
2042 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2043 -a "x$GUITYPE" != "xNONE" ; then
2044 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2049 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2050 cppflags_save=$CPPFLAGS
2051 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2052 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2053 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2055 #include <X11/Intrinsic.h>
2056 #include <X11/Xmu/Editres.h>],
2059 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2061 CPPFLAGS=$cppflags_save
2064 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2065 if test -z "$SKIP_MOTIF"; then
2066 cppflags_save=$CPPFLAGS
2067 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2068 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2069 Xm/UnhighlightT.h Xm/Notebook.h)
2071 if test $ac_cv_header_Xm_XpmP_h = yes; then
2072 dnl Solaris uses XpmAttributes_21, very annoying.
2073 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2074 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2075 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2076 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2079 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2081 CPPFLAGS=$cppflags_save
2084 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2085 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2088 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2089 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2092 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2093 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2097 if test -z "$SKIP_PHOTON"; then
2101 AC_SUBST(GUI_INC_LOC)
2102 AC_SUBST(GUI_LIB_LOC)
2104 AC_SUBST(GUI_X_LIBS)
2106 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2107 AC_MSG_ERROR([cannot use workshop without Motif])
2110 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2111 if test "$enable_xim" = "yes"; then
2114 if test "$enable_fontset" = "yes"; then
2115 AC_DEFINE(FEAT_XFONTSET)
2119 dnl ---------------------------------------------------------------------------
2120 dnl end of GUI-checking
2121 dnl ---------------------------------------------------------------------------
2124 dnl Only really enable hangul input when GUI and XFONTSET are available
2125 if test "$enable_hangulinput" = "yes"; then
2126 if test "x$GUITYPE" = "xNONE"; then
2127 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2128 enable_hangulinput=no
2130 AC_DEFINE(FEAT_HANGULIN)
2131 HANGULIN_SRC=hangulin.c
2132 AC_SUBST(HANGULIN_SRC)
2133 HANGULIN_OBJ=objects/hangulin.o
2134 AC_SUBST(HANGULIN_OBJ)
2138 dnl Checks for libraries and include files.
2140 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2143 #include "confdefs.h"
2146 # include <stdlib.h>
2147 # include <stddef.h>
2149 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2151 vim_cv_toupper_broken=yes
2153 vim_cv_toupper_broken=no
2155 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2158 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2159 AC_DEFINE(BROKEN_TOUPPER)
2162 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2163 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2164 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2167 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2168 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2169 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2172 dnl Checks for header files.
2173 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2174 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2175 if test "$HAS_ELF" = 1; then
2176 AC_CHECK_LIB(elf, main)
2181 dnl If sys/wait.h is not found it might still exist but not be POSIX
2182 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2183 if test $ac_cv_header_sys_wait_h = no; then
2184 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2185 AC_TRY_COMPILE([#include <sys/wait.h>],
2186 [union wait xx, yy; xx = yy],
2188 AC_DEFINE(HAVE_SYS_WAIT_H)
2189 AC_DEFINE(HAVE_UNION_WAIT),
2193 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2194 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2195 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2196 sys/resource.h sys/systeminfo.h locale.h \
2197 sys/stream.h termios.h libc.h sys/statfs.h \
2198 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2199 libgen.h util/debug.h util/msg18n.h frame.h \
2200 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2202 dnl sys/ptem.h depends on sys/stream.h on Solaris
2203 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2204 [#if defined HAVE_SYS_STREAM_H
2205 # include <sys/stream.h>
2208 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2209 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2210 [#if defined HAVE_SYS_PARAM_H
2211 # include <sys/param.h>
2215 dnl pthread_np.h may exist but can only be used after including pthread.h
2216 AC_MSG_CHECKING([for pthread_np.h])
2218 #include <pthread.h>
2219 #include <pthread_np.h>],
2222 AC_DEFINE(HAVE_PTHREAD_NP_H),
2225 AC_CHECK_HEADERS(strings.h)
2226 if test "x$MACOSX" = "xyes"; then
2227 dnl The strings.h file on OS/X contains a warning and nothing useful.
2228 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2231 dnl Check if strings.h and string.h can both be included when defined.
2232 AC_MSG_CHECKING([if strings.h can be included after string.h])
2233 cppflags_save=$CPPFLAGS
2234 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2236 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2237 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2238 /* but don't do it on AIX 5.1 (Uribarri) */
2241 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2243 #ifdef HAVE_STRING_H
2244 # include <string.h>
2246 #if defined(HAVE_STRINGS_H)
2247 # include <strings.h>
2251 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2253 CPPFLAGS=$cppflags_save
2256 dnl Checks for typedefs, structures, and compiler characteristics.
2257 AC_PROG_GCC_TRADITIONAL
2266 AC_CHECK_TYPE(ino_t, long)
2267 AC_CHECK_TYPE(dev_t, unsigned)
2269 AC_MSG_CHECKING(for rlim_t)
2270 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2271 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2274 changequote(<<,>>)dnl
2275 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2278 #include <sys/types.h>
2280 # include <stdlib.h>
2281 # include <stddef.h>
2283 #ifdef HAVE_SYS_RESOURCE_H
2284 # include <sys/resource.h>
2286 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2287 AC_MSG_RESULT($ac_cv_type_rlim_t)
2289 if test $ac_cv_type_rlim_t = no; then
2290 cat >> confdefs.h <<\EOF
2291 #define rlim_t unsigned long
2295 AC_MSG_CHECKING(for stack_t)
2296 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2297 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2299 AC_EGREP_CPP(stack_t,
2301 #include <sys/types.h>
2303 # include <stdlib.h>
2304 # include <stddef.h>
2307 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2308 AC_MSG_RESULT($ac_cv_type_stack_t)
2310 if test $ac_cv_type_stack_t = no; then
2311 cat >> confdefs.h <<\EOF
2312 #define stack_t struct sigaltstack
2316 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2317 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2319 #include <sys/types.h>
2321 # include <stdlib.h>
2322 # include <stddef.h>
2325 #include "confdefs.h"
2326 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2327 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2331 AC_MSG_CHECKING(--with-tlib argument)
2332 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2333 if test -n "$with_tlib"; then
2334 AC_MSG_RESULT($with_tlib)
2335 LIBS="$LIBS -l$with_tlib"
2336 AC_MSG_CHECKING(for linking with $with_tlib library)
2337 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2338 dnl Need to check for tgetent() below.
2341 AC_MSG_RESULT([empty: automatic terminal library selection])
2342 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2343 dnl curses, because curses is much slower.
2344 dnl Newer versions of ncurses are preferred over anything.
2345 dnl Older versions of ncurses have bugs, get a new one!
2346 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2347 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2348 case "`uname -s 2>/dev/null`" in
2349 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2350 *) tlibs="ncurses termlib termcap curses";;
2352 for libname in $tlibs; do
2353 AC_CHECK_LIB(${libname}, tgetent,,)
2354 if test "x$olibs" != "x$LIBS"; then
2355 dnl It's possible that a library is found but it doesn't work
2356 dnl e.g., shared library that cannot be found
2357 dnl compile and run a test program to be sure
2359 #ifdef HAVE_TERMCAP_H
2360 # include <termcap.h>
2363 # include <stdlib.h>
2364 # include <stddef.h>
2366 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2367 res="OK", res="FAIL", res="FAIL")
2368 if test "$res" = "OK"; then
2371 AC_MSG_RESULT($libname library is not usable)
2375 if test "x$olibs" = "x$LIBS"; then
2376 AC_MSG_RESULT(no terminal library found)
2380 if test "x$olibs" = "x$LIBS"; then
2381 AC_MSG_CHECKING([for tgetent()])
2383 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2385 AC_MSG_ERROR([NOT FOUND!
2386 You need to install a terminal library; for example ncurses.
2387 Or specify the name of the library with --with-tlib.]))
2390 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2393 #include "confdefs.h"
2394 #ifdef HAVE_TERMCAP_H
2395 # include <termcap.h>
2397 #ifdef HAVE_STRING_H
2398 # include <string.h>
2401 # include <stdlib.h>
2402 # include <stddef.h>
2405 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2411 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2415 if test "x$vim_cv_terminfo" = "xyes" ; then
2419 if test "x$olibs" != "x$LIBS"; then
2420 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2423 #include "confdefs.h"
2424 #ifdef HAVE_TERMCAP_H
2425 # include <termcap.h>
2428 # include <stdlib.h>
2429 # include <stddef.h>
2432 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2436 vim_cv_tgent=non-zero
2438 AC_MSG_ERROR(failed to compile test program.)
2442 if test "x$vim_cv_tgent" = "xzero" ; then
2443 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2447 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2449 #ifdef HAVE_TERMCAP_H
2450 # include <termcap.h>
2452 ], [ospeed = 20000],
2453 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2455 AC_MSG_CHECKING(whether ospeed can be extern)
2457 #ifdef HAVE_TERMCAP_H
2458 # include <termcap.h>
2460 extern short ospeed;
2461 ], [ospeed = 20000],
2462 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2466 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2468 #ifdef HAVE_TERMCAP_H
2469 # include <termcap.h>
2471 ], [if (UP == 0 && BC == 0) PC = 1],
2472 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2474 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2476 #ifdef HAVE_TERMCAP_H
2477 # include <termcap.h>
2479 extern char *UP, *BC, PC;
2480 ], [if (UP == 0 && BC == 0) PC = 1],
2481 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2485 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2487 #ifdef HAVE_TERMCAP_H
2488 # include <termcap.h>
2490 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2491 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2494 dnl On some SCO machines sys/select redefines struct timeval
2495 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2497 #include <sys/types.h>
2498 #include <sys/time.h>
2499 #include <sys/select.h>], ,
2501 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2504 dnl AC_DECL_SYS_SIGLIST
2506 dnl Checks for pty.c (copied from screen) ==========================
2507 AC_MSG_CHECKING(for /dev/ptc)
2508 if test -r /dev/ptc; then
2509 AC_DEFINE(HAVE_DEV_PTC)
2515 AC_MSG_CHECKING(for SVR4 ptys)
2516 if test -c /dev/ptmx ; then
2517 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2518 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2524 AC_MSG_CHECKING(for ptyranges)
2525 if test -d /dev/ptym ; then
2535 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2536 dnl if test -c /dev/ptyp19; then
2537 dnl ptys=`echo /dev/ptyp??`
2539 dnl ptys=`echo $pdir/pty??`
2541 if test "$ptys" != "$pdir/pty??" ; then
2542 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2543 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2544 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2545 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2546 AC_MSG_RESULT([$p0 / $p1])
2548 AC_MSG_RESULT([don't know])
2551 dnl **** pty mode/group handling ****
2553 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2555 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2558 #include "confdefs.h"
2559 #include <sys/types.h>
2561 # include <stdlib.h>
2562 # include <stddef.h>
2564 #ifdef HAVE_UNISTD_H
2567 #include <sys/stat.h>
2576 if (!(x = ttyname(0))) exit(1);
2577 if (stat(x, &sb)) exit(1);
2579 if (om & 002) exit(0);
2580 m = system("mesg y");
2581 if (m == -1 || m == 127) exit(1);
2582 if (stat(x, &sb)) exit(1);
2584 if (chmod(x, om)) exit(1);
2585 if (m & 002) exit(0);
2586 if (sb.st_gid == getgid()) exit(1);
2587 if (!(fp=fopen("conftest_grp", "w")))
2589 fprintf(fp, "%d\n", sb.st_gid);
2594 if test -f conftest_grp; then
2595 vim_cv_tty_group=`cat conftest_grp`
2596 if test "x$vim_cv_tty_mode" = "x" ; then
2597 vim_cv_tty_mode=0620
2599 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2601 vim_cv_tty_group=world
2602 AC_MSG_RESULT([ptys are world accessable])
2605 vim_cv_tty_group=world
2606 AC_MSG_RESULT([can't determine - assume ptys are world accessable])
2608 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2613 if test "x$vim_cv_tty_group" != "xworld" ; then
2614 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2615 if test "x$vim_cv_tty_mode" = "x" ; then
2616 AC_MSG_ERROR([It seems you're cross compiling and have 'vim_cv_tty_group' set, please also set the environment variable 'vim_cv_tty_mode' to the correct mode (propably 0620)])
2618 AC_DEFINE(PTYMODE, 0620)
2622 dnl Checks for library functions. ===================================
2626 dnl find out what to use at the end of a signal function
2627 if test $ac_cv_type_signal = void; then
2628 AC_DEFINE(SIGRETURN, [return])
2630 AC_DEFINE(SIGRETURN, [return 0])
2633 dnl check if struct sigcontext is defined (used for SGI only)
2634 AC_MSG_CHECKING(for struct sigcontext)
2639 struct sigcontext *scont;
2640 scont = (struct sigcontext *)0;
2644 AC_DEFINE(HAVE_SIGCONTEXT),
2647 dnl tricky stuff: try to find out if getcwd() is implemented with
2648 dnl system("sh -c pwd")
2649 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2652 #include "confdefs.h"
2653 #ifdef HAVE_UNISTD_H
2656 char *dagger[] = { "IFS=pwd", 0 };
2660 extern char **environ;
2662 return getcwd(buffer, 500) ? 0 : 1;
2665 vim_cv_getcwd_broken=no
2667 vim_cv_getcwd_broken=yes
2669 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2673 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2674 AC_DEFINE(BAD_GETCWD)
2677 dnl Check for functions in one big call, to reduce the size of configure
2678 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2679 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2680 memset nanosleep opendir putenv qsort readlink select setenv \
2681 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2682 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2683 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2684 usleep utime utimes)
2686 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2687 AC_MSG_CHECKING(for st_blksize)
2689 [#include <sys/types.h>
2690 #include <sys/stat.h>],
2695 n = (int)st.st_blksize;],
2696 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2699 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2702 #include "confdefs.h"
2704 # include <stdlib.h>
2705 # include <stddef.h>
2707 #include <sys/types.h>
2708 #include <sys/stat.h>
2709 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2711 vim_cv_stat_ignores_slash=yes
2713 vim_cv_stat_ignores_slash=no
2715 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2719 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2720 AC_DEFINE(STAT_IGNORES_SLASH)
2723 dnl Link with iconv for charset translation, if not found without library.
2724 dnl check for iconv() requires including iconv.h
2725 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2726 dnl has been installed.
2727 AC_MSG_CHECKING(for iconv_open())
2729 LIBS="$LIBS -liconv"
2734 ], [iconv_open("fr", "to");],
2735 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2741 ], [iconv_open("fr", "to");],
2742 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2746 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2748 #ifdef HAVE_LANGINFO_H
2749 # include <langinfo.h>
2751 ], [char *cs = nl_langinfo(CODESET);],
2752 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2755 dnl Need various functions for floating point support. Only enable
2756 dnl floating point when they are all present.
2757 AC_CHECK_LIB(m, strtod)
2758 AC_MSG_CHECKING([for strtod() and other floating point functions])
2764 # include <stdlib.h>
2765 # include <stddef.h>
2767 ], [char *s; double d;
2768 d = strtod("1.1", &s);
2773 d = pow(1.11, 2.22);
2779 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2782 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2783 dnl when -lacl works, also try to use -lattr (required for Debian).
2784 AC_MSG_CHECKING(--disable-acl argument)
2786 [ --disable-acl Don't check for ACL support.],
2787 , [enable_acl="yes"])
2788 if test "$enable_acl" = "yes"; then
2790 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2791 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2792 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2794 AC_MSG_CHECKING(for POSIX ACL support)
2796 #include <sys/types.h>
2797 #ifdef HAVE_SYS_ACL_H
2798 # include <sys/acl.h>
2800 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2801 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2803 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2806 AC_MSG_CHECKING(for Solaris ACL support)
2808 #ifdef HAVE_SYS_ACL_H
2809 # include <sys/acl.h>
2810 #endif], [acl("foo", GETACLCNT, 0, NULL);
2812 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2815 AC_MSG_CHECKING(for AIX ACL support)
2818 # include <stdlib.h>
2819 # include <stddef.h>
2821 #ifdef HAVE_SYS_ACL_H
2822 # include <sys/acl.h>
2824 #ifdef HAVE_SYS_ACCESS_H
2825 # include <sys/access.h>
2829 #include <sys/stat.h>
2832 struct acl *aclent;], [aclsize = sizeof(struct acl);
2833 aclent = (void *)malloc(aclsize);
2834 statacl("foo", STX_NORMAL, aclent, aclsize);
2836 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2842 AC_MSG_CHECKING(--disable-gpm argument)
2844 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2847 if test "$enable_gpm" = "yes"; then
2849 dnl Checking if gpm support can be compiled
2850 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2851 [olibs="$LIBS" ; LIBS="-lgpm"]
2854 #include <linux/keyboard.h>],
2855 [Gpm_GetLibVersion(NULL);],
2856 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2857 dnl FEAT_MOUSE_GPM if mouse support is included
2858 [vi_cv_have_gpm=yes],
2859 [vi_cv_have_gpm=no])
2862 if test $vi_cv_have_gpm = yes; then
2870 AC_MSG_CHECKING(--disable-sysmouse argument)
2871 AC_ARG_ENABLE(sysmouse,
2872 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2873 [enable_sysmouse="yes"])
2875 if test "$enable_sysmouse" = "yes"; then
2877 dnl Checking if sysmouse support can be compiled
2878 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2879 dnl defines FEAT_SYSMOUSE if mouse support is included
2880 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2882 [#include <sys/consio.h>
2884 #include <sys/fbio.h>],
2885 [struct mouse_info mouse;
2886 mouse.operation = MOUSE_MODE;
2887 mouse.operation = MOUSE_SHOW;
2888 mouse.u.mode.mode = 0;
2889 mouse.u.mode.signal = SIGUSR2;],
2890 [vi_cv_have_sysmouse=yes],
2891 [vi_cv_have_sysmouse=no])
2893 if test $vi_cv_have_sysmouse = yes; then
2894 AC_DEFINE(HAVE_SYSMOUSE)
2900 dnl rename needs to be checked separately to work on Nextstep with cc
2901 AC_MSG_CHECKING(for rename)
2902 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2903 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2906 dnl sysctl() may exist but not the arguments we use
2907 AC_MSG_CHECKING(for sysctl)
2909 [#include <sys/types.h>
2910 #include <sys/sysctl.h>],
2915 mib[1] = HW_USERMEM;
2917 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2919 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2920 AC_MSG_RESULT(not usable))
2922 dnl sysinfo() may exist but not be Linux compatible
2923 AC_MSG_CHECKING(for sysinfo)
2925 [#include <sys/types.h>
2926 #include <sys/sysinfo.h>],
2927 [ struct sysinfo sinfo;
2930 (void)sysinfo(&sinfo);
2933 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2934 AC_MSG_RESULT(not usable))
2936 dnl struct sysinfo may have the mem_unit field or not
2937 AC_MSG_CHECKING(for sysinfo.mem_unit)
2939 [#include <sys/types.h>
2940 #include <sys/sysinfo.h>],
2941 [ struct sysinfo sinfo;
2944 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2947 dnl sysconf() may exist but not support what we want to use
2948 AC_MSG_CHECKING(for sysconf)
2950 [#include <unistd.h>],
2951 [ (void)sysconf(_SC_PAGESIZE);
2952 (void)sysconf(_SC_PHYS_PAGES);
2954 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2955 AC_MSG_RESULT(not usable))
2957 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2958 dnl be printed with "%d", and avoids a warning for cross-compiling.
2960 AC_MSG_CHECKING(size of int)
2961 AC_CACHE_VAL(ac_cv_sizeof_int,
2965 # include <stdlib.h>
2966 # include <stddef.h>
2970 FILE *f=fopen("conftestval", "w");
2972 fprintf(f, "%d\n", (int)sizeof(int));
2975 ac_cv_sizeof_int=`cat conftestval`,
2977 AC_MSG_ERROR(failed to compile test program))])
2978 AC_MSG_RESULT($ac_cv_sizeof_int)
2979 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2981 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2982 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2985 #include "confdefs.h"
2986 #ifdef HAVE_STRING_H
2987 # include <string.h>
2990 # include <stdlib.h>
2991 # include <stddef.h>
2995 strcpy(buf, "abcdefghi");
2996 mch_memmove(buf, buf + 2, 3);
2997 if (strncmp(buf, "ababcf", 6))
2999 strcpy(buf, "abcdefghi");
3000 mch_memmove(buf + 2, buf, 3);
3001 if (strncmp(buf, "cdedef", 6))
3003 exit(0); /* libc version works properly. */
3006 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3008 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3010 vim_cv_memmove_handles_overlap=yes
3012 vim_cv_memmove_handles_overlap=no
3014 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3018 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3019 AC_DEFINE(USEMEMMOVE)
3021 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3023 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3025 vim_cv_bcopy_handles_overlap=yes
3027 vim_cv_bcopy_handles_overlap=no
3029 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3033 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3036 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3038 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3040 vim_cv_memcpy_handles_overlap=yes
3042 vim_cv_memcpy_handles_overlap=no
3044 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3048 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3049 AC_DEFINE(USEMEMCPY)
3055 dnl Check for multibyte locale functions
3056 dnl Find out if _Xsetlocale() is supported by libX11.
3057 dnl Check if X_LOCALE should be defined.
3059 if test "$enable_multibyte" = "yes"; then
3061 ldflags_save=$LDFLAGS
3062 if test "x$x_includes" != "xNONE" ; then
3063 CFLAGS="$CFLAGS -I$x_includes"
3064 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3065 AC_MSG_CHECKING(whether X_LOCALE needed)
3066 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3067 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3068 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3072 LDFLAGS=$ldflags_save
3075 dnl Link with xpg4, it is said to make Korean locale working
3076 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3078 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3079 dnl --version for Exuberant ctags (preferred)
3080 dnl Add --fields=+S to get function signatures for omni completion.
3081 dnl -t for typedefs (many ctags have this)
3082 dnl -s for static functions (Elvis ctags only?)
3083 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3084 dnl -i+m to test for older Exuberant ctags
3085 AC_MSG_CHECKING(how to create tags)
3086 test -f tags && mv tags tags.save
3087 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3088 TAGPRG="ctags -I INIT+ --fields=+S"
3091 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3092 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3093 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3094 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3095 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3096 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3097 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3099 test -f tags.save && mv tags.save tags
3100 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3102 dnl Check how we can run man with a section number
3103 AC_MSG_CHECKING(how to run man with a section nr)
3105 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3106 AC_MSG_RESULT($MANDEF)
3107 if test "$MANDEF" = "man -s"; then
3111 dnl Check if gettext() is working and if it needs -lintl
3112 AC_MSG_CHECKING(--disable-nls argument)
3114 [ --disable-nls Don't support NLS (gettext()).], ,
3117 if test "$enable_nls" = "yes"; then
3120 INSTALL_LANGS=install-languages
3121 AC_SUBST(INSTALL_LANGS)
3122 INSTALL_TOOL_LANGS=install-tool-languages
3123 AC_SUBST(INSTALL_TOOL_LANGS)
3125 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3126 AC_MSG_CHECKING([for NLS])
3127 if test -f po/Makefile; then
3129 if test -n "$MSGFMT"; then
3131 [#include <libintl.h>],
3133 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3137 [#include <libintl.h>],
3139 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3140 AC_MSG_RESULT([gettext() doesn't work]);
3143 AC_MSG_RESULT([msgfmt not found - disabled]);
3145 if test $have_gettext = "yes"; then
3146 AC_DEFINE(HAVE_GETTEXT)
3149 dnl this was added in GNU gettext 0.10.36
3150 AC_CHECK_FUNCS(bind_textdomain_codeset)
3151 dnl _nl_msg_cat_cntr is required for GNU gettext
3152 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3154 [#include <libintl.h>
3155 extern int _nl_msg_cat_cntr;],
3156 [++_nl_msg_cat_cntr;],
3157 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3158 AC_MSG_RESULT([no]))
3161 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3167 dnl Check for dynamic linking loader
3168 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3169 if test x${DLL} = xdlfcn.h; then
3170 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3171 AC_MSG_CHECKING([for dlopen()])
3173 extern void* dlopen();
3177 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3179 AC_MSG_CHECKING([for dlopen() in -ldl])
3183 extern void* dlopen();
3187 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3190 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3192 AC_MSG_CHECKING([for dlsym()])
3194 extern void* dlsym();
3198 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3200 AC_MSG_CHECKING([for dlsym() in -ldl])
3204 extern void* dlsym();
3208 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3211 elif test x${DLL} = xdl.h; then
3212 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3213 AC_MSG_CHECKING([for shl_load()])
3215 extern void* shl_load();
3219 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3221 AC_MSG_CHECKING([for shl_load() in -ldld])
3225 extern void* shl_load();
3229 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3233 AC_CHECK_HEADERS(setjmp.h)
3235 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3236 dnl -ldl must come after DynaLoader.a
3237 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3238 LIBS=`echo $LIBS | sed s/-ldl//`
3239 PERL_LIBS="$PERL_LIBS -ldl"
3243 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3244 && test "x$GUITYPE" != "xCARBONGUI" && test "x$GUITYPE" != "xMACVIMGUI"; then
3245 AC_MSG_CHECKING(whether we need -framework Carbon)
3246 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3247 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3248 || test "x$features" = "xhuge"; then
3249 LIBS="$LIBS -framework Carbon"
3255 if test "x$MACARCH" = "xboth"; then
3256 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3259 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3260 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3261 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3262 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3263 dnl the number before the version number.
3264 DEPEND_CFLAGS_FILTER=
3265 if test "$GCC" = yes; then
3266 AC_MSG_CHECKING(for GCC 3 or later)
3267 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3268 if test "$gccmajor" -gt "2"; then
3269 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3274 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3275 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3276 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3277 if test "$gccmajor" -gt "3"; then
3278 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
3284 AC_SUBST(DEPEND_CFLAGS_FILTER)
3286 dnl write output files
3287 AC_OUTPUT(auto/config.mk:config.mk.in)
3289 dnl vim: set sw=2 tw=78 fo+=l: