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 is found, assume we don't want X11
166 dnl 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)
169 if test "x$CARBON" = "xyes"; then
170 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
176 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
177 dnl free. This happens in expand_filename(), because the optimizer swaps
178 dnl two blocks of code, both using "repl", that can't be swapped.
179 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
180 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
187 AC_SUBST(OS_EXTRA_SRC)
188 AC_SUBST(OS_EXTRA_OBJ)
190 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
191 dnl Only when the directory exists and it wasn't there yet.
192 dnl For gcc don't do this when it is already in the default search path.
193 dnl Skip all of this when cross-compiling.
194 if test "$cross_compiling" = no; then
195 AC_MSG_CHECKING(--with-local-dir argument)
196 have_local_include=''
198 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
199 --without-local-dir do not search /usr/local for local libraries.], [
204 # avoid adding local dir to LDFLAGS and CPPFLAGS
208 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
210 AC_MSG_RESULT($local_dir)
213 AC_MSG_RESULT(Defaulting to $local_dir)
215 if test "$GCC" = yes -a "$local_dir" != no; then
216 echo 'void f(){}' > conftest.c
217 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
218 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
219 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
220 rm -f conftest.c conftest.o
222 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
223 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
224 if test "$tt" = "$LDFLAGS"; then
225 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
228 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
229 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
230 if test "$tt" = "$CPPFLAGS"; then
231 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
236 AC_MSG_CHECKING(--with-vim-name argument)
237 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
238 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
239 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
241 AC_MSG_CHECKING(--with-ex-name argument)
242 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
243 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
244 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
246 AC_MSG_CHECKING(--with-view-name argument)
247 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
248 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
249 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
252 AC_MSG_CHECKING(--with-global-runtime argument)
253 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
254 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
257 AC_MSG_CHECKING(--with-modified-by argument)
258 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
259 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
262 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
263 AC_MSG_CHECKING(if character set is EBCDIC)
265 [ /* TryCompile function for CharSet.
266 Treat any failure as ASCII for compatibility with existing art.
267 Use compile-time rather than run-time tests for cross-compiler
270 make an error "Character set is not EBCDIC"
272 [ # TryCompile action if true
274 [ # TryCompile action if false
276 # end of TryCompile ])
277 # end of CacheVal CvEbcdic
278 AC_MSG_RESULT($cf_cv_ebcdic)
279 case "$cf_cv_ebcdic" in #(vi
280 yes) AC_DEFINE(EBCDIC)
283 *) line_break='"\\012"';;
287 if test "$cf_cv_ebcdic" = "yes"; then
288 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
289 AC_MSG_CHECKING(for OS/390 Unix)
291 OS/390) OS390Unix="yes";
292 dnl If using cc the environment variable _CC_CCMODE must be
293 dnl set to "1", so that some compiler extensions are enabled.
294 dnl If using c89 the environment variable is named _CC_C89MODE.
295 dnl Note: compile with c89 never tested.
296 if test "$CC" = "cc"; then
300 if test "$CC" = "c89"; then
307 if test "$ccm" != "1"; then
309 echo "------------------------------------------"
310 echo " On OS/390 Unix, the environment variable"
311 echo " __CC_${ccn}MODE must be set to \"1\"!"
313 echo " export _CC_${ccn}MODE=1"
314 echo " and then call configure again."
315 echo "------------------------------------------"
318 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
327 dnl Link with -lselinux for SELinux stuff; if not found
328 AC_MSG_CHECKING(--disable-selinux argument)
329 AC_ARG_ENABLE(selinux,
330 [ --disable-selinux Don't check for SELinux support.],
331 , enable_selinux="yes")
332 if test "$enable_selinux" = "yes"; then
334 AC_CHECK_LIB(selinux, is_selinux_enabled,
335 [LIBS="$LIBS -lselinux"
336 AC_DEFINE(HAVE_SELINUX)])
341 dnl Check user requested features.
343 AC_MSG_CHECKING(--with-features argument)
344 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
345 features="$withval"; AC_MSG_RESULT($features),
346 features="normal"; AC_MSG_RESULT(Defaulting to normal))
351 tiny) AC_DEFINE(FEAT_TINY) ;;
352 small) AC_DEFINE(FEAT_SMALL) ;;
353 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
354 dogvimdiff="installgvimdiff" ;;
355 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
356 dogvimdiff="installgvimdiff" ;;
357 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
358 dogvimdiff="installgvimdiff" ;;
359 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
365 AC_MSG_CHECKING(--with-compiledby argument)
366 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
367 compiledby="$withval"; AC_MSG_RESULT($withval),
368 compiledby=""; AC_MSG_RESULT(no))
371 AC_MSG_CHECKING(--disable-xsmp argument)
373 [ --disable-xsmp Disable XSMP session management],
376 if test "$enable_xsmp" = "yes"; then
378 AC_MSG_CHECKING(--disable-xsmp-interact argument)
379 AC_ARG_ENABLE(xsmp-interact,
380 [ --disable-xsmp-interact Disable XSMP interaction],
381 , enable_xsmp_interact="yes")
382 if test "$enable_xsmp_interact" = "yes"; then
384 AC_DEFINE(USE_XSMP_INTERACT)
392 dnl Check for MzScheme feature.
393 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
394 AC_ARG_ENABLE(mzschemeinterp,
395 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
396 [enable_mzschemeinterp="no"])
397 AC_MSG_RESULT($enable_mzschemeinterp)
399 if test "$enable_mzschemeinterp" = "yes"; then
400 dnl -- find the mzscheme executable
401 AC_SUBST(vi_cv_path_mzscheme)
403 AC_MSG_CHECKING(--with-plthome argument)
405 [ --with-plthome=PLTHOME Use PLTHOME.],
406 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
407 with_plthome="";AC_MSG_RESULT("no"))
409 if test "X$with_plthome" != "X"; then
410 vi_cv_path_mzscheme_pfx="$with_plthome"
412 AC_MSG_CHECKING(PLTHOME environment var)
413 if test "X$PLTHOME" != "X"; then
414 AC_MSG_RESULT("$PLTHOME")
415 vi_cv_path_mzscheme_pfx="$PLTHOME"
417 AC_MSG_RESULT("not set")
418 dnl -- try to find MzScheme executable
419 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
421 dnl resolve symbolic link, the executable is often elsewhere and there
422 dnl are no links for the include files.
423 if test "X$vi_cv_path_mzscheme" != "X"; then
424 lsout=`ls -l $vi_cv_path_mzscheme`
425 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
426 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
430 if test "X$vi_cv_path_mzscheme" != "X"; then
431 dnl -- find where MzScheme thinks it was installed
432 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
433 [ vi_cv_path_mzscheme_pfx=`
434 ${vi_cv_path_mzscheme} -evm \
435 "(display (simplify-path \
436 (build-path (call-with-values \
437 (lambda () (split-path (find-system-path (quote exec-file)))) \
438 (lambda (base name must-be-dir?) base)) (quote up))))"` ])
439 dnl Remove a trailing slash.
440 vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'`
446 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
447 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
448 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
452 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/plt/include)
453 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
458 vi_cv_path_mzscheme_pfx=
463 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
464 if test "x$MACOSX" = "xyes"; then
465 MZSCHEME_LIBS="-framework PLT_MzScheme"
466 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
467 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
469 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
470 if test "$GCC" = yes; then
471 dnl Make Vim remember the path to the library. For when it's not in
472 dnl $LD_LIBRARY_PATH.
473 MZSCHEME_LIBS="$MZSCHEME_LIBS -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
474 elif test "`(uname) 2>/dev/null`" = SunOS &&
475 uname -r | grep '^5' >/dev/null; then
476 MZSCHEME_LIBS="$MZSCHEME_LIBS -R ${vi_cv_path_mzscheme_pfx}/lib"
479 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
480 SCHEME_COLLECTS=lib/plt/
482 MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include${SCHEME_INC} \
483 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
484 MZSCHEME_SRC="if_mzsch.c"
485 MZSCHEME_OBJ="objects/if_mzsch.o"
486 MZSCHEME_PRO="if_mzsch.pro"
487 AC_DEFINE(FEAT_MZSCHEME)
489 AC_SUBST(MZSCHEME_SRC)
490 AC_SUBST(MZSCHEME_OBJ)
491 AC_SUBST(MZSCHEME_PRO)
492 AC_SUBST(MZSCHEME_LIBS)
493 AC_SUBST(MZSCHEME_CFLAGS)
497 AC_MSG_CHECKING(--enable-perlinterp argument)
498 AC_ARG_ENABLE(perlinterp,
499 [ --enable-perlinterp Include Perl interpreter.], ,
500 [enable_perlinterp="no"])
501 AC_MSG_RESULT($enable_perlinterp)
502 if test "$enable_perlinterp" = "yes"; then
503 AC_SUBST(vi_cv_path_perl)
504 AC_PATH_PROG(vi_cv_path_perl, perl)
505 if test "X$vi_cv_path_perl" != "X"; then
506 AC_MSG_CHECKING(Perl version)
507 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
508 eval `$vi_cv_path_perl -V:usethreads`
509 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
512 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
513 eval `$vi_cv_path_perl -V:use5005threads`
514 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
518 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
522 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
525 if test $badthreads = no; then
527 eval `$vi_cv_path_perl -V:shrpenv`
528 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
531 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
532 AC_SUBST(vi_cv_perllib)
533 dnl Remove "-fno-something", it breaks using cproto.
534 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
535 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
536 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
537 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
538 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
539 -e 's/-bE:perl.exp//' -e 's/-lc //'`
540 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
541 dnl a test in configure may fail because of that.
542 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
543 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
545 dnl check that compiling a simple program still works with the flags
547 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
550 ldflags_save=$LDFLAGS
551 CFLAGS="$CFLAGS $perlcppflags"
552 LIBS="$LIBS $perllibs"
553 LDFLAGS="$perlldflags $LDFLAGS"
555 AC_MSG_RESULT(yes); perl_ok=yes,
556 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
559 LDFLAGS=$ldflags_save
560 if test $perl_ok = yes; then
561 if test "X$perlcppflags" != "X"; then
562 dnl remove -pipe and -Wxxx, it confuses cproto
563 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
565 if test "X$perlldflags" != "X"; then
566 LDFLAGS="$perlldflags $LDFLAGS"
569 PERL_SRC="auto/if_perl.c if_perlsfio.c"
570 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
571 PERL_PRO="if_perl.pro if_perlsfio.pro"
576 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
580 if test "x$MACOSX" = "xyes"; then
581 dnl Mac OS X 10.2 or later
582 dir=/System/Library/Perl
583 darwindir=$dir/darwin
584 if test -d $darwindir; then
588 dir=/System/Library/Perl/5.8.1
589 darwindir=$dir/darwin-thread-multi-2level
590 if test -d $darwindir; then
594 if test -n "$PERL"; then
596 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
597 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
598 PERL_LIBS="-L$darwindir/CORE -lperl"
606 AC_SUBST(PERL_CFLAGS)
609 AC_MSG_CHECKING(--enable-eclinterp argument)
610 AC_ARG_ENABLE(eclinterp,
611 [ --enable-eclinterp Include ECL compiler.], ,
612 [enable_eclinterp="no"])
613 AC_MSG_RESULT($enable_eclinterp)
614 if test "$enable_eclinterp" = "yes"; then
615 dnl -- find the ecl-config executable
616 AC_PATH_PROG(vi_cv_path_ecl_config, ecl-config)
617 if test "X$vi_cv_path_ecl_config" != "X"; then
619 dnl -- Ask ecl-config where to find ecl's libraries
620 AC_CACHE_VAL(vi_cv_path_ecl_plibs,
622 vi_cv_path_ecl_plibs=`ecl-config --libs`
625 ECL_LIBS="${vi_cv_path_ecl_plibs}"
626 AC_CACHE_VAL(vi_cv_path_ecl_cflags,
628 vi_cv_path_ecl_cflags=`ecl-config --cflags`
630 ECL_CFLAGS="${vi_cv_path_ecl_cflags}"
633 ECL_OBJ="objects/if_ecl.o"
635 dnl check that compiling a simple program still works with the flags
637 AC_MSG_CHECKING([if compile and link flags for ECL are sane])
640 CFLAGS="$CFLAGS $ECL_CFLAGS"
641 LIBS="$LIBS $ECL_LIBS"
643 AC_MSG_RESULT(yes); ecl_ok=yes,
644 AC_MSG_RESULT(no: ECL DISABLED); ecl_ok=no)
647 if test $ecl_ok = yes; then
662 AC_MSG_CHECKING(--enable-pythoninterp argument)
663 AC_ARG_ENABLE(pythoninterp,
664 [ --enable-pythoninterp Include Python interpreter.], ,
665 [enable_pythoninterp="no"])
666 AC_MSG_RESULT($enable_pythoninterp)
667 if test "$enable_pythoninterp" = "yes"; then
668 dnl -- find the python executable
669 AC_PATH_PROG(vi_cv_path_python, python)
670 if test "X$vi_cv_path_python" != "X"; then
672 dnl -- get its version number
673 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
674 [[vi_cv_var_python_version=`
675 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
678 dnl -- it must be at least version 1.4
679 AC_MSG_CHECKING(Python is 1.4 or better)
680 if ${vi_cv_path_python} -c \
681 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
685 dnl -- find where python thinks it was installed
686 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
687 [ vi_cv_path_python_pfx=`
688 ${vi_cv_path_python} -c \
689 "import sys; print sys.prefix"` ])
691 dnl -- and where it thinks it runs
692 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
693 [ vi_cv_path_python_epfx=`
694 ${vi_cv_path_python} -c \
695 "import sys; print sys.exec_prefix"` ])
697 dnl -- python's internal library path
699 AC_CACHE_VAL(vi_cv_path_pythonpath,
700 [ vi_cv_path_pythonpath=`
702 ${vi_cv_path_python} -c \
703 "import sys, string; print string.join(sys.path,':')"` ])
705 dnl -- where the Python implementation library archives are
707 AC_ARG_WITH(python-config-dir,
708 [ --with-python-config-dir=PATH Python's config directory],
709 [ vi_cv_path_python_conf="${withval}" ] )
711 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
713 vi_cv_path_python_conf=
714 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
715 for subdir in lib share; do
716 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
717 if test -d "$d" && test -f "$d/config.c"; then
718 vi_cv_path_python_conf="$d"
724 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
726 if test "X$PYTHON_CONFDIR" = "X"; then
727 AC_MSG_RESULT([can't find it!])
730 dnl -- we need to examine Python's config/Makefile too
731 dnl see what the interpreter is built from
732 AC_CACHE_VAL(vi_cv_path_python_plibs,
735 tmp_mkf="$pwd/config-PyMake$$"
736 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
738 @echo "python_MODLIBS='$(MODLIBS)'"
739 @echo "python_LIBS='$(LIBS)'"
740 @echo "python_SYSLIBS='$(SYSLIBS)'"
741 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
743 dnl -- delete the lines from make about Entering/Leaving directory
744 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
745 rm -f -- "${tmp_mkf}"
746 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
747 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
748 vi_cv_path_python_plibs="-framework Python"
750 if test "${vi_cv_var_python_version}" = "1.4"; then
751 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
753 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
755 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
756 dnl remove -ltermcap, it can conflict with an earlier -lncurses
757 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
761 PYTHON_LIBS="${vi_cv_path_python_plibs}"
762 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
763 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
765 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}"
767 PYTHON_SRC="if_python.c"
768 dnl For Mac OSX 10.2 config.o is included in the Python library.
769 if test "x$MACOSX" = "xyes"; then
770 PYTHON_OBJ="objects/if_python.o"
772 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
774 if test "${vi_cv_var_python_version}" = "1.4"; then
775 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
777 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
779 dnl On FreeBSD linking with "-pthread" is required to use threads.
780 dnl _THREAD_SAFE must be used for compiling then.
781 dnl The "-pthread" is added to $LIBS, so that the following check for
782 dnl sigaltstack() will look in libc_r (it's there in libc!).
783 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
784 dnl will then define target-specific defines, e.g., -D_REENTRANT.
785 dnl Don't do this for Mac OSX, -pthread will generate a warning.
786 AC_MSG_CHECKING([if -pthread should be used])
789 dnl if test "x$MACOSX" != "xyes"; then
790 if test "`(uname) 2>/dev/null`" != Darwin; then
791 test "$GCC" = yes && threadsafe_flag="-pthread"
792 if test "`(uname) 2>/dev/null`" = FreeBSD; then
793 threadsafe_flag="-D_THREAD_SAFE"
794 thread_lib="-pthread"
798 if test -n "$threadsafe_flag"; then
800 CFLAGS="$CFLAGS $threadsafe_flag"
801 LIBS="$LIBS $thread_lib"
803 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
804 AC_MSG_RESULT(no); LIBS=$libs_save_old
811 dnl check that compiling a simple program still works with the flags
812 dnl added for Python.
813 AC_MSG_CHECKING([if compile and link flags for Python are sane])
816 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
817 LIBS="$LIBS $PYTHON_LIBS"
819 AC_MSG_RESULT(yes); python_ok=yes,
820 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
823 if test $python_ok = yes; then
824 AC_DEFINE(FEAT_PYTHON)
835 AC_MSG_RESULT(too old)
839 AC_SUBST(PYTHON_CONFDIR)
840 AC_SUBST(PYTHON_LIBS)
841 AC_SUBST(PYTHON_GETPATH_CFLAGS)
842 AC_SUBST(PYTHON_CFLAGS)
846 AC_MSG_CHECKING(--enable-tclinterp argument)
847 AC_ARG_ENABLE(tclinterp,
848 [ --enable-tclinterp Include Tcl interpreter.], ,
849 [enable_tclinterp="no"])
850 AC_MSG_RESULT($enable_tclinterp)
852 if test "$enable_tclinterp" = "yes"; then
854 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
855 AC_MSG_CHECKING(--with-tclsh argument)
856 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
857 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
858 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
859 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
860 AC_SUBST(vi_cv_path_tcl)
862 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
863 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
864 tclsh_name="tclsh8.4"
865 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
867 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
868 tclsh_name="tclsh8.2"
869 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
871 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
872 tclsh_name="tclsh8.0"
873 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
875 dnl still didn't find it, try without version number
876 if test "X$vi_cv_path_tcl" = "X"; then
878 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
880 if test "X$vi_cv_path_tcl" != "X"; then
881 AC_MSG_CHECKING(Tcl version)
882 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
883 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
884 AC_MSG_RESULT($tclver - OK);
885 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 -`
887 AC_MSG_CHECKING(for location of Tcl include)
888 if test "x$MACOSX" != "xyes"; then
889 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
891 dnl For Mac OS X 10.3, use the OS-provided framework location
892 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
895 for try in $tclinc; do
896 if test -f "$try/tcl.h"; then
897 AC_MSG_RESULT($try/tcl.h)
902 if test -z "$TCL_INC"; then
903 AC_MSG_RESULT(<not found>)
906 if test -z "$SKIP_TCL"; then
907 AC_MSG_CHECKING(for location of tclConfig.sh script)
908 if test "x$MACOSX" != "xyes"; then
909 tclcnf=`echo $tclinc | sed s/include/lib/g`
910 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
912 dnl For Mac OS X 10.3, use the OS-provided framework location
913 tclcnf="/System/Library/Frameworks/Tcl.framework"
915 for try in $tclcnf; do
916 if test -f $try/tclConfig.sh; then
917 AC_MSG_RESULT($try/tclConfig.sh)
919 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
920 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
921 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
922 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
923 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'`
927 if test -z "$TCL_LIBS"; then
928 AC_MSG_RESULT(<not found>)
929 AC_MSG_CHECKING(for Tcl library by myself)
930 tcllib=`echo $tclinc | sed s/include/lib/g`
931 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
932 for ext in .so .a ; do
933 for ver in "" $tclver ; do
934 for try in $tcllib ; do
936 if test -f $try/lib$trylib ; then
937 AC_MSG_RESULT($try/lib$trylib)
938 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
939 if test "`(uname) 2>/dev/null`" = SunOS &&
940 uname -r | grep '^5' >/dev/null; then
941 TCL_LIBS="$TCL_LIBS -R $try"
948 if test -z "$TCL_LIBS"; then
949 AC_MSG_RESULT(<not found>)
953 if test -z "$SKIP_TCL"; then
956 TCL_OBJ=objects/if_tcl.o
958 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
962 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
972 AC_MSG_CHECKING(--enable-rubyinterp argument)
973 AC_ARG_ENABLE(rubyinterp,
974 [ --enable-rubyinterp Include Ruby interpreter.], ,
975 [enable_rubyinterp="no"])
976 AC_MSG_RESULT($enable_rubyinterp)
977 if test "$enable_rubyinterp" = "yes"; then
978 AC_SUBST(vi_cv_path_ruby)
979 AC_PATH_PROG(vi_cv_path_ruby, ruby)
980 if test "X$vi_cv_path_ruby" != "X"; then
981 AC_MSG_CHECKING(Ruby version)
982 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
984 AC_MSG_CHECKING(Ruby header files)
985 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
986 if test "X$rubyhdrdir" != "X"; then
987 AC_MSG_RESULT($rubyhdrdir)
988 RUBY_CFLAGS="-I$rubyhdrdir"
989 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
990 if test "X$rubylibs" != "X"; then
991 RUBY_LIBS="$rubylibs"
993 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
994 if test -f "$rubyhdrdir/$librubyarg"; then
995 librubyarg="$rubyhdrdir/$librubyarg"
997 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
998 if test -f "$rubylibdir/$librubyarg"; then
999 librubyarg="$rubylibdir/$librubyarg"
1000 elif test "$librubyarg" = "libruby.a"; then
1001 dnl required on Mac OS 10.3 where libruby.a doesn't exist
1004 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
1008 if test "X$librubyarg" != "X"; then
1009 RUBY_LIBS="$librubyarg $RUBY_LIBS"
1011 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
1012 if test "X$rubyldflags" != "X"; then
1013 LDFLAGS="$rubyldflags $LDFLAGS"
1015 RUBY_SRC="if_ruby.c"
1016 RUBY_OBJ="objects/if_ruby.o"
1017 RUBY_PRO="if_ruby.pro"
1018 AC_DEFINE(FEAT_RUBY)
1020 AC_MSG_RESULT(not found, disabling Ruby)
1023 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1030 AC_SUBST(RUBY_CFLAGS)
1033 AC_MSG_CHECKING(--enable-cscope argument)
1034 AC_ARG_ENABLE(cscope,
1035 [ --enable-cscope Include cscope interface.], ,
1036 [enable_cscope="no"])
1037 AC_MSG_RESULT($enable_cscope)
1038 if test "$enable_cscope" = "yes"; then
1039 AC_DEFINE(FEAT_CSCOPE)
1042 AC_MSG_CHECKING(--enable-workshop argument)
1043 AC_ARG_ENABLE(workshop,
1044 [ --enable-workshop Include Sun Visual Workshop support.], ,
1045 [enable_workshop="no"])
1046 AC_MSG_RESULT($enable_workshop)
1047 if test "$enable_workshop" = "yes"; then
1048 AC_DEFINE(FEAT_SUN_WORKSHOP)
1049 WORKSHOP_SRC="workshop.c integration.c"
1050 AC_SUBST(WORKSHOP_SRC)
1051 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1052 AC_SUBST(WORKSHOP_OBJ)
1053 if test "${enable_gui-xxx}" = xxx; then
1058 AC_MSG_CHECKING(--disable-netbeans argument)
1059 AC_ARG_ENABLE(netbeans,
1060 [ --disable-netbeans Disable NetBeans integration support.],
1061 , [enable_netbeans="yes"])
1062 if test "$enable_netbeans" = "yes"; then
1064 dnl On Solaris we need the socket and nsl library.
1065 AC_CHECK_LIB(socket, socket)
1066 AC_CHECK_LIB(nsl, gethostbyname)
1067 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1074 #include <netinet/in.h>
1076 #include <sys/types.h>
1077 #include <sys/socket.h>
1078 /* Check bitfields */
1080 unsigned int initDone:1;
1084 /* Check creating a socket. */
1085 struct sockaddr_in server;
1086 (void)socket(AF_INET, SOCK_STREAM, 0);
1088 (void)gethostbyname("microsoft.com");
1089 if (errno == ECONNREFUSED)
1090 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1093 AC_MSG_RESULT(no); enable_netbeans="no")
1097 if test "$enable_netbeans" = "yes"; then
1098 AC_DEFINE(FEAT_NETBEANS_INTG)
1099 NETBEANS_SRC="netbeans.c"
1100 AC_SUBST(NETBEANS_SRC)
1101 NETBEANS_OBJ="objects/netbeans.o"
1102 AC_SUBST(NETBEANS_OBJ)
1105 AC_MSG_CHECKING(--enable-sniff argument)
1106 AC_ARG_ENABLE(sniff,
1107 [ --enable-sniff Include Sniff interface.], ,
1108 [enable_sniff="no"])
1109 AC_MSG_RESULT($enable_sniff)
1110 if test "$enable_sniff" = "yes"; then
1111 AC_DEFINE(FEAT_SNIFF)
1112 SNIFF_SRC="if_sniff.c"
1114 SNIFF_OBJ="objects/if_sniff.o"
1118 AC_MSG_CHECKING(--enable-multibyte argument)
1119 AC_ARG_ENABLE(multibyte,
1120 [ --enable-multibyte Include multibyte editing support.], ,
1121 [enable_multibyte="no"])
1122 AC_MSG_RESULT($enable_multibyte)
1123 if test "$enable_multibyte" = "yes"; then
1124 AC_DEFINE(FEAT_MBYTE)
1127 AC_MSG_CHECKING(--enable-hangulinput argument)
1128 AC_ARG_ENABLE(hangulinput,
1129 [ --enable-hangulinput Include Hangul input support.], ,
1130 [enable_hangulinput="no"])
1131 AC_MSG_RESULT($enable_hangulinput)
1133 AC_MSG_CHECKING(--enable-xim argument)
1135 [ --enable-xim Include XIM input support.],
1136 AC_MSG_RESULT($enable_xim),
1137 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1138 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1140 AC_MSG_CHECKING(--enable-fontset argument)
1141 AC_ARG_ENABLE(fontset,
1142 [ --enable-fontset Include X fontset output support.], ,
1143 [enable_fontset="no"])
1144 AC_MSG_RESULT($enable_fontset)
1145 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1147 test -z "$with_x" && with_x=yes
1148 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1149 if test "$with_x" = no; then
1150 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1152 dnl Do this check early, so that its failure can override user requests.
1154 AC_PATH_PROG(xmkmfpath, xmkmf)
1158 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1159 dnl be compiled with a special option.
1160 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1161 if test "$OS390Unix" = "yes"; then
1162 CFLAGS="$CFLAGS -W c,dll"
1163 LDFLAGS="$LDFLAGS -W l,dll"
1164 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1167 dnl On my HPUX system the X include dir is found, but the lib dir not.
1168 dnl This is a desparate try to fix this.
1170 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1171 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1172 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1173 X_LIBS="$X_LIBS -L$x_libraries"
1174 if test "`(uname) 2>/dev/null`" = SunOS &&
1175 uname -r | grep '^5' >/dev/null; then
1176 X_LIBS="$X_LIBS -R $x_libraries"
1180 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1181 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1182 AC_MSG_RESULT(Corrected X includes to $x_includes)
1183 X_CFLAGS="$X_CFLAGS -I$x_includes"
1186 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1187 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1188 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1189 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1190 dnl Same for "-R/usr/lib ".
1191 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1194 dnl Check if the X11 header files are correctly installed. On some systems
1195 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1197 AC_MSG_CHECKING(if X11 header files can be found)
1199 CFLAGS="$CFLAGS $X_CFLAGS"
1200 AC_TRY_COMPILE([#include <X11/Xlib.h>
1201 #include <X11/Intrinsic.h>], ,
1203 AC_MSG_RESULT(no); no_x=yes)
1206 if test "${no_x-no}" = yes; then
1213 ac_save_LDFLAGS="$LDFLAGS"
1214 LDFLAGS="-L$x_libraries $LDFLAGS"
1216 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1217 dnl For HP-UX 10.20 it must be before -lSM -lICE
1218 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1219 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1221 dnl Some systems need -lnsl -lsocket when testing for ICE.
1222 dnl The check above doesn't do this, try here (again). Also needed to get
1223 dnl them after Xdmcp. link.sh will remove them when not needed.
1224 dnl Check for other function than above to avoid the cached value
1225 AC_CHECK_LIB(ICE, IceOpenConnection,
1226 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1228 dnl Check for -lXpm (needed for some versions of Motif)
1229 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1230 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1231 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1233 dnl Check that the X11 header files don't use implicit declarations
1234 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1236 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1237 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1239 CFLAGS="$CFLAGS -Wno-implicit-int"
1240 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1241 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1242 AC_MSG_RESULT(test failed)
1247 LDFLAGS="$ac_save_LDFLAGS"
1249 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1250 AC_CACHE_VAL(ac_cv_small_wchar_t,
1252 #include <X11/Xlib.h>
1254 # include <stdlib.h>
1255 # include <stddef.h>
1259 if (sizeof(wchar_t) <= 2)
1263 ac_cv_small_wchar_t="no",
1264 ac_cv_small_wchar_t="yes",
1265 AC_MSG_ERROR(failed to compile test program))])
1266 AC_MSG_RESULT($ac_cv_small_wchar_t)
1267 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1268 AC_DEFINE(SMALL_WCHAR_T)
1274 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1276 AC_MSG_CHECKING(--enable-gui argument)
1278 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
1280 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1281 dnl Do not use character classes for portability with old tools.
1282 enable_gui_canon=`echo "_$enable_gui" | \
1283 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1285 dnl Skip everything by default.
1296 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1298 case "$enable_gui_canon" in
1299 no) AC_MSG_RESULT(no GUI support)
1301 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1302 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1303 photon) AC_MSG_RESULT(Photon GUI support) ;;
1304 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1308 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1310 case "$enable_gui_canon" in
1311 no) AC_MSG_RESULT(no GUI support)
1313 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1314 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1315 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1316 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1322 case "$enable_gui_canon" in
1323 no|none) AC_MSG_RESULT(no GUI support) ;;
1324 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1332 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1334 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1337 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1340 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1344 motif) AC_MSG_RESULT(Motif GUI support)
1346 athena) AC_MSG_RESULT(Athena GUI support)
1348 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1350 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1355 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1356 AC_MSG_CHECKING(whether or not to look for GTK)
1357 AC_ARG_ENABLE(gtk-check,
1358 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1359 , enable_gtk_check="yes")
1360 AC_MSG_RESULT($enable_gtk_check)
1361 if test "x$enable_gtk_check" = "xno"; then
1367 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1368 -a "$enable_gui_canon" != "gnome2"; then
1369 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1370 AC_ARG_ENABLE(gtk2-check,
1371 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1372 , enable_gtk2_check="yes")
1373 AC_MSG_RESULT($enable_gtk2_check)
1374 if test "x$enable_gtk2_check" = "xno"; then
1379 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1380 -a "$enable_gui_canon" != "gnome2"; then
1381 AC_MSG_CHECKING(whether or not to look for GNOME)
1382 AC_ARG_ENABLE(gnome-check,
1383 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1384 , enable_gnome_check="no")
1385 AC_MSG_RESULT($enable_gnome_check)
1386 if test "x$enable_gnome_check" = "xno"; then
1391 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1392 AC_MSG_CHECKING(whether or not to look for Motif)
1393 AC_ARG_ENABLE(motif-check,
1394 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1395 , enable_motif_check="yes")
1396 AC_MSG_RESULT($enable_motif_check)
1397 if test "x$enable_motif_check" = "xno"; then
1402 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1403 AC_MSG_CHECKING(whether or not to look for Athena)
1404 AC_ARG_ENABLE(athena-check,
1405 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1406 , enable_athena_check="yes")
1407 AC_MSG_RESULT($enable_athena_check)
1408 if test "x$enable_athena_check" = "xno"; then
1413 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1414 AC_MSG_CHECKING(whether or not to look for neXtaw)
1415 AC_ARG_ENABLE(nextaw-check,
1416 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1417 , enable_nextaw_check="yes")
1418 AC_MSG_RESULT($enable_nextaw_check);
1419 if test "x$enable_nextaw_check" = "xno"; then
1424 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1425 AC_MSG_CHECKING(whether or not to look for Carbon)
1426 AC_ARG_ENABLE(carbon-check,
1427 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1428 , enable_carbon_check="yes")
1429 AC_MSG_RESULT($enable_carbon_check);
1430 if test "x$enable_carbon_check" = "xno"; then
1436 if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1437 AC_MSG_CHECKING(for Carbon GUI)
1438 dnl already did the check, just give the message
1441 if test "$VIMNAME" = "vim"; then
1445 dnl Default install directory is not /usr/local
1446 if test x$prefix = xNONE; then
1447 prefix=/Applications
1450 dnl Sorry for the hard coded default
1451 datadir='${prefix}/Vim.app/Contents/Resources'
1453 dnl skip everything else
1465 dnl Get the cflags and libraries from the gtk-config script
1468 dnl define an autoconf function to check for a specified version of GTK, and
1469 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1471 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1472 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1474 AC_DEFUN(AM_PATH_GTK,
1476 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1478 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1479 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1481 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1482 && $PKG_CONFIG --exists gtk+-2.0; then
1484 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1485 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1486 dnl something like that.
1487 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1488 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1489 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1490 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1491 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1492 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1493 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1494 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1495 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1497 elif test "X$GTK_CONFIG" != "Xno"; then
1499 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1501 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1502 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1503 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1504 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1505 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1506 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1507 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1513 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1515 ac_save_CFLAGS="$CFLAGS"
1516 ac_save_LIBS="$LIBS"
1517 CFLAGS="$CFLAGS $GTK_CFLAGS"
1518 LIBS="$LIBS $GTK_LIBS"
1521 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1522 dnl checks the results of gtk-config to some extent
1526 #include <gtk/gtk.h>
1529 # include <stdlib.h>
1530 # include <stddef.h>
1536 int major, minor, micro;
1539 system ("touch conf.gtktest");
1541 /* HP/UX 9 (%@#!) writes to sscanf strings */
1542 tmp_version = g_strdup("$min_gtk_version");
1543 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1544 printf("%s, bad version string\n", "$min_gtk_version");
1548 if ((gtk_major_version > major) ||
1549 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1550 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1551 (gtk_micro_version >= micro)))
1557 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1558 CFLAGS="$ac_save_CFLAGS"
1559 LIBS="$ac_save_LIBS"
1562 if test "x$no_gtk" = x ; then
1563 if test "x$enable_gtktest" = "xyes"; then
1564 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1566 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1568 ifelse([$2], , :, [$2])
1574 ifelse([$3], , :, [$3])
1581 ifelse([$3], , :, [$3])
1583 AC_SUBST(GTK_CFLAGS)
1588 dnl ---------------------------------------------------------------------------
1590 dnl ---------------------------------------------------------------------------
1591 AC_DEFUN([GNOME_INIT_HOOK],
1593 AC_SUBST(GNOME_LIBS)
1594 AC_SUBST(GNOME_LIBDIR)
1595 AC_SUBST(GNOME_INCLUDEDIR)
1597 AC_ARG_WITH(gnome-includes,
1598 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1599 [CFLAGS="$CFLAGS -I$withval"]
1602 AC_ARG_WITH(gnome-libs,
1603 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1604 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1608 [ --with-gnome Specify prefix for GNOME files],
1609 if test x$withval = xyes; then
1611 ifelse([$1], [], :, [$1])
1613 if test "x$withval" = xno; then
1617 LDFLAGS="$LDFLAGS -L$withval/lib"
1618 CFLAGS="$CFLAGS -I$withval/include"
1619 gnome_prefix=$withval/lib
1624 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1626 AC_MSG_CHECKING(for libgnomeui-2.0)
1627 if $PKG_CONFIG --exists libgnomeui-2.0; then
1629 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1630 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1631 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1633 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1634 dnl This might not be the right way but it works for me...
1635 AC_MSG_CHECKING(for FreeBSD)
1636 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1637 AC_MSG_RESULT(yes, adding -pthread)
1638 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1639 GNOME_LIBS="$GNOME_LIBS -pthread"
1645 AC_MSG_RESULT(not found)
1646 if test "x$2" = xfail; then
1647 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1651 elif test "x$want_gnome" = xyes; then
1653 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1654 if test "$GNOME_CONFIG" = "no"; then
1655 no_gnome_config="yes"
1657 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1658 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1660 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1661 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1662 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1666 no_gnome_config="yes"
1670 if test x$exec_prefix = xNONE; then
1671 if test x$prefix = xNONE; then
1672 gnome_prefix=$ac_default_prefix/lib
1674 gnome_prefix=$prefix/lib
1677 gnome_prefix=`eval echo \`echo $libdir\``
1680 if test "$no_gnome_config" = "yes"; then
1681 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1682 if test -f $gnome_prefix/gnomeConf.sh; then
1683 AC_MSG_RESULT(found)
1684 echo "loading gnome configuration from" \
1685 "$gnome_prefix/gnomeConf.sh"
1686 . $gnome_prefix/gnomeConf.sh
1689 AC_MSG_RESULT(not found)
1690 if test x$2 = xfail; then
1691 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1699 AC_DEFUN([GNOME_INIT],[
1700 GNOME_INIT_HOOK([],fail)
1704 dnl ---------------------------------------------------------------------------
1705 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1706 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1707 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1708 dnl ---------------------------------------------------------------------------
1709 if test -z "$SKIP_GTK"; then
1711 AC_MSG_CHECKING(--with-gtk-prefix argument)
1712 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1713 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1714 gtk_config_prefix=""; AC_MSG_RESULT(no))
1716 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1717 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1718 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1719 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1721 AC_MSG_CHECKING(--disable-gtktest argument)
1722 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1723 , enable_gtktest=yes)
1724 if test "x$enable_gtktest" = "xyes" ; then
1725 AC_MSG_RESULT(gtk test enabled)
1727 AC_MSG_RESULT(gtk test disabled)
1730 if test "x$gtk_config_prefix" != "x" ; then
1731 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1732 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1734 if test "x$gtk_config_exec_prefix" != "x" ; then
1735 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1736 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1738 if test "X$GTK_CONFIG" = "X"; then
1739 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1740 if test "X$GTK_CONFIG" = "Xno"; then
1741 dnl Some distributions call it gtk12-config, annoying!
1742 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1743 GTK_CONFIG="$GTK12_CONFIG"
1746 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1748 if test "X$PKG_CONFIG" = "X"; then
1749 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1752 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1753 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1754 dnl problems (bold fonts, --remote doesn't work).
1755 if test "X$SKIP_GTK2" != "XYES"; then
1757 [GUI_LIB_LOC="$GTK_LIBDIR"
1758 GTK_LIBNAME="$GTK_LIBS"
1759 GUI_INC_LOC="$GTK_CFLAGS"], )
1760 if test "x$GTK_CFLAGS" != "x"; then
1765 AC_SUBST(GTK_LIBNAME)
1769 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1770 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1771 dnl were test versions.
1772 if test "x$GUITYPE" != "xGTK"; then
1775 [GTK_LIBNAME="$GTK_LIBS"
1776 GUI_INC_LOC="$GTK_CFLAGS"], )
1777 if test "x$GTK_CFLAGS" != "x"; then
1782 AC_SUBST(GTK_LIBNAME)
1786 dnl Give a warning if GTK is older than 1.2.3
1787 if test "x$GUITYPE" = "xGTK"; then
1788 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1789 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1790 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1793 if test "0$gtk_major_version" -ge 2; then
1794 AC_DEFINE(HAVE_GTK2)
1795 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1796 || test "0$gtk_minor_version" -ge 2 \
1797 || test "0$gtk_major_version" -gt 2; then
1798 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1802 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1804 if test -z "$SKIP_GNOME"; then
1806 GNOME_INIT_HOOK([have_gnome=yes])
1807 if test x$have_gnome = xyes ; then
1808 AC_DEFINE(FEAT_GUI_GNOME)
1809 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1810 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1819 dnl Check for Motif include files location.
1820 dnl The LAST one found is used, this makes the highest version to be used,
1821 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1823 if test -z "$SKIP_MOTIF"; then
1824 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"
1825 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1826 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1828 AC_MSG_CHECKING(for location of Motif GUI includes)
1829 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1831 for try in $gui_includes; do
1832 if test -f "$try/Xm/Xm.h"; then
1836 if test -n "$GUI_INC_LOC"; then
1837 if test "$GUI_INC_LOC" = /usr/include; then
1839 AC_MSG_RESULT(in default path)
1841 AC_MSG_RESULT($GUI_INC_LOC)
1844 AC_MSG_RESULT(<not found>)
1849 dnl Check for Motif library files location. In the same order as the include
1850 dnl files, to avoid a mixup if several versions are present
1852 if test -z "$SKIP_MOTIF"; then
1853 AC_MSG_CHECKING(--with-motif-lib argument)
1854 AC_ARG_WITH(motif-lib,
1855 [ --with-motif-lib=STRING Library for Motif ],
1856 [ MOTIF_LIBNAME="${withval}" ] )
1858 if test -n "$MOTIF_LIBNAME"; then
1859 AC_MSG_RESULT($MOTIF_LIBNAME)
1864 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1865 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1867 AC_MSG_CHECKING(for location of Motif GUI libs)
1868 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"
1870 for try in $gui_libs; do
1871 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1872 if test -f "$libtry"; then
1877 if test -n "$GUI_LIB_LOC"; then
1878 dnl Remove /usr/lib, it causes trouble on some systems
1879 if test "$GUI_LIB_LOC" = /usr/lib; then
1881 AC_MSG_RESULT(in default path)
1883 if test -n "$GUI_LIB_LOC"; then
1884 AC_MSG_RESULT($GUI_LIB_LOC)
1885 if test "`(uname) 2>/dev/null`" = SunOS &&
1886 uname -r | grep '^5' >/dev/null; then
1887 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1893 AC_MSG_RESULT(<not found>)
1899 if test -z "$SKIP_MOTIF"; then
1903 AC_SUBST(MOTIF_LIBNAME)
1906 dnl Check if the Athena files can be found
1910 if test -z "$SKIP_ATHENA"; then
1911 AC_MSG_CHECKING(if Athena header files can be found)
1913 CFLAGS="$CFLAGS $X_CFLAGS"
1915 #include <X11/Intrinsic.h>
1916 #include <X11/Xaw/Paned.h>], ,
1918 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1922 if test -z "$SKIP_ATHENA"; then
1926 if test -z "$SKIP_NEXTAW"; then
1927 AC_MSG_CHECKING(if neXtaw header files can be found)
1929 CFLAGS="$CFLAGS $X_CFLAGS"
1931 #include <X11/Intrinsic.h>
1932 #include <X11/neXtaw/Paned.h>], ,
1934 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1938 if test -z "$SKIP_NEXTAW"; then
1942 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1943 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1944 dnl Avoid adding it when it twice
1945 if test -n "$GUI_INC_LOC"; then
1946 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1948 if test -n "$GUI_LIB_LOC"; then
1949 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1952 dnl Check for -lXext and then for -lXmu
1953 ldflags_save=$LDFLAGS
1954 LDFLAGS="$X_LIBS $LDFLAGS"
1955 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1956 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1957 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1958 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1959 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1960 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1961 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1962 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1963 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1964 if test -z "$SKIP_MOTIF"; then
1965 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1966 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1968 LDFLAGS=$ldflags_save
1970 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1971 AC_MSG_CHECKING(for extra X11 defines)
1974 if mkdir conftestdir; then
1976 cat > Imakefile <<'EOF'
1978 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
1980 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
1981 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
1986 if test -z "$NARROW_PROTO"; then
1989 AC_MSG_RESULT($NARROW_PROTO)
1991 AC_SUBST(NARROW_PROTO)
1994 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
1995 dnl use the X11 include path
1996 if test "$enable_xsmp" = "yes"; then
1997 cppflags_save=$CPPFLAGS
1998 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1999 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2000 CPPFLAGS=$cppflags_save
2004 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2005 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2006 cppflags_save=$CPPFLAGS
2007 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2008 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2010 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2011 if test ! "$enable_xim" = "no"; then
2012 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2013 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2015 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2017 CPPFLAGS=$cppflags_save
2019 dnl automatically enable XIM when hangul input isn't enabled
2020 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2021 -a "x$GUITYPE" != "xNONE" ; then
2022 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2027 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2028 cppflags_save=$CPPFLAGS
2029 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2030 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2031 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2033 #include <X11/Intrinsic.h>
2034 #include <X11/Xmu/Editres.h>],
2037 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2039 CPPFLAGS=$cppflags_save
2042 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2043 if test -z "$SKIP_MOTIF"; then
2044 cppflags_save=$CPPFLAGS
2045 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2046 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2047 Xm/UnhighlightT.h Xm/Notebook.h)
2049 if test $ac_cv_header_Xm_XpmP_h = yes; then
2050 dnl Solaris uses XpmAttributes_21, very annoying.
2051 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2052 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2053 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2054 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2057 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2059 CPPFLAGS=$cppflags_save
2062 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2063 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2066 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2067 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2070 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2071 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2075 if test -z "$SKIP_PHOTON"; then
2079 AC_SUBST(GUI_INC_LOC)
2080 AC_SUBST(GUI_LIB_LOC)
2082 AC_SUBST(GUI_X_LIBS)
2084 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2085 AC_MSG_ERROR([cannot use workshop without Motif])
2088 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2089 if test "$enable_xim" = "yes"; then
2092 if test "$enable_fontset" = "yes"; then
2093 AC_DEFINE(FEAT_XFONTSET)
2097 dnl ---------------------------------------------------------------------------
2098 dnl end of GUI-checking
2099 dnl ---------------------------------------------------------------------------
2102 dnl Only really enable hangul input when GUI and XFONTSET are available
2103 if test "$enable_hangulinput" = "yes"; then
2104 if test "x$GUITYPE" = "xNONE"; then
2105 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2106 enable_hangulinput=no
2108 AC_DEFINE(FEAT_HANGULIN)
2109 HANGULIN_SRC=hangulin.c
2110 AC_SUBST(HANGULIN_SRC)
2111 HANGULIN_OBJ=objects/hangulin.o
2112 AC_SUBST(HANGULIN_OBJ)
2116 dnl Checks for libraries and include files.
2118 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2121 #include "confdefs.h"
2124 # include <stdlib.h>
2125 # include <stddef.h>
2127 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2129 vim_cv_toupper_broken=yes
2131 vim_cv_toupper_broken=no
2133 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2136 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2137 AC_DEFINE(BROKEN_TOUPPER)
2140 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2141 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2142 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2145 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2146 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2147 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2150 dnl Checks for header files.
2151 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2152 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2153 if test "$HAS_ELF" = 1; then
2154 AC_CHECK_LIB(elf, main)
2159 dnl If sys/wait.h is not found it might still exist but not be POSIX
2160 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2161 if test $ac_cv_header_sys_wait_h = no; then
2162 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2163 AC_TRY_COMPILE([#include <sys/wait.h>],
2164 [union wait xx, yy; xx = yy],
2166 AC_DEFINE(HAVE_SYS_WAIT_H)
2167 AC_DEFINE(HAVE_UNION_WAIT),
2171 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2172 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2173 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2174 sys/resource.h sys/systeminfo.h locale.h \
2175 sys/stream.h termios.h libc.h sys/statfs.h \
2176 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2177 libgen.h util/debug.h util/msg18n.h frame.h \
2178 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2180 dnl sys/ptem.h depends on sys/stream.h on Solaris
2181 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2182 [#if defined HAVE_SYS_STREAM_H
2183 # include <sys/stream.h>
2186 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2187 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2188 [#if defined HAVE_SYS_PARAM_H
2189 # include <sys/param.h>
2193 dnl pthread_np.h may exist but can only be used after including pthread.h
2194 AC_MSG_CHECKING([for pthread_np.h])
2196 #include <pthread.h>
2197 #include <pthread_np.h>],
2200 AC_DEFINE(HAVE_PTHREAD_NP_H),
2203 AC_CHECK_HEADERS(strings.h)
2204 if test "x$MACOSX" = "xyes"; then
2205 dnl The strings.h file on OS/X contains a warning and nothing useful.
2206 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2209 dnl Check if strings.h and string.h can both be included when defined.
2210 AC_MSG_CHECKING([if strings.h can be included after string.h])
2211 cppflags_save=$CPPFLAGS
2212 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2214 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2215 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2216 /* but don't do it on AIX 5.1 (Uribarri) */
2219 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2221 #ifdef HAVE_STRING_H
2222 # include <string.h>
2224 #if defined(HAVE_STRINGS_H)
2225 # include <strings.h>
2229 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2231 CPPFLAGS=$cppflags_save
2234 dnl Checks for typedefs, structures, and compiler characteristics.
2235 AC_PROG_GCC_TRADITIONAL
2244 AC_CHECK_TYPE(ino_t, long)
2245 AC_CHECK_TYPE(dev_t, unsigned)
2247 AC_MSG_CHECKING(for rlim_t)
2248 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2249 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2252 changequote(<<,>>)dnl
2253 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2256 #include <sys/types.h>
2258 # include <stdlib.h>
2259 # include <stddef.h>
2261 #ifdef HAVE_SYS_RESOURCE_H
2262 # include <sys/resource.h>
2264 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2265 AC_MSG_RESULT($ac_cv_type_rlim_t)
2267 if test $ac_cv_type_rlim_t = no; then
2268 cat >> confdefs.h <<\EOF
2269 #define rlim_t unsigned long
2273 AC_MSG_CHECKING(for stack_t)
2274 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2275 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2277 AC_EGREP_CPP(stack_t,
2279 #include <sys/types.h>
2281 # include <stdlib.h>
2282 # include <stddef.h>
2285 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2286 AC_MSG_RESULT($ac_cv_type_stack_t)
2288 if test $ac_cv_type_stack_t = no; then
2289 cat >> confdefs.h <<\EOF
2290 #define stack_t struct sigaltstack
2294 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2295 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2297 #include <sys/types.h>
2299 # include <stdlib.h>
2300 # include <stddef.h>
2303 #include "confdefs.h"
2304 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2305 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2309 AC_MSG_CHECKING(--with-tlib argument)
2310 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2311 if test -n "$with_tlib"; then
2312 AC_MSG_RESULT($with_tlib)
2313 LIBS="$LIBS -l$with_tlib"
2314 AC_MSG_CHECKING(for linking with $with_tlib library)
2315 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2316 dnl Need to check for tgetent() below.
2319 AC_MSG_RESULT([empty: automatic terminal library selection])
2320 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2321 dnl curses, because curses is much slower.
2322 dnl Newer versions of ncurses are preferred over anything.
2323 dnl Older versions of ncurses have bugs, get a new one!
2324 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2325 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2326 case "`uname -s 2>/dev/null`" in
2327 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2328 *) tlibs="ncurses termlib termcap curses";;
2330 for libname in $tlibs; do
2331 AC_CHECK_LIB(${libname}, tgetent,,)
2332 if test "x$olibs" != "x$LIBS"; then
2333 dnl It's possible that a library is found but it doesn't work
2334 dnl e.g., shared library that cannot be found
2335 dnl compile and run a test program to be sure
2337 #ifdef HAVE_TERMCAP_H
2338 # include <termcap.h>
2341 # include <stdlib.h>
2342 # include <stddef.h>
2344 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2345 res="OK", res="FAIL", res="FAIL")
2346 if test "$res" = "OK"; then
2349 AC_MSG_RESULT($libname library is not usable)
2353 if test "x$olibs" = "x$LIBS"; then
2354 AC_MSG_RESULT(no terminal library found)
2358 if test "x$olibs" = "x$LIBS"; then
2359 AC_MSG_CHECKING([for tgetent()])
2361 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2363 AC_MSG_ERROR([NOT FOUND!
2364 You need to install a terminal library; for example ncurses.
2365 Or specify the name of the library with --with-tlib.]))
2368 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2371 #include "confdefs.h"
2372 #ifdef HAVE_TERMCAP_H
2373 # include <termcap.h>
2375 #ifdef HAVE_STRING_H
2376 # include <string.h>
2379 # include <stdlib.h>
2380 # include <stddef.h>
2383 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2389 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2393 if test "x$vim_cv_terminfo" = "xyes" ; then
2397 if test "x$olibs" != "x$LIBS"; then
2398 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2401 #include "confdefs.h"
2402 #ifdef HAVE_TERMCAP_H
2403 # include <termcap.h>
2406 # include <stdlib.h>
2407 # include <stddef.h>
2410 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2414 vim_cv_tgent=non-zero
2416 AC_MSG_ERROR(failed to compile test program.)
2420 if test "x$vim_cv_tgent" = "xzero" ; then
2421 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2425 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2427 #ifdef HAVE_TERMCAP_H
2428 # include <termcap.h>
2430 ], [ospeed = 20000],
2431 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2433 AC_MSG_CHECKING(whether ospeed can be extern)
2435 #ifdef HAVE_TERMCAP_H
2436 # include <termcap.h>
2438 extern short ospeed;
2439 ], [ospeed = 20000],
2440 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2444 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2446 #ifdef HAVE_TERMCAP_H
2447 # include <termcap.h>
2449 ], [if (UP == 0 && BC == 0) PC = 1],
2450 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2452 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2454 #ifdef HAVE_TERMCAP_H
2455 # include <termcap.h>
2457 extern char *UP, *BC, PC;
2458 ], [if (UP == 0 && BC == 0) PC = 1],
2459 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2463 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2465 #ifdef HAVE_TERMCAP_H
2466 # include <termcap.h>
2468 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2469 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2472 dnl On some SCO machines sys/select redefines struct timeval
2473 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2475 #include <sys/types.h>
2476 #include <sys/time.h>
2477 #include <sys/select.h>], ,
2479 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2482 dnl AC_DECL_SYS_SIGLIST
2484 dnl Checks for pty.c (copied from screen) ==========================
2485 AC_MSG_CHECKING(for /dev/ptc)
2486 if test -r /dev/ptc; then
2487 AC_DEFINE(HAVE_DEV_PTC)
2493 AC_MSG_CHECKING(for SVR4 ptys)
2494 if test -c /dev/ptmx ; then
2495 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2496 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2502 AC_MSG_CHECKING(for ptyranges)
2503 if test -d /dev/ptym ; then
2513 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2514 dnl if test -c /dev/ptyp19; then
2515 dnl ptys=`echo /dev/ptyp??`
2517 dnl ptys=`echo $pdir/pty??`
2519 if test "$ptys" != "$pdir/pty??" ; then
2520 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2521 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2522 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2523 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2524 AC_MSG_RESULT([$p0 / $p1])
2526 AC_MSG_RESULT([don't know])
2529 dnl **** pty mode/group handling ****
2531 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2533 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2536 #include "confdefs.h"
2537 #include <sys/types.h>
2539 # include <stdlib.h>
2540 # include <stddef.h>
2542 #ifdef HAVE_UNISTD_H
2545 #include <sys/stat.h>
2554 if (!(x = ttyname(0))) exit(1);
2555 if (stat(x, &sb)) exit(1);
2557 if (om & 002) exit(0);
2558 m = system("mesg y");
2559 if (m == -1 || m == 127) exit(1);
2560 if (stat(x, &sb)) exit(1);
2562 if (chmod(x, om)) exit(1);
2563 if (m & 002) exit(0);
2564 if (sb.st_gid == getgid()) exit(1);
2565 if (!(fp=fopen("conftest_grp", "w")))
2567 fprintf(fp, "%d\n", sb.st_gid);
2572 if test -f conftest_grp; then
2573 vim_cv_tty_group=`cat conftest_grp`
2574 if test "x$vim_cv_tty_mode" = "x" ; then
2575 vim_cv_tty_mode=0620
2577 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2579 vim_cv_tty_group=world
2580 AC_MSG_RESULT([ptys are world accessable])
2583 vim_cv_tty_group=world
2584 AC_MSG_RESULT([can't determine - assume ptys are world accessable])
2586 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2591 if test "x$vim_cv_tty_group" != "xworld" ; then
2592 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2593 if test "x$vim_cv_tty_mode" = "x" ; then
2594 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)])
2596 AC_DEFINE(PTYMODE, 0620)
2600 dnl Checks for library functions. ===================================
2604 dnl find out what to use at the end of a signal function
2605 if test $ac_cv_type_signal = void; then
2606 AC_DEFINE(SIGRETURN, [return])
2608 AC_DEFINE(SIGRETURN, [return 0])
2611 dnl check if struct sigcontext is defined (used for SGI only)
2612 AC_MSG_CHECKING(for struct sigcontext)
2617 struct sigcontext *scont;
2618 scont = (struct sigcontext *)0;
2622 AC_DEFINE(HAVE_SIGCONTEXT),
2625 dnl tricky stuff: try to find out if getcwd() is implemented with
2626 dnl system("sh -c pwd")
2627 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2630 #include "confdefs.h"
2631 #ifdef HAVE_UNISTD_H
2634 char *dagger[] = { "IFS=pwd", 0 };
2638 extern char **environ;
2640 return getcwd(buffer, 500) ? 0 : 1;
2643 vim_cv_getcwd_broken=no
2645 vim_cv_getcwd_broken=yes
2647 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2651 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2652 AC_DEFINE(BAD_GETCWD)
2655 dnl Check for functions in one big call, to reduce the size of configure
2656 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2657 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2658 memset nanosleep opendir putenv qsort readlink select setenv \
2659 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2660 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2661 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2662 usleep utime utimes)
2664 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2665 AC_MSG_CHECKING(for st_blksize)
2667 [#include <sys/types.h>
2668 #include <sys/stat.h>],
2673 n = (int)st.st_blksize;],
2674 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2677 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2680 #include "confdefs.h"
2682 # include <stdlib.h>
2683 # include <stddef.h>
2685 #include <sys/types.h>
2686 #include <sys/stat.h>
2687 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2689 vim_cv_stat_ignores_slash=yes
2691 vim_cv_stat_ignores_slash=no
2693 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2697 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2698 AC_DEFINE(STAT_IGNORES_SLASH)
2701 dnl Link with iconv for charset translation, if not found without library.
2702 dnl check for iconv() requires including iconv.h
2703 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2704 dnl has been installed.
2705 AC_MSG_CHECKING(for iconv_open())
2707 LIBS="$LIBS -liconv"
2712 ], [iconv_open("fr", "to");],
2713 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2719 ], [iconv_open("fr", "to");],
2720 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2724 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2726 #ifdef HAVE_LANGINFO_H
2727 # include <langinfo.h>
2729 ], [char *cs = nl_langinfo(CODESET);],
2730 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2733 dnl Need various functions for floating point support. Only enable
2734 dnl floating point when they are all present.
2735 AC_CHECK_LIB(m, strtod)
2736 AC_MSG_CHECKING([for strtod() and other floating point functions])
2742 # include <stdlib.h>
2743 # include <stddef.h>
2745 ], [char *s; double d;
2746 d = strtod("1.1", &s);
2751 d = pow(1.11, 2.22);
2757 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2760 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2761 dnl when -lacl works, also try to use -lattr (required for Debian).
2762 AC_MSG_CHECKING(--disable-acl argument)
2764 [ --disable-acl Don't check for ACL support.],
2765 , [enable_acl="yes"])
2766 if test "$enable_acl" = "yes"; then
2768 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2769 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2770 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2772 AC_MSG_CHECKING(for POSIX ACL support)
2774 #include <sys/types.h>
2775 #ifdef HAVE_SYS_ACL_H
2776 # include <sys/acl.h>
2778 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2779 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2781 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2784 AC_MSG_CHECKING(for Solaris ACL support)
2786 #ifdef HAVE_SYS_ACL_H
2787 # include <sys/acl.h>
2788 #endif], [acl("foo", GETACLCNT, 0, NULL);
2790 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2793 AC_MSG_CHECKING(for AIX ACL support)
2796 # include <stdlib.h>
2797 # include <stddef.h>
2799 #ifdef HAVE_SYS_ACL_H
2800 # include <sys/acl.h>
2802 #ifdef HAVE_SYS_ACCESS_H
2803 # include <sys/access.h>
2807 #include <sys/stat.h>
2810 struct acl *aclent;], [aclsize = sizeof(struct acl);
2811 aclent = (void *)malloc(aclsize);
2812 statacl("foo", STX_NORMAL, aclent, aclsize);
2814 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2820 AC_MSG_CHECKING(--disable-gpm argument)
2822 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2825 if test "$enable_gpm" = "yes"; then
2827 dnl Checking if gpm support can be compiled
2828 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2829 [olibs="$LIBS" ; LIBS="-lgpm"]
2832 #include <linux/keyboard.h>],
2833 [Gpm_GetLibVersion(NULL);],
2834 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2835 dnl FEAT_MOUSE_GPM if mouse support is included
2836 [vi_cv_have_gpm=yes],
2837 [vi_cv_have_gpm=no])
2840 if test $vi_cv_have_gpm = yes; then
2848 AC_MSG_CHECKING(--disable-sysmouse argument)
2849 AC_ARG_ENABLE(sysmouse,
2850 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2851 [enable_sysmouse="yes"])
2853 if test "$enable_sysmouse" = "yes"; then
2855 dnl Checking if sysmouse support can be compiled
2856 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2857 dnl defines FEAT_SYSMOUSE if mouse support is included
2858 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2860 [#include <sys/consio.h>
2862 #include <sys/fbio.h>],
2863 [struct mouse_info mouse;
2864 mouse.operation = MOUSE_MODE;
2865 mouse.operation = MOUSE_SHOW;
2866 mouse.u.mode.mode = 0;
2867 mouse.u.mode.signal = SIGUSR2;],
2868 [vi_cv_have_sysmouse=yes],
2869 [vi_cv_have_sysmouse=no])
2871 if test $vi_cv_have_sysmouse = yes; then
2872 AC_DEFINE(HAVE_SYSMOUSE)
2878 dnl rename needs to be checked separately to work on Nextstep with cc
2879 AC_MSG_CHECKING(for rename)
2880 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2881 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2884 dnl sysctl() may exist but not the arguments we use
2885 AC_MSG_CHECKING(for sysctl)
2887 [#include <sys/types.h>
2888 #include <sys/sysctl.h>],
2893 mib[1] = HW_USERMEM;
2895 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2897 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2898 AC_MSG_RESULT(not usable))
2900 dnl sysinfo() may exist but not be Linux compatible
2901 AC_MSG_CHECKING(for sysinfo)
2903 [#include <sys/types.h>
2904 #include <sys/sysinfo.h>],
2905 [ struct sysinfo sinfo;
2908 (void)sysinfo(&sinfo);
2911 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2912 AC_MSG_RESULT(not usable))
2914 dnl struct sysinfo may have the mem_unit field or not
2915 AC_MSG_CHECKING(for sysinfo.mem_unit)
2917 [#include <sys/types.h>
2918 #include <sys/sysinfo.h>],
2919 [ struct sysinfo sinfo;
2922 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2925 dnl sysconf() may exist but not support what we want to use
2926 AC_MSG_CHECKING(for sysconf)
2928 [#include <unistd.h>],
2929 [ (void)sysconf(_SC_PAGESIZE);
2930 (void)sysconf(_SC_PHYS_PAGES);
2932 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2933 AC_MSG_RESULT(not usable))
2935 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2936 dnl be printed with "%d", and avoids a warning for cross-compiling.
2938 AC_MSG_CHECKING(size of int)
2939 AC_CACHE_VAL(ac_cv_sizeof_int,
2943 # include <stdlib.h>
2944 # include <stddef.h>
2948 FILE *f=fopen("conftestval", "w");
2950 fprintf(f, "%d\n", (int)sizeof(int));
2953 ac_cv_sizeof_int=`cat conftestval`,
2955 AC_MSG_ERROR(failed to compile test program))])
2956 AC_MSG_RESULT($ac_cv_sizeof_int)
2957 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2959 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2960 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2963 #include "confdefs.h"
2964 #ifdef HAVE_STRING_H
2965 # include <string.h>
2968 # include <stdlib.h>
2969 # include <stddef.h>
2973 strcpy(buf, "abcdefghi");
2974 mch_memmove(buf, buf + 2, 3);
2975 if (strncmp(buf, "ababcf", 6))
2977 strcpy(buf, "abcdefghi");
2978 mch_memmove(buf + 2, buf, 3);
2979 if (strncmp(buf, "cdedef", 6))
2981 exit(0); /* libc version works properly. */
2984 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
2986 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
2988 vim_cv_memmove_handles_overlap=yes
2990 vim_cv_memmove_handles_overlap=no
2992 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
2996 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
2997 AC_DEFINE(USEMEMMOVE)
2999 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3001 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3003 vim_cv_bcopy_handles_overlap=yes
3005 vim_cv_bcopy_handles_overlap=no
3007 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3011 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3014 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3016 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3018 vim_cv_memcpy_handles_overlap=yes
3020 vim_cv_memcpy_handles_overlap=no
3022 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3026 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3027 AC_DEFINE(USEMEMCPY)
3033 dnl Check for multibyte locale functions
3034 dnl Find out if _Xsetlocale() is supported by libX11.
3035 dnl Check if X_LOCALE should be defined.
3037 if test "$enable_multibyte" = "yes"; then
3039 ldflags_save=$LDFLAGS
3040 if test "x$x_includes" != "xNONE" ; then
3041 CFLAGS="$CFLAGS -I$x_includes"
3042 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3043 AC_MSG_CHECKING(whether X_LOCALE needed)
3044 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3045 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3046 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3050 LDFLAGS=$ldflags_save
3053 dnl Link with xpg4, it is said to make Korean locale working
3054 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3056 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3057 dnl --version for Exuberant ctags (preferred)
3058 dnl Add --fields=+S to get function signatures for omni completion.
3059 dnl -t for typedefs (many ctags have this)
3060 dnl -s for static functions (Elvis ctags only?)
3061 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3062 dnl -i+m to test for older Exuberant ctags
3063 AC_MSG_CHECKING(how to create tags)
3064 test -f tags && mv tags tags.save
3065 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3066 TAGPRG="ctags -I INIT+ --fields=+S"
3069 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3070 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3071 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3072 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3073 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3074 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3075 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3077 test -f tags.save && mv tags.save tags
3078 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3080 dnl Check how we can run man with a section number
3081 AC_MSG_CHECKING(how to run man with a section nr)
3083 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3084 AC_MSG_RESULT($MANDEF)
3085 if test "$MANDEF" = "man -s"; then
3089 dnl Check if gettext() is working and if it needs -lintl
3090 AC_MSG_CHECKING(--disable-nls argument)
3092 [ --disable-nls Don't support NLS (gettext()).], ,
3095 if test "$enable_nls" = "yes"; then
3098 INSTALL_LANGS=install-languages
3099 AC_SUBST(INSTALL_LANGS)
3100 INSTALL_TOOL_LANGS=install-tool-languages
3101 AC_SUBST(INSTALL_TOOL_LANGS)
3103 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3104 AC_MSG_CHECKING([for NLS])
3105 if test -f po/Makefile; then
3107 if test -n "$MSGFMT"; then
3109 [#include <libintl.h>],
3111 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3115 [#include <libintl.h>],
3117 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3118 AC_MSG_RESULT([gettext() doesn't work]);
3121 AC_MSG_RESULT([msgfmt not found - disabled]);
3123 if test $have_gettext = "yes"; then
3124 AC_DEFINE(HAVE_GETTEXT)
3127 dnl this was added in GNU gettext 0.10.36
3128 AC_CHECK_FUNCS(bind_textdomain_codeset)
3129 dnl _nl_msg_cat_cntr is required for GNU gettext
3130 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3132 [#include <libintl.h>
3133 extern int _nl_msg_cat_cntr;],
3134 [++_nl_msg_cat_cntr;],
3135 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3136 AC_MSG_RESULT([no]))
3139 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3145 dnl Check for dynamic linking loader
3146 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3147 if test x${DLL} = xdlfcn.h; then
3148 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3149 AC_MSG_CHECKING([for dlopen()])
3151 extern void* dlopen();
3155 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3157 AC_MSG_CHECKING([for dlopen() in -ldl])
3161 extern void* dlopen();
3165 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3168 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3170 AC_MSG_CHECKING([for dlsym()])
3172 extern void* dlsym();
3176 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3178 AC_MSG_CHECKING([for dlsym() in -ldl])
3182 extern void* dlsym();
3186 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3189 elif test x${DLL} = xdl.h; then
3190 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3191 AC_MSG_CHECKING([for shl_load()])
3193 extern void* shl_load();
3197 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3199 AC_MSG_CHECKING([for shl_load() in -ldld])
3203 extern void* shl_load();
3207 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3211 AC_CHECK_HEADERS(setjmp.h)
3213 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3214 dnl -ldl must come after DynaLoader.a
3215 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3216 LIBS=`echo $LIBS | sed s/-ldl//`
3217 PERL_LIBS="$PERL_LIBS -ldl"
3221 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3222 && test "x$GUITYPE" != "xCARBONGUI"; then
3223 AC_MSG_CHECKING(whether we need -framework Carbon)
3224 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3225 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3226 || test "x$features" = "xhuge"; then
3227 LIBS="$LIBS -framework Carbon"
3233 if test "x$MACARCH" = "xboth"; then
3234 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3237 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3238 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3239 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3240 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3241 dnl the number before the version number.
3242 DEPEND_CFLAGS_FILTER=
3243 if test "$GCC" = yes; then
3244 AC_MSG_CHECKING(for GCC 3 or later)
3245 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3246 if test "$gccmajor" -gt "2"; then
3247 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3252 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3253 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3254 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3255 if test "$gccmajor" -gt "3"; then
3256 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
3262 AC_SUBST(DEPEND_CFLAGS_FILTER)
3264 dnl write output files
3265 AC_OUTPUT(auto/config.mk:config.mk.in)
3267 dnl vim: set sw=2 tw=78 fo+=l: