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-pythoninterp argument)
610 AC_ARG_ENABLE(pythoninterp,
611 [ --enable-pythoninterp Include Python interpreter.], ,
612 [enable_pythoninterp="no"])
613 AC_MSG_RESULT($enable_pythoninterp)
614 if test "$enable_pythoninterp" = "yes"; then
615 dnl -- find the python executable
616 AC_PATH_PROG(vi_cv_path_python, python)
617 if test "X$vi_cv_path_python" != "X"; then
619 dnl -- get its version number
620 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
621 [[vi_cv_var_python_version=`
622 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
625 dnl -- it must be at least version 1.4
626 AC_MSG_CHECKING(Python is 1.4 or better)
627 if ${vi_cv_path_python} -c \
628 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
632 dnl -- find where python thinks it was installed
633 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
634 [ vi_cv_path_python_pfx=`
635 ${vi_cv_path_python} -c \
636 "import sys; print sys.prefix"` ])
638 dnl -- and where it thinks it runs
639 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
640 [ vi_cv_path_python_epfx=`
641 ${vi_cv_path_python} -c \
642 "import sys; print sys.exec_prefix"` ])
644 dnl -- python's internal library path
646 AC_CACHE_VAL(vi_cv_path_pythonpath,
647 [ vi_cv_path_pythonpath=`
649 ${vi_cv_path_python} -c \
650 "import sys, string; print string.join(sys.path,':')"` ])
652 dnl -- where the Python implementation library archives are
654 AC_ARG_WITH(python-config-dir,
655 [ --with-python-config-dir=PATH Python's config directory],
656 [ vi_cv_path_python_conf="${withval}" ] )
658 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
660 vi_cv_path_python_conf=
661 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
662 for subdir in lib share; do
663 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
664 if test -d "$d" && test -f "$d/config.c"; then
665 vi_cv_path_python_conf="$d"
671 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
673 if test "X$PYTHON_CONFDIR" = "X"; then
674 AC_MSG_RESULT([can't find it!])
677 dnl -- we need to examine Python's config/Makefile too
678 dnl see what the interpreter is built from
679 AC_CACHE_VAL(vi_cv_path_python_plibs,
682 tmp_mkf="$pwd/config-PyMake$$"
683 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
685 @echo "python_MODLIBS='$(MODLIBS)'"
686 @echo "python_LIBS='$(LIBS)'"
687 @echo "python_SYSLIBS='$(SYSLIBS)'"
688 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
690 dnl -- delete the lines from make about Entering/Leaving directory
691 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
692 rm -f -- "${tmp_mkf}"
693 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
694 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
695 vi_cv_path_python_plibs="-framework Python"
697 if test "${vi_cv_var_python_version}" = "1.4"; then
698 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
700 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
702 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
703 dnl remove -ltermcap, it can conflict with an earlier -lncurses
704 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
708 PYTHON_LIBS="${vi_cv_path_python_plibs}"
709 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
710 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
712 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version} -I${vi_cv_path_python_epfx}/include/python${vi_cv_var_python_version}"
714 PYTHON_SRC="if_python.c"
715 dnl For Mac OSX 10.2 config.o is included in the Python library.
716 if test "x$MACOSX" = "xyes"; then
717 PYTHON_OBJ="objects/if_python.o"
719 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
721 if test "${vi_cv_var_python_version}" = "1.4"; then
722 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
724 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
726 dnl On FreeBSD linking with "-pthread" is required to use threads.
727 dnl _THREAD_SAFE must be used for compiling then.
728 dnl The "-pthread" is added to $LIBS, so that the following check for
729 dnl sigaltstack() will look in libc_r (it's there in libc!).
730 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
731 dnl will then define target-specific defines, e.g., -D_REENTRANT.
732 dnl Don't do this for Mac OSX, -pthread will generate a warning.
733 AC_MSG_CHECKING([if -pthread should be used])
736 dnl if test "x$MACOSX" != "xyes"; then
737 if test "`(uname) 2>/dev/null`" != Darwin; then
738 test "$GCC" = yes && threadsafe_flag="-pthread"
739 if test "`(uname) 2>/dev/null`" = FreeBSD; then
740 threadsafe_flag="-D_THREAD_SAFE"
741 thread_lib="-pthread"
745 if test -n "$threadsafe_flag"; then
747 CFLAGS="$CFLAGS $threadsafe_flag"
748 LIBS="$LIBS $thread_lib"
750 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
751 AC_MSG_RESULT(no); LIBS=$libs_save_old
758 dnl check that compiling a simple program still works with the flags
759 dnl added for Python.
760 AC_MSG_CHECKING([if compile and link flags for Python are sane])
763 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
764 LIBS="$LIBS $PYTHON_LIBS"
766 AC_MSG_RESULT(yes); python_ok=yes,
767 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
770 if test $python_ok = yes; then
771 AC_DEFINE(FEAT_PYTHON)
782 AC_MSG_RESULT(too old)
786 AC_SUBST(PYTHON_CONFDIR)
787 AC_SUBST(PYTHON_LIBS)
788 AC_SUBST(PYTHON_GETPATH_CFLAGS)
789 AC_SUBST(PYTHON_CFLAGS)
793 AC_MSG_CHECKING(--enable-tclinterp argument)
794 AC_ARG_ENABLE(tclinterp,
795 [ --enable-tclinterp Include Tcl interpreter.], ,
796 [enable_tclinterp="no"])
797 AC_MSG_RESULT($enable_tclinterp)
799 if test "$enable_tclinterp" = "yes"; then
801 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
802 AC_MSG_CHECKING(--with-tclsh argument)
803 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
804 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
805 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
806 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
807 AC_SUBST(vi_cv_path_tcl)
809 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
810 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
811 tclsh_name="tclsh8.4"
812 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
814 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
815 tclsh_name="tclsh8.2"
816 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
818 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
819 tclsh_name="tclsh8.0"
820 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
822 dnl still didn't find it, try without version number
823 if test "X$vi_cv_path_tcl" = "X"; then
825 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
827 if test "X$vi_cv_path_tcl" != "X"; then
828 AC_MSG_CHECKING(Tcl version)
829 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
830 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
831 AC_MSG_RESULT($tclver - OK);
832 tclloc=`echo 'set l [[info library]];set i [[string last lib $l]];incr i -2;puts [[string range $l 0 $i]]' | $vi_cv_path_tcl -`
834 AC_MSG_CHECKING(for location of Tcl include)
835 if test "x$MACOSX" != "xyes"; then
836 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
838 dnl For Mac OS X 10.3, use the OS-provided framework location
839 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
842 for try in $tclinc; do
843 if test -f "$try/tcl.h"; then
844 AC_MSG_RESULT($try/tcl.h)
849 if test -z "$TCL_INC"; then
850 AC_MSG_RESULT(<not found>)
853 if test -z "$SKIP_TCL"; then
854 AC_MSG_CHECKING(for location of tclConfig.sh script)
855 if test "x$MACOSX" != "xyes"; then
856 tclcnf=`echo $tclinc | sed s/include/lib/g`
857 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
859 dnl For Mac OS X 10.3, use the OS-provided framework location
860 tclcnf="/System/Library/Frameworks/Tcl.framework"
862 for try in $tclcnf; do
863 if test -f $try/tclConfig.sh; then
864 AC_MSG_RESULT($try/tclConfig.sh)
866 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
867 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
868 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
869 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
870 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'`
874 if test -z "$TCL_LIBS"; then
875 AC_MSG_RESULT(<not found>)
876 AC_MSG_CHECKING(for Tcl library by myself)
877 tcllib=`echo $tclinc | sed s/include/lib/g`
878 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
879 for ext in .so .a ; do
880 for ver in "" $tclver ; do
881 for try in $tcllib ; do
883 if test -f $try/lib$trylib ; then
884 AC_MSG_RESULT($try/lib$trylib)
885 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
886 if test "`(uname) 2>/dev/null`" = SunOS &&
887 uname -r | grep '^5' >/dev/null; then
888 TCL_LIBS="$TCL_LIBS -R $try"
895 if test -z "$TCL_LIBS"; then
896 AC_MSG_RESULT(<not found>)
900 if test -z "$SKIP_TCL"; then
903 TCL_OBJ=objects/if_tcl.o
905 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
909 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
919 AC_MSG_CHECKING(--enable-rubyinterp argument)
920 AC_ARG_ENABLE(rubyinterp,
921 [ --enable-rubyinterp Include Ruby interpreter.], ,
922 [enable_rubyinterp="no"])
923 AC_MSG_RESULT($enable_rubyinterp)
924 if test "$enable_rubyinterp" = "yes"; then
925 AC_SUBST(vi_cv_path_ruby)
926 AC_PATH_PROG(vi_cv_path_ruby, ruby)
927 if test "X$vi_cv_path_ruby" != "X"; then
928 AC_MSG_CHECKING(Ruby version)
929 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
931 AC_MSG_CHECKING(Ruby header files)
932 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
933 if test "X$rubyhdrdir" != "X"; then
934 AC_MSG_RESULT($rubyhdrdir)
935 RUBY_CFLAGS="-I$rubyhdrdir"
936 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
937 if test "X$rubylibs" != "X"; then
938 RUBY_LIBS="$rubylibs"
940 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
941 if test -f "$rubyhdrdir/$librubyarg"; then
942 librubyarg="$rubyhdrdir/$librubyarg"
944 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
945 if test -f "$rubylibdir/$librubyarg"; then
946 librubyarg="$rubylibdir/$librubyarg"
947 elif test "$librubyarg" = "libruby.a"; then
948 dnl required on Mac OS 10.3 where libruby.a doesn't exist
951 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
955 if test "X$librubyarg" != "X"; then
956 RUBY_LIBS="$librubyarg $RUBY_LIBS"
958 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
959 if test "X$rubyldflags" != "X"; then
960 LDFLAGS="$rubyldflags $LDFLAGS"
963 RUBY_OBJ="objects/if_ruby.o"
964 RUBY_PRO="if_ruby.pro"
967 AC_MSG_RESULT(not found, disabling Ruby)
970 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
977 AC_SUBST(RUBY_CFLAGS)
980 AC_MSG_CHECKING(--enable-cscope argument)
981 AC_ARG_ENABLE(cscope,
982 [ --enable-cscope Include cscope interface.], ,
983 [enable_cscope="no"])
984 AC_MSG_RESULT($enable_cscope)
985 if test "$enable_cscope" = "yes"; then
986 AC_DEFINE(FEAT_CSCOPE)
989 AC_MSG_CHECKING(--enable-workshop argument)
990 AC_ARG_ENABLE(workshop,
991 [ --enable-workshop Include Sun Visual Workshop support.], ,
992 [enable_workshop="no"])
993 AC_MSG_RESULT($enable_workshop)
994 if test "$enable_workshop" = "yes"; then
995 AC_DEFINE(FEAT_SUN_WORKSHOP)
996 WORKSHOP_SRC="workshop.c integration.c"
997 AC_SUBST(WORKSHOP_SRC)
998 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
999 AC_SUBST(WORKSHOP_OBJ)
1000 if test "${enable_gui-xxx}" = xxx; then
1005 AC_MSG_CHECKING(--disable-netbeans argument)
1006 AC_ARG_ENABLE(netbeans,
1007 [ --disable-netbeans Disable NetBeans integration support.],
1008 , [enable_netbeans="yes"])
1009 if test "$enable_netbeans" = "yes"; then
1011 dnl On Solaris we need the socket and nsl library.
1012 AC_CHECK_LIB(socket, socket)
1013 AC_CHECK_LIB(nsl, gethostbyname)
1014 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1021 #include <netinet/in.h>
1023 #include <sys/types.h>
1024 #include <sys/socket.h>
1025 /* Check bitfields */
1027 unsigned int initDone:1;
1031 /* Check creating a socket. */
1032 struct sockaddr_in server;
1033 (void)socket(AF_INET, SOCK_STREAM, 0);
1035 (void)gethostbyname("microsoft.com");
1036 if (errno == ECONNREFUSED)
1037 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1040 AC_MSG_RESULT(no); enable_netbeans="no")
1044 if test "$enable_netbeans" = "yes"; then
1045 AC_DEFINE(FEAT_NETBEANS_INTG)
1046 NETBEANS_SRC="netbeans.c"
1047 AC_SUBST(NETBEANS_SRC)
1048 NETBEANS_OBJ="objects/netbeans.o"
1049 AC_SUBST(NETBEANS_OBJ)
1052 AC_MSG_CHECKING(--enable-sniff argument)
1053 AC_ARG_ENABLE(sniff,
1054 [ --enable-sniff Include Sniff interface.], ,
1055 [enable_sniff="no"])
1056 AC_MSG_RESULT($enable_sniff)
1057 if test "$enable_sniff" = "yes"; then
1058 AC_DEFINE(FEAT_SNIFF)
1059 SNIFF_SRC="if_sniff.c"
1061 SNIFF_OBJ="objects/if_sniff.o"
1065 AC_MSG_CHECKING(--enable-multibyte argument)
1066 AC_ARG_ENABLE(multibyte,
1067 [ --enable-multibyte Include multibyte editing support.], ,
1068 [enable_multibyte="no"])
1069 AC_MSG_RESULT($enable_multibyte)
1070 if test "$enable_multibyte" = "yes"; then
1071 AC_DEFINE(FEAT_MBYTE)
1074 AC_MSG_CHECKING(--enable-hangulinput argument)
1075 AC_ARG_ENABLE(hangulinput,
1076 [ --enable-hangulinput Include Hangul input support.], ,
1077 [enable_hangulinput="no"])
1078 AC_MSG_RESULT($enable_hangulinput)
1080 AC_MSG_CHECKING(--enable-xim argument)
1082 [ --enable-xim Include XIM input support.],
1083 AC_MSG_RESULT($enable_xim),
1084 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1085 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1087 AC_MSG_CHECKING(--enable-fontset argument)
1088 AC_ARG_ENABLE(fontset,
1089 [ --enable-fontset Include X fontset output support.], ,
1090 [enable_fontset="no"])
1091 AC_MSG_RESULT($enable_fontset)
1092 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1094 test -z "$with_x" && with_x=yes
1095 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1096 if test "$with_x" = no; then
1097 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1099 dnl Do this check early, so that its failure can override user requests.
1101 AC_PATH_PROG(xmkmfpath, xmkmf)
1105 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1106 dnl be compiled with a special option.
1107 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1108 if test "$OS390Unix" = "yes"; then
1109 CFLAGS="$CFLAGS -W c,dll"
1110 LDFLAGS="$LDFLAGS -W l,dll"
1111 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1114 dnl On my HPUX system the X include dir is found, but the lib dir not.
1115 dnl This is a desparate try to fix this.
1117 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1118 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1119 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1120 X_LIBS="$X_LIBS -L$x_libraries"
1121 if test "`(uname) 2>/dev/null`" = SunOS &&
1122 uname -r | grep '^5' >/dev/null; then
1123 X_LIBS="$X_LIBS -R $x_libraries"
1127 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1128 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1129 AC_MSG_RESULT(Corrected X includes to $x_includes)
1130 X_CFLAGS="$X_CFLAGS -I$x_includes"
1133 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1134 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1135 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1136 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1137 dnl Same for "-R/usr/lib ".
1138 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1141 dnl Check if the X11 header files are correctly installed. On some systems
1142 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1144 AC_MSG_CHECKING(if X11 header files can be found)
1146 CFLAGS="$CFLAGS $X_CFLAGS"
1147 AC_TRY_COMPILE([#include <X11/Xlib.h>
1148 #include <X11/Intrinsic.h>], ,
1150 AC_MSG_RESULT(no); no_x=yes)
1153 if test "${no_x-no}" = yes; then
1160 ac_save_LDFLAGS="$LDFLAGS"
1161 LDFLAGS="-L$x_libraries $LDFLAGS"
1163 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1164 dnl For HP-UX 10.20 it must be before -lSM -lICE
1165 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1166 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1168 dnl Some systems need -lnsl -lsocket when testing for ICE.
1169 dnl The check above doesn't do this, try here (again). Also needed to get
1170 dnl them after Xdmcp. link.sh will remove them when not needed.
1171 dnl Check for other function than above to avoid the cached value
1172 AC_CHECK_LIB(ICE, IceOpenConnection,
1173 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1175 dnl Check for -lXpm (needed for some versions of Motif)
1176 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1177 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1178 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1180 dnl Check that the X11 header files don't use implicit declarations
1181 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1183 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1184 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1186 CFLAGS="$CFLAGS -Wno-implicit-int"
1187 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1188 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1189 AC_MSG_RESULT(test failed)
1194 LDFLAGS="$ac_save_LDFLAGS"
1196 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1197 AC_CACHE_VAL(ac_cv_small_wchar_t,
1199 #include <X11/Xlib.h>
1201 # include <stdlib.h>
1202 # include <stddef.h>
1206 if (sizeof(wchar_t) <= 2)
1210 ac_cv_small_wchar_t="no",
1211 ac_cv_small_wchar_t="yes",
1212 AC_MSG_ERROR(failed to compile test program))])
1213 AC_MSG_RESULT($ac_cv_small_wchar_t)
1214 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1215 AC_DEFINE(SMALL_WCHAR_T)
1221 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1223 AC_MSG_CHECKING(--enable-gui argument)
1225 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
1227 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1228 dnl Do not use character classes for portability with old tools.
1229 enable_gui_canon=`echo "_$enable_gui" | \
1230 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1232 dnl Skip everything by default.
1243 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1245 case "$enable_gui_canon" in
1246 no) AC_MSG_RESULT(no GUI support)
1248 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1249 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1250 photon) AC_MSG_RESULT(Photon GUI support) ;;
1251 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1255 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1257 case "$enable_gui_canon" in
1258 no) AC_MSG_RESULT(no GUI support)
1260 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1261 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1262 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1263 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1269 case "$enable_gui_canon" in
1270 no|none) AC_MSG_RESULT(no GUI support) ;;
1271 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1279 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1281 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1284 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1287 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1291 motif) AC_MSG_RESULT(Motif GUI support)
1293 athena) AC_MSG_RESULT(Athena GUI support)
1295 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1297 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1302 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1303 AC_MSG_CHECKING(whether or not to look for GTK)
1304 AC_ARG_ENABLE(gtk-check,
1305 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1306 , enable_gtk_check="yes")
1307 AC_MSG_RESULT($enable_gtk_check)
1308 if test "x$enable_gtk_check" = "xno"; then
1314 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1315 -a "$enable_gui_canon" != "gnome2"; then
1316 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1317 AC_ARG_ENABLE(gtk2-check,
1318 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1319 , enable_gtk2_check="yes")
1320 AC_MSG_RESULT($enable_gtk2_check)
1321 if test "x$enable_gtk2_check" = "xno"; then
1326 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1327 -a "$enable_gui_canon" != "gnome2"; then
1328 AC_MSG_CHECKING(whether or not to look for GNOME)
1329 AC_ARG_ENABLE(gnome-check,
1330 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1331 , enable_gnome_check="no")
1332 AC_MSG_RESULT($enable_gnome_check)
1333 if test "x$enable_gnome_check" = "xno"; then
1338 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1339 AC_MSG_CHECKING(whether or not to look for Motif)
1340 AC_ARG_ENABLE(motif-check,
1341 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1342 , enable_motif_check="yes")
1343 AC_MSG_RESULT($enable_motif_check)
1344 if test "x$enable_motif_check" = "xno"; then
1349 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1350 AC_MSG_CHECKING(whether or not to look for Athena)
1351 AC_ARG_ENABLE(athena-check,
1352 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1353 , enable_athena_check="yes")
1354 AC_MSG_RESULT($enable_athena_check)
1355 if test "x$enable_athena_check" = "xno"; then
1360 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1361 AC_MSG_CHECKING(whether or not to look for neXtaw)
1362 AC_ARG_ENABLE(nextaw-check,
1363 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1364 , enable_nextaw_check="yes")
1365 AC_MSG_RESULT($enable_nextaw_check);
1366 if test "x$enable_nextaw_check" = "xno"; then
1371 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1372 AC_MSG_CHECKING(whether or not to look for Carbon)
1373 AC_ARG_ENABLE(carbon-check,
1374 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1375 , enable_carbon_check="yes")
1376 AC_MSG_RESULT($enable_carbon_check);
1377 if test "x$enable_carbon_check" = "xno"; then
1383 if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1384 AC_MSG_CHECKING(for Carbon GUI)
1385 dnl already did the check, just give the message
1388 if test "$VIMNAME" = "vim"; then
1392 dnl Default install directory is not /usr/local
1393 if test x$prefix = xNONE; then
1394 prefix=/Applications
1397 dnl Sorry for the hard coded default
1398 datadir='${prefix}/Vim.app/Contents/Resources'
1400 dnl skip everything else
1412 dnl Get the cflags and libraries from the gtk-config script
1415 dnl define an autoconf function to check for a specified version of GTK, and
1416 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1418 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1419 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1421 AC_DEFUN(AM_PATH_GTK,
1423 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1425 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1426 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1428 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1429 && $PKG_CONFIG --exists gtk+-2.0; then
1431 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1432 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1433 dnl something like that.
1434 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1435 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1436 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1437 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1438 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1439 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1440 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1441 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1442 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1444 elif test "X$GTK_CONFIG" != "Xno"; then
1446 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1448 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1449 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1450 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1451 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1452 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1453 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1454 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1460 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1462 ac_save_CFLAGS="$CFLAGS"
1463 ac_save_LIBS="$LIBS"
1464 CFLAGS="$CFLAGS $GTK_CFLAGS"
1465 LIBS="$LIBS $GTK_LIBS"
1468 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1469 dnl checks the results of gtk-config to some extent
1473 #include <gtk/gtk.h>
1476 # include <stdlib.h>
1477 # include <stddef.h>
1483 int major, minor, micro;
1486 system ("touch conf.gtktest");
1488 /* HP/UX 9 (%@#!) writes to sscanf strings */
1489 tmp_version = g_strdup("$min_gtk_version");
1490 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1491 printf("%s, bad version string\n", "$min_gtk_version");
1495 if ((gtk_major_version > major) ||
1496 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1497 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1498 (gtk_micro_version >= micro)))
1504 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1505 CFLAGS="$ac_save_CFLAGS"
1506 LIBS="$ac_save_LIBS"
1509 if test "x$no_gtk" = x ; then
1510 if test "x$enable_gtktest" = "xyes"; then
1511 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1513 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1515 ifelse([$2], , :, [$2])
1521 ifelse([$3], , :, [$3])
1528 ifelse([$3], , :, [$3])
1530 AC_SUBST(GTK_CFLAGS)
1535 dnl ---------------------------------------------------------------------------
1537 dnl ---------------------------------------------------------------------------
1538 AC_DEFUN([GNOME_INIT_HOOK],
1540 AC_SUBST(GNOME_LIBS)
1541 AC_SUBST(GNOME_LIBDIR)
1542 AC_SUBST(GNOME_INCLUDEDIR)
1544 AC_ARG_WITH(gnome-includes,
1545 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1546 [CFLAGS="$CFLAGS -I$withval"]
1549 AC_ARG_WITH(gnome-libs,
1550 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1551 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1555 [ --with-gnome Specify prefix for GNOME files],
1556 if test x$withval = xyes; then
1558 ifelse([$1], [], :, [$1])
1560 if test "x$withval" = xno; then
1564 LDFLAGS="$LDFLAGS -L$withval/lib"
1565 CFLAGS="$CFLAGS -I$withval/include"
1566 gnome_prefix=$withval/lib
1571 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1573 AC_MSG_CHECKING(for libgnomeui-2.0)
1574 if $PKG_CONFIG --exists libgnomeui-2.0; then
1576 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1577 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1578 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1580 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1581 dnl This might not be the right way but it works for me...
1582 AC_MSG_CHECKING(for FreeBSD)
1583 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1584 AC_MSG_RESULT(yes, adding -pthread)
1585 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1586 GNOME_LIBS="$GNOME_LIBS -pthread"
1592 AC_MSG_RESULT(not found)
1593 if test "x$2" = xfail; then
1594 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1598 elif test "x$want_gnome" = xyes; then
1600 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1601 if test "$GNOME_CONFIG" = "no"; then
1602 no_gnome_config="yes"
1604 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1605 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1607 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1608 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1609 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1613 no_gnome_config="yes"
1617 if test x$exec_prefix = xNONE; then
1618 if test x$prefix = xNONE; then
1619 gnome_prefix=$ac_default_prefix/lib
1621 gnome_prefix=$prefix/lib
1624 gnome_prefix=`eval echo \`echo $libdir\``
1627 if test "$no_gnome_config" = "yes"; then
1628 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1629 if test -f $gnome_prefix/gnomeConf.sh; then
1630 AC_MSG_RESULT(found)
1631 echo "loading gnome configuration from" \
1632 "$gnome_prefix/gnomeConf.sh"
1633 . $gnome_prefix/gnomeConf.sh
1636 AC_MSG_RESULT(not found)
1637 if test x$2 = xfail; then
1638 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1646 AC_DEFUN([GNOME_INIT],[
1647 GNOME_INIT_HOOK([],fail)
1651 dnl ---------------------------------------------------------------------------
1652 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1653 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1654 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1655 dnl ---------------------------------------------------------------------------
1656 if test -z "$SKIP_GTK"; then
1658 AC_MSG_CHECKING(--with-gtk-prefix argument)
1659 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1660 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1661 gtk_config_prefix=""; AC_MSG_RESULT(no))
1663 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1664 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1665 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1666 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1668 AC_MSG_CHECKING(--disable-gtktest argument)
1669 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1670 , enable_gtktest=yes)
1671 if test "x$enable_gtktest" = "xyes" ; then
1672 AC_MSG_RESULT(gtk test enabled)
1674 AC_MSG_RESULT(gtk test disabled)
1677 if test "x$gtk_config_prefix" != "x" ; then
1678 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1679 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1681 if test "x$gtk_config_exec_prefix" != "x" ; then
1682 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1683 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1685 if test "X$GTK_CONFIG" = "X"; then
1686 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1687 if test "X$GTK_CONFIG" = "Xno"; then
1688 dnl Some distributions call it gtk12-config, annoying!
1689 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1690 GTK_CONFIG="$GTK12_CONFIG"
1693 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1695 if test "X$PKG_CONFIG" = "X"; then
1696 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1699 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1700 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1701 dnl problems (bold fonts, --remote doesn't work).
1702 if test "X$SKIP_GTK2" != "XYES"; then
1704 [GUI_LIB_LOC="$GTK_LIBDIR"
1705 GTK_LIBNAME="$GTK_LIBS"
1706 GUI_INC_LOC="$GTK_CFLAGS"], )
1707 if test "x$GTK_CFLAGS" != "x"; then
1712 AC_SUBST(GTK_LIBNAME)
1716 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1717 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1718 dnl were test versions.
1719 if test "x$GUITYPE" != "xGTK"; then
1722 [GTK_LIBNAME="$GTK_LIBS"
1723 GUI_INC_LOC="$GTK_CFLAGS"], )
1724 if test "x$GTK_CFLAGS" != "x"; then
1729 AC_SUBST(GTK_LIBNAME)
1733 dnl Give a warning if GTK is older than 1.2.3
1734 if test "x$GUITYPE" = "xGTK"; then
1735 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1736 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1737 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1740 if test "0$gtk_major_version" -ge 2; then
1741 AC_DEFINE(HAVE_GTK2)
1742 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1743 || test "0$gtk_minor_version" -ge 2 \
1744 || test "0$gtk_major_version" -gt 2; then
1745 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1749 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1751 if test -z "$SKIP_GNOME"; then
1753 GNOME_INIT_HOOK([have_gnome=yes])
1754 if test x$have_gnome = xyes ; then
1755 AC_DEFINE(FEAT_GUI_GNOME)
1756 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1757 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1766 dnl Check for Motif include files location.
1767 dnl The LAST one found is used, this makes the highest version to be used,
1768 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1770 if test -z "$SKIP_MOTIF"; then
1771 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"
1772 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1773 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1775 AC_MSG_CHECKING(for location of Motif GUI includes)
1776 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1778 for try in $gui_includes; do
1779 if test -f "$try/Xm/Xm.h"; then
1783 if test -n "$GUI_INC_LOC"; then
1784 if test "$GUI_INC_LOC" = /usr/include; then
1786 AC_MSG_RESULT(in default path)
1788 AC_MSG_RESULT($GUI_INC_LOC)
1791 AC_MSG_RESULT(<not found>)
1796 dnl Check for Motif library files location. In the same order as the include
1797 dnl files, to avoid a mixup if several versions are present
1799 if test -z "$SKIP_MOTIF"; then
1800 AC_MSG_CHECKING(--with-motif-lib argument)
1801 AC_ARG_WITH(motif-lib,
1802 [ --with-motif-lib=STRING Library for Motif ],
1803 [ MOTIF_LIBNAME="${withval}" ] )
1805 if test -n "$MOTIF_LIBNAME"; then
1806 AC_MSG_RESULT($MOTIF_LIBNAME)
1811 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1812 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1814 AC_MSG_CHECKING(for location of Motif GUI libs)
1815 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"
1817 for try in $gui_libs; do
1818 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1819 if test -f "$libtry"; then
1824 if test -n "$GUI_LIB_LOC"; then
1825 dnl Remove /usr/lib, it causes trouble on some systems
1826 if test "$GUI_LIB_LOC" = /usr/lib; then
1828 AC_MSG_RESULT(in default path)
1830 if test -n "$GUI_LIB_LOC"; then
1831 AC_MSG_RESULT($GUI_LIB_LOC)
1832 if test "`(uname) 2>/dev/null`" = SunOS &&
1833 uname -r | grep '^5' >/dev/null; then
1834 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1840 AC_MSG_RESULT(<not found>)
1846 if test -z "$SKIP_MOTIF"; then
1850 AC_SUBST(MOTIF_LIBNAME)
1853 dnl Check if the Athena files can be found
1857 if test -z "$SKIP_ATHENA"; then
1858 AC_MSG_CHECKING(if Athena header files can be found)
1860 CFLAGS="$CFLAGS $X_CFLAGS"
1862 #include <X11/Intrinsic.h>
1863 #include <X11/Xaw/Paned.h>], ,
1865 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1869 if test -z "$SKIP_ATHENA"; then
1873 if test -z "$SKIP_NEXTAW"; then
1874 AC_MSG_CHECKING(if neXtaw header files can be found)
1876 CFLAGS="$CFLAGS $X_CFLAGS"
1878 #include <X11/Intrinsic.h>
1879 #include <X11/neXtaw/Paned.h>], ,
1881 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1885 if test -z "$SKIP_NEXTAW"; then
1889 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1890 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1891 dnl Avoid adding it when it twice
1892 if test -n "$GUI_INC_LOC"; then
1893 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1895 if test -n "$GUI_LIB_LOC"; then
1896 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1899 dnl Check for -lXext and then for -lXmu
1900 ldflags_save=$LDFLAGS
1901 LDFLAGS="$X_LIBS $LDFLAGS"
1902 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1903 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1904 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1905 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1906 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1907 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1908 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1909 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1910 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1911 if test -z "$SKIP_MOTIF"; then
1912 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1913 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1915 LDFLAGS=$ldflags_save
1917 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1918 AC_MSG_CHECKING(for extra X11 defines)
1921 if mkdir conftestdir; then
1923 cat > Imakefile <<'EOF'
1925 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
1927 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
1928 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
1933 if test -z "$NARROW_PROTO"; then
1936 AC_MSG_RESULT($NARROW_PROTO)
1938 AC_SUBST(NARROW_PROTO)
1941 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
1942 dnl use the X11 include path
1943 if test "$enable_xsmp" = "yes"; then
1944 cppflags_save=$CPPFLAGS
1945 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1946 AC_CHECK_HEADERS(X11/SM/SMlib.h)
1947 CPPFLAGS=$cppflags_save
1951 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
1952 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
1953 cppflags_save=$CPPFLAGS
1954 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1955 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
1957 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
1958 if test ! "$enable_xim" = "no"; then
1959 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
1960 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
1962 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
1964 CPPFLAGS=$cppflags_save
1966 dnl automatically enable XIM when hangul input isn't enabled
1967 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
1968 -a "x$GUITYPE" != "xNONE" ; then
1969 AC_MSG_RESULT(X GUI selected; xim has been enabled)
1974 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1975 cppflags_save=$CPPFLAGS
1976 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1977 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
1978 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
1980 #include <X11/Intrinsic.h>
1981 #include <X11/Xmu/Editres.h>],
1984 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
1986 CPPFLAGS=$cppflags_save
1989 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
1990 if test -z "$SKIP_MOTIF"; then
1991 cppflags_save=$CPPFLAGS
1992 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1993 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
1994 Xm/UnhighlightT.h Xm/Notebook.h)
1996 if test $ac_cv_header_Xm_XpmP_h = yes; then
1997 dnl Solaris uses XpmAttributes_21, very annoying.
1998 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
1999 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2000 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2001 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2004 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2006 CPPFLAGS=$cppflags_save
2009 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2010 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2013 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2014 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2017 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2018 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2022 if test -z "$SKIP_PHOTON"; then
2026 AC_SUBST(GUI_INC_LOC)
2027 AC_SUBST(GUI_LIB_LOC)
2029 AC_SUBST(GUI_X_LIBS)
2031 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2032 AC_MSG_ERROR([cannot use workshop without Motif])
2035 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2036 if test "$enable_xim" = "yes"; then
2039 if test "$enable_fontset" = "yes"; then
2040 AC_DEFINE(FEAT_XFONTSET)
2044 dnl ---------------------------------------------------------------------------
2045 dnl end of GUI-checking
2046 dnl ---------------------------------------------------------------------------
2049 dnl Only really enable hangul input when GUI and XFONTSET are available
2050 if test "$enable_hangulinput" = "yes"; then
2051 if test "x$GUITYPE" = "xNONE"; then
2052 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2053 enable_hangulinput=no
2055 AC_DEFINE(FEAT_HANGULIN)
2056 HANGULIN_SRC=hangulin.c
2057 AC_SUBST(HANGULIN_SRC)
2058 HANGULIN_OBJ=objects/hangulin.o
2059 AC_SUBST(HANGULIN_OBJ)
2063 dnl Checks for libraries and include files.
2065 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2068 #include "confdefs.h"
2071 # include <stdlib.h>
2072 # include <stddef.h>
2074 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2076 vim_cv_toupper_broken=yes
2078 vim_cv_toupper_broken=no
2080 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2083 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2084 AC_DEFINE(BROKEN_TOUPPER)
2087 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2088 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2089 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2092 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2093 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2094 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2097 dnl Checks for header files.
2098 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2099 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2100 if test "$HAS_ELF" = 1; then
2101 AC_CHECK_LIB(elf, main)
2106 dnl If sys/wait.h is not found it might still exist but not be POSIX
2107 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2108 if test $ac_cv_header_sys_wait_h = no; then
2109 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2110 AC_TRY_COMPILE([#include <sys/wait.h>],
2111 [union wait xx, yy; xx = yy],
2113 AC_DEFINE(HAVE_SYS_WAIT_H)
2114 AC_DEFINE(HAVE_UNION_WAIT),
2118 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2119 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2120 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2121 sys/resource.h sys/systeminfo.h locale.h \
2122 sys/stream.h termios.h libc.h sys/statfs.h \
2123 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2124 libgen.h util/debug.h util/msg18n.h frame.h \
2125 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2127 dnl sys/ptem.h depends on sys/stream.h on Solaris
2128 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2129 [#if defined HAVE_SYS_STREAM_H
2130 # include <sys/stream.h>
2133 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2134 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2135 [#if defined HAVE_SYS_PARAM_H
2136 # include <sys/param.h>
2140 dnl pthread_np.h may exist but can only be used after including pthread.h
2141 AC_MSG_CHECKING([for pthread_np.h])
2143 #include <pthread.h>
2144 #include <pthread_np.h>],
2147 AC_DEFINE(HAVE_PTHREAD_NP_H),
2150 AC_CHECK_HEADERS(strings.h)
2151 if test "x$MACOSX" = "xyes"; then
2152 dnl The strings.h file on OS/X contains a warning and nothing useful.
2153 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2156 dnl Check if strings.h and string.h can both be included when defined.
2157 AC_MSG_CHECKING([if strings.h can be included after string.h])
2158 cppflags_save=$CPPFLAGS
2159 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2161 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2162 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2163 /* but don't do it on AIX 5.1 (Uribarri) */
2166 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2168 #ifdef HAVE_STRING_H
2169 # include <string.h>
2171 #if defined(HAVE_STRINGS_H)
2172 # include <strings.h>
2176 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2178 CPPFLAGS=$cppflags_save
2181 dnl Checks for typedefs, structures, and compiler characteristics.
2182 AC_PROG_GCC_TRADITIONAL
2191 AC_CHECK_TYPE(ino_t, long)
2192 AC_CHECK_TYPE(dev_t, unsigned)
2194 AC_MSG_CHECKING(for rlim_t)
2195 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2196 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2199 changequote(<<,>>)dnl
2200 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2203 #include <sys/types.h>
2205 # include <stdlib.h>
2206 # include <stddef.h>
2208 #ifdef HAVE_SYS_RESOURCE_H
2209 # include <sys/resource.h>
2211 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2212 AC_MSG_RESULT($ac_cv_type_rlim_t)
2214 if test $ac_cv_type_rlim_t = no; then
2215 cat >> confdefs.h <<\EOF
2216 #define rlim_t unsigned long
2220 AC_MSG_CHECKING(for stack_t)
2221 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2222 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2224 AC_EGREP_CPP(stack_t,
2226 #include <sys/types.h>
2228 # include <stdlib.h>
2229 # include <stddef.h>
2232 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2233 AC_MSG_RESULT($ac_cv_type_stack_t)
2235 if test $ac_cv_type_stack_t = no; then
2236 cat >> confdefs.h <<\EOF
2237 #define stack_t struct sigaltstack
2241 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2242 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2244 #include <sys/types.h>
2246 # include <stdlib.h>
2247 # include <stddef.h>
2250 #include "confdefs.h"
2251 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2252 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2256 AC_MSG_CHECKING(--with-tlib argument)
2257 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2258 if test -n "$with_tlib"; then
2259 AC_MSG_RESULT($with_tlib)
2260 LIBS="$LIBS -l$with_tlib"
2261 AC_MSG_CHECKING(for linking with $with_tlib library)
2262 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2263 dnl Need to check for tgetent() below.
2266 AC_MSG_RESULT([empty: automatic terminal library selection])
2267 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2268 dnl curses, because curses is much slower.
2269 dnl Newer versions of ncurses are preferred over anything.
2270 dnl Older versions of ncurses have bugs, get a new one!
2271 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2272 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2273 case "`uname -s 2>/dev/null`" in
2274 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2275 *) tlibs="ncurses termlib termcap curses";;
2277 for libname in $tlibs; do
2278 AC_CHECK_LIB(${libname}, tgetent,,)
2279 if test "x$olibs" != "x$LIBS"; then
2280 dnl It's possible that a library is found but it doesn't work
2281 dnl e.g., shared library that cannot be found
2282 dnl compile and run a test program to be sure
2284 #ifdef HAVE_TERMCAP_H
2285 # include <termcap.h>
2288 # include <stdlib.h>
2289 # include <stddef.h>
2291 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2292 res="OK", res="FAIL", res="FAIL")
2293 if test "$res" = "OK"; then
2296 AC_MSG_RESULT($libname library is not usable)
2300 if test "x$olibs" = "x$LIBS"; then
2301 AC_MSG_RESULT(no terminal library found)
2305 if test "x$olibs" = "x$LIBS"; then
2306 AC_MSG_CHECKING([for tgetent()])
2308 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2310 AC_MSG_ERROR([NOT FOUND!
2311 You need to install a terminal library; for example ncurses.
2312 Or specify the name of the library with --with-tlib.]))
2315 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2318 #include "confdefs.h"
2319 #ifdef HAVE_TERMCAP_H
2320 # include <termcap.h>
2322 #ifdef HAVE_STRING_H
2323 # include <string.h>
2326 # include <stdlib.h>
2327 # include <stddef.h>
2330 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2336 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2340 if test "x$vim_cv_terminfo" = "xyes" ; then
2344 if test "x$olibs" != "x$LIBS"; then
2345 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2348 #include "confdefs.h"
2349 #ifdef HAVE_TERMCAP_H
2350 # include <termcap.h>
2353 # include <stdlib.h>
2354 # include <stddef.h>
2357 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2361 vim_cv_tgent=non-zero
2363 AC_MSG_ERROR(failed to compile test program.)
2367 if test "x$vim_cv_tgent" = "xzero" ; then
2368 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2372 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2374 #ifdef HAVE_TERMCAP_H
2375 # include <termcap.h>
2377 ], [ospeed = 20000],
2378 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2380 AC_MSG_CHECKING(whether ospeed can be extern)
2382 #ifdef HAVE_TERMCAP_H
2383 # include <termcap.h>
2385 extern short ospeed;
2386 ], [ospeed = 20000],
2387 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2391 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2393 #ifdef HAVE_TERMCAP_H
2394 # include <termcap.h>
2396 ], [if (UP == 0 && BC == 0) PC = 1],
2397 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2399 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2401 #ifdef HAVE_TERMCAP_H
2402 # include <termcap.h>
2404 extern char *UP, *BC, PC;
2405 ], [if (UP == 0 && BC == 0) PC = 1],
2406 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2410 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2412 #ifdef HAVE_TERMCAP_H
2413 # include <termcap.h>
2415 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2416 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2419 dnl On some SCO machines sys/select redefines struct timeval
2420 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2422 #include <sys/types.h>
2423 #include <sys/time.h>
2424 #include <sys/select.h>], ,
2426 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2429 dnl AC_DECL_SYS_SIGLIST
2431 dnl Checks for pty.c (copied from screen) ==========================
2432 AC_MSG_CHECKING(for /dev/ptc)
2433 if test -r /dev/ptc; then
2434 AC_DEFINE(HAVE_DEV_PTC)
2440 AC_MSG_CHECKING(for SVR4 ptys)
2441 if test -c /dev/ptmx ; then
2442 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2443 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2449 AC_MSG_CHECKING(for ptyranges)
2450 if test -d /dev/ptym ; then
2460 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2461 dnl if test -c /dev/ptyp19; then
2462 dnl ptys=`echo /dev/ptyp??`
2464 dnl ptys=`echo $pdir/pty??`
2466 if test "$ptys" != "$pdir/pty??" ; then
2467 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2468 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2469 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2470 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2471 AC_MSG_RESULT([$p0 / $p1])
2473 AC_MSG_RESULT([don't know])
2476 dnl **** pty mode/group handling ****
2478 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2480 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2483 #include "confdefs.h"
2484 #include <sys/types.h>
2486 # include <stdlib.h>
2487 # include <stddef.h>
2489 #ifdef HAVE_UNISTD_H
2492 #include <sys/stat.h>
2501 if (!(x = ttyname(0))) exit(1);
2502 if (stat(x, &sb)) exit(1);
2504 if (om & 002) exit(0);
2505 m = system("mesg y");
2506 if (m == -1 || m == 127) exit(1);
2507 if (stat(x, &sb)) exit(1);
2509 if (chmod(x, om)) exit(1);
2510 if (m & 002) exit(0);
2511 if (sb.st_gid == getgid()) exit(1);
2512 if (!(fp=fopen("conftest_grp", "w")))
2514 fprintf(fp, "%d\n", sb.st_gid);
2519 if test -f conftest_grp; then
2520 vim_cv_tty_group=`cat conftest_grp`
2521 if test "x$vim_cv_tty_mode" = "x" ; then
2522 vim_cv_tty_mode=0620
2524 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2526 vim_cv_tty_group=world
2527 AC_MSG_RESULT([ptys are world accessable])
2530 vim_cv_tty_group=world
2531 AC_MSG_RESULT([can't determine - assume ptys are world accessable])
2533 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2538 if test "x$vim_cv_tty_group" != "xworld" ; then
2539 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2540 if test "x$vim_cv_tty_mode" = "x" ; then
2541 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)])
2543 AC_DEFINE(PTYMODE, 0620)
2547 dnl Checks for library functions. ===================================
2551 dnl find out what to use at the end of a signal function
2552 if test $ac_cv_type_signal = void; then
2553 AC_DEFINE(SIGRETURN, [return])
2555 AC_DEFINE(SIGRETURN, [return 0])
2558 dnl check if struct sigcontext is defined (used for SGI only)
2559 AC_MSG_CHECKING(for struct sigcontext)
2564 struct sigcontext *scont;
2565 scont = (struct sigcontext *)0;
2569 AC_DEFINE(HAVE_SIGCONTEXT),
2572 dnl tricky stuff: try to find out if getcwd() is implemented with
2573 dnl system("sh -c pwd")
2574 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2577 #include "confdefs.h"
2578 #ifdef HAVE_UNISTD_H
2581 char *dagger[] = { "IFS=pwd", 0 };
2585 extern char **environ;
2587 return getcwd(buffer, 500) ? 0 : 1;
2590 vim_cv_getcwd_broken=no
2592 vim_cv_getcwd_broken=yes
2594 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2598 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2599 AC_DEFINE(BAD_GETCWD)
2602 dnl Check for functions in one big call, to reduce the size of configure
2603 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2604 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2605 memset nanosleep opendir putenv qsort readlink select setenv \
2606 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2607 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2608 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2609 usleep utime utimes)
2611 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2612 AC_MSG_CHECKING(for st_blksize)
2614 [#include <sys/types.h>
2615 #include <sys/stat.h>],
2620 n = (int)st.st_blksize;],
2621 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2624 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2627 #include "confdefs.h"
2629 # include <stdlib.h>
2630 # include <stddef.h>
2632 #include <sys/types.h>
2633 #include <sys/stat.h>
2634 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2636 vim_cv_stat_ignores_slash=yes
2638 vim_cv_stat_ignores_slash=no
2640 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2644 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2645 AC_DEFINE(STAT_IGNORES_SLASH)
2648 dnl Link with iconv for charset translation, if not found without library.
2649 dnl check for iconv() requires including iconv.h
2650 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2651 dnl has been installed.
2652 AC_MSG_CHECKING(for iconv_open())
2654 LIBS="$LIBS -liconv"
2659 ], [iconv_open("fr", "to");],
2660 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2666 ], [iconv_open("fr", "to");],
2667 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2671 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2673 #ifdef HAVE_LANGINFO_H
2674 # include <langinfo.h>
2676 ], [char *cs = nl_langinfo(CODESET);],
2677 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2680 dnl Need various functions for floating point support. Only enable
2681 dnl floating point when they are all present.
2682 AC_CHECK_LIB(m, strtod)
2683 AC_MSG_CHECKING([for strtod() and other floating point functions])
2689 # include <stdlib.h>
2690 # include <stddef.h>
2692 ], [char *s; double d;
2693 d = strtod("1.1", &s);
2698 d = pow(1.11, 2.22);
2704 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2707 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2708 dnl when -lacl works, also try to use -lattr (required for Debian).
2709 AC_MSG_CHECKING(--disable-acl argument)
2711 [ --disable-acl Don't check for ACL support.],
2712 , [enable_acl="yes"])
2713 if test "$enable_acl" = "yes"; then
2715 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2716 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2717 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2719 AC_MSG_CHECKING(for POSIX ACL support)
2721 #include <sys/types.h>
2722 #ifdef HAVE_SYS_ACL_H
2723 # include <sys/acl.h>
2725 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2726 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2728 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2731 AC_MSG_CHECKING(for Solaris ACL support)
2733 #ifdef HAVE_SYS_ACL_H
2734 # include <sys/acl.h>
2735 #endif], [acl("foo", GETACLCNT, 0, NULL);
2737 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2740 AC_MSG_CHECKING(for AIX ACL support)
2743 # include <stdlib.h>
2744 # include <stddef.h>
2746 #ifdef HAVE_SYS_ACL_H
2747 # include <sys/acl.h>
2749 #ifdef HAVE_SYS_ACCESS_H
2750 # include <sys/access.h>
2754 #include <sys/stat.h>
2757 struct acl *aclent;], [aclsize = sizeof(struct acl);
2758 aclent = (void *)malloc(aclsize);
2759 statacl("foo", STX_NORMAL, aclent, aclsize);
2761 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2767 AC_MSG_CHECKING(--disable-gpm argument)
2769 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2772 if test "$enable_gpm" = "yes"; then
2774 dnl Checking if gpm support can be compiled
2775 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2776 [olibs="$LIBS" ; LIBS="-lgpm"]
2779 #include <linux/keyboard.h>],
2780 [Gpm_GetLibVersion(NULL);],
2781 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2782 dnl FEAT_MOUSE_GPM if mouse support is included
2783 [vi_cv_have_gpm=yes],
2784 [vi_cv_have_gpm=no])
2787 if test $vi_cv_have_gpm = yes; then
2795 AC_MSG_CHECKING(--disable-sysmouse argument)
2796 AC_ARG_ENABLE(sysmouse,
2797 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2798 [enable_sysmouse="yes"])
2800 if test "$enable_sysmouse" = "yes"; then
2802 dnl Checking if sysmouse support can be compiled
2803 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2804 dnl defines FEAT_SYSMOUSE if mouse support is included
2805 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2807 [#include <sys/consio.h>
2809 #include <sys/fbio.h>],
2810 [struct mouse_info mouse;
2811 mouse.operation = MOUSE_MODE;
2812 mouse.operation = MOUSE_SHOW;
2813 mouse.u.mode.mode = 0;
2814 mouse.u.mode.signal = SIGUSR2;],
2815 [vi_cv_have_sysmouse=yes],
2816 [vi_cv_have_sysmouse=no])
2818 if test $vi_cv_have_sysmouse = yes; then
2819 AC_DEFINE(HAVE_SYSMOUSE)
2825 dnl rename needs to be checked separately to work on Nextstep with cc
2826 AC_MSG_CHECKING(for rename)
2827 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2828 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2831 dnl sysctl() may exist but not the arguments we use
2832 AC_MSG_CHECKING(for sysctl)
2834 [#include <sys/types.h>
2835 #include <sys/sysctl.h>],
2840 mib[1] = HW_USERMEM;
2842 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2844 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2845 AC_MSG_RESULT(not usable))
2847 dnl sysinfo() may exist but not be Linux compatible
2848 AC_MSG_CHECKING(for sysinfo)
2850 [#include <sys/types.h>
2851 #include <sys/sysinfo.h>],
2852 [ struct sysinfo sinfo;
2855 (void)sysinfo(&sinfo);
2858 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2859 AC_MSG_RESULT(not usable))
2861 dnl struct sysinfo may have the mem_unit field or not
2862 AC_MSG_CHECKING(for sysinfo.mem_unit)
2864 [#include <sys/types.h>
2865 #include <sys/sysinfo.h>],
2866 [ struct sysinfo sinfo;
2869 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2872 dnl sysconf() may exist but not support what we want to use
2873 AC_MSG_CHECKING(for sysconf)
2875 [#include <unistd.h>],
2876 [ (void)sysconf(_SC_PAGESIZE);
2877 (void)sysconf(_SC_PHYS_PAGES);
2879 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2880 AC_MSG_RESULT(not usable))
2882 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2883 dnl be printed with "%d", and avoids a warning for cross-compiling.
2885 AC_MSG_CHECKING(size of int)
2886 AC_CACHE_VAL(ac_cv_sizeof_int,
2890 # include <stdlib.h>
2891 # include <stddef.h>
2895 FILE *f=fopen("conftestval", "w");
2897 fprintf(f, "%d\n", (int)sizeof(int));
2900 ac_cv_sizeof_int=`cat conftestval`,
2902 AC_MSG_ERROR(failed to compile test program))])
2903 AC_MSG_RESULT($ac_cv_sizeof_int)
2904 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2906 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2907 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2910 #include "confdefs.h"
2911 #ifdef HAVE_STRING_H
2912 # include <string.h>
2915 # include <stdlib.h>
2916 # include <stddef.h>
2920 strcpy(buf, "abcdefghi");
2921 mch_memmove(buf, buf + 2, 3);
2922 if (strncmp(buf, "ababcf", 6))
2924 strcpy(buf, "abcdefghi");
2925 mch_memmove(buf + 2, buf, 3);
2926 if (strncmp(buf, "cdedef", 6))
2928 exit(0); /* libc version works properly. */
2931 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
2933 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
2935 vim_cv_memmove_handles_overlap=yes
2937 vim_cv_memmove_handles_overlap=no
2939 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
2943 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
2944 AC_DEFINE(USEMEMMOVE)
2946 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
2948 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
2950 vim_cv_bcopy_handles_overlap=yes
2952 vim_cv_bcopy_handles_overlap=no
2954 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
2958 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
2961 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
2963 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
2965 vim_cv_memcpy_handles_overlap=yes
2967 vim_cv_memcpy_handles_overlap=no
2969 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
2973 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
2974 AC_DEFINE(USEMEMCPY)
2980 dnl Check for multibyte locale functions
2981 dnl Find out if _Xsetlocale() is supported by libX11.
2982 dnl Check if X_LOCALE should be defined.
2984 if test "$enable_multibyte" = "yes"; then
2986 ldflags_save=$LDFLAGS
2987 if test "x$x_includes" != "xNONE" ; then
2988 CFLAGS="$CFLAGS -I$x_includes"
2989 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
2990 AC_MSG_CHECKING(whether X_LOCALE needed)
2991 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
2992 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
2993 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
2997 LDFLAGS=$ldflags_save
3000 dnl Link with xpg4, it is said to make Korean locale working
3001 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3003 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3004 dnl --version for Exuberant ctags (preferred)
3005 dnl Add --fields=+S to get function signatures for omni completion.
3006 dnl -t for typedefs (many ctags have this)
3007 dnl -s for static functions (Elvis ctags only?)
3008 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3009 dnl -i+m to test for older Exuberant ctags
3010 AC_MSG_CHECKING(how to create tags)
3011 test -f tags && mv tags tags.save
3012 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3013 TAGPRG="ctags -I INIT+ --fields=+S"
3016 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3017 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3018 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3019 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3020 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3021 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3022 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3024 test -f tags.save && mv tags.save tags
3025 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3027 dnl Check how we can run man with a section number
3028 AC_MSG_CHECKING(how to run man with a section nr)
3030 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3031 AC_MSG_RESULT($MANDEF)
3032 if test "$MANDEF" = "man -s"; then
3036 dnl Check if gettext() is working and if it needs -lintl
3037 AC_MSG_CHECKING(--disable-nls argument)
3039 [ --disable-nls Don't support NLS (gettext()).], ,
3042 if test "$enable_nls" = "yes"; then
3045 INSTALL_LANGS=install-languages
3046 AC_SUBST(INSTALL_LANGS)
3047 INSTALL_TOOL_LANGS=install-tool-languages
3048 AC_SUBST(INSTALL_TOOL_LANGS)
3050 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3051 AC_MSG_CHECKING([for NLS])
3052 if test -f po/Makefile; then
3054 if test -n "$MSGFMT"; then
3056 [#include <libintl.h>],
3058 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3062 [#include <libintl.h>],
3064 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3065 AC_MSG_RESULT([gettext() doesn't work]);
3068 AC_MSG_RESULT([msgfmt not found - disabled]);
3070 if test $have_gettext = "yes"; then
3071 AC_DEFINE(HAVE_GETTEXT)
3074 dnl this was added in GNU gettext 0.10.36
3075 AC_CHECK_FUNCS(bind_textdomain_codeset)
3076 dnl _nl_msg_cat_cntr is required for GNU gettext
3077 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3079 [#include <libintl.h>
3080 extern int _nl_msg_cat_cntr;],
3081 [++_nl_msg_cat_cntr;],
3082 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3083 AC_MSG_RESULT([no]))
3086 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3092 dnl Check for dynamic linking loader
3093 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3094 if test x${DLL} = xdlfcn.h; then
3095 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3096 AC_MSG_CHECKING([for dlopen()])
3098 extern void* dlopen();
3102 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3104 AC_MSG_CHECKING([for dlopen() in -ldl])
3108 extern void* dlopen();
3112 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3115 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3117 AC_MSG_CHECKING([for dlsym()])
3119 extern void* dlsym();
3123 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3125 AC_MSG_CHECKING([for dlsym() in -ldl])
3129 extern void* dlsym();
3133 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3136 elif test x${DLL} = xdl.h; then
3137 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3138 AC_MSG_CHECKING([for shl_load()])
3140 extern void* shl_load();
3144 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3146 AC_MSG_CHECKING([for shl_load() in -ldld])
3150 extern void* shl_load();
3154 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3158 AC_CHECK_HEADERS(setjmp.h)
3160 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3161 dnl -ldl must come after DynaLoader.a
3162 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3163 LIBS=`echo $LIBS | sed s/-ldl//`
3164 PERL_LIBS="$PERL_LIBS -ldl"
3168 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3169 && test "x$GUITYPE" != "xCARBONGUI"; then
3170 AC_MSG_CHECKING(whether we need -framework Carbon)
3171 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3172 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3173 || test "x$features" = "xhuge"; then
3174 LIBS="$LIBS -framework Carbon"
3180 if test "x$MACARCH" = "xboth"; then
3181 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3184 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3185 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3186 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3187 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3188 dnl the number before the version number.
3189 DEPEND_CFLAGS_FILTER=
3190 if test "$GCC" = yes; then
3191 AC_MSG_CHECKING(for GCC 3 or later)
3192 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3193 if test "$gccmajor" -gt "2"; then
3194 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3199 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3200 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3201 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3202 if test "$gccmajor" -gt "3"; then
3203 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
3209 AC_SUBST(DEPEND_CFLAGS_FILTER)
3211 dnl write output files
3212 AC_OUTPUT(auto/config.mk:config.mk.in)
3214 dnl vim: set sw=2 tw=78 fo+=l: