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 dnl different versions of MzScheme differ in command line processing
434 dnl use universal approach
435 echo "(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))))" > mzdirs.scm
439 dnl Remove a trailing slash
440 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
448 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
449 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
450 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
451 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
455 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
456 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
458 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
461 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
462 if test -f /usr/include/plt/scheme.h; then
464 SCHEME_INC=/usr/include/plt
467 vi_cv_path_mzscheme_pfx=
473 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
474 if test "x$MACOSX" = "xyes"; then
475 MZSCHEME_LIBS="-framework PLT_MzScheme"
476 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
477 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
478 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
479 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
480 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
482 dnl Using shared objects
483 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
484 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
485 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
487 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
489 if test "$GCC" = yes; then
490 dnl Make Vim remember the path to the library. For when it's not in
491 dnl $LD_LIBRARY_PATH.
492 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
493 elif test "`(uname) 2>/dev/null`" = SunOS &&
494 uname -r | grep '^5' >/dev/null; then
495 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
498 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
499 SCHEME_COLLECTS=lib/plt/
501 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
502 dnl need to generate bytecode for MzScheme base
503 MZSCHEME_EXTRA="mzscheme_base.c"
504 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
505 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
507 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
508 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
509 MZSCHEME_SRC="if_mzsch.c"
510 MZSCHEME_OBJ="objects/if_mzsch.o"
511 MZSCHEME_PRO="if_mzsch.pro"
512 AC_DEFINE(FEAT_MZSCHEME)
514 AC_SUBST(MZSCHEME_SRC)
515 AC_SUBST(MZSCHEME_OBJ)
516 AC_SUBST(MZSCHEME_PRO)
517 AC_SUBST(MZSCHEME_LIBS)
518 AC_SUBST(MZSCHEME_CFLAGS)
519 AC_SUBST(MZSCHEME_EXTRA)
520 AC_SUBST(MZSCHEME_MZC)
524 AC_MSG_CHECKING(--enable-perlinterp argument)
525 AC_ARG_ENABLE(perlinterp,
526 [ --enable-perlinterp Include Perl interpreter.], ,
527 [enable_perlinterp="no"])
528 AC_MSG_RESULT($enable_perlinterp)
529 if test "$enable_perlinterp" = "yes"; then
530 AC_SUBST(vi_cv_path_perl)
531 AC_PATH_PROG(vi_cv_path_perl, perl)
532 if test "X$vi_cv_path_perl" != "X"; then
533 AC_MSG_CHECKING(Perl version)
534 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
535 eval `$vi_cv_path_perl -V:usethreads`
536 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
539 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
540 eval `$vi_cv_path_perl -V:use5005threads`
541 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
545 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
549 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
552 if test $badthreads = no; then
554 eval `$vi_cv_path_perl -V:shrpenv`
555 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
558 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
559 AC_SUBST(vi_cv_perllib)
560 dnl Remove "-fno-something", it breaks using cproto.
561 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
562 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
563 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
564 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
565 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
566 -e 's/-bE:perl.exp//' -e 's/-lc //'`
567 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
568 dnl a test in configure may fail because of that.
569 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
570 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
572 dnl check that compiling a simple program still works with the flags
574 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
577 ldflags_save=$LDFLAGS
578 CFLAGS="$CFLAGS $perlcppflags"
579 LIBS="$LIBS $perllibs"
580 LDFLAGS="$perlldflags $LDFLAGS"
582 AC_MSG_RESULT(yes); perl_ok=yes,
583 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
586 LDFLAGS=$ldflags_save
587 if test $perl_ok = yes; then
588 if test "X$perlcppflags" != "X"; then
589 dnl remove -pipe and -Wxxx, it confuses cproto
590 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
592 if test "X$perlldflags" != "X"; then
593 LDFLAGS="$perlldflags $LDFLAGS"
596 PERL_SRC="auto/if_perl.c if_perlsfio.c"
597 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
598 PERL_PRO="if_perl.pro if_perlsfio.pro"
603 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
607 if test "x$MACOSX" = "xyes"; then
608 dnl Mac OS X 10.2 or later
609 dir=/System/Library/Perl
610 darwindir=$dir/darwin
611 if test -d $darwindir; then
615 dir=/System/Library/Perl/5.8.1
616 darwindir=$dir/darwin-thread-multi-2level
617 if test -d $darwindir; then
621 if test -n "$PERL"; then
623 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
624 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
625 PERL_LIBS="-L$darwindir/CORE -lperl"
633 AC_SUBST(PERL_CFLAGS)
636 AC_MSG_CHECKING(--enable-pythoninterp argument)
637 AC_ARG_ENABLE(pythoninterp,
638 [ --enable-pythoninterp Include Python interpreter.], ,
639 [enable_pythoninterp="no"])
640 AC_MSG_RESULT($enable_pythoninterp)
641 if test "$enable_pythoninterp" = "yes"; then
642 dnl -- find the python executable
643 AC_PATH_PROG(vi_cv_path_python, python)
644 if test "X$vi_cv_path_python" != "X"; then
646 dnl -- get its version number
647 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
648 [[vi_cv_var_python_version=`
649 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
652 dnl -- it must be at least version 1.4
653 AC_MSG_CHECKING(Python is 1.4 or better)
654 if ${vi_cv_path_python} -c \
655 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
659 dnl -- find where python thinks it was installed
660 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
661 [ vi_cv_path_python_pfx=`
662 ${vi_cv_path_python} -c \
663 "import sys; print sys.prefix"` ])
665 dnl -- and where it thinks it runs
666 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
667 [ vi_cv_path_python_epfx=`
668 ${vi_cv_path_python} -c \
669 "import sys; print sys.exec_prefix"` ])
671 dnl -- python's internal library path
673 AC_CACHE_VAL(vi_cv_path_pythonpath,
674 [ vi_cv_path_pythonpath=`
676 ${vi_cv_path_python} -c \
677 "import sys, string; print string.join(sys.path,':')"` ])
679 dnl -- where the Python implementation library archives are
681 AC_ARG_WITH(python-config-dir,
682 [ --with-python-config-dir=PATH Python's config directory],
683 [ vi_cv_path_python_conf="${withval}" ] )
685 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
687 vi_cv_path_python_conf=
688 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
689 for subdir in lib64 lib share; do
690 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
691 if test -d "$d" && test -f "$d/config.c"; then
692 vi_cv_path_python_conf="$d"
698 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
700 if test "X$PYTHON_CONFDIR" = "X"; then
701 AC_MSG_RESULT([can't find it!])
704 dnl -- we need to examine Python's config/Makefile too
705 dnl see what the interpreter is built from
706 AC_CACHE_VAL(vi_cv_path_python_plibs,
709 tmp_mkf="$pwd/config-PyMake$$"
710 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
712 @echo "python_MODLIBS='$(MODLIBS)'"
713 @echo "python_LIBS='$(LIBS)'"
714 @echo "python_SYSLIBS='$(SYSLIBS)'"
715 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
717 dnl -- delete the lines from make about Entering/Leaving directory
718 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
719 rm -f -- "${tmp_mkf}"
720 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
721 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
722 vi_cv_path_python_plibs="-framework Python"
724 if test "${vi_cv_var_python_version}" = "1.4"; then
725 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
727 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
729 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
730 dnl remove -ltermcap, it can conflict with an earlier -lncurses
731 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
735 PYTHON_LIBS="${vi_cv_path_python_plibs}"
736 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
737 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
739 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}"
741 PYTHON_SRC="if_python.c"
742 dnl For Mac OSX 10.2 config.o is included in the Python library.
743 if test "x$MACOSX" = "xyes"; then
744 PYTHON_OBJ="objects/if_python.o"
746 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
748 if test "${vi_cv_var_python_version}" = "1.4"; then
749 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
751 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
753 dnl On FreeBSD linking with "-pthread" is required to use threads.
754 dnl _THREAD_SAFE must be used for compiling then.
755 dnl The "-pthread" is added to $LIBS, so that the following check for
756 dnl sigaltstack() will look in libc_r (it's there in libc!).
757 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
758 dnl will then define target-specific defines, e.g., -D_REENTRANT.
759 dnl Don't do this for Mac OSX, -pthread will generate a warning.
760 AC_MSG_CHECKING([if -pthread should be used])
763 dnl if test "x$MACOSX" != "xyes"; then
764 if test "`(uname) 2>/dev/null`" != Darwin; then
765 test "$GCC" = yes && threadsafe_flag="-pthread"
766 if test "`(uname) 2>/dev/null`" = FreeBSD; then
767 threadsafe_flag="-D_THREAD_SAFE"
768 thread_lib="-pthread"
772 if test -n "$threadsafe_flag"; then
774 CFLAGS="$CFLAGS $threadsafe_flag"
775 LIBS="$LIBS $thread_lib"
777 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
778 AC_MSG_RESULT(no); LIBS=$libs_save_old
785 dnl check that compiling a simple program still works with the flags
786 dnl added for Python.
787 AC_MSG_CHECKING([if compile and link flags for Python are sane])
790 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
791 LIBS="$LIBS $PYTHON_LIBS"
793 AC_MSG_RESULT(yes); python_ok=yes,
794 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
797 if test $python_ok = yes; then
798 AC_DEFINE(FEAT_PYTHON)
809 AC_MSG_RESULT(too old)
813 AC_SUBST(PYTHON_CONFDIR)
814 AC_SUBST(PYTHON_LIBS)
815 AC_SUBST(PYTHON_GETPATH_CFLAGS)
816 AC_SUBST(PYTHON_CFLAGS)
820 AC_MSG_CHECKING(--enable-tclinterp argument)
821 AC_ARG_ENABLE(tclinterp,
822 [ --enable-tclinterp Include Tcl interpreter.], ,
823 [enable_tclinterp="no"])
824 AC_MSG_RESULT($enable_tclinterp)
826 if test "$enable_tclinterp" = "yes"; then
828 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
829 AC_MSG_CHECKING(--with-tclsh argument)
830 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
831 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
832 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
833 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
834 AC_SUBST(vi_cv_path_tcl)
836 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
837 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
838 tclsh_name="tclsh8.4"
839 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
841 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
842 tclsh_name="tclsh8.2"
843 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
845 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
846 tclsh_name="tclsh8.0"
847 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
849 dnl still didn't find it, try without version number
850 if test "X$vi_cv_path_tcl" = "X"; then
852 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
854 if test "X$vi_cv_path_tcl" != "X"; then
855 AC_MSG_CHECKING(Tcl version)
856 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
857 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
858 AC_MSG_RESULT($tclver - OK);
859 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 -`
861 AC_MSG_CHECKING(for location of Tcl include)
862 if test "x$MACOSX" != "xyes"; then
863 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
865 dnl For Mac OS X 10.3, use the OS-provided framework location
866 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
869 for try in $tclinc; do
870 if test -f "$try/tcl.h"; then
871 AC_MSG_RESULT($try/tcl.h)
876 if test -z "$TCL_INC"; then
877 AC_MSG_RESULT(<not found>)
880 if test -z "$SKIP_TCL"; then
881 AC_MSG_CHECKING(for location of tclConfig.sh script)
882 if test "x$MACOSX" != "xyes"; then
883 tclcnf=`echo $tclinc | sed s/include/lib/g`
884 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
886 dnl For Mac OS X 10.3, use the OS-provided framework location
887 tclcnf="/System/Library/Frameworks/Tcl.framework"
889 for try in $tclcnf; do
890 if test -f $try/tclConfig.sh; then
891 AC_MSG_RESULT($try/tclConfig.sh)
893 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
894 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
895 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
896 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
897 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'`
901 if test -z "$TCL_LIBS"; then
902 AC_MSG_RESULT(<not found>)
903 AC_MSG_CHECKING(for Tcl library by myself)
904 tcllib=`echo $tclinc | sed s/include/lib/g`
905 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
906 for ext in .so .a ; do
907 for ver in "" $tclver ; do
908 for try in $tcllib ; do
910 if test -f $try/lib$trylib ; then
911 AC_MSG_RESULT($try/lib$trylib)
912 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
913 if test "`(uname) 2>/dev/null`" = SunOS &&
914 uname -r | grep '^5' >/dev/null; then
915 TCL_LIBS="$TCL_LIBS -R $try"
922 if test -z "$TCL_LIBS"; then
923 AC_MSG_RESULT(<not found>)
927 if test -z "$SKIP_TCL"; then
930 TCL_OBJ=objects/if_tcl.o
932 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
936 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
946 AC_MSG_CHECKING(--enable-rubyinterp argument)
947 AC_ARG_ENABLE(rubyinterp,
948 [ --enable-rubyinterp Include Ruby interpreter.], ,
949 [enable_rubyinterp="no"])
950 AC_MSG_RESULT($enable_rubyinterp)
951 if test "$enable_rubyinterp" = "yes"; then
952 AC_MSG_CHECKING(--with-ruby-command argument)
953 AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
954 RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
955 RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
956 AC_SUBST(vi_cv_path_ruby)
957 AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
958 if test "X$vi_cv_path_ruby" != "X"; then
959 AC_MSG_CHECKING(Ruby version)
960 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
962 AC_MSG_CHECKING(Ruby header files)
963 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
964 if test "X$rubyhdrdir" != "X"; then
965 AC_MSG_RESULT($rubyhdrdir)
966 RUBY_CFLAGS="-I$rubyhdrdir"
967 rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
968 if test -d "$rubyhdrdir/$rubyarch"; then
969 RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
971 rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
972 RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
973 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
974 if test "X$rubylibs" != "X"; then
975 RUBY_LIBS="$rubylibs"
977 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
978 if test -f "$rubyhdrdir/$librubyarg"; then
979 librubyarg="$rubyhdrdir/$librubyarg"
981 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
982 if test -f "$rubylibdir/$librubyarg"; then
983 librubyarg="$rubylibdir/$librubyarg"
984 elif test "$librubyarg" = "libruby.a"; then
985 dnl required on Mac OS 10.3 where libruby.a doesn't exist
988 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
992 if test "X$librubyarg" != "X"; then
993 RUBY_LIBS="$librubyarg $RUBY_LIBS"
995 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
996 if test "X$rubyldflags" != "X"; then
997 dnl Ruby on Mac OS X 10.5 adds "-arch" flags but these should only
998 dnl be included if requested by passing --with-mac-arch to
999 dnl configure, so strip these flags first (if present)
1000 rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//'`
1001 if test "X$rubyldflags" != "X"; then
1002 LDFLAGS="$rubyldflags $LDFLAGS"
1005 RUBY_SRC="if_ruby.c"
1006 RUBY_OBJ="objects/if_ruby.o"
1007 RUBY_PRO="if_ruby.pro"
1008 AC_DEFINE(FEAT_RUBY)
1010 AC_MSG_RESULT(not found; disabling Ruby)
1013 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1020 AC_SUBST(RUBY_CFLAGS)
1023 AC_MSG_CHECKING(--enable-cscope argument)
1024 AC_ARG_ENABLE(cscope,
1025 [ --enable-cscope Include cscope interface.], ,
1026 [enable_cscope="no"])
1027 AC_MSG_RESULT($enable_cscope)
1028 if test "$enable_cscope" = "yes"; then
1029 AC_DEFINE(FEAT_CSCOPE)
1032 AC_MSG_CHECKING(--enable-workshop argument)
1033 AC_ARG_ENABLE(workshop,
1034 [ --enable-workshop Include Sun Visual Workshop support.], ,
1035 [enable_workshop="no"])
1036 AC_MSG_RESULT($enable_workshop)
1037 if test "$enable_workshop" = "yes"; then
1038 AC_DEFINE(FEAT_SUN_WORKSHOP)
1039 WORKSHOP_SRC="workshop.c integration.c"
1040 AC_SUBST(WORKSHOP_SRC)
1041 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1042 AC_SUBST(WORKSHOP_OBJ)
1043 if test "${enable_gui-xxx}" = xxx; then
1048 AC_MSG_CHECKING(--disable-netbeans argument)
1049 AC_ARG_ENABLE(netbeans,
1050 [ --disable-netbeans Disable NetBeans integration support.],
1051 , [enable_netbeans="yes"])
1052 if test "$enable_netbeans" = "yes"; then
1054 dnl On Solaris we need the socket and nsl library.
1055 AC_CHECK_LIB(socket, socket)
1056 AC_CHECK_LIB(nsl, gethostbyname)
1057 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1064 #include <netinet/in.h>
1066 #include <sys/types.h>
1067 #include <sys/socket.h>
1068 /* Check bitfields */
1070 unsigned int initDone:1;
1074 /* Check creating a socket. */
1075 struct sockaddr_in server;
1076 (void)socket(AF_INET, SOCK_STREAM, 0);
1078 (void)gethostbyname("microsoft.com");
1079 if (errno == ECONNREFUSED)
1080 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1083 AC_MSG_RESULT(no); enable_netbeans="no")
1087 if test "$enable_netbeans" = "yes"; then
1088 AC_DEFINE(FEAT_NETBEANS_INTG)
1089 NETBEANS_SRC="netbeans.c"
1090 AC_SUBST(NETBEANS_SRC)
1091 NETBEANS_OBJ="objects/netbeans.o"
1092 AC_SUBST(NETBEANS_OBJ)
1095 AC_MSG_CHECKING(--enable-sniff argument)
1096 AC_ARG_ENABLE(sniff,
1097 [ --enable-sniff Include Sniff interface.], ,
1098 [enable_sniff="no"])
1099 AC_MSG_RESULT($enable_sniff)
1100 if test "$enable_sniff" = "yes"; then
1101 AC_DEFINE(FEAT_SNIFF)
1102 SNIFF_SRC="if_sniff.c"
1104 SNIFF_OBJ="objects/if_sniff.o"
1108 AC_MSG_CHECKING(--enable-multibyte argument)
1109 AC_ARG_ENABLE(multibyte,
1110 [ --enable-multibyte Include multibyte editing support.], ,
1111 [enable_multibyte="no"])
1112 AC_MSG_RESULT($enable_multibyte)
1113 if test "$enable_multibyte" = "yes"; then
1114 AC_DEFINE(FEAT_MBYTE)
1117 AC_MSG_CHECKING(--enable-hangulinput argument)
1118 AC_ARG_ENABLE(hangulinput,
1119 [ --enable-hangulinput Include Hangul input support.], ,
1120 [enable_hangulinput="no"])
1121 AC_MSG_RESULT($enable_hangulinput)
1123 AC_MSG_CHECKING(--enable-xim argument)
1125 [ --enable-xim Include XIM input support.],
1126 AC_MSG_RESULT($enable_xim),
1127 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1128 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1130 AC_MSG_CHECKING(--enable-fontset argument)
1131 AC_ARG_ENABLE(fontset,
1132 [ --enable-fontset Include X fontset output support.], ,
1133 [enable_fontset="no"])
1134 AC_MSG_RESULT($enable_fontset)
1135 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1137 test -z "$with_x" && with_x=yes
1138 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1139 if test "$with_x" = no; then
1140 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1142 dnl Do this check early, so that its failure can override user requests.
1144 AC_PATH_PROG(xmkmfpath, xmkmf)
1148 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1149 dnl be compiled with a special option.
1150 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1151 if test "$OS390Unix" = "yes"; then
1152 CFLAGS="$CFLAGS -W c,dll"
1153 LDFLAGS="$LDFLAGS -W l,dll"
1154 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1157 dnl On my HPUX system the X include dir is found, but the lib dir not.
1158 dnl This is a desparate try to fix this.
1160 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1161 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1162 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1163 X_LIBS="$X_LIBS -L$x_libraries"
1164 if test "`(uname) 2>/dev/null`" = SunOS &&
1165 uname -r | grep '^5' >/dev/null; then
1166 X_LIBS="$X_LIBS -R $x_libraries"
1170 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1171 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1172 AC_MSG_RESULT(Corrected X includes to $x_includes)
1173 X_CFLAGS="$X_CFLAGS -I$x_includes"
1176 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1177 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1178 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1179 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1180 dnl Same for "-R/usr/lib ".
1181 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1184 dnl Check if the X11 header files are correctly installed. On some systems
1185 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1187 AC_MSG_CHECKING(if X11 header files can be found)
1189 CFLAGS="$CFLAGS $X_CFLAGS"
1190 AC_TRY_COMPILE([#include <X11/Xlib.h>
1191 #include <X11/Intrinsic.h>], ,
1193 AC_MSG_RESULT(no); no_x=yes)
1196 if test "${no_x-no}" = yes; then
1203 ac_save_LDFLAGS="$LDFLAGS"
1204 LDFLAGS="-L$x_libraries $LDFLAGS"
1206 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1207 dnl For HP-UX 10.20 it must be before -lSM -lICE
1208 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1209 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1211 dnl Some systems need -lnsl -lsocket when testing for ICE.
1212 dnl The check above doesn't do this, try here (again). Also needed to get
1213 dnl them after Xdmcp. link.sh will remove them when not needed.
1214 dnl Check for other function than above to avoid the cached value
1215 AC_CHECK_LIB(ICE, IceOpenConnection,
1216 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1218 dnl Check for -lXpm (needed for some versions of Motif)
1219 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1220 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1221 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1223 dnl Check that the X11 header files don't use implicit declarations
1224 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1226 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1227 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1229 CFLAGS="$CFLAGS -Wno-implicit-int"
1230 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1231 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1232 AC_MSG_RESULT(test failed)
1237 LDFLAGS="$ac_save_LDFLAGS"
1239 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1240 AC_CACHE_VAL(ac_cv_small_wchar_t,
1242 #include <X11/Xlib.h>
1244 # include <stdlib.h>
1245 # include <stddef.h>
1249 if (sizeof(wchar_t) <= 2)
1253 ac_cv_small_wchar_t="no",
1254 ac_cv_small_wchar_t="yes",
1255 AC_MSG_ERROR(failed to compile test program))])
1256 AC_MSG_RESULT($ac_cv_small_wchar_t)
1257 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1258 AC_DEFINE(SMALL_WCHAR_T)
1264 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1266 AC_MSG_CHECKING(--enable-gui argument)
1268 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
1270 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1271 dnl Do not use character classes for portability with old tools.
1272 enable_gui_canon=`echo "_$enable_gui" | \
1273 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1275 dnl Skip everything by default.
1286 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1288 case "$enable_gui_canon" in
1289 no) AC_MSG_RESULT(no GUI support)
1291 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1292 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1293 photon) AC_MSG_RESULT(Photon GUI support) ;;
1294 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1298 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1300 case "$enable_gui_canon" in
1301 no) AC_MSG_RESULT(no GUI support)
1303 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1304 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1305 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1306 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1312 case "$enable_gui_canon" in
1313 no|none) AC_MSG_RESULT(no GUI support) ;;
1314 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1322 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1324 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1327 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1330 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1334 motif) AC_MSG_RESULT(Motif GUI support)
1336 athena) AC_MSG_RESULT(Athena GUI support)
1338 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1340 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1345 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1346 AC_MSG_CHECKING(whether or not to look for GTK)
1347 AC_ARG_ENABLE(gtk-check,
1348 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1349 , enable_gtk_check="yes")
1350 AC_MSG_RESULT($enable_gtk_check)
1351 if test "x$enable_gtk_check" = "xno"; then
1357 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1358 -a "$enable_gui_canon" != "gnome2"; then
1359 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1360 AC_ARG_ENABLE(gtk2-check,
1361 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1362 , enable_gtk2_check="yes")
1363 AC_MSG_RESULT($enable_gtk2_check)
1364 if test "x$enable_gtk2_check" = "xno"; then
1369 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1370 -a "$enable_gui_canon" != "gnome2"; then
1371 AC_MSG_CHECKING(whether or not to look for GNOME)
1372 AC_ARG_ENABLE(gnome-check,
1373 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1374 , enable_gnome_check="no")
1375 AC_MSG_RESULT($enable_gnome_check)
1376 if test "x$enable_gnome_check" = "xno"; then
1381 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1382 AC_MSG_CHECKING(whether or not to look for Motif)
1383 AC_ARG_ENABLE(motif-check,
1384 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1385 , enable_motif_check="yes")
1386 AC_MSG_RESULT($enable_motif_check)
1387 if test "x$enable_motif_check" = "xno"; then
1392 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1393 AC_MSG_CHECKING(whether or not to look for Athena)
1394 AC_ARG_ENABLE(athena-check,
1395 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1396 , enable_athena_check="yes")
1397 AC_MSG_RESULT($enable_athena_check)
1398 if test "x$enable_athena_check" = "xno"; then
1403 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1404 AC_MSG_CHECKING(whether or not to look for neXtaw)
1405 AC_ARG_ENABLE(nextaw-check,
1406 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1407 , enable_nextaw_check="yes")
1408 AC_MSG_RESULT($enable_nextaw_check);
1409 if test "x$enable_nextaw_check" = "xno"; then
1414 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1415 AC_MSG_CHECKING(whether or not to look for Carbon)
1416 AC_ARG_ENABLE(carbon-check,
1417 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1418 , enable_carbon_check="yes")
1419 AC_MSG_RESULT($enable_carbon_check);
1420 if test "x$enable_carbon_check" = "xno"; then
1426 if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1427 AC_MSG_CHECKING(for Carbon GUI)
1428 dnl already did the check, just give the message
1431 if test "$VIMNAME" = "vim"; then
1435 dnl Default install directory is not /usr/local
1436 if test x$prefix = xNONE; then
1437 prefix=/Applications
1440 dnl Sorry for the hard coded default
1441 datadir='${prefix}/Vim.app/Contents/Resources'
1443 dnl skip everything else
1455 dnl Get the cflags and libraries from the gtk-config script
1458 dnl define an autoconf function to check for a specified version of GTK, and
1459 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1461 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1462 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1464 AC_DEFUN(AM_PATH_GTK,
1466 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1468 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1469 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1471 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1472 && $PKG_CONFIG --exists gtk+-2.0; then
1474 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1475 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1476 dnl something like that.
1477 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1478 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1479 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1480 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1481 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1482 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1483 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1484 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1485 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1487 elif test "X$GTK_CONFIG" != "Xno"; then
1489 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1491 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1492 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1493 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1494 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1495 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1496 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1497 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1503 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1505 ac_save_CFLAGS="$CFLAGS"
1506 ac_save_LIBS="$LIBS"
1507 CFLAGS="$CFLAGS $GTK_CFLAGS"
1508 LIBS="$LIBS $GTK_LIBS"
1511 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1512 dnl checks the results of gtk-config to some extent
1516 #include <gtk/gtk.h>
1519 # include <stdlib.h>
1520 # include <stddef.h>
1526 int major, minor, micro;
1529 system ("touch conf.gtktest");
1531 /* HP/UX 9 (%@#!) writes to sscanf strings */
1532 tmp_version = g_strdup("$min_gtk_version");
1533 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1534 printf("%s, bad version string\n", "$min_gtk_version");
1538 if ((gtk_major_version > major) ||
1539 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1540 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1541 (gtk_micro_version >= micro)))
1547 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1548 CFLAGS="$ac_save_CFLAGS"
1549 LIBS="$ac_save_LIBS"
1552 if test "x$no_gtk" = x ; then
1553 if test "x$enable_gtktest" = "xyes"; then
1554 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1556 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1558 ifelse([$2], , :, [$2])
1564 ifelse([$3], , :, [$3])
1571 ifelse([$3], , :, [$3])
1573 AC_SUBST(GTK_CFLAGS)
1578 dnl ---------------------------------------------------------------------------
1580 dnl ---------------------------------------------------------------------------
1581 AC_DEFUN([GNOME_INIT_HOOK],
1583 AC_SUBST(GNOME_LIBS)
1584 AC_SUBST(GNOME_LIBDIR)
1585 AC_SUBST(GNOME_INCLUDEDIR)
1587 AC_ARG_WITH(gnome-includes,
1588 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1589 [CFLAGS="$CFLAGS -I$withval"]
1592 AC_ARG_WITH(gnome-libs,
1593 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1594 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1598 [ --with-gnome Specify prefix for GNOME files],
1599 if test x$withval = xyes; then
1601 ifelse([$1], [], :, [$1])
1603 if test "x$withval" = xno; then
1607 LDFLAGS="$LDFLAGS -L$withval/lib"
1608 CFLAGS="$CFLAGS -I$withval/include"
1609 gnome_prefix=$withval/lib
1614 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1616 AC_MSG_CHECKING(for libgnomeui-2.0)
1617 if $PKG_CONFIG --exists libgnomeui-2.0; then
1619 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1620 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1621 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1623 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1624 dnl This might not be the right way but it works for me...
1625 AC_MSG_CHECKING(for FreeBSD)
1626 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1627 AC_MSG_RESULT(yes, adding -pthread)
1628 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1629 GNOME_LIBS="$GNOME_LIBS -pthread"
1635 AC_MSG_RESULT(not found)
1636 if test "x$2" = xfail; then
1637 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1641 elif test "x$want_gnome" = xyes; then
1643 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1644 if test "$GNOME_CONFIG" = "no"; then
1645 no_gnome_config="yes"
1647 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1648 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1650 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1651 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1652 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1656 no_gnome_config="yes"
1660 if test x$exec_prefix = xNONE; then
1661 if test x$prefix = xNONE; then
1662 gnome_prefix=$ac_default_prefix/lib
1664 gnome_prefix=$prefix/lib
1667 gnome_prefix=`eval echo \`echo $libdir\``
1670 if test "$no_gnome_config" = "yes"; then
1671 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1672 if test -f $gnome_prefix/gnomeConf.sh; then
1673 AC_MSG_RESULT(found)
1674 echo "loading gnome configuration from" \
1675 "$gnome_prefix/gnomeConf.sh"
1676 . $gnome_prefix/gnomeConf.sh
1679 AC_MSG_RESULT(not found)
1680 if test x$2 = xfail; then
1681 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1689 AC_DEFUN([GNOME_INIT],[
1690 GNOME_INIT_HOOK([],fail)
1694 dnl ---------------------------------------------------------------------------
1695 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1696 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1697 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1698 dnl ---------------------------------------------------------------------------
1699 if test -z "$SKIP_GTK"; then
1701 AC_MSG_CHECKING(--with-gtk-prefix argument)
1702 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1703 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1704 gtk_config_prefix=""; AC_MSG_RESULT(no))
1706 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1707 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1708 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1709 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1711 AC_MSG_CHECKING(--disable-gtktest argument)
1712 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1713 , enable_gtktest=yes)
1714 if test "x$enable_gtktest" = "xyes" ; then
1715 AC_MSG_RESULT(gtk test enabled)
1717 AC_MSG_RESULT(gtk test disabled)
1720 if test "x$gtk_config_prefix" != "x" ; then
1721 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1722 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1724 if test "x$gtk_config_exec_prefix" != "x" ; then
1725 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1726 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1728 if test "X$GTK_CONFIG" = "X"; then
1729 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1730 if test "X$GTK_CONFIG" = "Xno"; then
1731 dnl Some distributions call it gtk12-config, annoying!
1732 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1733 GTK_CONFIG="$GTK12_CONFIG"
1736 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1738 if test "X$PKG_CONFIG" = "X"; then
1739 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1742 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1743 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1744 dnl problems (bold fonts, --remote doesn't work).
1745 if test "X$SKIP_GTK2" != "XYES"; then
1747 [GUI_LIB_LOC="$GTK_LIBDIR"
1748 GTK_LIBNAME="$GTK_LIBS"
1749 GUI_INC_LOC="$GTK_CFLAGS"], )
1750 if test "x$GTK_CFLAGS" != "x"; then
1755 AC_SUBST(GTK_LIBNAME)
1759 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1760 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1761 dnl were test versions.
1762 if test "x$GUITYPE" != "xGTK"; then
1765 [GTK_LIBNAME="$GTK_LIBS"
1766 GUI_INC_LOC="$GTK_CFLAGS"], )
1767 if test "x$GTK_CFLAGS" != "x"; then
1772 AC_SUBST(GTK_LIBNAME)
1776 dnl Give a warning if GTK is older than 1.2.3
1777 if test "x$GUITYPE" = "xGTK"; then
1778 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1779 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1780 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1783 if test "0$gtk_major_version" -ge 2; then
1784 AC_DEFINE(HAVE_GTK2)
1785 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1786 || test "0$gtk_minor_version" -ge 2 \
1787 || test "0$gtk_major_version" -gt 2; then
1788 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1792 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1794 if test -z "$SKIP_GNOME"; then
1796 GNOME_INIT_HOOK([have_gnome=yes])
1797 if test x$have_gnome = xyes ; then
1798 AC_DEFINE(FEAT_GUI_GNOME)
1799 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1800 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1809 dnl Check for Motif include files location.
1810 dnl The LAST one found is used, this makes the highest version to be used,
1811 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1813 if test -z "$SKIP_MOTIF"; then
1814 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"
1815 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1816 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1818 AC_MSG_CHECKING(for location of Motif GUI includes)
1819 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1821 for try in $gui_includes; do
1822 if test -f "$try/Xm/Xm.h"; then
1826 if test -n "$GUI_INC_LOC"; then
1827 if test "$GUI_INC_LOC" = /usr/include; then
1829 AC_MSG_RESULT(in default path)
1831 AC_MSG_RESULT($GUI_INC_LOC)
1834 AC_MSG_RESULT(<not found>)
1839 dnl Check for Motif library files location. In the same order as the include
1840 dnl files, to avoid a mixup if several versions are present
1842 if test -z "$SKIP_MOTIF"; then
1843 AC_MSG_CHECKING(--with-motif-lib argument)
1844 AC_ARG_WITH(motif-lib,
1845 [ --with-motif-lib=STRING Library for Motif ],
1846 [ MOTIF_LIBNAME="${withval}" ] )
1848 if test -n "$MOTIF_LIBNAME"; then
1849 AC_MSG_RESULT($MOTIF_LIBNAME)
1854 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1855 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1857 AC_MSG_CHECKING(for location of Motif GUI libs)
1858 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"
1860 for try in $gui_libs; do
1861 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1862 if test -f "$libtry"; then
1867 if test -n "$GUI_LIB_LOC"; then
1868 dnl Remove /usr/lib, it causes trouble on some systems
1869 if test "$GUI_LIB_LOC" = /usr/lib; then
1871 AC_MSG_RESULT(in default path)
1873 if test -n "$GUI_LIB_LOC"; then
1874 AC_MSG_RESULT($GUI_LIB_LOC)
1875 if test "`(uname) 2>/dev/null`" = SunOS &&
1876 uname -r | grep '^5' >/dev/null; then
1877 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1883 AC_MSG_RESULT(<not found>)
1889 if test -z "$SKIP_MOTIF"; then
1893 AC_SUBST(MOTIF_LIBNAME)
1896 dnl Check if the Athena files can be found
1900 if test -z "$SKIP_ATHENA"; then
1901 AC_MSG_CHECKING(if Athena header files can be found)
1903 CFLAGS="$CFLAGS $X_CFLAGS"
1905 #include <X11/Intrinsic.h>
1906 #include <X11/Xaw/Paned.h>], ,
1908 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1912 if test -z "$SKIP_ATHENA"; then
1916 if test -z "$SKIP_NEXTAW"; then
1917 AC_MSG_CHECKING(if neXtaw header files can be found)
1919 CFLAGS="$CFLAGS $X_CFLAGS"
1921 #include <X11/Intrinsic.h>
1922 #include <X11/neXtaw/Paned.h>], ,
1924 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1928 if test -z "$SKIP_NEXTAW"; then
1932 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1933 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1934 dnl Avoid adding it when it twice
1935 if test -n "$GUI_INC_LOC"; then
1936 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1938 if test -n "$GUI_LIB_LOC"; then
1939 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1942 dnl Check for -lXext and then for -lXmu
1943 ldflags_save=$LDFLAGS
1944 LDFLAGS="$X_LIBS $LDFLAGS"
1945 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1946 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1947 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1948 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1949 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1950 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1951 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1952 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1953 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1954 if test -z "$SKIP_MOTIF"; then
1955 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1956 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1958 LDFLAGS=$ldflags_save
1960 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1961 AC_MSG_CHECKING(for extra X11 defines)
1964 if mkdir conftestdir; then
1966 cat > Imakefile <<'EOF'
1968 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
1970 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
1971 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
1976 if test -z "$NARROW_PROTO"; then
1979 AC_MSG_RESULT($NARROW_PROTO)
1981 AC_SUBST(NARROW_PROTO)
1984 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
1985 dnl use the X11 include path
1986 if test "$enable_xsmp" = "yes"; then
1987 cppflags_save=$CPPFLAGS
1988 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1989 AC_CHECK_HEADERS(X11/SM/SMlib.h)
1990 CPPFLAGS=$cppflags_save
1994 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
1995 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
1996 cppflags_save=$CPPFLAGS
1997 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1998 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2000 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2001 if test ! "$enable_xim" = "no"; then
2002 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2003 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2005 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2007 CPPFLAGS=$cppflags_save
2009 dnl automatically enable XIM when hangul input isn't enabled
2010 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2011 -a "x$GUITYPE" != "xNONE" ; then
2012 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2017 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2018 cppflags_save=$CPPFLAGS
2019 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2020 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2021 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2023 #include <X11/Intrinsic.h>
2024 #include <X11/Xmu/Editres.h>],
2027 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2029 CPPFLAGS=$cppflags_save
2032 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2033 if test -z "$SKIP_MOTIF"; then
2034 cppflags_save=$CPPFLAGS
2035 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2036 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2037 Xm/UnhighlightT.h Xm/Notebook.h)
2039 if test $ac_cv_header_Xm_XpmP_h = yes; then
2040 dnl Solaris uses XpmAttributes_21, very annoying.
2041 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2042 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2043 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2044 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2047 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2049 CPPFLAGS=$cppflags_save
2052 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2053 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2056 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2057 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2060 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2061 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2065 if test -z "$SKIP_PHOTON"; then
2069 AC_SUBST(GUI_INC_LOC)
2070 AC_SUBST(GUI_LIB_LOC)
2072 AC_SUBST(GUI_X_LIBS)
2074 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2075 AC_MSG_ERROR([cannot use workshop without Motif])
2078 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2079 if test "$enable_xim" = "yes"; then
2082 if test "$enable_fontset" = "yes"; then
2083 AC_DEFINE(FEAT_XFONTSET)
2087 dnl ---------------------------------------------------------------------------
2088 dnl end of GUI-checking
2089 dnl ---------------------------------------------------------------------------
2092 dnl Only really enable hangul input when GUI and XFONTSET are available
2093 if test "$enable_hangulinput" = "yes"; then
2094 if test "x$GUITYPE" = "xNONE"; then
2095 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2096 enable_hangulinput=no
2098 AC_DEFINE(FEAT_HANGULIN)
2099 HANGULIN_SRC=hangulin.c
2100 AC_SUBST(HANGULIN_SRC)
2101 HANGULIN_OBJ=objects/hangulin.o
2102 AC_SUBST(HANGULIN_OBJ)
2106 dnl Checks for libraries and include files.
2108 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2111 #include "confdefs.h"
2114 # include <stdlib.h>
2115 # include <stddef.h>
2117 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2119 vim_cv_toupper_broken=yes
2121 vim_cv_toupper_broken=no
2123 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2126 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2127 AC_DEFINE(BROKEN_TOUPPER)
2130 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2131 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2132 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2135 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2136 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2137 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2140 dnl Checks for header files.
2141 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2142 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2143 if test "$HAS_ELF" = 1; then
2144 AC_CHECK_LIB(elf, main)
2149 dnl If sys/wait.h is not found it might still exist but not be POSIX
2150 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2151 if test $ac_cv_header_sys_wait_h = no; then
2152 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2153 AC_TRY_COMPILE([#include <sys/wait.h>],
2154 [union wait xx, yy; xx = yy],
2156 AC_DEFINE(HAVE_SYS_WAIT_H)
2157 AC_DEFINE(HAVE_UNION_WAIT),
2161 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2162 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2163 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2164 sys/resource.h sys/systeminfo.h locale.h \
2165 sys/stream.h termios.h libc.h sys/statfs.h \
2166 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2167 libgen.h util/debug.h util/msg18n.h frame.h \
2168 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2170 dnl sys/ptem.h depends on sys/stream.h on Solaris
2171 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2172 [#if defined HAVE_SYS_STREAM_H
2173 # include <sys/stream.h>
2176 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2177 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2178 [#if defined HAVE_SYS_PARAM_H
2179 # include <sys/param.h>
2183 dnl pthread_np.h may exist but can only be used after including pthread.h
2184 AC_MSG_CHECKING([for pthread_np.h])
2186 #include <pthread.h>
2187 #include <pthread_np.h>],
2190 AC_DEFINE(HAVE_PTHREAD_NP_H),
2193 AC_CHECK_HEADERS(strings.h)
2194 if test "x$MACOSX" = "xyes"; then
2195 dnl The strings.h file on OS/X contains a warning and nothing useful.
2196 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2199 dnl Check if strings.h and string.h can both be included when defined.
2200 AC_MSG_CHECKING([if strings.h can be included after string.h])
2201 cppflags_save=$CPPFLAGS
2202 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2204 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2205 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2206 /* but don't do it on AIX 5.1 (Uribarri) */
2209 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2211 #ifdef HAVE_STRING_H
2212 # include <string.h>
2214 #if defined(HAVE_STRINGS_H)
2215 # include <strings.h>
2219 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2221 CPPFLAGS=$cppflags_save
2224 dnl Checks for typedefs, structures, and compiler characteristics.
2225 AC_PROG_GCC_TRADITIONAL
2234 AC_CHECK_TYPE(ino_t, long)
2235 AC_CHECK_TYPE(dev_t, unsigned)
2237 AC_MSG_CHECKING(for rlim_t)
2238 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2239 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2242 changequote(<<,>>)dnl
2243 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2246 #include <sys/types.h>
2248 # include <stdlib.h>
2249 # include <stddef.h>
2251 #ifdef HAVE_SYS_RESOURCE_H
2252 # include <sys/resource.h>
2254 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2255 AC_MSG_RESULT($ac_cv_type_rlim_t)
2257 if test $ac_cv_type_rlim_t = no; then
2258 cat >> confdefs.h <<\EOF
2259 #define rlim_t unsigned long
2263 AC_MSG_CHECKING(for stack_t)
2264 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2265 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2267 AC_EGREP_CPP(stack_t,
2269 #include <sys/types.h>
2271 # include <stdlib.h>
2272 # include <stddef.h>
2275 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2276 AC_MSG_RESULT($ac_cv_type_stack_t)
2278 if test $ac_cv_type_stack_t = no; then
2279 cat >> confdefs.h <<\EOF
2280 #define stack_t struct sigaltstack
2284 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2285 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2287 #include <sys/types.h>
2289 # include <stdlib.h>
2290 # include <stddef.h>
2293 #include "confdefs.h"
2294 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2295 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2299 AC_MSG_CHECKING(--with-tlib argument)
2300 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2301 if test -n "$with_tlib"; then
2302 AC_MSG_RESULT($with_tlib)
2303 LIBS="$LIBS -l$with_tlib"
2304 AC_MSG_CHECKING(for linking with $with_tlib library)
2305 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2306 dnl Need to check for tgetent() below.
2309 AC_MSG_RESULT([empty: automatic terminal library selection])
2310 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2311 dnl curses, because curses is much slower.
2312 dnl Newer versions of ncurses are preferred over anything.
2313 dnl Older versions of ncurses have bugs, get a new one!
2314 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2315 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2316 case "`uname -s 2>/dev/null`" in
2317 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2318 *) tlibs="ncurses termlib termcap curses";;
2320 for libname in $tlibs; do
2321 AC_CHECK_LIB(${libname}, tgetent,,)
2322 if test "x$olibs" != "x$LIBS"; then
2323 dnl It's possible that a library is found but it doesn't work
2324 dnl e.g., shared library that cannot be found
2325 dnl compile and run a test program to be sure
2327 #ifdef HAVE_TERMCAP_H
2328 # include <termcap.h>
2331 # include <stdlib.h>
2332 # include <stddef.h>
2334 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2335 res="OK", res="FAIL", res="FAIL")
2336 if test "$res" = "OK"; then
2339 AC_MSG_RESULT($libname library is not usable)
2343 if test "x$olibs" = "x$LIBS"; then
2344 AC_MSG_RESULT(no terminal library found)
2348 if test "x$olibs" = "x$LIBS"; then
2349 AC_MSG_CHECKING([for tgetent()])
2351 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2353 AC_MSG_ERROR([NOT FOUND!
2354 You need to install a terminal library; for example ncurses.
2355 Or specify the name of the library with --with-tlib.]))
2358 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2361 #include "confdefs.h"
2362 #ifdef HAVE_TERMCAP_H
2363 # include <termcap.h>
2365 #ifdef HAVE_STRING_H
2366 # include <string.h>
2369 # include <stdlib.h>
2370 # include <stddef.h>
2373 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2379 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2383 if test "x$vim_cv_terminfo" = "xyes" ; then
2387 if test "x$olibs" != "x$LIBS"; then
2388 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2391 #include "confdefs.h"
2392 #ifdef HAVE_TERMCAP_H
2393 # include <termcap.h>
2396 # include <stdlib.h>
2397 # include <stddef.h>
2400 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2404 vim_cv_tgent=non-zero
2406 AC_MSG_ERROR(failed to compile test program.)
2410 if test "x$vim_cv_tgent" = "xzero" ; then
2411 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2415 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2417 #ifdef HAVE_TERMCAP_H
2418 # include <termcap.h>
2420 ], [ospeed = 20000],
2421 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2423 AC_MSG_CHECKING(whether ospeed can be extern)
2425 #ifdef HAVE_TERMCAP_H
2426 # include <termcap.h>
2428 extern short ospeed;
2429 ], [ospeed = 20000],
2430 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2434 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2436 #ifdef HAVE_TERMCAP_H
2437 # include <termcap.h>
2439 ], [if (UP == 0 && BC == 0) PC = 1],
2440 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2442 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2444 #ifdef HAVE_TERMCAP_H
2445 # include <termcap.h>
2447 extern char *UP, *BC, PC;
2448 ], [if (UP == 0 && BC == 0) PC = 1],
2449 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2453 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2455 #ifdef HAVE_TERMCAP_H
2456 # include <termcap.h>
2458 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2459 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2462 dnl On some SCO machines sys/select redefines struct timeval
2463 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2465 #include <sys/types.h>
2466 #include <sys/time.h>
2467 #include <sys/select.h>], ,
2469 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2472 dnl AC_DECL_SYS_SIGLIST
2474 dnl Checks for pty.c (copied from screen) ==========================
2475 AC_MSG_CHECKING(for /dev/ptc)
2476 if test -r /dev/ptc; then
2477 AC_DEFINE(HAVE_DEV_PTC)
2483 AC_MSG_CHECKING(for SVR4 ptys)
2484 if test -c /dev/ptmx ; then
2485 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2486 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2492 AC_MSG_CHECKING(for ptyranges)
2493 if test -d /dev/ptym ; then
2503 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2504 dnl if test -c /dev/ptyp19; then
2505 dnl ptys=`echo /dev/ptyp??`
2507 dnl ptys=`echo $pdir/pty??`
2509 if test "$ptys" != "$pdir/pty??" ; then
2510 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2511 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2512 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2513 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2514 AC_MSG_RESULT([$p0 / $p1])
2516 AC_MSG_RESULT([don't know])
2519 dnl **** pty mode/group handling ****
2521 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2523 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2526 #include "confdefs.h"
2527 #include <sys/types.h>
2529 # include <stdlib.h>
2530 # include <stddef.h>
2532 #ifdef HAVE_UNISTD_H
2535 #include <sys/stat.h>
2544 if (!(x = ttyname(0))) exit(1);
2545 if (stat(x, &sb)) exit(1);
2547 if (om & 002) exit(0);
2548 m = system("mesg y");
2549 if (m == -1 || m == 127) exit(1);
2550 if (stat(x, &sb)) exit(1);
2552 if (chmod(x, om)) exit(1);
2553 if (m & 002) exit(0);
2554 if (sb.st_gid == getgid()) exit(1);
2555 if (!(fp=fopen("conftest_grp", "w")))
2557 fprintf(fp, "%d\n", sb.st_gid);
2562 if test -f conftest_grp; then
2563 vim_cv_tty_group=`cat conftest_grp`
2564 if test "x$vim_cv_tty_mode" = "x" ; then
2565 vim_cv_tty_mode=0620
2567 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2569 vim_cv_tty_group=world
2570 AC_MSG_RESULT([ptys are world accessible])
2573 vim_cv_tty_group=world
2574 AC_MSG_RESULT([can't determine - assume ptys are world accessible])
2576 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2581 if test "x$vim_cv_tty_group" != "xworld" ; then
2582 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2583 if test "x$vim_cv_tty_mode" = "x" ; then
2584 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)])
2586 AC_DEFINE(PTYMODE, 0620)
2590 dnl Checks for library functions. ===================================
2594 dnl find out what to use at the end of a signal function
2595 if test $ac_cv_type_signal = void; then
2596 AC_DEFINE(SIGRETURN, [return])
2598 AC_DEFINE(SIGRETURN, [return 0])
2601 dnl check if struct sigcontext is defined (used for SGI only)
2602 AC_MSG_CHECKING(for struct sigcontext)
2607 struct sigcontext *scont;
2608 scont = (struct sigcontext *)0;
2612 AC_DEFINE(HAVE_SIGCONTEXT),
2615 dnl tricky stuff: try to find out if getcwd() is implemented with
2616 dnl system("sh -c pwd")
2617 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2620 #include "confdefs.h"
2621 #ifdef HAVE_UNISTD_H
2624 char *dagger[] = { "IFS=pwd", 0 };
2628 extern char **environ;
2630 return getcwd(buffer, 500) ? 0 : 1;
2633 vim_cv_getcwd_broken=no
2635 vim_cv_getcwd_broken=yes
2637 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2641 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2642 AC_DEFINE(BAD_GETCWD)
2645 dnl Check for functions in one big call, to reduce the size of configure
2646 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2647 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2648 memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
2649 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2650 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2651 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2652 usleep utime utimes)
2654 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2655 AC_MSG_CHECKING(for st_blksize)
2657 [#include <sys/types.h>
2658 #include <sys/stat.h>],
2663 n = (int)st.st_blksize;],
2664 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2667 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2670 #include "confdefs.h"
2672 # include <stdlib.h>
2673 # include <stddef.h>
2675 #include <sys/types.h>
2676 #include <sys/stat.h>
2677 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2679 vim_cv_stat_ignores_slash=yes
2681 vim_cv_stat_ignores_slash=no
2683 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2687 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2688 AC_DEFINE(STAT_IGNORES_SLASH)
2691 dnl Link with iconv for charset translation, if not found without library.
2692 dnl check for iconv() requires including iconv.h
2693 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2694 dnl has been installed.
2695 AC_MSG_CHECKING(for iconv_open())
2697 LIBS="$LIBS -liconv"
2702 ], [iconv_open("fr", "to");],
2703 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2709 ], [iconv_open("fr", "to");],
2710 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2714 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2716 #ifdef HAVE_LANGINFO_H
2717 # include <langinfo.h>
2719 ], [char *cs = nl_langinfo(CODESET);],
2720 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2723 dnl Need various functions for floating point support. Only enable
2724 dnl floating point when they are all present.
2725 AC_CHECK_LIB(m, strtod)
2726 AC_MSG_CHECKING([for strtod() and other floating point functions])
2732 # include <stdlib.h>
2733 # include <stddef.h>
2735 ], [char *s; double d;
2736 d = strtod("1.1", &s);
2741 d = pow(1.11, 2.22);
2747 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2750 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2751 dnl when -lacl works, also try to use -lattr (required for Debian).
2752 AC_MSG_CHECKING(--disable-acl argument)
2754 [ --disable-acl Don't check for ACL support.],
2755 , [enable_acl="yes"])
2756 if test "$enable_acl" = "yes"; then
2758 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2759 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2760 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2762 AC_MSG_CHECKING(for POSIX ACL support)
2764 #include <sys/types.h>
2765 #ifdef HAVE_SYS_ACL_H
2766 # include <sys/acl.h>
2768 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2769 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2771 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2774 AC_MSG_CHECKING(for Solaris ACL support)
2776 #ifdef HAVE_SYS_ACL_H
2777 # include <sys/acl.h>
2778 #endif], [acl("foo", GETACLCNT, 0, NULL);
2780 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2783 AC_MSG_CHECKING(for AIX ACL support)
2786 # include <stdlib.h>
2787 # include <stddef.h>
2789 #ifdef HAVE_SYS_ACL_H
2790 # include <sys/acl.h>
2792 #ifdef HAVE_SYS_ACCESS_H
2793 # include <sys/access.h>
2797 #include <sys/stat.h>
2800 struct acl *aclent;], [aclsize = sizeof(struct acl);
2801 aclent = (void *)malloc(aclsize);
2802 statacl("foo", STX_NORMAL, aclent, aclsize);
2804 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2810 AC_MSG_CHECKING(--disable-gpm argument)
2812 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2815 if test "$enable_gpm" = "yes"; then
2817 dnl Checking if gpm support can be compiled
2818 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2819 [olibs="$LIBS" ; LIBS="-lgpm"]
2822 #include <linux/keyboard.h>],
2823 [Gpm_GetLibVersion(NULL);],
2824 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2825 dnl FEAT_MOUSE_GPM if mouse support is included
2826 [vi_cv_have_gpm=yes],
2827 [vi_cv_have_gpm=no])
2830 if test $vi_cv_have_gpm = yes; then
2838 AC_MSG_CHECKING(--disable-sysmouse argument)
2839 AC_ARG_ENABLE(sysmouse,
2840 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2841 [enable_sysmouse="yes"])
2843 if test "$enable_sysmouse" = "yes"; then
2845 dnl Checking if sysmouse support can be compiled
2846 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2847 dnl defines FEAT_SYSMOUSE if mouse support is included
2848 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2850 [#include <sys/consio.h>
2852 #include <sys/fbio.h>],
2853 [struct mouse_info mouse;
2854 mouse.operation = MOUSE_MODE;
2855 mouse.operation = MOUSE_SHOW;
2856 mouse.u.mode.mode = 0;
2857 mouse.u.mode.signal = SIGUSR2;],
2858 [vi_cv_have_sysmouse=yes],
2859 [vi_cv_have_sysmouse=no])
2861 if test $vi_cv_have_sysmouse = yes; then
2862 AC_DEFINE(HAVE_SYSMOUSE)
2868 dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
2869 AC_MSG_CHECKING(for FD_CLOEXEC)
2874 [ int flag = FD_CLOEXEC;],
2875 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
2876 AC_MSG_RESULT(not usable))
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 dnl Also remove duplicate _FORTIFY_SOURCE arguments.
3255 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3256 if test "$gccmajor" -gt "3"; then
3257 CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
3263 AC_SUBST(DEPEND_CFLAGS_FILTER)
3265 dnl write output files
3266 AC_OUTPUT(auto/config.mk:config.mk.in)
3268 dnl vim: set sw=2 tw=78 fo+=l: