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])
115 AC_MSG_CHECKING(--with-macsdk argument)
117 [ --with-macsdk=SDK SDK version (10.4, 10.5, 10.6, ...)],
118 [ MACSDK="$withval"; AC_MSG_RESULT($MACSDK) ],
119 [ MACSDK=""; AC_MSG_RESULT(using default) ])
121 if test -n "$MACSDK"; then
122 AC_MSG_CHECKING(if SDK is supported)
123 save_cflags="$CFLAGS"
124 save_ldflags="$LDFLAGS"
125 sdkflags="/Developer/SDKs/MacOSX$MACSDK"
126 if test "x$MACSDK" = "x10.4"; then
127 sdkflags="$sdkflags""u"
129 sdkflags="$sdkflags.sdk -mmacosx-version-min=$MACSDK"
130 CFLAGS="$CFLAGS -isysroot $sdkflags"
131 LDFLAGS="$LDFLAGS -Wl,-syslibroot,$sdkflags"
132 AC_TRY_LINK([ ], [ ],
133 [ AC_MSG_RESULT([yes])
134 XCODEFLAGS="$XCODEFLAGS -sdk macosx$MACSDK MACOSX_DEPLOYMENT_TARGET=$MACSDK" ],
135 [ AC_MSG_RESULT([no])
136 dnl Important to clear MACSDK so later on in the script we can assume
137 dnl that no SDK was chosen if it is empty.
139 CFLAGS="$save_cflags"
140 LDFLAGS="$save_ldflags" ])
144 AC_MSG_CHECKING(--with-macarchs argument)
145 AC_ARG_WITH(macarchs,
146 [ --with-macarchs=ARCHS space separated list of archs (i386 x86_64 ppc ...)],
147 [ ARCHS="$withval"; AC_MSG_RESULT($ARCHS) ],
148 [ ARCHS=""; AC_MSG_RESULT(defaulting to native arch) ])
150 if test -n "$ARCHS"; then
151 AC_MSG_CHECKING(if architectures are supported)
152 save_cflags="$CFLAGS"
153 save_ldflags="$LDFLAGS"
154 archflags=`echo "$ARCHS" | sed -e 's/[[[:<:]]]/-arch /g'`
155 CFLAGS="$CFLAGS $archflags"
156 LDFLAGS="$LDFLAGS $archflags"
157 AC_TRY_LINK([ ], [ ],
158 [ AC_MSG_RESULT([yes])
159 XCODEFLAGS="$XCODEFLAGS ARCHS=\"$ARCHS\" ONLY_ACTIVE_ARCH=\"NO\"" ],
160 [ AC_MSG_RESULT([no, will build for native arch only])
162 CFLAGS="$save_cflags"
163 LDFLAGS="$save_ldflags" ])
167 if test "$enable_darwin" = "yes"; then
169 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
170 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
171 dnl TODO: use -arch i386 on Intel machines
172 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
174 dnl If Carbon or Cocoa is found, assume we don't want
175 dnl X11 unless it was specifically asked for (--with-x)
176 dnl or Motif, Athena or GTK GUI is used.
177 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
179 SAVE_CPPFLAGS=$CPPFLAGS
181 CPPFLAGS="$CPPFLAGS -ObjC"
182 CFLAGS="$CFLAGS -ObjC"
183 AC_CHECK_HEADER(Cocoa/Cocoa.h, COCOA=yes)
184 CPPFLAGS=$SAVE_CPPFLAGS
187 if test "x$CARBON" = "xyes" -o "x$COCOA" = "xyes"; then
188 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
197 AC_SUBST(OS_EXTRA_SRC)
198 AC_SUBST(OS_EXTRA_OBJ)
200 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
201 dnl Only when the directory exists and it wasn't there yet.
202 dnl For gcc don't do this when it is already in the default search path.
203 dnl Skip all of this when cross-compiling.
204 if test "$cross_compiling" = no; then
205 AC_MSG_CHECKING(--with-local-dir argument)
206 have_local_include=''
208 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
209 --without-local-dir do not search /usr/local for local libraries.], [
214 # avoid adding local dir to LDFLAGS and CPPFLAGS
218 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
220 AC_MSG_RESULT($local_dir)
223 AC_MSG_RESULT(Defaulting to $local_dir)
225 if test "$GCC" = yes -a "$local_dir" != no; then
226 echo 'void f(){}' > conftest.c
227 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
228 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
229 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
230 rm -f conftest.c conftest.o
232 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
233 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
234 if test "$tt" = "$LDFLAGS"; then
235 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
238 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
239 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
240 if test "$tt" = "$CPPFLAGS"; then
241 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
246 AC_MSG_CHECKING(--with-vim-name argument)
247 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
248 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
249 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
251 AC_MSG_CHECKING(--with-ex-name argument)
252 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
253 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
254 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
256 AC_MSG_CHECKING(--with-view-name argument)
257 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
258 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
259 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
262 AC_MSG_CHECKING(--with-global-runtime argument)
263 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
264 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
267 AC_MSG_CHECKING(--with-modified-by argument)
268 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
269 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
272 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
273 AC_MSG_CHECKING(if character set is EBCDIC)
275 [ /* TryCompile function for CharSet.
276 Treat any failure as ASCII for compatibility with existing art.
277 Use compile-time rather than run-time tests for cross-compiler
280 make an error "Character set is not EBCDIC"
282 [ # TryCompile action if true
284 [ # TryCompile action if false
286 # end of TryCompile ])
287 # end of CacheVal CvEbcdic
288 AC_MSG_RESULT($cf_cv_ebcdic)
289 case "$cf_cv_ebcdic" in #(vi
290 yes) AC_DEFINE(EBCDIC)
293 *) line_break='"\\012"';;
297 if test "$cf_cv_ebcdic" = "yes"; then
298 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
299 AC_MSG_CHECKING(for OS/390 Unix)
301 OS/390) OS390Unix="yes";
302 dnl If using cc the environment variable _CC_CCMODE must be
303 dnl set to "1", so that some compiler extensions are enabled.
304 dnl If using c89 the environment variable is named _CC_C89MODE.
305 dnl Note: compile with c89 never tested.
306 if test "$CC" = "cc"; then
310 if test "$CC" = "c89"; then
317 if test "$ccm" != "1"; then
319 echo "------------------------------------------"
320 echo " On OS/390 Unix, the environment variable"
321 echo " __CC_${ccn}MODE must be set to \"1\"!"
323 echo " export _CC_${ccn}MODE=1"
324 echo " and then call configure again."
325 echo "------------------------------------------"
328 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
337 dnl Link with -lselinux for SELinux stuff; if not found
338 AC_MSG_CHECKING(--disable-selinux argument)
339 AC_ARG_ENABLE(selinux,
340 [ --disable-selinux Don't check for SELinux support.],
341 , enable_selinux="yes")
342 if test "$enable_selinux" = "yes"; then
344 AC_CHECK_LIB(selinux, is_selinux_enabled,
345 [LIBS="$LIBS -lselinux"
346 AC_DEFINE(HAVE_SELINUX)])
351 dnl Check user requested features.
353 AC_MSG_CHECKING(--with-features argument)
354 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
355 features="$withval"; AC_MSG_RESULT($features),
356 features="normal"; AC_MSG_RESULT(Defaulting to normal))
361 tiny) AC_DEFINE(FEAT_TINY) ;;
362 small) AC_DEFINE(FEAT_SMALL) ;;
363 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
364 dogvimdiff="installgvimdiff" ;;
365 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
366 dogvimdiff="installgvimdiff" ;;
367 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
368 dogvimdiff="installgvimdiff" ;;
369 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
375 AC_MSG_CHECKING(--with-compiledby argument)
376 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
377 compiledby="$withval"; AC_MSG_RESULT($withval),
378 compiledby=""; AC_MSG_RESULT(no))
381 AC_MSG_CHECKING(--disable-xsmp argument)
383 [ --disable-xsmp Disable XSMP session management],
386 if test "$enable_xsmp" = "yes"; then
388 AC_MSG_CHECKING(--disable-xsmp-interact argument)
389 AC_ARG_ENABLE(xsmp-interact,
390 [ --disable-xsmp-interact Disable XSMP interaction],
391 , enable_xsmp_interact="yes")
392 if test "$enable_xsmp_interact" = "yes"; then
394 AC_DEFINE(USE_XSMP_INTERACT)
402 dnl Check for MzScheme feature.
403 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
404 AC_ARG_ENABLE(mzschemeinterp,
405 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
406 [enable_mzschemeinterp="no"])
407 AC_MSG_RESULT($enable_mzschemeinterp)
409 if test "$enable_mzschemeinterp" = "yes"; then
410 dnl -- find the mzscheme executable
411 AC_SUBST(vi_cv_path_mzscheme)
413 AC_MSG_CHECKING(--with-plthome argument)
415 [ --with-plthome=PLTHOME Use PLTHOME.],
416 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
417 with_plthome="";AC_MSG_RESULT("no"))
419 if test "X$with_plthome" != "X"; then
420 vi_cv_path_mzscheme_pfx="$with_plthome"
422 AC_MSG_CHECKING(PLTHOME environment var)
423 if test "X$PLTHOME" != "X"; then
424 AC_MSG_RESULT("$PLTHOME")
425 vi_cv_path_mzscheme_pfx="$PLTHOME"
427 AC_MSG_RESULT(not set)
428 dnl -- try to find MzScheme executable
429 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
431 dnl resolve symbolic link, the executable is often elsewhere and there
432 dnl are no links for the include files.
433 if test "X$vi_cv_path_mzscheme" != "X"; then
434 lsout=`ls -l $vi_cv_path_mzscheme`
435 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
436 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
440 if test "X$vi_cv_path_mzscheme" != "X"; then
441 dnl -- find where MzScheme thinks it was installed
442 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
443 dnl different versions of MzScheme differ in command line processing
444 dnl use universal approach
445 echo "(display (simplify-path \
446 (build-path (call-with-values \
447 (lambda () (split-path (find-system-path (quote exec-file)))) \
448 (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
449 dnl Remove a trailing slash
450 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
458 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
459 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
460 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
461 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
465 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
466 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
468 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
471 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
472 if test -f /usr/include/plt/scheme.h; then
474 SCHEME_INC=/usr/include/plt
477 vi_cv_path_mzscheme_pfx=
483 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
484 if test "x$MACOSX" = "xyes"; then
485 MZSCHEME_LIBS="-framework PLT_MzScheme"
486 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
487 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
488 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
489 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
490 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
492 dnl Using shared objects
493 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
494 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
495 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
497 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
499 if test "$GCC" = yes; then
500 dnl Make Vim remember the path to the library. For when it's not in
501 dnl $LD_LIBRARY_PATH.
502 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
503 elif test "`(uname) 2>/dev/null`" = SunOS &&
504 uname -r | grep '^5' >/dev/null; then
505 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
508 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
509 SCHEME_COLLECTS=lib/plt/
511 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
512 dnl need to generate bytecode for MzScheme base
513 MZSCHEME_EXTRA="mzscheme_base.c"
514 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
515 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
517 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
518 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
519 MZSCHEME_SRC="if_mzsch.c"
520 MZSCHEME_OBJ="objects/if_mzsch.o"
521 MZSCHEME_PRO="if_mzsch.pro"
522 AC_DEFINE(FEAT_MZSCHEME)
524 AC_SUBST(MZSCHEME_SRC)
525 AC_SUBST(MZSCHEME_OBJ)
526 AC_SUBST(MZSCHEME_PRO)
527 AC_SUBST(MZSCHEME_LIBS)
528 AC_SUBST(MZSCHEME_CFLAGS)
529 AC_SUBST(MZSCHEME_EXTRA)
530 AC_SUBST(MZSCHEME_MZC)
534 AC_MSG_CHECKING(--enable-perlinterp argument)
535 AC_ARG_ENABLE(perlinterp,
536 [ --enable-perlinterp Include Perl interpreter.], ,
537 [enable_perlinterp="no"])
538 AC_MSG_RESULT($enable_perlinterp)
539 if test "$enable_perlinterp" = "yes"; then
540 AC_SUBST(vi_cv_path_perl)
541 AC_PATH_PROG(vi_cv_path_perl, perl)
542 if test "X$vi_cv_path_perl" != "X"; then
543 AC_MSG_CHECKING(Perl version)
544 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
545 eval `$vi_cv_path_perl -V:usethreads`
546 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
549 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
550 eval `$vi_cv_path_perl -V:use5005threads`
551 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
555 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
559 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
562 if test $badthreads = no; then
564 eval `$vi_cv_path_perl -V:shrpenv`
565 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
568 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
569 AC_SUBST(vi_cv_perllib)
570 dnl Remove "-fno-something", it breaks using cproto.
571 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
572 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
573 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
574 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
575 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
576 -e 's/-bE:perl.exp//' -e 's/-lc //'`
577 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
578 dnl a test in configure may fail because of that.
579 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
580 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
582 if test "x$MACOSX" = "xyes"; then
583 dnl Perl on Mac OS X 10.5 and later adds "-arch" flags but these
584 dnl should only be included if requested by passing --with-archs
585 dnl to configure, so strip these flags first (if present)
586 perllibs=`echo "$perllibs" | sed -e 's/-arch[[^-]]*//g'`
587 perlcppflags=`echo "$perlcppflags" | sed -e 's/-arch[[^-]]*//g'`
590 dnl check that compiling a simple program still works with the flags
592 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
595 ldflags_save=$LDFLAGS
596 CFLAGS="$CFLAGS $perlcppflags"
597 LIBS="$LIBS $perllibs"
598 LDFLAGS="$perlldflags $LDFLAGS"
600 AC_MSG_RESULT(yes); perl_ok=yes,
601 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
604 LDFLAGS=$ldflags_save
605 if test $perl_ok = yes; then
606 if test "X$perlcppflags" != "X"; then
607 dnl remove -pipe and -Wxxx, it confuses cproto
608 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
610 if test "X$perlldflags" != "X"; then
611 LDFLAGS="$perlldflags $LDFLAGS"
614 PERL_SRC="auto/if_perl.c if_perlsfio.c"
615 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
616 PERL_PRO="if_perl.pro if_perlsfio.pro"
621 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
625 if test "x$MACOSX" = "xyes"; then
626 dnl Mac OS X 10.2 or later
627 dir=/System/Library/Perl
628 darwindir=$dir/darwin
629 if test -d $darwindir; then
633 dir=/System/Library/Perl/5.8.1
634 darwindir=$dir/darwin-thread-multi-2level
635 if test -d $darwindir; then
639 if test -n "$PERL"; then
641 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
642 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
643 PERL_LIBS="-L$darwindir/CORE -lperl"
651 AC_SUBST(PERL_CFLAGS)
654 AC_MSG_CHECKING(--enable-pythoninterp argument)
655 AC_ARG_ENABLE(pythoninterp,
656 [ --enable-pythoninterp Include Python interpreter.], ,
657 [enable_pythoninterp="no"])
658 AC_MSG_RESULT($enable_pythoninterp)
659 if test "$enable_pythoninterp" = "yes"; then
660 dnl -- find the python executable
661 AC_PATH_PROG(vi_cv_path_python, python)
662 if test "X$vi_cv_path_python" != "X"; then
664 dnl -- get its version number
665 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
666 [[vi_cv_var_python_version=`
667 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
670 dnl -- it must be at least version 1.4
671 AC_MSG_CHECKING(Python is 1.4 or better)
672 if ${vi_cv_path_python} -c \
673 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
677 dnl -- find where python thinks it was installed
678 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
679 [ vi_cv_path_python_pfx=`
680 ${vi_cv_path_python} -c \
681 "import sys; print sys.prefix"` ])
683 dnl -- and where it thinks it runs
684 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
685 [ vi_cv_path_python_epfx=`
686 ${vi_cv_path_python} -c \
687 "import sys; print sys.exec_prefix"` ])
689 dnl -- python's internal library path
691 AC_CACHE_VAL(vi_cv_path_pythonpath,
692 [ vi_cv_path_pythonpath=`
694 ${vi_cv_path_python} -c \
695 "import sys, string; print string.join(sys.path,':')"` ])
697 dnl -- where the Python implementation library archives are
699 AC_ARG_WITH(python-config-dir,
700 [ --with-python-config-dir=PATH Python's config directory],
701 [ vi_cv_path_python_conf="${withval}" ] )
703 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
705 vi_cv_path_python_conf=
706 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
707 for subdir in lib64 lib share; do
708 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
709 if test -d "$d" && test -f "$d/config.c"; then
710 vi_cv_path_python_conf="$d"
716 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
718 if test "X$PYTHON_CONFDIR" = "X"; then
719 AC_MSG_RESULT([can't find it!])
722 dnl -- we need to examine Python's config/Makefile too
723 dnl see what the interpreter is built from
724 AC_CACHE_VAL(vi_cv_path_python_plibs,
727 tmp_mkf="$pwd/config-PyMake$$"
728 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
730 @echo "python_MODLIBS='$(MODLIBS)'"
731 @echo "python_LIBS='$(LIBS)'"
732 @echo "python_SYSLIBS='$(SYSLIBS)'"
733 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
735 dnl -- delete the lines from make about Entering/Leaving directory
736 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
737 rm -f -- "${tmp_mkf}"
738 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
739 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
740 vi_cv_path_python_plibs="-framework Python"
742 if test "${vi_cv_var_python_version}" = "1.4"; then
743 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
745 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
747 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
748 dnl remove -ltermcap, it can conflict with an earlier -lncurses
749 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
753 PYTHON_LIBS="${vi_cv_path_python_plibs}"
754 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
755 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
757 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}"
759 PYTHON_SRC="if_python.c"
760 dnl For Mac OSX 10.2 config.o is included in the Python library.
761 if test "x$MACOSX" = "xyes"; then
762 PYTHON_OBJ="objects/if_python.o"
764 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
766 if test "${vi_cv_var_python_version}" = "1.4"; then
767 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
769 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
771 dnl On FreeBSD linking with "-pthread" is required to use threads.
772 dnl _THREAD_SAFE must be used for compiling then.
773 dnl The "-pthread" is added to $LIBS, so that the following check for
774 dnl sigaltstack() will look in libc_r (it's there in libc!).
775 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
776 dnl will then define target-specific defines, e.g., -D_REENTRANT.
777 dnl Don't do this for Mac OSX, -pthread will generate a warning.
778 AC_MSG_CHECKING([if -pthread should be used])
781 dnl if test "x$MACOSX" != "xyes"; then
782 if test "`(uname) 2>/dev/null`" != Darwin; then
783 test "$GCC" = yes && threadsafe_flag="-pthread"
784 if test "`(uname) 2>/dev/null`" = FreeBSD; then
785 threadsafe_flag="-D_THREAD_SAFE"
786 thread_lib="-pthread"
790 if test -n "$threadsafe_flag"; then
792 CFLAGS="$CFLAGS $threadsafe_flag"
793 LIBS="$LIBS $thread_lib"
795 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
796 AC_MSG_RESULT(no); LIBS=$libs_save_old
803 dnl On Mac OS X, when an SDK has been explicitly chosen we can't rely
804 dnl on any of the search paths set above. The -framework flag does it
806 if test -n "$MACSDK"; then
808 PYTHON_LIBS=-framework Python
810 PYTHON_GETPATH_CFLAGS=
813 dnl check that compiling a simple program still works with the flags
814 dnl added for Python.
815 AC_MSG_CHECKING([if compile and link flags for Python are sane])
818 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
819 LIBS="$LIBS $PYTHON_LIBS"
821 AC_MSG_RESULT(yes); python_ok=yes,
822 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
825 if test $python_ok = yes; then
826 AC_DEFINE(FEAT_PYTHON)
837 AC_MSG_RESULT(too old)
841 AC_SUBST(PYTHON_CONFDIR)
842 AC_SUBST(PYTHON_LIBS)
843 AC_SUBST(PYTHON_GETPATH_CFLAGS)
844 AC_SUBST(PYTHON_CFLAGS)
848 AC_MSG_CHECKING(--enable-tclinterp argument)
849 AC_ARG_ENABLE(tclinterp,
850 [ --enable-tclinterp Include Tcl interpreter.], ,
851 [enable_tclinterp="no"])
852 AC_MSG_RESULT($enable_tclinterp)
854 if test "$enable_tclinterp" = "yes"; then
856 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
857 AC_MSG_CHECKING(--with-tclsh argument)
858 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
859 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
860 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
861 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
862 AC_SUBST(vi_cv_path_tcl)
864 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
865 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
866 tclsh_name="tclsh8.4"
867 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
869 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
870 tclsh_name="tclsh8.2"
871 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
873 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
874 tclsh_name="tclsh8.0"
875 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
877 dnl still didn't find it, try without version number
878 if test "X$vi_cv_path_tcl" = "X"; then
880 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
882 if test "X$vi_cv_path_tcl" != "X"; then
883 AC_MSG_CHECKING(Tcl version)
884 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
885 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
886 AC_MSG_RESULT($tclver - OK);
887 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 -`
889 AC_MSG_CHECKING(for location of Tcl include)
890 if test "x$MACOSX" != "xyes"; then
891 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
893 dnl For Mac OS X 10.3, use the OS-provided framework location
894 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
897 for try in $tclinc; do
898 if test -f "$try/tcl.h"; then
899 AC_MSG_RESULT($try/tcl.h)
904 if test -z "$TCL_INC"; then
905 AC_MSG_RESULT(<not found>)
908 if test -z "$SKIP_TCL"; then
909 AC_MSG_CHECKING(for location of tclConfig.sh script)
910 if test "x$MACOSX" != "xyes"; then
911 tclcnf=`echo $tclinc | sed s/include/lib/g`
912 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
914 dnl For Mac OS X 10.3, use the OS-provided framework location
915 tclcnf="/System/Library/Frameworks/Tcl.framework"
917 for try in $tclcnf; do
918 if test -f $try/tclConfig.sh; then
919 AC_MSG_RESULT($try/tclConfig.sh)
921 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
922 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
923 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
924 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
925 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'`
929 if test -z "$TCL_LIBS"; then
930 AC_MSG_RESULT(<not found>)
931 AC_MSG_CHECKING(for Tcl library by myself)
932 tcllib=`echo $tclinc | sed s/include/lib/g`
933 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
934 for ext in .so .a ; do
935 for ver in "" $tclver ; do
936 for try in $tcllib ; do
938 if test -f $try/lib$trylib ; then
939 AC_MSG_RESULT($try/lib$trylib)
940 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
941 if test "`(uname) 2>/dev/null`" = SunOS &&
942 uname -r | grep '^5' >/dev/null; then
943 TCL_LIBS="$TCL_LIBS -R $try"
950 if test -z "$TCL_LIBS"; then
951 AC_MSG_RESULT(<not found>)
955 if test -z "$SKIP_TCL"; then
958 TCL_OBJ=objects/if_tcl.o
960 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
964 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
974 AC_MSG_CHECKING(--enable-rubyinterp argument)
975 AC_ARG_ENABLE(rubyinterp,
976 [ --enable-rubyinterp Include Ruby interpreter.], ,
977 [enable_rubyinterp="no"])
978 AC_MSG_RESULT($enable_rubyinterp)
979 if test "$enable_rubyinterp" = "yes"; then
980 AC_SUBST(vi_cv_path_ruby)
981 AC_PATH_PROG(vi_cv_path_ruby, ruby)
982 if test "X$vi_cv_path_ruby" != "X"; then
983 AC_MSG_CHECKING(Ruby version)
984 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
986 AC_MSG_CHECKING(Ruby header files)
987 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
988 if test "X$rubyhdrdir" != "X"; then
989 AC_MSG_RESULT($rubyhdrdir)
990 RUBY_CFLAGS="-I$rubyhdrdir"
991 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
992 if test "X$rubylibs" != "X"; then
993 RUBY_LIBS="$rubylibs"
995 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
996 if test -f "$rubyhdrdir/$librubyarg"; then
997 librubyarg="$rubyhdrdir/$librubyarg"
999 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
1000 if test -d "/System/Library/Frameworks/Ruby.framework"; then
1001 dnl On Mac OS X it is safer to just use the -framework flag
1002 RUBY_LIBS="-framework Ruby"
1003 dnl Don't include the -I flag when -framework is set
1006 elif test -f "$rubylibdir/$librubyarg"; then
1007 librubyarg="$rubylibdir/$librubyarg"
1008 elif test "$librubyarg" = "libruby.a"; then
1009 dnl required on Mac OS 10.3 where libruby.a doesn't exist
1012 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
1016 if test "X$librubyarg" != "X"; then
1017 RUBY_LIBS="$librubyarg $RUBY_LIBS"
1019 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
1020 if test "x$MACOSX" = "xyes"; then
1021 dnl Ruby on Mac OS X 10.5 and later adds "-arch" flags but these
1022 dnl should only be included if requested by passing --with-archs
1023 dnl to configure, so strip these flags first (if present)
1024 rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch[[^-]]*//g'`
1026 if test "X$rubyldflags" != "X"; then
1027 LDFLAGS="$rubyldflags $LDFLAGS"
1029 RUBY_SRC="if_ruby.c"
1030 RUBY_OBJ="objects/if_ruby.o"
1031 RUBY_PRO="if_ruby.pro"
1033 AC_DEFINE(FEAT_RUBY)
1035 AC_MSG_RESULT(not found, disabling Ruby)
1038 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1045 AC_SUBST(RUBY_CFLAGS)
1048 AC_MSG_CHECKING(--enable-cscope argument)
1049 AC_ARG_ENABLE(cscope,
1050 [ --enable-cscope Include cscope interface.], ,
1051 [enable_cscope="no"])
1052 AC_MSG_RESULT($enable_cscope)
1053 if test "$enable_cscope" = "yes"; then
1054 AC_DEFINE(FEAT_CSCOPE)
1057 AC_MSG_CHECKING(--enable-workshop argument)
1058 AC_ARG_ENABLE(workshop,
1059 [ --enable-workshop Include Sun Visual Workshop support.], ,
1060 [enable_workshop="no"])
1061 AC_MSG_RESULT($enable_workshop)
1062 if test "$enable_workshop" = "yes"; then
1063 AC_DEFINE(FEAT_SUN_WORKSHOP)
1064 WORKSHOP_SRC="workshop.c integration.c"
1065 AC_SUBST(WORKSHOP_SRC)
1066 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1067 AC_SUBST(WORKSHOP_OBJ)
1068 if test "${enable_gui-xxx}" = xxx; then
1073 AC_MSG_CHECKING(--disable-netbeans argument)
1074 AC_ARG_ENABLE(netbeans,
1075 [ --disable-netbeans Disable NetBeans integration support.],
1076 , [enable_netbeans="yes"])
1077 if test "$enable_netbeans" = "yes"; then
1079 dnl On Solaris we need the socket and nsl library.
1080 AC_CHECK_LIB(socket, socket)
1081 AC_CHECK_LIB(nsl, gethostbyname)
1082 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1089 #include <netinet/in.h>
1091 #include <sys/types.h>
1092 #include <sys/socket.h>
1093 /* Check bitfields */
1095 unsigned int initDone:1;
1099 /* Check creating a socket. */
1100 struct sockaddr_in server;
1101 (void)socket(AF_INET, SOCK_STREAM, 0);
1103 (void)gethostbyname("microsoft.com");
1104 if (errno == ECONNREFUSED)
1105 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1108 AC_MSG_RESULT(no); enable_netbeans="no")
1112 if test "$enable_netbeans" = "yes"; then
1113 AC_DEFINE(FEAT_NETBEANS_INTG)
1114 NETBEANS_SRC="netbeans.c"
1115 AC_SUBST(NETBEANS_SRC)
1116 NETBEANS_OBJ="objects/netbeans.o"
1117 AC_SUBST(NETBEANS_OBJ)
1120 AC_MSG_CHECKING(--enable-sniff argument)
1121 AC_ARG_ENABLE(sniff,
1122 [ --enable-sniff Include Sniff interface.], ,
1123 [enable_sniff="no"])
1124 AC_MSG_RESULT($enable_sniff)
1125 if test "$enable_sniff" = "yes"; then
1126 AC_DEFINE(FEAT_SNIFF)
1127 SNIFF_SRC="if_sniff.c"
1129 SNIFF_OBJ="objects/if_sniff.o"
1133 AC_MSG_CHECKING(--enable-multibyte argument)
1134 AC_ARG_ENABLE(multibyte,
1135 [ --enable-multibyte Include multibyte editing support.], ,
1136 [enable_multibyte="no"])
1137 AC_MSG_RESULT($enable_multibyte)
1138 if test "$enable_multibyte" = "yes"; then
1139 AC_DEFINE(FEAT_MBYTE)
1142 AC_MSG_CHECKING(--enable-hangulinput argument)
1143 AC_ARG_ENABLE(hangulinput,
1144 [ --enable-hangulinput Include Hangul input support.], ,
1145 [enable_hangulinput="no"])
1146 AC_MSG_RESULT($enable_hangulinput)
1148 AC_MSG_CHECKING(--enable-xim argument)
1150 [ --enable-xim Include XIM input support.],
1151 AC_MSG_RESULT($enable_xim),
1152 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1153 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1155 AC_MSG_CHECKING(--enable-fontset argument)
1156 AC_ARG_ENABLE(fontset,
1157 [ --enable-fontset Include X fontset output support.], ,
1158 [enable_fontset="no"])
1159 AC_MSG_RESULT($enable_fontset)
1160 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1162 test -z "$with_x" && with_x=yes
1163 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1164 if test "$with_x" = no; then
1165 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1167 dnl Do this check early, so that its failure can override user requests.
1169 AC_PATH_PROG(xmkmfpath, xmkmf)
1173 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1174 dnl be compiled with a special option.
1175 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1176 if test "$OS390Unix" = "yes"; then
1177 CFLAGS="$CFLAGS -W c,dll"
1178 LDFLAGS="$LDFLAGS -W l,dll"
1179 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1182 dnl On my HPUX system the X include dir is found, but the lib dir not.
1183 dnl This is a desparate try to fix this.
1185 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1186 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1187 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1188 X_LIBS="$X_LIBS -L$x_libraries"
1189 if test "`(uname) 2>/dev/null`" = SunOS &&
1190 uname -r | grep '^5' >/dev/null; then
1191 X_LIBS="$X_LIBS -R $x_libraries"
1195 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1196 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1197 AC_MSG_RESULT(Corrected X includes to $x_includes)
1198 X_CFLAGS="$X_CFLAGS -I$x_includes"
1201 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1202 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1203 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1204 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1205 dnl Same for "-R/usr/lib ".
1206 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1209 dnl Check if the X11 header files are correctly installed. On some systems
1210 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1212 AC_MSG_CHECKING(if X11 header files can be found)
1214 CFLAGS="$CFLAGS $X_CFLAGS"
1215 AC_TRY_COMPILE([#include <X11/Xlib.h>
1216 #include <X11/Intrinsic.h>], ,
1218 AC_MSG_RESULT(no); no_x=yes)
1221 if test "${no_x-no}" = yes; then
1228 ac_save_LDFLAGS="$LDFLAGS"
1229 LDFLAGS="-L$x_libraries $LDFLAGS"
1231 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1232 dnl For HP-UX 10.20 it must be before -lSM -lICE
1233 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1234 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1236 dnl Some systems need -lnsl -lsocket when testing for ICE.
1237 dnl The check above doesn't do this, try here (again). Also needed to get
1238 dnl them after Xdmcp. link.sh will remove them when not needed.
1239 dnl Check for other function than above to avoid the cached value
1240 AC_CHECK_LIB(ICE, IceOpenConnection,
1241 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1243 dnl Check for -lXpm (needed for some versions of Motif)
1244 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1245 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1246 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1248 dnl Check that the X11 header files don't use implicit declarations
1249 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1251 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1252 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1254 CFLAGS="$CFLAGS -Wno-implicit-int"
1255 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1256 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1257 AC_MSG_RESULT(test failed)
1262 LDFLAGS="$ac_save_LDFLAGS"
1264 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1265 AC_CACHE_VAL(ac_cv_small_wchar_t,
1267 #include <X11/Xlib.h>
1269 # include <stdlib.h>
1270 # include <stddef.h>
1274 if (sizeof(wchar_t) <= 2)
1278 ac_cv_small_wchar_t="no",
1279 ac_cv_small_wchar_t="yes",
1280 AC_MSG_ERROR(failed to compile test program))])
1281 AC_MSG_RESULT($ac_cv_small_wchar_t)
1282 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1283 AC_DEFINE(SMALL_WCHAR_T)
1289 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1291 AC_MSG_CHECKING(--enable-gui argument)
1293 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon/macvim]], , enable_gui="auto")
1295 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1296 dnl Do not use character classes for portability with old tools.
1297 enable_gui_canon=`echo "_$enable_gui" | \
1298 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1300 dnl Skip everything by default.
1312 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1314 case "$enable_gui_canon" in
1315 no) AC_MSG_RESULT(no GUI support)
1317 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1318 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1319 photon) AC_MSG_RESULT(Photon GUI support) ;;
1320 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1324 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1327 case "$enable_gui_canon" in
1328 no) AC_MSG_RESULT(no GUI support)
1331 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1332 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1333 carbon) AC_MSG_RESULT(Carbon GUI support)
1335 macvim) AC_MSG_RESULT(MacVim GUI support)
1337 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1344 case "$enable_gui_canon" in
1345 no|none) AC_MSG_RESULT(no GUI support) ;;
1346 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1355 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1357 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1360 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1363 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1367 motif) AC_MSG_RESULT(Motif GUI support)
1369 athena) AC_MSG_RESULT(Athena GUI support)
1371 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1373 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1378 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1379 AC_MSG_CHECKING(whether or not to look for GTK)
1380 AC_ARG_ENABLE(gtk-check,
1381 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1382 , enable_gtk_check="yes")
1383 AC_MSG_RESULT($enable_gtk_check)
1384 if test "x$enable_gtk_check" = "xno"; then
1390 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1391 -a "$enable_gui_canon" != "gnome2"; then
1392 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1393 AC_ARG_ENABLE(gtk2-check,
1394 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1395 , enable_gtk2_check="yes")
1396 AC_MSG_RESULT($enable_gtk2_check)
1397 if test "x$enable_gtk2_check" = "xno"; then
1402 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1403 -a "$enable_gui_canon" != "gnome2"; then
1404 AC_MSG_CHECKING(whether or not to look for GNOME)
1405 AC_ARG_ENABLE(gnome-check,
1406 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1407 , enable_gnome_check="no")
1408 AC_MSG_RESULT($enable_gnome_check)
1409 if test "x$enable_gnome_check" = "xno"; then
1414 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1415 AC_MSG_CHECKING(whether or not to look for Motif)
1416 AC_ARG_ENABLE(motif-check,
1417 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1418 , enable_motif_check="yes")
1419 AC_MSG_RESULT($enable_motif_check)
1420 if test "x$enable_motif_check" = "xno"; then
1425 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1426 AC_MSG_CHECKING(whether or not to look for Athena)
1427 AC_ARG_ENABLE(athena-check,
1428 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1429 , enable_athena_check="yes")
1430 AC_MSG_RESULT($enable_athena_check)
1431 if test "x$enable_athena_check" = "xno"; then
1436 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1437 AC_MSG_CHECKING(whether or not to look for neXtaw)
1438 AC_ARG_ENABLE(nextaw-check,
1439 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1440 , enable_nextaw_check="yes")
1441 AC_MSG_RESULT($enable_nextaw_check);
1442 if test "x$enable_nextaw_check" = "xno"; then
1447 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1448 AC_MSG_CHECKING(whether or not to look for Carbon)
1449 AC_ARG_ENABLE(carbon-check,
1450 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1451 , enable_carbon_check="yes")
1452 AC_MSG_RESULT($enable_carbon_check);
1453 if test "x$enable_carbon_check" = "xno"; then
1458 if test "x$SKIP_MACVIM" != "xYES" -a "$enable_gui_canon" != "macvim"; then
1459 AC_MSG_CHECKING(whether or not to look for MacVim)
1460 AC_ARG_ENABLE(macvim-check,
1461 [ --enable-macvim-check If auto-select GUI, check for MacVim [default=yes]],
1462 , enable_macvim_check="yes")
1463 AC_MSG_RESULT($enable_macvim_check);
1464 if test "x$enable_macvim_check" = "xno"; then
1469 if test "x$MACOSX" = "xyes"; then
1470 dnl Default install directory is not /usr/local
1471 if test x$prefix = xNONE; then
1472 prefix=/Applications
1475 if test -z "$SKIP_MACVIM" -a "x$COCOA" = "xyes"; then
1476 AC_MSG_CHECKING(for MacVim GUI)
1477 dnl already did the check, just give the message
1480 dnl Sorry for the hard coded default
1481 datadir='${prefix}/MacVim.app/Contents/Resources'
1482 elif test -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1483 AC_MSG_CHECKING(for Carbon GUI)
1484 dnl already did the check, just give the message
1487 dnl Sorry for the hard coded default
1488 datadir='${prefix}/Vim.app/Contents/Resources'
1490 CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
1493 if test "$VIMNAME" = "vim"; then
1497 dnl skip everything else
1510 dnl Get the cflags and libraries from the gtk-config script
1513 dnl define an autoconf function to check for a specified version of GTK, and
1514 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1516 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1517 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1519 AC_DEFUN(AM_PATH_GTK,
1521 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1523 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1524 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1526 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1527 && $PKG_CONFIG --exists gtk+-2.0; then
1529 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1530 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1531 dnl something like that.
1532 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1533 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1534 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1535 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1536 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1537 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1538 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1539 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1540 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1542 elif test "X$GTK_CONFIG" != "Xno"; then
1544 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1546 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1547 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1548 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1549 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1550 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1551 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1552 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1558 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1560 ac_save_CFLAGS="$CFLAGS"
1561 ac_save_LIBS="$LIBS"
1562 CFLAGS="$CFLAGS $GTK_CFLAGS"
1563 LIBS="$LIBS $GTK_LIBS"
1566 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1567 dnl checks the results of gtk-config to some extent
1571 #include <gtk/gtk.h>
1574 # include <stdlib.h>
1575 # include <stddef.h>
1581 int major, minor, micro;
1584 system ("touch conf.gtktest");
1586 /* HP/UX 9 (%@#!) writes to sscanf strings */
1587 tmp_version = g_strdup("$min_gtk_version");
1588 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1589 printf("%s, bad version string\n", "$min_gtk_version");
1593 if ((gtk_major_version > major) ||
1594 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1595 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1596 (gtk_micro_version >= micro)))
1602 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1603 CFLAGS="$ac_save_CFLAGS"
1604 LIBS="$ac_save_LIBS"
1607 if test "x$no_gtk" = x ; then
1608 if test "x$enable_gtktest" = "xyes"; then
1609 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1611 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1613 ifelse([$2], , :, [$2])
1619 ifelse([$3], , :, [$3])
1626 ifelse([$3], , :, [$3])
1628 AC_SUBST(GTK_CFLAGS)
1633 dnl ---------------------------------------------------------------------------
1635 dnl ---------------------------------------------------------------------------
1636 AC_DEFUN([GNOME_INIT_HOOK],
1638 AC_SUBST(GNOME_LIBS)
1639 AC_SUBST(GNOME_LIBDIR)
1640 AC_SUBST(GNOME_INCLUDEDIR)
1642 AC_ARG_WITH(gnome-includes,
1643 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1644 [CFLAGS="$CFLAGS -I$withval"]
1647 AC_ARG_WITH(gnome-libs,
1648 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1649 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1653 [ --with-gnome Specify prefix for GNOME files],
1654 if test x$withval = xyes; then
1656 ifelse([$1], [], :, [$1])
1658 if test "x$withval" = xno; then
1662 LDFLAGS="$LDFLAGS -L$withval/lib"
1663 CFLAGS="$CFLAGS -I$withval/include"
1664 gnome_prefix=$withval/lib
1669 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1671 AC_MSG_CHECKING(for libgnomeui-2.0)
1672 if $PKG_CONFIG --exists libgnomeui-2.0; then
1674 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1675 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1676 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1678 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1679 dnl This might not be the right way but it works for me...
1680 AC_MSG_CHECKING(for FreeBSD)
1681 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1682 AC_MSG_RESULT(yes, adding -pthread)
1683 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1684 GNOME_LIBS="$GNOME_LIBS -pthread"
1690 AC_MSG_RESULT(not found)
1691 if test "x$2" = xfail; then
1692 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1696 elif test "x$want_gnome" = xyes; then
1698 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1699 if test "$GNOME_CONFIG" = "no"; then
1700 no_gnome_config="yes"
1702 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1703 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1705 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1706 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1707 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1711 no_gnome_config="yes"
1715 if test x$exec_prefix = xNONE; then
1716 if test x$prefix = xNONE; then
1717 gnome_prefix=$ac_default_prefix/lib
1719 gnome_prefix=$prefix/lib
1722 gnome_prefix=`eval echo \`echo $libdir\``
1725 if test "$no_gnome_config" = "yes"; then
1726 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1727 if test -f $gnome_prefix/gnomeConf.sh; then
1728 AC_MSG_RESULT(found)
1729 echo "loading gnome configuration from" \
1730 "$gnome_prefix/gnomeConf.sh"
1731 . $gnome_prefix/gnomeConf.sh
1734 AC_MSG_RESULT(not found)
1735 if test x$2 = xfail; then
1736 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1744 AC_DEFUN([GNOME_INIT],[
1745 GNOME_INIT_HOOK([],fail)
1749 dnl ---------------------------------------------------------------------------
1750 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1751 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1752 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1753 dnl ---------------------------------------------------------------------------
1754 if test -z "$SKIP_GTK"; then
1756 AC_MSG_CHECKING(--with-gtk-prefix argument)
1757 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1758 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1759 gtk_config_prefix=""; AC_MSG_RESULT(no))
1761 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1762 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1763 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1764 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1766 AC_MSG_CHECKING(--disable-gtktest argument)
1767 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1768 , enable_gtktest=yes)
1769 if test "x$enable_gtktest" = "xyes" ; then
1770 AC_MSG_RESULT(gtk test enabled)
1772 AC_MSG_RESULT(gtk test disabled)
1775 if test "x$gtk_config_prefix" != "x" ; then
1776 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1777 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1779 if test "x$gtk_config_exec_prefix" != "x" ; then
1780 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1781 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1783 if test "X$GTK_CONFIG" = "X"; then
1784 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1785 if test "X$GTK_CONFIG" = "Xno"; then
1786 dnl Some distributions call it gtk12-config, annoying!
1787 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1788 GTK_CONFIG="$GTK12_CONFIG"
1791 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1793 if test "X$PKG_CONFIG" = "X"; then
1794 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1797 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1798 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1799 dnl problems (bold fonts, --remote doesn't work).
1800 if test "X$SKIP_GTK2" != "XYES"; then
1802 [GUI_LIB_LOC="$GTK_LIBDIR"
1803 GTK_LIBNAME="$GTK_LIBS"
1804 GUI_INC_LOC="$GTK_CFLAGS"], )
1805 if test "x$GTK_CFLAGS" != "x"; then
1810 AC_SUBST(GTK_LIBNAME)
1814 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1815 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1816 dnl were test versions.
1817 if test "x$GUITYPE" != "xGTK"; then
1820 [GTK_LIBNAME="$GTK_LIBS"
1821 GUI_INC_LOC="$GTK_CFLAGS"], )
1822 if test "x$GTK_CFLAGS" != "x"; then
1827 AC_SUBST(GTK_LIBNAME)
1831 dnl Give a warning if GTK is older than 1.2.3
1832 if test "x$GUITYPE" = "xGTK"; then
1833 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1834 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1835 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1838 if test "0$gtk_major_version" -ge 2; then
1839 AC_DEFINE(HAVE_GTK2)
1840 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1841 || test "0$gtk_minor_version" -ge 2 \
1842 || test "0$gtk_major_version" -gt 2; then
1843 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1847 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1849 if test -z "$SKIP_GNOME"; then
1851 GNOME_INIT_HOOK([have_gnome=yes])
1852 if test x$have_gnome = xyes ; then
1853 AC_DEFINE(FEAT_GUI_GNOME)
1854 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1855 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1864 dnl Check for Motif include files location.
1865 dnl The LAST one found is used, this makes the highest version to be used,
1866 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1868 if test -z "$SKIP_MOTIF"; then
1869 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"
1870 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1871 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1873 AC_MSG_CHECKING(for location of Motif GUI includes)
1874 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1876 for try in $gui_includes; do
1877 if test -f "$try/Xm/Xm.h"; then
1881 if test -n "$GUI_INC_LOC"; then
1882 if test "$GUI_INC_LOC" = /usr/include; then
1884 AC_MSG_RESULT(in default path)
1886 AC_MSG_RESULT($GUI_INC_LOC)
1889 AC_MSG_RESULT(<not found>)
1894 dnl Check for Motif library files location. In the same order as the include
1895 dnl files, to avoid a mixup if several versions are present
1897 if test -z "$SKIP_MOTIF"; then
1898 AC_MSG_CHECKING(--with-motif-lib argument)
1899 AC_ARG_WITH(motif-lib,
1900 [ --with-motif-lib=STRING Library for Motif ],
1901 [ MOTIF_LIBNAME="${withval}" ] )
1903 if test -n "$MOTIF_LIBNAME"; then
1904 AC_MSG_RESULT($MOTIF_LIBNAME)
1909 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1910 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1912 AC_MSG_CHECKING(for location of Motif GUI libs)
1913 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"
1915 for try in $gui_libs; do
1916 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1917 if test -f "$libtry"; then
1922 if test -n "$GUI_LIB_LOC"; then
1923 dnl Remove /usr/lib, it causes trouble on some systems
1924 if test "$GUI_LIB_LOC" = /usr/lib; then
1926 AC_MSG_RESULT(in default path)
1928 if test -n "$GUI_LIB_LOC"; then
1929 AC_MSG_RESULT($GUI_LIB_LOC)
1930 if test "`(uname) 2>/dev/null`" = SunOS &&
1931 uname -r | grep '^5' >/dev/null; then
1932 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1938 AC_MSG_RESULT(<not found>)
1944 if test -z "$SKIP_MOTIF"; then
1948 AC_SUBST(MOTIF_LIBNAME)
1951 dnl Check if the Athena files can be found
1955 if test -z "$SKIP_ATHENA"; then
1956 AC_MSG_CHECKING(if Athena header files can be found)
1958 CFLAGS="$CFLAGS $X_CFLAGS"
1960 #include <X11/Intrinsic.h>
1961 #include <X11/Xaw/Paned.h>], ,
1963 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1967 if test -z "$SKIP_ATHENA"; then
1971 if test -z "$SKIP_NEXTAW"; then
1972 AC_MSG_CHECKING(if neXtaw header files can be found)
1974 CFLAGS="$CFLAGS $X_CFLAGS"
1976 #include <X11/Intrinsic.h>
1977 #include <X11/neXtaw/Paned.h>], ,
1979 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1983 if test -z "$SKIP_NEXTAW"; then
1987 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1988 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1989 dnl Avoid adding it when it twice
1990 if test -n "$GUI_INC_LOC"; then
1991 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1993 if test -n "$GUI_LIB_LOC"; then
1994 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1997 dnl Check for -lXext and then for -lXmu
1998 ldflags_save=$LDFLAGS
1999 LDFLAGS="$X_LIBS $LDFLAGS"
2000 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
2001 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2002 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
2003 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
2004 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2005 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
2006 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2007 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
2008 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2009 if test -z "$SKIP_MOTIF"; then
2010 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
2011 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2013 LDFLAGS=$ldflags_save
2015 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
2016 AC_MSG_CHECKING(for extra X11 defines)
2019 if mkdir conftestdir; then
2021 cat > Imakefile <<'EOF'
2023 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2025 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2026 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2031 if test -z "$NARROW_PROTO"; then
2034 AC_MSG_RESULT($NARROW_PROTO)
2036 AC_SUBST(NARROW_PROTO)
2039 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2040 dnl use the X11 include path
2041 if test "$enable_xsmp" = "yes"; then
2042 cppflags_save=$CPPFLAGS
2043 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2044 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2045 CPPFLAGS=$cppflags_save
2049 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2050 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2051 cppflags_save=$CPPFLAGS
2052 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2053 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2055 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2056 if test ! "$enable_xim" = "no"; then
2057 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2058 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2060 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2062 CPPFLAGS=$cppflags_save
2064 dnl automatically enable XIM when hangul input isn't enabled
2065 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2066 -a "x$GUITYPE" != "xNONE" ; then
2067 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2072 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2073 cppflags_save=$CPPFLAGS
2074 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2075 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2076 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2078 #include <X11/Intrinsic.h>
2079 #include <X11/Xmu/Editres.h>],
2082 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2084 CPPFLAGS=$cppflags_save
2087 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2088 if test -z "$SKIP_MOTIF"; then
2089 cppflags_save=$CPPFLAGS
2090 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2091 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2092 Xm/UnhighlightT.h Xm/Notebook.h)
2094 if test $ac_cv_header_Xm_XpmP_h = yes; then
2095 dnl Solaris uses XpmAttributes_21, very annoying.
2096 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2097 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2098 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2099 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2102 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2104 CPPFLAGS=$cppflags_save
2107 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2108 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2111 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2112 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2115 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2116 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2120 if test -z "$SKIP_PHOTON"; then
2124 AC_SUBST(GUI_INC_LOC)
2125 AC_SUBST(GUI_LIB_LOC)
2127 AC_SUBST(GUI_X_LIBS)
2129 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2130 AC_MSG_ERROR([cannot use workshop without Motif])
2133 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2134 if test "$enable_xim" = "yes"; then
2137 if test "$enable_fontset" = "yes"; then
2138 AC_DEFINE(FEAT_XFONTSET)
2142 dnl ---------------------------------------------------------------------------
2143 dnl end of GUI-checking
2144 dnl ---------------------------------------------------------------------------
2147 dnl Only really enable hangul input when GUI and XFONTSET are available
2148 if test "$enable_hangulinput" = "yes"; then
2149 if test "x$GUITYPE" = "xNONE"; then
2150 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2151 enable_hangulinput=no
2153 AC_DEFINE(FEAT_HANGULIN)
2154 HANGULIN_SRC=hangulin.c
2155 AC_SUBST(HANGULIN_SRC)
2156 HANGULIN_OBJ=objects/hangulin.o
2157 AC_SUBST(HANGULIN_OBJ)
2161 dnl Checks for libraries and include files.
2163 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2166 #include "confdefs.h"
2169 # include <stdlib.h>
2170 # include <stddef.h>
2172 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2174 vim_cv_toupper_broken=yes
2176 vim_cv_toupper_broken=no
2178 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2181 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2182 AC_DEFINE(BROKEN_TOUPPER)
2185 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2186 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2187 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2190 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2191 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2192 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2195 dnl Checks for header files.
2196 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2197 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2198 if test "$HAS_ELF" = 1; then
2199 AC_CHECK_LIB(elf, main)
2204 dnl If sys/wait.h is not found it might still exist but not be POSIX
2205 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2206 if test $ac_cv_header_sys_wait_h = no; then
2207 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2208 AC_TRY_COMPILE([#include <sys/wait.h>],
2209 [union wait xx, yy; xx = yy],
2211 AC_DEFINE(HAVE_SYS_WAIT_H)
2212 AC_DEFINE(HAVE_UNION_WAIT),
2216 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2217 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2218 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2219 sys/resource.h sys/systeminfo.h locale.h \
2220 sys/stream.h termios.h libc.h sys/statfs.h \
2221 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2222 libgen.h util/debug.h util/msg18n.h frame.h \
2223 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2225 dnl sys/ptem.h depends on sys/stream.h on Solaris
2226 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2227 [#if defined HAVE_SYS_STREAM_H
2228 # include <sys/stream.h>
2231 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2232 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2233 [#if defined HAVE_SYS_PARAM_H
2234 # include <sys/param.h>
2238 dnl pthread_np.h may exist but can only be used after including pthread.h
2239 AC_MSG_CHECKING([for pthread_np.h])
2241 #include <pthread.h>
2242 #include <pthread_np.h>],
2245 AC_DEFINE(HAVE_PTHREAD_NP_H),
2248 AC_CHECK_HEADERS(strings.h)
2249 if test "x$MACOSX" = "xyes"; then
2250 dnl The strings.h file on OS/X contains a warning and nothing useful.
2251 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2254 dnl Check if strings.h and string.h can both be included when defined.
2255 AC_MSG_CHECKING([if strings.h can be included after string.h])
2256 cppflags_save=$CPPFLAGS
2257 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2259 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2260 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2261 /* but don't do it on AIX 5.1 (Uribarri) */
2264 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2266 #ifdef HAVE_STRING_H
2267 # include <string.h>
2269 #if defined(HAVE_STRINGS_H)
2270 # include <strings.h>
2274 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2276 CPPFLAGS=$cppflags_save
2279 dnl Checks for typedefs, structures, and compiler characteristics.
2280 AC_PROG_GCC_TRADITIONAL
2289 AC_CHECK_TYPE(ino_t, long)
2290 AC_CHECK_TYPE(dev_t, unsigned)
2292 AC_MSG_CHECKING(for rlim_t)
2293 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2294 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2297 changequote(<<,>>)dnl
2298 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2301 #include <sys/types.h>
2303 # include <stdlib.h>
2304 # include <stddef.h>
2306 #ifdef HAVE_SYS_RESOURCE_H
2307 # include <sys/resource.h>
2309 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2310 AC_MSG_RESULT($ac_cv_type_rlim_t)
2312 if test $ac_cv_type_rlim_t = no; then
2313 cat >> confdefs.h <<\EOF
2314 #define rlim_t unsigned long
2318 AC_MSG_CHECKING(for stack_t)
2319 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2320 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2322 AC_EGREP_CPP(stack_t,
2324 #include <sys/types.h>
2326 # include <stdlib.h>
2327 # include <stddef.h>
2330 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2331 AC_MSG_RESULT($ac_cv_type_stack_t)
2333 if test $ac_cv_type_stack_t = no; then
2334 cat >> confdefs.h <<\EOF
2335 #define stack_t struct sigaltstack
2339 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2340 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2342 #include <sys/types.h>
2344 # include <stdlib.h>
2345 # include <stddef.h>
2348 #include "confdefs.h"
2349 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2350 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2354 AC_MSG_CHECKING(--with-tlib argument)
2355 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2356 if test -n "$with_tlib"; then
2357 AC_MSG_RESULT($with_tlib)
2358 LIBS="$LIBS -l$with_tlib"
2359 AC_MSG_CHECKING(for linking with $with_tlib library)
2360 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2361 dnl Need to check for tgetent() below.
2364 AC_MSG_RESULT([empty: automatic terminal library selection])
2365 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2366 dnl curses, because curses is much slower.
2367 dnl Newer versions of ncurses are preferred over anything.
2368 dnl Older versions of ncurses have bugs, get a new one!
2369 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2370 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2371 case "`uname -s 2>/dev/null`" in
2372 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2373 *) tlibs="ncurses termlib termcap curses";;
2375 for libname in $tlibs; do
2376 AC_CHECK_LIB(${libname}, tgetent,,)
2377 if test "x$olibs" != "x$LIBS"; then
2378 dnl It's possible that a library is found but it doesn't work
2379 dnl e.g., shared library that cannot be found
2380 dnl compile and run a test program to be sure
2382 #ifdef HAVE_TERMCAP_H
2383 # include <termcap.h>
2386 # include <stdlib.h>
2387 # include <stddef.h>
2389 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2390 res="OK", res="FAIL", res="FAIL")
2391 if test "$res" = "OK"; then
2394 AC_MSG_RESULT($libname library is not usable)
2398 if test "x$olibs" = "x$LIBS"; then
2399 AC_MSG_RESULT(no terminal library found)
2403 if test "x$olibs" = "x$LIBS"; then
2404 AC_MSG_CHECKING([for tgetent()])
2406 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2408 AC_MSG_ERROR([NOT FOUND!
2409 You need to install a terminal library; for example ncurses.
2410 Or specify the name of the library with --with-tlib.]))
2413 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2416 #include "confdefs.h"
2417 #ifdef HAVE_TERMCAP_H
2418 # include <termcap.h>
2420 #ifdef HAVE_STRING_H
2421 # include <string.h>
2424 # include <stdlib.h>
2425 # include <stddef.h>
2428 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2434 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2438 if test "x$vim_cv_terminfo" = "xyes" ; then
2442 if test "x$olibs" != "x$LIBS"; then
2443 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2446 #include "confdefs.h"
2447 #ifdef HAVE_TERMCAP_H
2448 # include <termcap.h>
2451 # include <stdlib.h>
2452 # include <stddef.h>
2455 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2459 vim_cv_tgent=non-zero
2461 AC_MSG_ERROR(failed to compile test program.)
2465 if test "x$vim_cv_tgent" = "xzero" ; then
2466 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2470 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2472 #ifdef HAVE_TERMCAP_H
2473 # include <termcap.h>
2475 ], [ospeed = 20000],
2476 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2478 AC_MSG_CHECKING(whether ospeed can be extern)
2480 #ifdef HAVE_TERMCAP_H
2481 # include <termcap.h>
2483 extern short ospeed;
2484 ], [ospeed = 20000],
2485 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2489 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2491 #ifdef HAVE_TERMCAP_H
2492 # include <termcap.h>
2494 ], [if (UP == 0 && BC == 0) PC = 1],
2495 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2497 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2499 #ifdef HAVE_TERMCAP_H
2500 # include <termcap.h>
2502 extern char *UP, *BC, PC;
2503 ], [if (UP == 0 && BC == 0) PC = 1],
2504 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2508 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2510 #ifdef HAVE_TERMCAP_H
2511 # include <termcap.h>
2513 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2514 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2517 dnl On some SCO machines sys/select redefines struct timeval
2518 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2520 #include <sys/types.h>
2521 #include <sys/time.h>
2522 #include <sys/select.h>], ,
2524 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2527 dnl AC_DECL_SYS_SIGLIST
2529 dnl Checks for pty.c (copied from screen) ==========================
2530 AC_MSG_CHECKING(for /dev/ptc)
2531 if test -r /dev/ptc; then
2532 AC_DEFINE(HAVE_DEV_PTC)
2538 AC_MSG_CHECKING(for SVR4 ptys)
2539 if test -c /dev/ptmx ; then
2540 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2541 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2547 AC_MSG_CHECKING(for ptyranges)
2548 if test -d /dev/ptym ; then
2558 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2559 dnl if test -c /dev/ptyp19; then
2560 dnl ptys=`echo /dev/ptyp??`
2562 dnl ptys=`echo $pdir/pty??`
2564 if test "$ptys" != "$pdir/pty??" ; then
2565 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2566 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2567 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2568 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2569 AC_MSG_RESULT([$p0 / $p1])
2571 AC_MSG_RESULT([don't know])
2574 dnl **** pty mode/group handling ****
2576 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2578 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2581 #include "confdefs.h"
2582 #include <sys/types.h>
2584 # include <stdlib.h>
2585 # include <stddef.h>
2587 #ifdef HAVE_UNISTD_H
2590 #include <sys/stat.h>
2599 if (!(x = ttyname(0))) exit(1);
2600 if (stat(x, &sb)) exit(1);
2602 if (om & 002) exit(0);
2603 m = system("mesg y");
2604 if (m == -1 || m == 127) exit(1);
2605 if (stat(x, &sb)) exit(1);
2607 if (chmod(x, om)) exit(1);
2608 if (m & 002) exit(0);
2609 if (sb.st_gid == getgid()) exit(1);
2610 if (!(fp=fopen("conftest_grp", "w")))
2612 fprintf(fp, "%d\n", sb.st_gid);
2617 if test -f conftest_grp; then
2618 vim_cv_tty_group=`cat conftest_grp`
2619 if test "x$vim_cv_tty_mode" = "x" ; then
2620 vim_cv_tty_mode=0620
2622 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2624 vim_cv_tty_group=world
2625 AC_MSG_RESULT([ptys are world accessible])
2628 vim_cv_tty_group=world
2629 AC_MSG_RESULT([can't determine - assume ptys are world accessible])
2631 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2636 if test "x$vim_cv_tty_group" != "xworld" ; then
2637 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2638 if test "x$vim_cv_tty_mode" = "x" ; then
2639 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)])
2641 AC_DEFINE(PTYMODE, 0620)
2645 dnl Checks for library functions. ===================================
2649 dnl find out what to use at the end of a signal function
2650 if test $ac_cv_type_signal = void; then
2651 AC_DEFINE(SIGRETURN, [return])
2653 AC_DEFINE(SIGRETURN, [return 0])
2656 dnl check if struct sigcontext is defined (used for SGI only)
2657 AC_MSG_CHECKING(for struct sigcontext)
2662 struct sigcontext *scont;
2663 scont = (struct sigcontext *)0;
2667 AC_DEFINE(HAVE_SIGCONTEXT),
2670 dnl tricky stuff: try to find out if getcwd() is implemented with
2671 dnl system("sh -c pwd")
2672 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2675 #include "confdefs.h"
2676 #ifdef HAVE_UNISTD_H
2679 char *dagger[] = { "IFS=pwd", 0 };
2683 extern char **environ;
2685 return getcwd(buffer, 500) ? 0 : 1;
2688 vim_cv_getcwd_broken=no
2690 vim_cv_getcwd_broken=yes
2692 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2696 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2697 AC_DEFINE(BAD_GETCWD)
2700 dnl Check for functions in one big call, to reduce the size of configure
2701 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2702 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2703 memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
2704 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2705 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2706 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2707 usleep utime utimes)
2709 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2710 AC_MSG_CHECKING(for st_blksize)
2712 [#include <sys/types.h>
2713 #include <sys/stat.h>],
2718 n = (int)st.st_blksize;],
2719 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2722 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2725 #include "confdefs.h"
2727 # include <stdlib.h>
2728 # include <stddef.h>
2730 #include <sys/types.h>
2731 #include <sys/stat.h>
2732 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2734 vim_cv_stat_ignores_slash=yes
2736 vim_cv_stat_ignores_slash=no
2738 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2742 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2743 AC_DEFINE(STAT_IGNORES_SLASH)
2746 dnl Link with iconv for charset translation, if not found without library.
2747 dnl check for iconv() requires including iconv.h
2748 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2749 dnl has been installed.
2750 AC_MSG_CHECKING(for iconv_open())
2752 LIBS="$LIBS -liconv"
2757 ], [iconv_open("fr", "to");],
2758 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2764 ], [iconv_open("fr", "to");],
2765 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2769 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2771 #ifdef HAVE_LANGINFO_H
2772 # include <langinfo.h>
2774 ], [char *cs = nl_langinfo(CODESET);],
2775 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2778 dnl Need various functions for floating point support. Only enable
2779 dnl floating point when they are all present.
2780 AC_CHECK_LIB(m, strtod)
2781 AC_MSG_CHECKING([for strtod() and other floating point functions])
2787 # include <stdlib.h>
2788 # include <stddef.h>
2790 ], [char *s; double d;
2791 d = strtod("1.1", &s);
2796 d = pow(1.11, 2.22);
2802 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2805 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2806 dnl when -lacl works, also try to use -lattr (required for Debian).
2807 AC_MSG_CHECKING(--disable-acl argument)
2809 [ --disable-acl Don't check for ACL support.],
2810 , [enable_acl="yes"])
2811 if test "$enable_acl" = "yes"; then
2813 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2814 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2815 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2817 AC_MSG_CHECKING(for POSIX ACL support)
2819 #include <sys/types.h>
2820 #ifdef HAVE_SYS_ACL_H
2821 # include <sys/acl.h>
2823 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2824 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2826 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2829 AC_MSG_CHECKING(for Solaris ACL support)
2831 #ifdef HAVE_SYS_ACL_H
2832 # include <sys/acl.h>
2833 #endif], [acl("foo", GETACLCNT, 0, NULL);
2835 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2838 AC_MSG_CHECKING(for AIX ACL support)
2841 # include <stdlib.h>
2842 # include <stddef.h>
2844 #ifdef HAVE_SYS_ACL_H
2845 # include <sys/acl.h>
2847 #ifdef HAVE_SYS_ACCESS_H
2848 # include <sys/access.h>
2852 #include <sys/stat.h>
2855 struct acl *aclent;], [aclsize = sizeof(struct acl);
2856 aclent = (void *)malloc(aclsize);
2857 statacl("foo", STX_NORMAL, aclent, aclsize);
2859 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2865 AC_MSG_CHECKING(--disable-gpm argument)
2867 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2870 if test "$enable_gpm" = "yes"; then
2872 dnl Checking if gpm support can be compiled
2873 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2874 [olibs="$LIBS" ; LIBS="-lgpm"]
2877 #include <linux/keyboard.h>],
2878 [Gpm_GetLibVersion(NULL);],
2879 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2880 dnl FEAT_MOUSE_GPM if mouse support is included
2881 [vi_cv_have_gpm=yes],
2882 [vi_cv_have_gpm=no])
2885 if test $vi_cv_have_gpm = yes; then
2893 AC_MSG_CHECKING(--disable-sysmouse argument)
2894 AC_ARG_ENABLE(sysmouse,
2895 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2896 [enable_sysmouse="yes"])
2898 if test "$enable_sysmouse" = "yes"; then
2900 dnl Checking if sysmouse support can be compiled
2901 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2902 dnl defines FEAT_SYSMOUSE if mouse support is included
2903 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2905 [#include <sys/consio.h>
2907 #include <sys/fbio.h>],
2908 [struct mouse_info mouse;
2909 mouse.operation = MOUSE_MODE;
2910 mouse.operation = MOUSE_SHOW;
2911 mouse.u.mode.mode = 0;
2912 mouse.u.mode.signal = SIGUSR2;],
2913 [vi_cv_have_sysmouse=yes],
2914 [vi_cv_have_sysmouse=no])
2916 if test $vi_cv_have_sysmouse = yes; then
2917 AC_DEFINE(HAVE_SYSMOUSE)
2923 dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
2924 AC_MSG_CHECKING(for FD_CLOEXEC)
2929 [ int flag = FD_CLOEXEC;],
2930 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
2931 AC_MSG_RESULT(not usable))
2933 dnl rename needs to be checked separately to work on Nextstep with cc
2934 AC_MSG_CHECKING(for rename)
2935 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2936 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2939 dnl sysctl() may exist but not the arguments we use
2940 AC_MSG_CHECKING(for sysctl)
2942 [#include <sys/types.h>
2943 #include <sys/sysctl.h>],
2948 mib[1] = HW_USERMEM;
2950 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2952 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2953 AC_MSG_RESULT(not usable))
2955 dnl sysinfo() may exist but not be Linux compatible
2956 AC_MSG_CHECKING(for sysinfo)
2958 [#include <sys/types.h>
2959 #include <sys/sysinfo.h>],
2960 [ struct sysinfo sinfo;
2963 (void)sysinfo(&sinfo);
2966 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2967 AC_MSG_RESULT(not usable))
2969 dnl struct sysinfo may have the mem_unit field or not
2970 AC_MSG_CHECKING(for sysinfo.mem_unit)
2972 [#include <sys/types.h>
2973 #include <sys/sysinfo.h>],
2974 [ struct sysinfo sinfo;
2977 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2980 dnl sysconf() may exist but not support what we want to use
2981 AC_MSG_CHECKING(for sysconf)
2983 [#include <unistd.h>],
2984 [ (void)sysconf(_SC_PAGESIZE);
2985 (void)sysconf(_SC_PHYS_PAGES);
2987 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2988 AC_MSG_RESULT(not usable))
2990 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2991 dnl be printed with "%d", and avoids a warning for cross-compiling.
2993 AC_MSG_CHECKING(size of int)
2994 AC_CACHE_VAL(ac_cv_sizeof_int,
2998 # include <stdlib.h>
2999 # include <stddef.h>
3003 FILE *f=fopen("conftestval", "w");
3005 fprintf(f, "%d\n", (int)sizeof(int));
3008 ac_cv_sizeof_int=`cat conftestval`,
3010 AC_MSG_ERROR(failed to compile test program))])
3011 AC_MSG_RESULT($ac_cv_sizeof_int)
3012 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
3014 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
3015 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
3018 #include "confdefs.h"
3019 #ifdef HAVE_STRING_H
3020 # include <string.h>
3023 # include <stdlib.h>
3024 # include <stddef.h>
3028 strcpy(buf, "abcdefghi");
3029 mch_memmove(buf, buf + 2, 3);
3030 if (strncmp(buf, "ababcf", 6))
3032 strcpy(buf, "abcdefghi");
3033 mch_memmove(buf + 2, buf, 3);
3034 if (strncmp(buf, "cdedef", 6))
3036 exit(0); /* libc version works properly. */
3039 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3041 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3043 vim_cv_memmove_handles_overlap=yes
3045 vim_cv_memmove_handles_overlap=no
3047 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3051 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3052 AC_DEFINE(USEMEMMOVE)
3054 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3056 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3058 vim_cv_bcopy_handles_overlap=yes
3060 vim_cv_bcopy_handles_overlap=no
3062 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3066 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3069 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3071 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3073 vim_cv_memcpy_handles_overlap=yes
3075 vim_cv_memcpy_handles_overlap=no
3077 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3081 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3082 AC_DEFINE(USEMEMCPY)
3088 dnl Check for multibyte locale functions
3089 dnl Find out if _Xsetlocale() is supported by libX11.
3090 dnl Check if X_LOCALE should be defined.
3092 if test "$enable_multibyte" = "yes"; then
3094 ldflags_save=$LDFLAGS
3095 if test "x$x_includes" != "xNONE" ; then
3096 CFLAGS="$CFLAGS -I$x_includes"
3097 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3098 AC_MSG_CHECKING(whether X_LOCALE needed)
3099 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3100 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3101 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3105 LDFLAGS=$ldflags_save
3108 dnl Link with xpg4, it is said to make Korean locale working
3109 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3111 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3112 dnl --version for Exuberant ctags (preferred)
3113 dnl Add --fields=+S to get function signatures for omni completion.
3114 dnl -t for typedefs (many ctags have this)
3115 dnl -s for static functions (Elvis ctags only?)
3116 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3117 dnl -i+m to test for older Exuberant ctags
3118 AC_MSG_CHECKING(how to create tags)
3119 test -f tags && mv tags tags.save
3120 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3121 TAGPRG="ctags -I INIT+ --fields=+S"
3124 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3125 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3126 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3127 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3128 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3129 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3130 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3132 test -f tags.save && mv tags.save tags
3133 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3135 dnl Check how we can run man with a section number
3136 AC_MSG_CHECKING(how to run man with a section nr)
3138 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3139 AC_MSG_RESULT($MANDEF)
3140 if test "$MANDEF" = "man -s"; then
3144 dnl Check if gettext() is working and if it needs -lintl
3145 AC_MSG_CHECKING(--disable-nls argument)
3147 [ --disable-nls Don't support NLS (gettext()).], ,
3150 if test "$enable_nls" = "yes"; then
3153 INSTALL_LANGS=install-languages
3154 AC_SUBST(INSTALL_LANGS)
3155 INSTALL_TOOL_LANGS=install-tool-languages
3156 AC_SUBST(INSTALL_TOOL_LANGS)
3158 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3159 AC_MSG_CHECKING([for NLS])
3160 if test -f po/Makefile; then
3162 if test -n "$MSGFMT"; then
3164 [#include <libintl.h>],
3166 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3170 [#include <libintl.h>],
3172 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3173 AC_MSG_RESULT([gettext() doesn't work]);
3176 AC_MSG_RESULT([msgfmt not found - disabled]);
3178 if test $have_gettext = "yes"; then
3179 AC_DEFINE(HAVE_GETTEXT)
3182 dnl this was added in GNU gettext 0.10.36
3183 AC_CHECK_FUNCS(bind_textdomain_codeset)
3184 dnl _nl_msg_cat_cntr is required for GNU gettext
3185 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3187 [#include <libintl.h>
3188 extern int _nl_msg_cat_cntr;],
3189 [++_nl_msg_cat_cntr;],
3190 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3191 AC_MSG_RESULT([no]))
3194 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3200 dnl Check for dynamic linking loader
3201 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3202 if test x${DLL} = xdlfcn.h; then
3203 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3204 AC_MSG_CHECKING([for dlopen()])
3206 extern void* dlopen();
3210 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3212 AC_MSG_CHECKING([for dlopen() in -ldl])
3216 extern void* dlopen();
3220 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3223 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3225 AC_MSG_CHECKING([for dlsym()])
3227 extern void* dlsym();
3231 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3233 AC_MSG_CHECKING([for dlsym() in -ldl])
3237 extern void* dlsym();
3241 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3244 elif test x${DLL} = xdl.h; then
3245 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3246 AC_MSG_CHECKING([for shl_load()])
3248 extern void* shl_load();
3252 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3254 AC_MSG_CHECKING([for shl_load() in -ldld])
3258 extern void* shl_load();
3262 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3266 AC_CHECK_HEADERS(setjmp.h)
3268 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3269 dnl -ldl must come after DynaLoader.a
3270 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3271 LIBS=`echo $LIBS | sed s/-ldl//`
3272 PERL_LIBS="$PERL_LIBS -ldl"
3276 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3277 && test "x$GUITYPE" != "xCARBONGUI" && test "x$GUITYPE" != "xMACVIMGUI"; then
3278 AC_MSG_CHECKING(whether we need -framework Carbon)
3279 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3280 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3281 || test "x$features" = "xhuge"; then
3282 LIBS="$LIBS -framework Carbon"
3289 if test "x$MACOSX" = "xyes"; then
3290 AC_MSG_CHECKING(--with-xcodecfg argument)
3291 AC_ARG_WITH(xcodecfg,
3292 [ --with-xcodecfg=CFG Debug, Release (default: Release)],
3293 [ XCODEFLAGS="$XCODEFLAGS -configuration $withval"
3294 AC_MSG_RESULT($withval) ],
3295 [ AC_MSG_RESULT(using default) ])
3297 AC_SUBST(XCODEFLAGS)
3301 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3302 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3303 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3304 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3305 dnl the number before the version number.
3306 DEPEND_CFLAGS_FILTER=
3307 if test "$GCC" = yes; then
3308 AC_MSG_CHECKING(for GCC 3 or later)
3309 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3310 if test "$gccmajor" -gt "2"; then
3311 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3316 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3317 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3318 dnl Also remove duplicate _FORTIFY_SOURCE arguments.
3319 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3320 if test "$gccmajor" -gt "3"; then
3321 CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
3327 AC_SUBST(DEPEND_CFLAGS_FILTER)
3329 dnl write output files
3330 AC_OUTPUT(auto/config.mk:config.mk.in)
3332 dnl vim: set sw=2 tw=78 fo+=l: