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-eclinterp argument)
637 AC_ARG_ENABLE(eclinterp,
638 [ --enable-eclinterp Include ECL compiler.], ,
639 [enable_eclinterp="no"])
640 AC_MSG_RESULT($enable_eclinterp)
641 if test "$enable_eclinterp" = "yes"; then
642 dnl -- find the ecl-config executable
643 AC_PATH_PROG(vi_cv_path_ecl_config, ecl-config)
644 if test "X$vi_cv_path_ecl_config" != "X"; then
646 dnl -- Ask ecl-config where to find ecl's libraries
647 AC_CACHE_VAL(vi_cv_path_ecl_plibs,
649 vi_cv_path_ecl_plibs=`ecl-config --libs`
652 ECL_LIBS="${vi_cv_path_ecl_plibs}"
653 AC_CACHE_VAL(vi_cv_path_ecl_cflags,
655 vi_cv_path_ecl_cflags=`ecl-config --cflags`
657 ECL_CFLAGS="${vi_cv_path_ecl_cflags}"
660 ECL_OBJ="objects/if_ecl.o"
662 dnl check that compiling a simple program still works with the flags
664 AC_MSG_CHECKING([if compile and link flags for ECL are sane])
667 CFLAGS="$CFLAGS $ECL_CFLAGS"
668 LIBS="$LIBS $ECL_LIBS"
670 AC_MSG_RESULT(yes); ecl_ok=yes,
671 AC_MSG_RESULT(no: ECL DISABLED); ecl_ok=no)
674 if test $ecl_ok = yes; then
689 AC_MSG_CHECKING(--enable-pythoninterp argument)
690 AC_ARG_ENABLE(pythoninterp,
691 [ --enable-pythoninterp Include Python interpreter.], ,
692 [enable_pythoninterp="no"])
693 AC_MSG_RESULT($enable_pythoninterp)
694 if test "$enable_pythoninterp" = "yes"; then
695 dnl -- find the python executable
696 AC_PATH_PROG(vi_cv_path_python, python)
697 if test "X$vi_cv_path_python" != "X"; then
699 dnl -- get its version number
700 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
701 [[vi_cv_var_python_version=`
702 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
705 dnl -- it must be at least version 1.4
706 AC_MSG_CHECKING(Python is 1.4 or better)
707 if ${vi_cv_path_python} -c \
708 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
712 dnl -- find where python thinks it was installed
713 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
714 [ vi_cv_path_python_pfx=`
715 ${vi_cv_path_python} -c \
716 "import sys; print sys.prefix"` ])
718 dnl -- and where it thinks it runs
719 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
720 [ vi_cv_path_python_epfx=`
721 ${vi_cv_path_python} -c \
722 "import sys; print sys.exec_prefix"` ])
724 dnl -- python's internal library path
726 AC_CACHE_VAL(vi_cv_path_pythonpath,
727 [ vi_cv_path_pythonpath=`
729 ${vi_cv_path_python} -c \
730 "import sys, string; print string.join(sys.path,':')"` ])
732 dnl -- where the Python implementation library archives are
734 AC_ARG_WITH(python-config-dir,
735 [ --with-python-config-dir=PATH Python's config directory],
736 [ vi_cv_path_python_conf="${withval}" ] )
738 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
740 vi_cv_path_python_conf=
741 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
742 for subdir in lib share; do
743 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
744 if test -d "$d" && test -f "$d/config.c"; then
745 vi_cv_path_python_conf="$d"
751 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
753 if test "X$PYTHON_CONFDIR" = "X"; then
754 AC_MSG_RESULT([can't find it!])
757 dnl -- we need to examine Python's config/Makefile too
758 dnl see what the interpreter is built from
759 AC_CACHE_VAL(vi_cv_path_python_plibs,
762 tmp_mkf="$pwd/config-PyMake$$"
763 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
765 @echo "python_MODLIBS='$(MODLIBS)'"
766 @echo "python_LIBS='$(LIBS)'"
767 @echo "python_SYSLIBS='$(SYSLIBS)'"
768 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
770 dnl -- delete the lines from make about Entering/Leaving directory
771 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
772 rm -f -- "${tmp_mkf}"
773 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
774 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
775 vi_cv_path_python_plibs="-framework Python"
777 if test "${vi_cv_var_python_version}" = "1.4"; then
778 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
780 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
782 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
783 dnl remove -ltermcap, it can conflict with an earlier -lncurses
784 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
788 PYTHON_LIBS="${vi_cv_path_python_plibs}"
789 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
790 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
792 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}"
794 PYTHON_SRC="if_python.c"
795 dnl For Mac OSX 10.2 config.o is included in the Python library.
796 if test "x$MACOSX" = "xyes"; then
797 PYTHON_OBJ="objects/if_python.o"
799 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
801 if test "${vi_cv_var_python_version}" = "1.4"; then
802 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
804 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
806 dnl On FreeBSD linking with "-pthread" is required to use threads.
807 dnl _THREAD_SAFE must be used for compiling then.
808 dnl The "-pthread" is added to $LIBS, so that the following check for
809 dnl sigaltstack() will look in libc_r (it's there in libc!).
810 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
811 dnl will then define target-specific defines, e.g., -D_REENTRANT.
812 dnl Don't do this for Mac OSX, -pthread will generate a warning.
813 AC_MSG_CHECKING([if -pthread should be used])
816 dnl if test "x$MACOSX" != "xyes"; then
817 if test "`(uname) 2>/dev/null`" != Darwin; then
818 test "$GCC" = yes && threadsafe_flag="-pthread"
819 if test "`(uname) 2>/dev/null`" = FreeBSD; then
820 threadsafe_flag="-D_THREAD_SAFE"
821 thread_lib="-pthread"
825 if test -n "$threadsafe_flag"; then
827 CFLAGS="$CFLAGS $threadsafe_flag"
828 LIBS="$LIBS $thread_lib"
830 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
831 AC_MSG_RESULT(no); LIBS=$libs_save_old
838 dnl check that compiling a simple program still works with the flags
839 dnl added for Python.
840 AC_MSG_CHECKING([if compile and link flags for Python are sane])
843 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
844 LIBS="$LIBS $PYTHON_LIBS"
846 AC_MSG_RESULT(yes); python_ok=yes,
847 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
850 if test $python_ok = yes; then
851 AC_DEFINE(FEAT_PYTHON)
862 AC_MSG_RESULT(too old)
866 AC_SUBST(PYTHON_CONFDIR)
867 AC_SUBST(PYTHON_LIBS)
868 AC_SUBST(PYTHON_GETPATH_CFLAGS)
869 AC_SUBST(PYTHON_CFLAGS)
873 AC_MSG_CHECKING(--enable-tclinterp argument)
874 AC_ARG_ENABLE(tclinterp,
875 [ --enable-tclinterp Include Tcl interpreter.], ,
876 [enable_tclinterp="no"])
877 AC_MSG_RESULT($enable_tclinterp)
879 if test "$enable_tclinterp" = "yes"; then
881 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
882 AC_MSG_CHECKING(--with-tclsh argument)
883 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
884 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
885 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
886 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
887 AC_SUBST(vi_cv_path_tcl)
889 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
890 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
891 tclsh_name="tclsh8.4"
892 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
894 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
895 tclsh_name="tclsh8.2"
896 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
898 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
899 tclsh_name="tclsh8.0"
900 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
902 dnl still didn't find it, try without version number
903 if test "X$vi_cv_path_tcl" = "X"; then
905 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
907 if test "X$vi_cv_path_tcl" != "X"; then
908 AC_MSG_CHECKING(Tcl version)
909 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
910 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
911 AC_MSG_RESULT($tclver - OK);
912 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 -`
914 AC_MSG_CHECKING(for location of Tcl include)
915 if test "x$MACOSX" != "xyes"; then
916 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
918 dnl For Mac OS X 10.3, use the OS-provided framework location
919 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
922 for try in $tclinc; do
923 if test -f "$try/tcl.h"; then
924 AC_MSG_RESULT($try/tcl.h)
929 if test -z "$TCL_INC"; then
930 AC_MSG_RESULT(<not found>)
933 if test -z "$SKIP_TCL"; then
934 AC_MSG_CHECKING(for location of tclConfig.sh script)
935 if test "x$MACOSX" != "xyes"; then
936 tclcnf=`echo $tclinc | sed s/include/lib/g`
937 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
939 dnl For Mac OS X 10.3, use the OS-provided framework location
940 tclcnf="/System/Library/Frameworks/Tcl.framework"
942 for try in $tclcnf; do
943 if test -f $try/tclConfig.sh; then
944 AC_MSG_RESULT($try/tclConfig.sh)
946 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
947 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
948 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
949 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
950 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'`
954 if test -z "$TCL_LIBS"; then
955 AC_MSG_RESULT(<not found>)
956 AC_MSG_CHECKING(for Tcl library by myself)
957 tcllib=`echo $tclinc | sed s/include/lib/g`
958 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
959 for ext in .so .a ; do
960 for ver in "" $tclver ; do
961 for try in $tcllib ; do
963 if test -f $try/lib$trylib ; then
964 AC_MSG_RESULT($try/lib$trylib)
965 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
966 if test "`(uname) 2>/dev/null`" = SunOS &&
967 uname -r | grep '^5' >/dev/null; then
968 TCL_LIBS="$TCL_LIBS -R $try"
975 if test -z "$TCL_LIBS"; then
976 AC_MSG_RESULT(<not found>)
980 if test -z "$SKIP_TCL"; then
983 TCL_OBJ=objects/if_tcl.o
985 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
989 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
999 AC_MSG_CHECKING(--enable-rubyinterp argument)
1000 AC_ARG_ENABLE(rubyinterp,
1001 [ --enable-rubyinterp Include Ruby interpreter.], ,
1002 [enable_rubyinterp="no"])
1003 AC_MSG_RESULT($enable_rubyinterp)
1004 if test "$enable_rubyinterp" = "yes"; then
1005 AC_SUBST(vi_cv_path_ruby)
1006 AC_PATH_PROG(vi_cv_path_ruby, ruby)
1007 if test "X$vi_cv_path_ruby" != "X"; then
1008 AC_MSG_CHECKING(Ruby version)
1009 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
1011 AC_MSG_CHECKING(Ruby header files)
1012 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
1013 if test "X$rubyhdrdir" != "X"; then
1014 AC_MSG_RESULT($rubyhdrdir)
1015 RUBY_CFLAGS="-I$rubyhdrdir"
1016 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
1017 if test "X$rubylibs" != "X"; then
1018 RUBY_LIBS="$rubylibs"
1020 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
1021 if test -f "$rubyhdrdir/$librubyarg"; then
1022 librubyarg="$rubyhdrdir/$librubyarg"
1024 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
1025 if test -f "$rubylibdir/$librubyarg"; then
1026 librubyarg="$rubylibdir/$librubyarg"
1027 elif test "$librubyarg" = "libruby.a"; then
1028 dnl required on Mac OS 10.3 where libruby.a doesn't exist
1031 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
1035 if test "X$librubyarg" != "X"; then
1036 RUBY_LIBS="$librubyarg $RUBY_LIBS"
1038 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
1039 if test "X$rubyldflags" != "X"; then
1040 LDFLAGS="$rubyldflags $LDFLAGS"
1042 RUBY_SRC="if_ruby.c"
1043 RUBY_OBJ="objects/if_ruby.o"
1044 RUBY_PRO="if_ruby.pro"
1045 AC_DEFINE(FEAT_RUBY)
1047 AC_MSG_RESULT(not found, disabling Ruby)
1050 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1057 AC_SUBST(RUBY_CFLAGS)
1060 AC_MSG_CHECKING(--enable-cscope argument)
1061 AC_ARG_ENABLE(cscope,
1062 [ --enable-cscope Include cscope interface.], ,
1063 [enable_cscope="no"])
1064 AC_MSG_RESULT($enable_cscope)
1065 if test "$enable_cscope" = "yes"; then
1066 AC_DEFINE(FEAT_CSCOPE)
1069 AC_MSG_CHECKING(--enable-workshop argument)
1070 AC_ARG_ENABLE(workshop,
1071 [ --enable-workshop Include Sun Visual Workshop support.], ,
1072 [enable_workshop="no"])
1073 AC_MSG_RESULT($enable_workshop)
1074 if test "$enable_workshop" = "yes"; then
1075 AC_DEFINE(FEAT_SUN_WORKSHOP)
1076 WORKSHOP_SRC="workshop.c integration.c"
1077 AC_SUBST(WORKSHOP_SRC)
1078 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1079 AC_SUBST(WORKSHOP_OBJ)
1080 if test "${enable_gui-xxx}" = xxx; then
1085 AC_MSG_CHECKING(--disable-netbeans argument)
1086 AC_ARG_ENABLE(netbeans,
1087 [ --disable-netbeans Disable NetBeans integration support.],
1088 , [enable_netbeans="yes"])
1089 if test "$enable_netbeans" = "yes"; then
1091 dnl On Solaris we need the socket and nsl library.
1092 AC_CHECK_LIB(socket, socket)
1093 AC_CHECK_LIB(nsl, gethostbyname)
1094 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1101 #include <netinet/in.h>
1103 #include <sys/types.h>
1104 #include <sys/socket.h>
1105 /* Check bitfields */
1107 unsigned int initDone:1;
1111 /* Check creating a socket. */
1112 struct sockaddr_in server;
1113 (void)socket(AF_INET, SOCK_STREAM, 0);
1115 (void)gethostbyname("microsoft.com");
1116 if (errno == ECONNREFUSED)
1117 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1120 AC_MSG_RESULT(no); enable_netbeans="no")
1124 if test "$enable_netbeans" = "yes"; then
1125 AC_DEFINE(FEAT_NETBEANS_INTG)
1126 NETBEANS_SRC="netbeans.c"
1127 AC_SUBST(NETBEANS_SRC)
1128 NETBEANS_OBJ="objects/netbeans.o"
1129 AC_SUBST(NETBEANS_OBJ)
1132 AC_MSG_CHECKING(--enable-sniff argument)
1133 AC_ARG_ENABLE(sniff,
1134 [ --enable-sniff Include Sniff interface.], ,
1135 [enable_sniff="no"])
1136 AC_MSG_RESULT($enable_sniff)
1137 if test "$enable_sniff" = "yes"; then
1138 AC_DEFINE(FEAT_SNIFF)
1139 SNIFF_SRC="if_sniff.c"
1141 SNIFF_OBJ="objects/if_sniff.o"
1145 AC_MSG_CHECKING(--enable-multibyte argument)
1146 AC_ARG_ENABLE(multibyte,
1147 [ --enable-multibyte Include multibyte editing support.], ,
1148 [enable_multibyte="no"])
1149 AC_MSG_RESULT($enable_multibyte)
1150 if test "$enable_multibyte" = "yes"; then
1151 AC_DEFINE(FEAT_MBYTE)
1154 AC_MSG_CHECKING(--enable-hangulinput argument)
1155 AC_ARG_ENABLE(hangulinput,
1156 [ --enable-hangulinput Include Hangul input support.], ,
1157 [enable_hangulinput="no"])
1158 AC_MSG_RESULT($enable_hangulinput)
1160 AC_MSG_CHECKING(--enable-xim argument)
1162 [ --enable-xim Include XIM input support.],
1163 AC_MSG_RESULT($enable_xim),
1164 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1165 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1167 AC_MSG_CHECKING(--enable-fontset argument)
1168 AC_ARG_ENABLE(fontset,
1169 [ --enable-fontset Include X fontset output support.], ,
1170 [enable_fontset="no"])
1171 AC_MSG_RESULT($enable_fontset)
1172 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1174 test -z "$with_x" && with_x=yes
1175 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1176 if test "$with_x" = no; then
1177 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1179 dnl Do this check early, so that its failure can override user requests.
1181 AC_PATH_PROG(xmkmfpath, xmkmf)
1185 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1186 dnl be compiled with a special option.
1187 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1188 if test "$OS390Unix" = "yes"; then
1189 CFLAGS="$CFLAGS -W c,dll"
1190 LDFLAGS="$LDFLAGS -W l,dll"
1191 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1194 dnl On my HPUX system the X include dir is found, but the lib dir not.
1195 dnl This is a desparate try to fix this.
1197 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1198 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1199 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1200 X_LIBS="$X_LIBS -L$x_libraries"
1201 if test "`(uname) 2>/dev/null`" = SunOS &&
1202 uname -r | grep '^5' >/dev/null; then
1203 X_LIBS="$X_LIBS -R $x_libraries"
1207 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1208 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1209 AC_MSG_RESULT(Corrected X includes to $x_includes)
1210 X_CFLAGS="$X_CFLAGS -I$x_includes"
1213 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1214 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1215 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1216 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1217 dnl Same for "-R/usr/lib ".
1218 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1221 dnl Check if the X11 header files are correctly installed. On some systems
1222 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1224 AC_MSG_CHECKING(if X11 header files can be found)
1226 CFLAGS="$CFLAGS $X_CFLAGS"
1227 AC_TRY_COMPILE([#include <X11/Xlib.h>
1228 #include <X11/Intrinsic.h>], ,
1230 AC_MSG_RESULT(no); no_x=yes)
1233 if test "${no_x-no}" = yes; then
1240 ac_save_LDFLAGS="$LDFLAGS"
1241 LDFLAGS="-L$x_libraries $LDFLAGS"
1243 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1244 dnl For HP-UX 10.20 it must be before -lSM -lICE
1245 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1246 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1248 dnl Some systems need -lnsl -lsocket when testing for ICE.
1249 dnl The check above doesn't do this, try here (again). Also needed to get
1250 dnl them after Xdmcp. link.sh will remove them when not needed.
1251 dnl Check for other function than above to avoid the cached value
1252 AC_CHECK_LIB(ICE, IceOpenConnection,
1253 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1255 dnl Check for -lXpm (needed for some versions of Motif)
1256 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1257 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1258 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1260 dnl Check that the X11 header files don't use implicit declarations
1261 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1263 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1264 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1266 CFLAGS="$CFLAGS -Wno-implicit-int"
1267 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1268 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1269 AC_MSG_RESULT(test failed)
1274 LDFLAGS="$ac_save_LDFLAGS"
1276 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1277 AC_CACHE_VAL(ac_cv_small_wchar_t,
1279 #include <X11/Xlib.h>
1281 # include <stdlib.h>
1282 # include <stddef.h>
1286 if (sizeof(wchar_t) <= 2)
1290 ac_cv_small_wchar_t="no",
1291 ac_cv_small_wchar_t="yes",
1292 AC_MSG_ERROR(failed to compile test program))])
1293 AC_MSG_RESULT($ac_cv_small_wchar_t)
1294 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1295 AC_DEFINE(SMALL_WCHAR_T)
1301 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1303 AC_MSG_CHECKING(--enable-gui argument)
1305 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
1307 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1308 dnl Do not use character classes for portability with old tools.
1309 enable_gui_canon=`echo "_$enable_gui" | \
1310 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1312 dnl Skip everything by default.
1323 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1325 case "$enable_gui_canon" in
1326 no) AC_MSG_RESULT(no GUI support)
1328 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1329 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1330 photon) AC_MSG_RESULT(Photon GUI support) ;;
1331 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1335 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1337 case "$enable_gui_canon" in
1338 no) AC_MSG_RESULT(no GUI support)
1340 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1341 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1342 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1343 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1349 case "$enable_gui_canon" in
1350 no|none) AC_MSG_RESULT(no GUI support) ;;
1351 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1359 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1361 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1364 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1367 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1371 motif) AC_MSG_RESULT(Motif GUI support)
1373 athena) AC_MSG_RESULT(Athena GUI support)
1375 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1377 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1382 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1383 AC_MSG_CHECKING(whether or not to look for GTK)
1384 AC_ARG_ENABLE(gtk-check,
1385 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1386 , enable_gtk_check="yes")
1387 AC_MSG_RESULT($enable_gtk_check)
1388 if test "x$enable_gtk_check" = "xno"; then
1394 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1395 -a "$enable_gui_canon" != "gnome2"; then
1396 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1397 AC_ARG_ENABLE(gtk2-check,
1398 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1399 , enable_gtk2_check="yes")
1400 AC_MSG_RESULT($enable_gtk2_check)
1401 if test "x$enable_gtk2_check" = "xno"; then
1406 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1407 -a "$enable_gui_canon" != "gnome2"; then
1408 AC_MSG_CHECKING(whether or not to look for GNOME)
1409 AC_ARG_ENABLE(gnome-check,
1410 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1411 , enable_gnome_check="no")
1412 AC_MSG_RESULT($enable_gnome_check)
1413 if test "x$enable_gnome_check" = "xno"; then
1418 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1419 AC_MSG_CHECKING(whether or not to look for Motif)
1420 AC_ARG_ENABLE(motif-check,
1421 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1422 , enable_motif_check="yes")
1423 AC_MSG_RESULT($enable_motif_check)
1424 if test "x$enable_motif_check" = "xno"; then
1429 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1430 AC_MSG_CHECKING(whether or not to look for Athena)
1431 AC_ARG_ENABLE(athena-check,
1432 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1433 , enable_athena_check="yes")
1434 AC_MSG_RESULT($enable_athena_check)
1435 if test "x$enable_athena_check" = "xno"; then
1440 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1441 AC_MSG_CHECKING(whether or not to look for neXtaw)
1442 AC_ARG_ENABLE(nextaw-check,
1443 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1444 , enable_nextaw_check="yes")
1445 AC_MSG_RESULT($enable_nextaw_check);
1446 if test "x$enable_nextaw_check" = "xno"; then
1451 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1452 AC_MSG_CHECKING(whether or not to look for Carbon)
1453 AC_ARG_ENABLE(carbon-check,
1454 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1455 , enable_carbon_check="yes")
1456 AC_MSG_RESULT($enable_carbon_check);
1457 if test "x$enable_carbon_check" = "xno"; then
1463 if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1464 AC_MSG_CHECKING(for Carbon GUI)
1465 dnl already did the check, just give the message
1468 if test "$VIMNAME" = "vim"; then
1472 dnl Default install directory is not /usr/local
1473 if test x$prefix = xNONE; then
1474 prefix=/Applications
1477 dnl Sorry for the hard coded default
1478 datadir='${prefix}/Vim.app/Contents/Resources'
1480 dnl skip everything else
1492 dnl Get the cflags and libraries from the gtk-config script
1495 dnl define an autoconf function to check for a specified version of GTK, and
1496 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1498 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1499 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1501 AC_DEFUN(AM_PATH_GTK,
1503 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1505 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1506 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1508 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1509 && $PKG_CONFIG --exists gtk+-2.0; then
1511 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1512 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1513 dnl something like that.
1514 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1515 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1516 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1517 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1518 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1519 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1520 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1521 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1522 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1524 elif test "X$GTK_CONFIG" != "Xno"; then
1526 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1528 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1529 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1530 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1531 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1532 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1533 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1534 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1540 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1542 ac_save_CFLAGS="$CFLAGS"
1543 ac_save_LIBS="$LIBS"
1544 CFLAGS="$CFLAGS $GTK_CFLAGS"
1545 LIBS="$LIBS $GTK_LIBS"
1548 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1549 dnl checks the results of gtk-config to some extent
1553 #include <gtk/gtk.h>
1556 # include <stdlib.h>
1557 # include <stddef.h>
1563 int major, minor, micro;
1566 system ("touch conf.gtktest");
1568 /* HP/UX 9 (%@#!) writes to sscanf strings */
1569 tmp_version = g_strdup("$min_gtk_version");
1570 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1571 printf("%s, bad version string\n", "$min_gtk_version");
1575 if ((gtk_major_version > major) ||
1576 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1577 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1578 (gtk_micro_version >= micro)))
1584 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1585 CFLAGS="$ac_save_CFLAGS"
1586 LIBS="$ac_save_LIBS"
1589 if test "x$no_gtk" = x ; then
1590 if test "x$enable_gtktest" = "xyes"; then
1591 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1593 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1595 ifelse([$2], , :, [$2])
1601 ifelse([$3], , :, [$3])
1608 ifelse([$3], , :, [$3])
1610 AC_SUBST(GTK_CFLAGS)
1615 dnl ---------------------------------------------------------------------------
1617 dnl ---------------------------------------------------------------------------
1618 AC_DEFUN([GNOME_INIT_HOOK],
1620 AC_SUBST(GNOME_LIBS)
1621 AC_SUBST(GNOME_LIBDIR)
1622 AC_SUBST(GNOME_INCLUDEDIR)
1624 AC_ARG_WITH(gnome-includes,
1625 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1626 [CFLAGS="$CFLAGS -I$withval"]
1629 AC_ARG_WITH(gnome-libs,
1630 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1631 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1635 [ --with-gnome Specify prefix for GNOME files],
1636 if test x$withval = xyes; then
1638 ifelse([$1], [], :, [$1])
1640 if test "x$withval" = xno; then
1644 LDFLAGS="$LDFLAGS -L$withval/lib"
1645 CFLAGS="$CFLAGS -I$withval/include"
1646 gnome_prefix=$withval/lib
1651 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1653 AC_MSG_CHECKING(for libgnomeui-2.0)
1654 if $PKG_CONFIG --exists libgnomeui-2.0; then
1656 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1657 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1658 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1660 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1661 dnl This might not be the right way but it works for me...
1662 AC_MSG_CHECKING(for FreeBSD)
1663 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1664 AC_MSG_RESULT(yes, adding -pthread)
1665 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1666 GNOME_LIBS="$GNOME_LIBS -pthread"
1672 AC_MSG_RESULT(not found)
1673 if test "x$2" = xfail; then
1674 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1678 elif test "x$want_gnome" = xyes; then
1680 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1681 if test "$GNOME_CONFIG" = "no"; then
1682 no_gnome_config="yes"
1684 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1685 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1687 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1688 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1689 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1693 no_gnome_config="yes"
1697 if test x$exec_prefix = xNONE; then
1698 if test x$prefix = xNONE; then
1699 gnome_prefix=$ac_default_prefix/lib
1701 gnome_prefix=$prefix/lib
1704 gnome_prefix=`eval echo \`echo $libdir\``
1707 if test "$no_gnome_config" = "yes"; then
1708 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1709 if test -f $gnome_prefix/gnomeConf.sh; then
1710 AC_MSG_RESULT(found)
1711 echo "loading gnome configuration from" \
1712 "$gnome_prefix/gnomeConf.sh"
1713 . $gnome_prefix/gnomeConf.sh
1716 AC_MSG_RESULT(not found)
1717 if test x$2 = xfail; then
1718 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1726 AC_DEFUN([GNOME_INIT],[
1727 GNOME_INIT_HOOK([],fail)
1731 dnl ---------------------------------------------------------------------------
1732 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1733 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1734 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1735 dnl ---------------------------------------------------------------------------
1736 if test -z "$SKIP_GTK"; then
1738 AC_MSG_CHECKING(--with-gtk-prefix argument)
1739 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1740 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1741 gtk_config_prefix=""; AC_MSG_RESULT(no))
1743 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1744 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1745 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1746 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1748 AC_MSG_CHECKING(--disable-gtktest argument)
1749 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1750 , enable_gtktest=yes)
1751 if test "x$enable_gtktest" = "xyes" ; then
1752 AC_MSG_RESULT(gtk test enabled)
1754 AC_MSG_RESULT(gtk test disabled)
1757 if test "x$gtk_config_prefix" != "x" ; then
1758 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1759 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1761 if test "x$gtk_config_exec_prefix" != "x" ; then
1762 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1763 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1765 if test "X$GTK_CONFIG" = "X"; then
1766 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1767 if test "X$GTK_CONFIG" = "Xno"; then
1768 dnl Some distributions call it gtk12-config, annoying!
1769 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1770 GTK_CONFIG="$GTK12_CONFIG"
1773 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1775 if test "X$PKG_CONFIG" = "X"; then
1776 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1779 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1780 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1781 dnl problems (bold fonts, --remote doesn't work).
1782 if test "X$SKIP_GTK2" != "XYES"; then
1784 [GUI_LIB_LOC="$GTK_LIBDIR"
1785 GTK_LIBNAME="$GTK_LIBS"
1786 GUI_INC_LOC="$GTK_CFLAGS"], )
1787 if test "x$GTK_CFLAGS" != "x"; then
1792 AC_SUBST(GTK_LIBNAME)
1796 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1797 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1798 dnl were test versions.
1799 if test "x$GUITYPE" != "xGTK"; then
1802 [GTK_LIBNAME="$GTK_LIBS"
1803 GUI_INC_LOC="$GTK_CFLAGS"], )
1804 if test "x$GTK_CFLAGS" != "x"; then
1809 AC_SUBST(GTK_LIBNAME)
1813 dnl Give a warning if GTK is older than 1.2.3
1814 if test "x$GUITYPE" = "xGTK"; then
1815 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1816 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1817 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1820 if test "0$gtk_major_version" -ge 2; then
1821 AC_DEFINE(HAVE_GTK2)
1822 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1823 || test "0$gtk_minor_version" -ge 2 \
1824 || test "0$gtk_major_version" -gt 2; then
1825 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1829 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1831 if test -z "$SKIP_GNOME"; then
1833 GNOME_INIT_HOOK([have_gnome=yes])
1834 if test x$have_gnome = xyes ; then
1835 AC_DEFINE(FEAT_GUI_GNOME)
1836 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1837 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1846 dnl Check for Motif include files location.
1847 dnl The LAST one found is used, this makes the highest version to be used,
1848 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1850 if test -z "$SKIP_MOTIF"; then
1851 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"
1852 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1853 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1855 AC_MSG_CHECKING(for location of Motif GUI includes)
1856 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1858 for try in $gui_includes; do
1859 if test -f "$try/Xm/Xm.h"; then
1863 if test -n "$GUI_INC_LOC"; then
1864 if test "$GUI_INC_LOC" = /usr/include; then
1866 AC_MSG_RESULT(in default path)
1868 AC_MSG_RESULT($GUI_INC_LOC)
1871 AC_MSG_RESULT(<not found>)
1876 dnl Check for Motif library files location. In the same order as the include
1877 dnl files, to avoid a mixup if several versions are present
1879 if test -z "$SKIP_MOTIF"; then
1880 AC_MSG_CHECKING(--with-motif-lib argument)
1881 AC_ARG_WITH(motif-lib,
1882 [ --with-motif-lib=STRING Library for Motif ],
1883 [ MOTIF_LIBNAME="${withval}" ] )
1885 if test -n "$MOTIF_LIBNAME"; then
1886 AC_MSG_RESULT($MOTIF_LIBNAME)
1891 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1892 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1894 AC_MSG_CHECKING(for location of Motif GUI libs)
1895 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"
1897 for try in $gui_libs; do
1898 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1899 if test -f "$libtry"; then
1904 if test -n "$GUI_LIB_LOC"; then
1905 dnl Remove /usr/lib, it causes trouble on some systems
1906 if test "$GUI_LIB_LOC" = /usr/lib; then
1908 AC_MSG_RESULT(in default path)
1910 if test -n "$GUI_LIB_LOC"; then
1911 AC_MSG_RESULT($GUI_LIB_LOC)
1912 if test "`(uname) 2>/dev/null`" = SunOS &&
1913 uname -r | grep '^5' >/dev/null; then
1914 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1920 AC_MSG_RESULT(<not found>)
1926 if test -z "$SKIP_MOTIF"; then
1930 AC_SUBST(MOTIF_LIBNAME)
1933 dnl Check if the Athena files can be found
1937 if test -z "$SKIP_ATHENA"; then
1938 AC_MSG_CHECKING(if Athena header files can be found)
1940 CFLAGS="$CFLAGS $X_CFLAGS"
1942 #include <X11/Intrinsic.h>
1943 #include <X11/Xaw/Paned.h>], ,
1945 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1949 if test -z "$SKIP_ATHENA"; then
1953 if test -z "$SKIP_NEXTAW"; then
1954 AC_MSG_CHECKING(if neXtaw header files can be found)
1956 CFLAGS="$CFLAGS $X_CFLAGS"
1958 #include <X11/Intrinsic.h>
1959 #include <X11/neXtaw/Paned.h>], ,
1961 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1965 if test -z "$SKIP_NEXTAW"; then
1969 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1970 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1971 dnl Avoid adding it when it twice
1972 if test -n "$GUI_INC_LOC"; then
1973 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1975 if test -n "$GUI_LIB_LOC"; then
1976 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1979 dnl Check for -lXext and then for -lXmu
1980 ldflags_save=$LDFLAGS
1981 LDFLAGS="$X_LIBS $LDFLAGS"
1982 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1983 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1984 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1985 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1986 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1987 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1988 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1989 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1990 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1991 if test -z "$SKIP_MOTIF"; then
1992 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1993 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1995 LDFLAGS=$ldflags_save
1997 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1998 AC_MSG_CHECKING(for extra X11 defines)
2001 if mkdir conftestdir; then
2003 cat > Imakefile <<'EOF'
2005 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2007 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2008 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2013 if test -z "$NARROW_PROTO"; then
2016 AC_MSG_RESULT($NARROW_PROTO)
2018 AC_SUBST(NARROW_PROTO)
2021 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2022 dnl use the X11 include path
2023 if test "$enable_xsmp" = "yes"; then
2024 cppflags_save=$CPPFLAGS
2025 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2026 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2027 CPPFLAGS=$cppflags_save
2031 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2032 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2033 cppflags_save=$CPPFLAGS
2034 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2035 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2037 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2038 if test ! "$enable_xim" = "no"; then
2039 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2040 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2042 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2044 CPPFLAGS=$cppflags_save
2046 dnl automatically enable XIM when hangul input isn't enabled
2047 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2048 -a "x$GUITYPE" != "xNONE" ; then
2049 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2054 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2055 cppflags_save=$CPPFLAGS
2056 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2057 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2058 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2060 #include <X11/Intrinsic.h>
2061 #include <X11/Xmu/Editres.h>],
2064 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2066 CPPFLAGS=$cppflags_save
2069 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2070 if test -z "$SKIP_MOTIF"; then
2071 cppflags_save=$CPPFLAGS
2072 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2073 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2074 Xm/UnhighlightT.h Xm/Notebook.h)
2076 if test $ac_cv_header_Xm_XpmP_h = yes; then
2077 dnl Solaris uses XpmAttributes_21, very annoying.
2078 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2079 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2080 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2081 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2084 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2086 CPPFLAGS=$cppflags_save
2089 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2090 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2093 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2094 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2097 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2098 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2102 if test -z "$SKIP_PHOTON"; then
2106 AC_SUBST(GUI_INC_LOC)
2107 AC_SUBST(GUI_LIB_LOC)
2109 AC_SUBST(GUI_X_LIBS)
2111 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2112 AC_MSG_ERROR([cannot use workshop without Motif])
2115 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2116 if test "$enable_xim" = "yes"; then
2119 if test "$enable_fontset" = "yes"; then
2120 AC_DEFINE(FEAT_XFONTSET)
2124 dnl ---------------------------------------------------------------------------
2125 dnl end of GUI-checking
2126 dnl ---------------------------------------------------------------------------
2129 dnl Only really enable hangul input when GUI and XFONTSET are available
2130 if test "$enable_hangulinput" = "yes"; then
2131 if test "x$GUITYPE" = "xNONE"; then
2132 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2133 enable_hangulinput=no
2135 AC_DEFINE(FEAT_HANGULIN)
2136 HANGULIN_SRC=hangulin.c
2137 AC_SUBST(HANGULIN_SRC)
2138 HANGULIN_OBJ=objects/hangulin.o
2139 AC_SUBST(HANGULIN_OBJ)
2143 dnl Checks for libraries and include files.
2145 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2148 #include "confdefs.h"
2151 # include <stdlib.h>
2152 # include <stddef.h>
2154 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2156 vim_cv_toupper_broken=yes
2158 vim_cv_toupper_broken=no
2160 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2163 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2164 AC_DEFINE(BROKEN_TOUPPER)
2167 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2168 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2169 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2172 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2173 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2174 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2177 dnl Checks for header files.
2178 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2179 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2180 if test "$HAS_ELF" = 1; then
2181 AC_CHECK_LIB(elf, main)
2186 dnl If sys/wait.h is not found it might still exist but not be POSIX
2187 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2188 if test $ac_cv_header_sys_wait_h = no; then
2189 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2190 AC_TRY_COMPILE([#include <sys/wait.h>],
2191 [union wait xx, yy; xx = yy],
2193 AC_DEFINE(HAVE_SYS_WAIT_H)
2194 AC_DEFINE(HAVE_UNION_WAIT),
2198 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2199 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2200 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2201 sys/resource.h sys/systeminfo.h locale.h \
2202 sys/stream.h termios.h libc.h sys/statfs.h \
2203 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2204 libgen.h util/debug.h util/msg18n.h frame.h \
2205 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2207 dnl sys/ptem.h depends on sys/stream.h on Solaris
2208 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2209 [#if defined HAVE_SYS_STREAM_H
2210 # include <sys/stream.h>
2213 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2214 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2215 [#if defined HAVE_SYS_PARAM_H
2216 # include <sys/param.h>
2220 dnl pthread_np.h may exist but can only be used after including pthread.h
2221 AC_MSG_CHECKING([for pthread_np.h])
2223 #include <pthread.h>
2224 #include <pthread_np.h>],
2227 AC_DEFINE(HAVE_PTHREAD_NP_H),
2230 AC_CHECK_HEADERS(strings.h)
2231 if test "x$MACOSX" = "xyes"; then
2232 dnl The strings.h file on OS/X contains a warning and nothing useful.
2233 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2236 dnl Check if strings.h and string.h can both be included when defined.
2237 AC_MSG_CHECKING([if strings.h can be included after string.h])
2238 cppflags_save=$CPPFLAGS
2239 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2241 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2242 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2243 /* but don't do it on AIX 5.1 (Uribarri) */
2246 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2248 #ifdef HAVE_STRING_H
2249 # include <string.h>
2251 #if defined(HAVE_STRINGS_H)
2252 # include <strings.h>
2256 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2258 CPPFLAGS=$cppflags_save
2261 dnl Checks for typedefs, structures, and compiler characteristics.
2262 AC_PROG_GCC_TRADITIONAL
2271 AC_CHECK_TYPE(ino_t, long)
2272 AC_CHECK_TYPE(dev_t, unsigned)
2274 AC_MSG_CHECKING(for rlim_t)
2275 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2276 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2279 changequote(<<,>>)dnl
2280 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2283 #include <sys/types.h>
2285 # include <stdlib.h>
2286 # include <stddef.h>
2288 #ifdef HAVE_SYS_RESOURCE_H
2289 # include <sys/resource.h>
2291 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2292 AC_MSG_RESULT($ac_cv_type_rlim_t)
2294 if test $ac_cv_type_rlim_t = no; then
2295 cat >> confdefs.h <<\EOF
2296 #define rlim_t unsigned long
2300 AC_MSG_CHECKING(for stack_t)
2301 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2302 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2304 AC_EGREP_CPP(stack_t,
2306 #include <sys/types.h>
2308 # include <stdlib.h>
2309 # include <stddef.h>
2312 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2313 AC_MSG_RESULT($ac_cv_type_stack_t)
2315 if test $ac_cv_type_stack_t = no; then
2316 cat >> confdefs.h <<\EOF
2317 #define stack_t struct sigaltstack
2321 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2322 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2324 #include <sys/types.h>
2326 # include <stdlib.h>
2327 # include <stddef.h>
2330 #include "confdefs.h"
2331 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2332 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2336 AC_MSG_CHECKING(--with-tlib argument)
2337 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2338 if test -n "$with_tlib"; then
2339 AC_MSG_RESULT($with_tlib)
2340 LIBS="$LIBS -l$with_tlib"
2341 AC_MSG_CHECKING(for linking with $with_tlib library)
2342 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2343 dnl Need to check for tgetent() below.
2346 AC_MSG_RESULT([empty: automatic terminal library selection])
2347 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2348 dnl curses, because curses is much slower.
2349 dnl Newer versions of ncurses are preferred over anything.
2350 dnl Older versions of ncurses have bugs, get a new one!
2351 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2352 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2353 case "`uname -s 2>/dev/null`" in
2354 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2355 *) tlibs="ncurses termlib termcap curses";;
2357 for libname in $tlibs; do
2358 AC_CHECK_LIB(${libname}, tgetent,,)
2359 if test "x$olibs" != "x$LIBS"; then
2360 dnl It's possible that a library is found but it doesn't work
2361 dnl e.g., shared library that cannot be found
2362 dnl compile and run a test program to be sure
2364 #ifdef HAVE_TERMCAP_H
2365 # include <termcap.h>
2368 # include <stdlib.h>
2369 # include <stddef.h>
2371 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2372 res="OK", res="FAIL", res="FAIL")
2373 if test "$res" = "OK"; then
2376 AC_MSG_RESULT($libname library is not usable)
2380 if test "x$olibs" = "x$LIBS"; then
2381 AC_MSG_RESULT(no terminal library found)
2385 if test "x$olibs" = "x$LIBS"; then
2386 AC_MSG_CHECKING([for tgetent()])
2388 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2390 AC_MSG_ERROR([NOT FOUND!
2391 You need to install a terminal library; for example ncurses.
2392 Or specify the name of the library with --with-tlib.]))
2395 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2398 #include "confdefs.h"
2399 #ifdef HAVE_TERMCAP_H
2400 # include <termcap.h>
2402 #ifdef HAVE_STRING_H
2403 # include <string.h>
2406 # include <stdlib.h>
2407 # include <stddef.h>
2410 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2416 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2420 if test "x$vim_cv_terminfo" = "xyes" ; then
2424 if test "x$olibs" != "x$LIBS"; then
2425 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2428 #include "confdefs.h"
2429 #ifdef HAVE_TERMCAP_H
2430 # include <termcap.h>
2433 # include <stdlib.h>
2434 # include <stddef.h>
2437 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2441 vim_cv_tgent=non-zero
2443 AC_MSG_ERROR(failed to compile test program.)
2447 if test "x$vim_cv_tgent" = "xzero" ; then
2448 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2452 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2454 #ifdef HAVE_TERMCAP_H
2455 # include <termcap.h>
2457 ], [ospeed = 20000],
2458 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2460 AC_MSG_CHECKING(whether ospeed can be extern)
2462 #ifdef HAVE_TERMCAP_H
2463 # include <termcap.h>
2465 extern short ospeed;
2466 ], [ospeed = 20000],
2467 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2471 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2473 #ifdef HAVE_TERMCAP_H
2474 # include <termcap.h>
2476 ], [if (UP == 0 && BC == 0) PC = 1],
2477 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2479 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2481 #ifdef HAVE_TERMCAP_H
2482 # include <termcap.h>
2484 extern char *UP, *BC, PC;
2485 ], [if (UP == 0 && BC == 0) PC = 1],
2486 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2490 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2492 #ifdef HAVE_TERMCAP_H
2493 # include <termcap.h>
2495 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2496 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2499 dnl On some SCO machines sys/select redefines struct timeval
2500 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2502 #include <sys/types.h>
2503 #include <sys/time.h>
2504 #include <sys/select.h>], ,
2506 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2509 dnl AC_DECL_SYS_SIGLIST
2511 dnl Checks for pty.c (copied from screen) ==========================
2512 AC_MSG_CHECKING(for /dev/ptc)
2513 if test -r /dev/ptc; then
2514 AC_DEFINE(HAVE_DEV_PTC)
2520 AC_MSG_CHECKING(for SVR4 ptys)
2521 if test -c /dev/ptmx ; then
2522 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2523 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2529 AC_MSG_CHECKING(for ptyranges)
2530 if test -d /dev/ptym ; then
2540 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2541 dnl if test -c /dev/ptyp19; then
2542 dnl ptys=`echo /dev/ptyp??`
2544 dnl ptys=`echo $pdir/pty??`
2546 if test "$ptys" != "$pdir/pty??" ; then
2547 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2548 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2549 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2550 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2551 AC_MSG_RESULT([$p0 / $p1])
2553 AC_MSG_RESULT([don't know])
2556 dnl **** pty mode/group handling ****
2558 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2560 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2563 #include "confdefs.h"
2564 #include <sys/types.h>
2566 # include <stdlib.h>
2567 # include <stddef.h>
2569 #ifdef HAVE_UNISTD_H
2572 #include <sys/stat.h>
2581 if (!(x = ttyname(0))) exit(1);
2582 if (stat(x, &sb)) exit(1);
2584 if (om & 002) exit(0);
2585 m = system("mesg y");
2586 if (m == -1 || m == 127) exit(1);
2587 if (stat(x, &sb)) exit(1);
2589 if (chmod(x, om)) exit(1);
2590 if (m & 002) exit(0);
2591 if (sb.st_gid == getgid()) exit(1);
2592 if (!(fp=fopen("conftest_grp", "w")))
2594 fprintf(fp, "%d\n", sb.st_gid);
2599 if test -f conftest_grp; then
2600 vim_cv_tty_group=`cat conftest_grp`
2601 if test "x$vim_cv_tty_mode" = "x" ; then
2602 vim_cv_tty_mode=0620
2604 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2606 vim_cv_tty_group=world
2607 AC_MSG_RESULT([ptys are world accessable])
2610 vim_cv_tty_group=world
2611 AC_MSG_RESULT([can't determine - assume ptys are world accessable])
2613 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2618 if test "x$vim_cv_tty_group" != "xworld" ; then
2619 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2620 if test "x$vim_cv_tty_mode" = "x" ; then
2621 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)])
2623 AC_DEFINE(PTYMODE, 0620)
2627 dnl Checks for library functions. ===================================
2631 dnl find out what to use at the end of a signal function
2632 if test $ac_cv_type_signal = void; then
2633 AC_DEFINE(SIGRETURN, [return])
2635 AC_DEFINE(SIGRETURN, [return 0])
2638 dnl check if struct sigcontext is defined (used for SGI only)
2639 AC_MSG_CHECKING(for struct sigcontext)
2644 struct sigcontext *scont;
2645 scont = (struct sigcontext *)0;
2649 AC_DEFINE(HAVE_SIGCONTEXT),
2652 dnl tricky stuff: try to find out if getcwd() is implemented with
2653 dnl system("sh -c pwd")
2654 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2657 #include "confdefs.h"
2658 #ifdef HAVE_UNISTD_H
2661 char *dagger[] = { "IFS=pwd", 0 };
2665 extern char **environ;
2667 return getcwd(buffer, 500) ? 0 : 1;
2670 vim_cv_getcwd_broken=no
2672 vim_cv_getcwd_broken=yes
2674 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2678 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2679 AC_DEFINE(BAD_GETCWD)
2682 dnl Check for functions in one big call, to reduce the size of configure
2683 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2684 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2685 memset nanosleep opendir putenv qsort readlink select setenv \
2686 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2687 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2688 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2689 usleep utime utimes)
2691 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2692 AC_MSG_CHECKING(for st_blksize)
2694 [#include <sys/types.h>
2695 #include <sys/stat.h>],
2700 n = (int)st.st_blksize;],
2701 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2704 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2707 #include "confdefs.h"
2709 # include <stdlib.h>
2710 # include <stddef.h>
2712 #include <sys/types.h>
2713 #include <sys/stat.h>
2714 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2716 vim_cv_stat_ignores_slash=yes
2718 vim_cv_stat_ignores_slash=no
2720 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2724 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2725 AC_DEFINE(STAT_IGNORES_SLASH)
2728 dnl Link with iconv for charset translation, if not found without library.
2729 dnl check for iconv() requires including iconv.h
2730 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2731 dnl has been installed.
2732 AC_MSG_CHECKING(for iconv_open())
2734 LIBS="$LIBS -liconv"
2739 ], [iconv_open("fr", "to");],
2740 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2746 ], [iconv_open("fr", "to");],
2747 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2751 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2753 #ifdef HAVE_LANGINFO_H
2754 # include <langinfo.h>
2756 ], [char *cs = nl_langinfo(CODESET);],
2757 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2760 dnl Need various functions for floating point support. Only enable
2761 dnl floating point when they are all present.
2762 AC_CHECK_LIB(m, strtod)
2763 AC_MSG_CHECKING([for strtod() and other floating point functions])
2769 # include <stdlib.h>
2770 # include <stddef.h>
2772 ], [char *s; double d;
2773 d = strtod("1.1", &s);
2778 d = pow(1.11, 2.22);
2784 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2787 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2788 dnl when -lacl works, also try to use -lattr (required for Debian).
2789 AC_MSG_CHECKING(--disable-acl argument)
2791 [ --disable-acl Don't check for ACL support.],
2792 , [enable_acl="yes"])
2793 if test "$enable_acl" = "yes"; then
2795 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2796 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2797 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2799 AC_MSG_CHECKING(for POSIX ACL support)
2801 #include <sys/types.h>
2802 #ifdef HAVE_SYS_ACL_H
2803 # include <sys/acl.h>
2805 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2806 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2808 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2811 AC_MSG_CHECKING(for Solaris ACL support)
2813 #ifdef HAVE_SYS_ACL_H
2814 # include <sys/acl.h>
2815 #endif], [acl("foo", GETACLCNT, 0, NULL);
2817 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2820 AC_MSG_CHECKING(for AIX ACL support)
2823 # include <stdlib.h>
2824 # include <stddef.h>
2826 #ifdef HAVE_SYS_ACL_H
2827 # include <sys/acl.h>
2829 #ifdef HAVE_SYS_ACCESS_H
2830 # include <sys/access.h>
2834 #include <sys/stat.h>
2837 struct acl *aclent;], [aclsize = sizeof(struct acl);
2838 aclent = (void *)malloc(aclsize);
2839 statacl("foo", STX_NORMAL, aclent, aclsize);
2841 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2847 AC_MSG_CHECKING(--disable-gpm argument)
2849 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2852 if test "$enable_gpm" = "yes"; then
2854 dnl Checking if gpm support can be compiled
2855 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2856 [olibs="$LIBS" ; LIBS="-lgpm"]
2859 #include <linux/keyboard.h>],
2860 [Gpm_GetLibVersion(NULL);],
2861 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2862 dnl FEAT_MOUSE_GPM if mouse support is included
2863 [vi_cv_have_gpm=yes],
2864 [vi_cv_have_gpm=no])
2867 if test $vi_cv_have_gpm = yes; then
2875 AC_MSG_CHECKING(--disable-sysmouse argument)
2876 AC_ARG_ENABLE(sysmouse,
2877 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2878 [enable_sysmouse="yes"])
2880 if test "$enable_sysmouse" = "yes"; then
2882 dnl Checking if sysmouse support can be compiled
2883 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2884 dnl defines FEAT_SYSMOUSE if mouse support is included
2885 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2887 [#include <sys/consio.h>
2889 #include <sys/fbio.h>],
2890 [struct mouse_info mouse;
2891 mouse.operation = MOUSE_MODE;
2892 mouse.operation = MOUSE_SHOW;
2893 mouse.u.mode.mode = 0;
2894 mouse.u.mode.signal = SIGUSR2;],
2895 [vi_cv_have_sysmouse=yes],
2896 [vi_cv_have_sysmouse=no])
2898 if test $vi_cv_have_sysmouse = yes; then
2899 AC_DEFINE(HAVE_SYSMOUSE)
2905 dnl rename needs to be checked separately to work on Nextstep with cc
2906 AC_MSG_CHECKING(for rename)
2907 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2908 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2911 dnl sysctl() may exist but not the arguments we use
2912 AC_MSG_CHECKING(for sysctl)
2914 [#include <sys/types.h>
2915 #include <sys/sysctl.h>],
2920 mib[1] = HW_USERMEM;
2922 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2924 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2925 AC_MSG_RESULT(not usable))
2927 dnl sysinfo() may exist but not be Linux compatible
2928 AC_MSG_CHECKING(for sysinfo)
2930 [#include <sys/types.h>
2931 #include <sys/sysinfo.h>],
2932 [ struct sysinfo sinfo;
2935 (void)sysinfo(&sinfo);
2938 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2939 AC_MSG_RESULT(not usable))
2941 dnl struct sysinfo may have the mem_unit field or not
2942 AC_MSG_CHECKING(for sysinfo.mem_unit)
2944 [#include <sys/types.h>
2945 #include <sys/sysinfo.h>],
2946 [ struct sysinfo sinfo;
2949 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2952 dnl sysconf() may exist but not support what we want to use
2953 AC_MSG_CHECKING(for sysconf)
2955 [#include <unistd.h>],
2956 [ (void)sysconf(_SC_PAGESIZE);
2957 (void)sysconf(_SC_PHYS_PAGES);
2959 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2960 AC_MSG_RESULT(not usable))
2962 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2963 dnl be printed with "%d", and avoids a warning for cross-compiling.
2965 AC_MSG_CHECKING(size of int)
2966 AC_CACHE_VAL(ac_cv_sizeof_int,
2970 # include <stdlib.h>
2971 # include <stddef.h>
2975 FILE *f=fopen("conftestval", "w");
2977 fprintf(f, "%d\n", (int)sizeof(int));
2980 ac_cv_sizeof_int=`cat conftestval`,
2982 AC_MSG_ERROR(failed to compile test program))])
2983 AC_MSG_RESULT($ac_cv_sizeof_int)
2984 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2986 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2987 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2990 #include "confdefs.h"
2991 #ifdef HAVE_STRING_H
2992 # include <string.h>
2995 # include <stdlib.h>
2996 # include <stddef.h>
3000 strcpy(buf, "abcdefghi");
3001 mch_memmove(buf, buf + 2, 3);
3002 if (strncmp(buf, "ababcf", 6))
3004 strcpy(buf, "abcdefghi");
3005 mch_memmove(buf + 2, buf, 3);
3006 if (strncmp(buf, "cdedef", 6))
3008 exit(0); /* libc version works properly. */
3011 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3013 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3015 vim_cv_memmove_handles_overlap=yes
3017 vim_cv_memmove_handles_overlap=no
3019 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3023 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3024 AC_DEFINE(USEMEMMOVE)
3026 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3028 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3030 vim_cv_bcopy_handles_overlap=yes
3032 vim_cv_bcopy_handles_overlap=no
3034 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3038 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3041 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3043 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3045 vim_cv_memcpy_handles_overlap=yes
3047 vim_cv_memcpy_handles_overlap=no
3049 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3053 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3054 AC_DEFINE(USEMEMCPY)
3060 dnl Check for multibyte locale functions
3061 dnl Find out if _Xsetlocale() is supported by libX11.
3062 dnl Check if X_LOCALE should be defined.
3064 if test "$enable_multibyte" = "yes"; then
3066 ldflags_save=$LDFLAGS
3067 if test "x$x_includes" != "xNONE" ; then
3068 CFLAGS="$CFLAGS -I$x_includes"
3069 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3070 AC_MSG_CHECKING(whether X_LOCALE needed)
3071 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3072 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3073 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3077 LDFLAGS=$ldflags_save
3080 dnl Link with xpg4, it is said to make Korean locale working
3081 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3083 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3084 dnl --version for Exuberant ctags (preferred)
3085 dnl Add --fields=+S to get function signatures for omni completion.
3086 dnl -t for typedefs (many ctags have this)
3087 dnl -s for static functions (Elvis ctags only?)
3088 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3089 dnl -i+m to test for older Exuberant ctags
3090 AC_MSG_CHECKING(how to create tags)
3091 test -f tags && mv tags tags.save
3092 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3093 TAGPRG="ctags -I INIT+ --fields=+S"
3096 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3097 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3098 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3099 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3100 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3101 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3102 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3104 test -f tags.save && mv tags.save tags
3105 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3107 dnl Check how we can run man with a section number
3108 AC_MSG_CHECKING(how to run man with a section nr)
3110 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3111 AC_MSG_RESULT($MANDEF)
3112 if test "$MANDEF" = "man -s"; then
3116 dnl Check if gettext() is working and if it needs -lintl
3117 AC_MSG_CHECKING(--disable-nls argument)
3119 [ --disable-nls Don't support NLS (gettext()).], ,
3122 if test "$enable_nls" = "yes"; then
3125 INSTALL_LANGS=install-languages
3126 AC_SUBST(INSTALL_LANGS)
3127 INSTALL_TOOL_LANGS=install-tool-languages
3128 AC_SUBST(INSTALL_TOOL_LANGS)
3130 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3131 AC_MSG_CHECKING([for NLS])
3132 if test -f po/Makefile; then
3134 if test -n "$MSGFMT"; then
3136 [#include <libintl.h>],
3138 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3142 [#include <libintl.h>],
3144 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3145 AC_MSG_RESULT([gettext() doesn't work]);
3148 AC_MSG_RESULT([msgfmt not found - disabled]);
3150 if test $have_gettext = "yes"; then
3151 AC_DEFINE(HAVE_GETTEXT)
3154 dnl this was added in GNU gettext 0.10.36
3155 AC_CHECK_FUNCS(bind_textdomain_codeset)
3156 dnl _nl_msg_cat_cntr is required for GNU gettext
3157 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3159 [#include <libintl.h>
3160 extern int _nl_msg_cat_cntr;],
3161 [++_nl_msg_cat_cntr;],
3162 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3163 AC_MSG_RESULT([no]))
3166 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3172 dnl Check for dynamic linking loader
3173 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3174 if test x${DLL} = xdlfcn.h; then
3175 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3176 AC_MSG_CHECKING([for dlopen()])
3178 extern void* dlopen();
3182 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3184 AC_MSG_CHECKING([for dlopen() in -ldl])
3188 extern void* dlopen();
3192 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3195 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3197 AC_MSG_CHECKING([for dlsym()])
3199 extern void* dlsym();
3203 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3205 AC_MSG_CHECKING([for dlsym() in -ldl])
3209 extern void* dlsym();
3213 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3216 elif test x${DLL} = xdl.h; then
3217 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3218 AC_MSG_CHECKING([for shl_load()])
3220 extern void* shl_load();
3224 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3226 AC_MSG_CHECKING([for shl_load() in -ldld])
3230 extern void* shl_load();
3234 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3238 AC_CHECK_HEADERS(setjmp.h)
3240 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3241 dnl -ldl must come after DynaLoader.a
3242 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3243 LIBS=`echo $LIBS | sed s/-ldl//`
3244 PERL_LIBS="$PERL_LIBS -ldl"
3248 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3249 && test "x$GUITYPE" != "xCARBONGUI"; then
3250 AC_MSG_CHECKING(whether we need -framework Carbon)
3251 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3252 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3253 || test "x$features" = "xhuge"; then
3254 LIBS="$LIBS -framework Carbon"
3260 if test "x$MACARCH" = "xboth"; then
3261 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3264 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3265 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3266 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3267 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3268 dnl the number before the version number.
3269 DEPEND_CFLAGS_FILTER=
3270 if test "$GCC" = yes; then
3271 AC_MSG_CHECKING(for GCC 3 or later)
3272 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3273 if test "$gccmajor" -gt "2"; then
3274 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3279 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3280 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3281 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3282 if test "$gccmajor" -gt "3"; then
3283 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
3289 AC_SUBST(DEPEND_CFLAGS_FILTER)
3291 dnl write output files
3292 AC_OUTPUT(auto/config.mk:config.mk.in)
3294 dnl vim: set sw=2 tw=78 fo+=l: