1 dnl configure.in: autoconf script for Vim
3 dnl Process this file with autoconf 2.12 or 2.13 to produce "configure".
4 dnl Should also work with autoconf 2.54 and later.
7 AC_CONFIG_HEADER(auto/config.h:config.h.in)
9 dnl Being able to run configure means the system is Unix (compatible).
13 dnl Checks for programs.
14 AC_PROG_CC dnl required by almost everything
15 AC_PROG_CPP dnl required by header file checks
16 AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
17 AC_ISC_POSIX dnl required by AC_C_CROSS
18 AC_PROG_AWK dnl required for "make html" in ../doc
20 dnl Don't strip if we don't have it
21 AC_CHECK_PROG(STRIP, strip, strip, :)
23 dnl Check for extension of executables
26 dnl Check for standard headers. We don't use this in Vim but other stuff
27 dnl in autoconf needs it, where it uses STDC_HEADERS.
31 dnl Set default value for CFLAGS if none is defined or it's empty
32 if test -z "$CFLAGS"; then
34 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
36 if test "$GCC" = yes; then
37 dnl method that should work for nearly all versions
38 gccversion=`"$CC" -dumpversion`
39 if test "x$gccversion" = "x"; then
40 dnl old method; fall-back for when -dumpversion doesn't work
41 gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
43 dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
44 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
45 echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
46 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
48 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
49 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
50 CFLAGS="$CFLAGS -fno-strength-reduce"
55 dnl If configure thinks we are cross compiling, there might be something
56 dnl wrong with the CC or CFLAGS settings, give a useful warning message
57 if test "$cross_compiling" = yes; then
58 AC_MSG_RESULT([cannot compile a simple program; if not cross compiling check CC and CFLAGS])
61 dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies.
62 dnl But gcc 3.1 changed the meaning! See near the end.
63 test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
65 if test -f ./toolcheck; then
66 AC_CHECKING(for buggy tools)
67 sh ./toolcheck 1>&AC_FD_MSG
70 OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
72 dnl Check for BeOS, which needs an extra source file
73 AC_MSG_CHECKING(for BeOS)
75 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
76 BEOS=yes; AC_MSG_RESULT(yes);;
77 *) BEOS=no; AC_MSG_RESULT(no);;
80 dnl If QNX is found, assume we don't want to use Xphoton
81 dnl unless it was specifically asked for (--with-x)
82 AC_MSG_CHECKING(for QNX)
84 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
85 test -z "$with_x" && with_x=no
86 QNX=yes; AC_MSG_RESULT(yes);;
87 *) QNX=no; AC_MSG_RESULT(no);;
90 dnl Check for Darwin and MacOS X
91 dnl We do a check for MacOS X in the very beginning because there
92 dnl are a lot of other things we need to change besides GUI stuff
93 AC_MSG_CHECKING([for Darwin (Mac OS X)])
94 if test "`(uname) 2>/dev/null`" = Darwin; then
97 AC_MSG_CHECKING(--disable-darwin argument)
99 [ --disable-darwin Disable Darwin (Mac OS X) support.],
100 , [enable_darwin="yes"])
101 if test "$enable_darwin" = "yes"; then
103 AC_MSG_CHECKING(if Darwin files are there)
104 if test -f os_macosx.c; then
107 AC_MSG_RESULT([no, Darwin support disabled])
111 AC_MSG_RESULT([yes, Darwin support excluded])
114 AC_MSG_CHECKING(--with-mac-arch argument)
115 AC_ARG_WITH(mac-arch, [ --with-mac-arch=ARCH current, intel, ppc or both],
116 MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
117 MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
119 AC_MSG_CHECKING(--with-developer-dir argument)
120 AC_ARG_WITH(developer-dir, [ --with-developer-dir=PATH use PATH as location for Xcode developer tools],
121 DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
122 DEVELOPER_DIR=""; AC_MSG_RESULT(not present))
124 if test "x$DEVELOPER_DIR" = "x"; then
125 AC_PATH_PROG(XCODE_SELECT, xcode-select)
126 if test "x$XCODE_SELECT" != "x"; then
127 AC_MSG_CHECKING(for developer dir using xcode-select)
128 DEVELOPER_DIR=`$XCODE_SELECT -print-path`
129 AC_MSG_RESULT([$DEVELOPER_DIR])
131 DEVELOPER_DIR=/Developer
135 if test "x$MACARCH" = "xboth"; then
136 AC_MSG_CHECKING(for 10.4 universal SDK)
137 dnl There is a terrible inconsistency (but we appear to get away with it):
138 dnl $CFLAGS uses the 10.4u SDK library for the headers, while $CPPFLAGS
139 dnl doesn't, because "gcc -E" doesn't grok it. That means the configure
140 dnl tests using the preprocessor are actually done with the wrong header
141 dnl files. $LDFLAGS is set at the end, because configure uses it together
142 dnl with $CFLAGS and we can only have one -sysroot argument.
143 save_cppflags="$CPPFLAGS"
144 save_cflags="$CFLAGS"
145 save_ldflags="$LDFLAGS"
146 CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
147 AC_TRY_LINK([ ], [ ],
148 AC_MSG_RESULT(found, will make universal binary),
150 AC_MSG_RESULT(not found)
151 CFLAGS="$save_cflags"
152 AC_MSG_CHECKING(if Intel architecture is supported)
153 CPPFLAGS="$CPPFLAGS -arch i386"
154 LDFLAGS="$save_ldflags -arch i386"
155 AC_TRY_LINK([ ], [ ],
156 AC_MSG_RESULT(yes); MACARCH="intel",
157 AC_MSG_RESULT(no, using PowerPC)
159 CPPFLAGS="$save_cppflags -arch ppc"
160 LDFLAGS="$save_ldflags -arch ppc"))
161 elif test "x$MACARCH" = "xintel"; then
162 CPPFLAGS="$CPPFLAGS -arch intel"
163 LDFLAGS="$LDFLAGS -arch intel"
164 elif test "x$MACARCH" = "xppc"; then
165 CPPFLAGS="$CPPFLAGS -arch ppc"
166 LDFLAGS="$LDFLAGS -arch ppc"
169 if test "$enable_darwin" = "yes"; then
171 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
172 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
173 dnl TODO: use -arch i386 on Intel machines
174 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
175 if test "x$MACARCH" = "xboth"; then
176 CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
178 CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
181 dnl If Carbon is found, assume we don't want X11
182 dnl unless it was specifically asked for (--with-x)
183 dnl or Motif, Athena or GTK GUI is used.
184 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
185 if test "x$CARBON" = "xyes"; then
186 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
192 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
193 dnl free. This happens in expand_filename(), because the optimizer swaps
194 dnl two blocks of code, both using "repl", that can't be swapped.
195 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
196 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
203 AC_SUBST(OS_EXTRA_SRC)
204 AC_SUBST(OS_EXTRA_OBJ)
206 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
207 dnl Only when the directory exists and it wasn't there yet.
208 dnl For gcc don't do this when it is already in the default search path.
209 dnl Skip all of this when cross-compiling.
210 if test "$cross_compiling" = no; then
211 AC_MSG_CHECKING(--with-local-dir argument)
212 have_local_include=''
214 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
215 --without-local-dir do not search /usr/local for local libraries.], [
220 # avoid adding local dir to LDFLAGS and CPPFLAGS
224 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
226 AC_MSG_RESULT($local_dir)
229 AC_MSG_RESULT(Defaulting to $local_dir)
231 if test "$GCC" = yes -a "$local_dir" != no; then
232 echo 'void f(){}' > conftest.c
233 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
234 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
235 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
236 rm -f conftest.c conftest.o
238 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
239 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
240 if test "$tt" = "$LDFLAGS"; then
241 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
244 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
245 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
246 if test "$tt" = "$CPPFLAGS"; then
247 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
252 AC_MSG_CHECKING(--with-vim-name argument)
253 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
254 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
255 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
257 AC_MSG_CHECKING(--with-ex-name argument)
258 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
259 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
260 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
262 AC_MSG_CHECKING(--with-view-name argument)
263 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
264 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
265 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
268 AC_MSG_CHECKING(--with-global-runtime argument)
269 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
270 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
273 AC_MSG_CHECKING(--with-modified-by argument)
274 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
275 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
278 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
279 AC_MSG_CHECKING(if character set is EBCDIC)
281 [ /* TryCompile function for CharSet.
282 Treat any failure as ASCII for compatibility with existing art.
283 Use compile-time rather than run-time tests for cross-compiler
286 make an error "Character set is not EBCDIC"
288 [ # TryCompile action if true
290 [ # TryCompile action if false
292 # end of TryCompile ])
293 # end of CacheVal CvEbcdic
294 AC_MSG_RESULT($cf_cv_ebcdic)
295 case "$cf_cv_ebcdic" in #(vi
296 yes) AC_DEFINE(EBCDIC)
299 *) line_break='"\\012"';;
303 if test "$cf_cv_ebcdic" = "yes"; then
304 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
305 AC_MSG_CHECKING(for OS/390 Unix)
307 OS/390) OS390Unix="yes";
308 dnl If using cc the environment variable _CC_CCMODE must be
309 dnl set to "1", so that some compiler extensions are enabled.
310 dnl If using c89 the environment variable is named _CC_C89MODE.
311 dnl Note: compile with c89 never tested.
312 if test "$CC" = "cc"; then
316 if test "$CC" = "c89"; then
323 if test "$ccm" != "1"; then
325 echo "------------------------------------------"
326 echo " On OS/390 Unix, the environment variable"
327 echo " __CC_${ccn}MODE must be set to \"1\"!"
329 echo " export _CC_${ccn}MODE=1"
330 echo " and then call configure again."
331 echo "------------------------------------------"
334 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
343 dnl Link with -lselinux for SELinux stuff; if not found
344 AC_MSG_CHECKING(--disable-selinux argument)
345 AC_ARG_ENABLE(selinux,
346 [ --disable-selinux Don't check for SELinux support.],
347 , enable_selinux="yes")
348 if test "$enable_selinux" = "yes"; then
350 AC_CHECK_LIB(selinux, is_selinux_enabled,
351 [LIBS="$LIBS -lselinux"
352 AC_DEFINE(HAVE_SELINUX)])
357 dnl Check user requested features.
359 AC_MSG_CHECKING(--with-features argument)
360 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
361 features="$withval"; AC_MSG_RESULT($features),
362 features="normal"; AC_MSG_RESULT(Defaulting to normal))
367 tiny) AC_DEFINE(FEAT_TINY) ;;
368 small) AC_DEFINE(FEAT_SMALL) ;;
369 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
370 dogvimdiff="installgvimdiff" ;;
371 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
372 dogvimdiff="installgvimdiff" ;;
373 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
374 dogvimdiff="installgvimdiff" ;;
375 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
381 AC_MSG_CHECKING(--with-compiledby argument)
382 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
383 compiledby="$withval"; AC_MSG_RESULT($withval),
384 compiledby=""; AC_MSG_RESULT(no))
387 AC_MSG_CHECKING(--disable-xsmp argument)
389 [ --disable-xsmp Disable XSMP session management],
392 if test "$enable_xsmp" = "yes"; then
394 AC_MSG_CHECKING(--disable-xsmp-interact argument)
395 AC_ARG_ENABLE(xsmp-interact,
396 [ --disable-xsmp-interact Disable XSMP interaction],
397 , enable_xsmp_interact="yes")
398 if test "$enable_xsmp_interact" = "yes"; then
400 AC_DEFINE(USE_XSMP_INTERACT)
408 dnl Check for MzScheme feature.
409 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
410 AC_ARG_ENABLE(mzschemeinterp,
411 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
412 [enable_mzschemeinterp="no"])
413 AC_MSG_RESULT($enable_mzschemeinterp)
415 if test "$enable_mzschemeinterp" = "yes"; then
416 dnl -- find the mzscheme executable
417 AC_SUBST(vi_cv_path_mzscheme)
419 AC_MSG_CHECKING(--with-plthome argument)
421 [ --with-plthome=PLTHOME Use PLTHOME.],
422 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
423 with_plthome="";AC_MSG_RESULT("no"))
425 if test "X$with_plthome" != "X"; then
426 vi_cv_path_mzscheme_pfx="$with_plthome"
428 AC_MSG_CHECKING(PLTHOME environment var)
429 if test "X$PLTHOME" != "X"; then
430 AC_MSG_RESULT("$PLTHOME")
431 vi_cv_path_mzscheme_pfx="$PLTHOME"
433 AC_MSG_RESULT(not set)
434 dnl -- try to find MzScheme executable
435 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
437 dnl resolve symbolic link, the executable is often elsewhere and there
438 dnl are no links for the include files.
439 if test "X$vi_cv_path_mzscheme" != "X"; then
440 lsout=`ls -l $vi_cv_path_mzscheme`
441 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
442 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
446 if test "X$vi_cv_path_mzscheme" != "X"; then
447 dnl -- find where MzScheme thinks it was installed
448 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
449 dnl different versions of MzScheme differ in command line processing
450 dnl use universal approach
451 echo "(display (simplify-path \
452 (build-path (call-with-values \
453 (lambda () (split-path (find-system-path (quote exec-file)))) \
454 (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
455 dnl Remove a trailing slash
456 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
464 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
465 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
466 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
467 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
471 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
472 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
474 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
477 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
478 if test -f /usr/include/plt/scheme.h; then
480 SCHEME_INC=/usr/include/plt
483 vi_cv_path_mzscheme_pfx=
489 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
490 if test "x$MACOSX" = "xyes"; then
491 MZSCHEME_LIBS="-framework PLT_MzScheme"
492 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
493 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
494 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
495 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
496 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
498 dnl Using shared objects
499 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
500 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
501 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
503 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
505 if test "$GCC" = yes; then
506 dnl Make Vim remember the path to the library. For when it's not in
507 dnl $LD_LIBRARY_PATH.
508 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
509 elif test "`(uname) 2>/dev/null`" = SunOS &&
510 uname -r | grep '^5' >/dev/null; then
511 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
514 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
515 SCHEME_COLLECTS=lib/plt/
517 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
518 dnl need to generate bytecode for MzScheme base
519 MZSCHEME_EXTRA="mzscheme_base.c"
520 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
521 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
523 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
524 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
525 MZSCHEME_SRC="if_mzsch.c"
526 MZSCHEME_OBJ="objects/if_mzsch.o"
527 MZSCHEME_PRO="if_mzsch.pro"
528 AC_DEFINE(FEAT_MZSCHEME)
530 AC_SUBST(MZSCHEME_SRC)
531 AC_SUBST(MZSCHEME_OBJ)
532 AC_SUBST(MZSCHEME_PRO)
533 AC_SUBST(MZSCHEME_LIBS)
534 AC_SUBST(MZSCHEME_CFLAGS)
535 AC_SUBST(MZSCHEME_EXTRA)
536 AC_SUBST(MZSCHEME_MZC)
540 AC_MSG_CHECKING(--enable-perlinterp argument)
541 AC_ARG_ENABLE(perlinterp,
542 [ --enable-perlinterp Include Perl interpreter.], ,
543 [enable_perlinterp="no"])
544 AC_MSG_RESULT($enable_perlinterp)
545 if test "$enable_perlinterp" = "yes"; then
546 AC_SUBST(vi_cv_path_perl)
547 AC_PATH_PROG(vi_cv_path_perl, perl)
548 if test "X$vi_cv_path_perl" != "X"; then
549 AC_MSG_CHECKING(Perl version)
550 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
551 eval `$vi_cv_path_perl -V:usethreads`
552 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
555 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
556 eval `$vi_cv_path_perl -V:use5005threads`
557 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
561 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
565 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
568 if test $badthreads = no; then
570 eval `$vi_cv_path_perl -V:shrpenv`
571 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
574 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
575 AC_SUBST(vi_cv_perllib)
576 dnl Remove "-fno-something", it breaks using cproto.
577 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
578 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
579 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
580 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
581 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
582 -e 's/-bE:perl.exp//' -e 's/-lc //'`
583 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
584 dnl a test in configure may fail because of that.
585 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
586 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
588 dnl check that compiling a simple program still works with the flags
590 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
593 ldflags_save=$LDFLAGS
594 CFLAGS="$CFLAGS $perlcppflags"
595 LIBS="$LIBS $perllibs"
596 LDFLAGS="$perlldflags $LDFLAGS"
598 AC_MSG_RESULT(yes); perl_ok=yes,
599 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
602 LDFLAGS=$ldflags_save
603 if test $perl_ok = yes; then
604 if test "X$perlcppflags" != "X"; then
605 dnl remove -pipe and -Wxxx, it confuses cproto
606 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
608 if test "X$perlldflags" != "X"; then
609 LDFLAGS="$perlldflags $LDFLAGS"
612 PERL_SRC="auto/if_perl.c if_perlsfio.c"
613 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
614 PERL_PRO="if_perl.pro if_perlsfio.pro"
619 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
623 if test "x$MACOSX" = "xyes"; then
624 dnl Mac OS X 10.2 or later
625 dir=/System/Library/Perl
626 darwindir=$dir/darwin
627 if test -d $darwindir; then
631 dir=/System/Library/Perl/5.8.1
632 darwindir=$dir/darwin-thread-multi-2level
633 if test -d $darwindir; then
637 if test -n "$PERL"; then
639 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
640 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
641 PERL_LIBS="-L$darwindir/CORE -lperl"
649 AC_SUBST(PERL_CFLAGS)
652 AC_MSG_CHECKING(--enable-pythoninterp argument)
653 AC_ARG_ENABLE(pythoninterp,
654 [ --enable-pythoninterp Include Python interpreter.], ,
655 [enable_pythoninterp="no"])
656 AC_MSG_RESULT($enable_pythoninterp)
657 if test "$enable_pythoninterp" = "yes"; then
658 dnl -- find the python executable
659 AC_PATH_PROG(vi_cv_path_python, python)
660 if test "X$vi_cv_path_python" != "X"; then
662 dnl -- get its version number
663 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
664 [[vi_cv_var_python_version=`
665 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
668 dnl -- it must be at least version 1.4
669 AC_MSG_CHECKING(Python is 1.4 or better)
670 if ${vi_cv_path_python} -c \
671 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
675 dnl -- find where python thinks it was installed
676 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
677 [ vi_cv_path_python_pfx=`
678 ${vi_cv_path_python} -c \
679 "import sys; print sys.prefix"` ])
681 dnl -- and where it thinks it runs
682 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
683 [ vi_cv_path_python_epfx=`
684 ${vi_cv_path_python} -c \
685 "import sys; print sys.exec_prefix"` ])
687 dnl -- python's internal library path
689 AC_CACHE_VAL(vi_cv_path_pythonpath,
690 [ vi_cv_path_pythonpath=`
692 ${vi_cv_path_python} -c \
693 "import sys, string; print string.join(sys.path,':')"` ])
695 dnl -- where the Python implementation library archives are
697 AC_ARG_WITH(python-config-dir,
698 [ --with-python-config-dir=PATH Python's config directory],
699 [ vi_cv_path_python_conf="${withval}" ] )
701 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
703 vi_cv_path_python_conf=
704 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
705 for subdir in lib64 lib share; do
706 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
707 if test -d "$d" && test -f "$d/config.c"; then
708 vi_cv_path_python_conf="$d"
714 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
716 if test "X$PYTHON_CONFDIR" = "X"; then
717 AC_MSG_RESULT([can't find it!])
720 dnl -- we need to examine Python's config/Makefile too
721 dnl see what the interpreter is built from
722 AC_CACHE_VAL(vi_cv_path_python_plibs,
725 tmp_mkf="$pwd/config-PyMake$$"
726 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
728 @echo "python_MODLIBS='$(MODLIBS)'"
729 @echo "python_LIBS='$(LIBS)'"
730 @echo "python_SYSLIBS='$(SYSLIBS)'"
731 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
733 dnl -- delete the lines from make about Entering/Leaving directory
734 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
735 rm -f -- "${tmp_mkf}"
736 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
737 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
738 vi_cv_path_python_plibs="-framework Python"
740 if test "${vi_cv_var_python_version}" = "1.4"; then
741 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
743 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
745 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
746 dnl remove -ltermcap, it can conflict with an earlier -lncurses
747 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
751 PYTHON_LIBS="${vi_cv_path_python_plibs}"
752 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
753 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
755 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}"
757 PYTHON_SRC="if_python.c"
758 dnl For Mac OSX 10.2 config.o is included in the Python library.
759 if test "x$MACOSX" = "xyes"; then
760 PYTHON_OBJ="objects/if_python.o"
762 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
764 if test "${vi_cv_var_python_version}" = "1.4"; then
765 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
767 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
769 dnl On FreeBSD linking with "-pthread" is required to use threads.
770 dnl _THREAD_SAFE must be used for compiling then.
771 dnl The "-pthread" is added to $LIBS, so that the following check for
772 dnl sigaltstack() will look in libc_r (it's there in libc!).
773 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
774 dnl will then define target-specific defines, e.g., -D_REENTRANT.
775 dnl Don't do this for Mac OSX, -pthread will generate a warning.
776 AC_MSG_CHECKING([if -pthread should be used])
779 dnl if test "x$MACOSX" != "xyes"; then
780 if test "`(uname) 2>/dev/null`" != Darwin; then
781 test "$GCC" = yes && threadsafe_flag="-pthread"
782 if test "`(uname) 2>/dev/null`" = FreeBSD; then
783 threadsafe_flag="-D_THREAD_SAFE"
784 thread_lib="-pthread"
788 if test -n "$threadsafe_flag"; then
790 CFLAGS="$CFLAGS $threadsafe_flag"
791 LIBS="$LIBS $thread_lib"
793 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
794 AC_MSG_RESULT(no); LIBS=$libs_save_old
801 dnl check that compiling a simple program still works with the flags
802 dnl added for Python.
803 AC_MSG_CHECKING([if compile and link flags for Python are sane])
806 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
807 LIBS="$LIBS $PYTHON_LIBS"
809 AC_MSG_RESULT(yes); python_ok=yes,
810 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
813 if test $python_ok = yes; then
814 AC_DEFINE(FEAT_PYTHON)
825 AC_MSG_RESULT(too old)
829 AC_SUBST(PYTHON_CONFDIR)
830 AC_SUBST(PYTHON_LIBS)
831 AC_SUBST(PYTHON_GETPATH_CFLAGS)
832 AC_SUBST(PYTHON_CFLAGS)
836 AC_MSG_CHECKING(--enable-tclinterp argument)
837 AC_ARG_ENABLE(tclinterp,
838 [ --enable-tclinterp Include Tcl interpreter.], ,
839 [enable_tclinterp="no"])
840 AC_MSG_RESULT($enable_tclinterp)
842 if test "$enable_tclinterp" = "yes"; then
844 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
845 AC_MSG_CHECKING(--with-tclsh argument)
846 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
847 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
848 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
849 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
850 AC_SUBST(vi_cv_path_tcl)
852 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
853 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
854 tclsh_name="tclsh8.4"
855 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
857 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
858 tclsh_name="tclsh8.2"
859 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
861 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
862 tclsh_name="tclsh8.0"
863 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
865 dnl still didn't find it, try without version number
866 if test "X$vi_cv_path_tcl" = "X"; then
868 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
870 if test "X$vi_cv_path_tcl" != "X"; then
871 AC_MSG_CHECKING(Tcl version)
872 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
873 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
874 AC_MSG_RESULT($tclver - OK);
875 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 -`
877 AC_MSG_CHECKING(for location of Tcl include)
878 if test "x$MACOSX" != "xyes"; then
879 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
881 dnl For Mac OS X 10.3, use the OS-provided framework location
882 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
885 for try in $tclinc; do
886 if test -f "$try/tcl.h"; then
887 AC_MSG_RESULT($try/tcl.h)
892 if test -z "$TCL_INC"; then
893 AC_MSG_RESULT(<not found>)
896 if test -z "$SKIP_TCL"; then
897 AC_MSG_CHECKING(for location of tclConfig.sh script)
898 if test "x$MACOSX" != "xyes"; then
899 tclcnf=`echo $tclinc | sed s/include/lib/g`
900 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
902 dnl For Mac OS X 10.3, use the OS-provided framework location
903 tclcnf="/System/Library/Frameworks/Tcl.framework"
905 for try in $tclcnf; do
906 if test -f $try/tclConfig.sh; then
907 AC_MSG_RESULT($try/tclConfig.sh)
909 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
910 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
911 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
912 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
913 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'`
917 if test -z "$TCL_LIBS"; then
918 AC_MSG_RESULT(<not found>)
919 AC_MSG_CHECKING(for Tcl library by myself)
920 tcllib=`echo $tclinc | sed s/include/lib/g`
921 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
922 for ext in .so .a ; do
923 for ver in "" $tclver ; do
924 for try in $tcllib ; do
926 if test -f $try/lib$trylib ; then
927 AC_MSG_RESULT($try/lib$trylib)
928 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
929 if test "`(uname) 2>/dev/null`" = SunOS &&
930 uname -r | grep '^5' >/dev/null; then
931 TCL_LIBS="$TCL_LIBS -R $try"
938 if test -z "$TCL_LIBS"; then
939 AC_MSG_RESULT(<not found>)
943 if test -z "$SKIP_TCL"; then
946 TCL_OBJ=objects/if_tcl.o
948 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
952 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
962 AC_MSG_CHECKING(--enable-rubyinterp argument)
963 AC_ARG_ENABLE(rubyinterp,
964 [ --enable-rubyinterp Include Ruby interpreter.], ,
965 [enable_rubyinterp="no"])
966 AC_MSG_RESULT($enable_rubyinterp)
967 if test "$enable_rubyinterp" = "yes"; then
968 AC_MSG_CHECKING(--with-ruby-command argument)
969 AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
970 RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
971 RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
972 AC_SUBST(vi_cv_path_ruby)
973 AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
974 if test "X$vi_cv_path_ruby" != "X"; then
975 AC_MSG_CHECKING(Ruby version)
976 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
978 AC_MSG_CHECKING(Ruby header files)
979 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
980 if test "X$rubyhdrdir" != "X"; then
981 AC_MSG_RESULT($rubyhdrdir)
982 RUBY_CFLAGS="-I$rubyhdrdir"
983 rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
984 if test -d "$rubyhdrdir/$rubyarch"; then
985 RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
987 rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
988 RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
989 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
990 if test "X$rubylibs" != "X"; then
991 RUBY_LIBS="$rubylibs"
993 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
994 if test -f "$rubyhdrdir/$librubyarg"; then
995 librubyarg="$rubyhdrdir/$librubyarg"
997 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
998 if test -f "$rubylibdir/$librubyarg"; then
999 librubyarg="$rubylibdir/$librubyarg"
1000 elif test "$librubyarg" = "libruby.a"; then
1001 dnl required on Mac OS 10.3 where libruby.a doesn't exist
1004 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
1008 if test "X$librubyarg" != "X"; then
1009 RUBY_LIBS="$librubyarg $RUBY_LIBS"
1011 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
1012 if test "X$rubyldflags" != "X"; then
1013 dnl Ruby on Mac OS X 10.5 adds "-arch" flags but these should only
1014 dnl be included if requested by passing --with-mac-arch to
1015 dnl configure, so strip these flags first (if present)
1016 rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//'`
1017 if test "X$rubyldflags" != "X"; then
1018 LDFLAGS="$rubyldflags $LDFLAGS"
1021 RUBY_SRC="if_ruby.c"
1022 RUBY_OBJ="objects/if_ruby.o"
1023 RUBY_PRO="if_ruby.pro"
1024 AC_DEFINE(FEAT_RUBY)
1026 AC_MSG_RESULT(not found; disabling Ruby)
1029 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1036 AC_SUBST(RUBY_CFLAGS)
1039 AC_MSG_CHECKING(--enable-cscope argument)
1040 AC_ARG_ENABLE(cscope,
1041 [ --enable-cscope Include cscope interface.], ,
1042 [enable_cscope="no"])
1043 AC_MSG_RESULT($enable_cscope)
1044 if test "$enable_cscope" = "yes"; then
1045 AC_DEFINE(FEAT_CSCOPE)
1048 AC_MSG_CHECKING(--enable-workshop argument)
1049 AC_ARG_ENABLE(workshop,
1050 [ --enable-workshop Include Sun Visual Workshop support.], ,
1051 [enable_workshop="no"])
1052 AC_MSG_RESULT($enable_workshop)
1053 if test "$enable_workshop" = "yes"; then
1054 AC_DEFINE(FEAT_SUN_WORKSHOP)
1055 WORKSHOP_SRC="workshop.c integration.c"
1056 AC_SUBST(WORKSHOP_SRC)
1057 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1058 AC_SUBST(WORKSHOP_OBJ)
1059 if test "${enable_gui-xxx}" = xxx; then
1064 AC_MSG_CHECKING(--disable-netbeans argument)
1065 AC_ARG_ENABLE(netbeans,
1066 [ --disable-netbeans Disable NetBeans integration support.],
1067 , [enable_netbeans="yes"])
1068 if test "$enable_netbeans" = "yes"; then
1070 dnl On Solaris we need the socket and nsl library.
1071 AC_CHECK_LIB(socket, socket)
1072 AC_CHECK_LIB(nsl, gethostbyname)
1073 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1080 #include <netinet/in.h>
1082 #include <sys/types.h>
1083 #include <sys/socket.h>
1084 /* Check bitfields */
1086 unsigned int initDone:1;
1090 /* Check creating a socket. */
1091 struct sockaddr_in server;
1092 (void)socket(AF_INET, SOCK_STREAM, 0);
1094 (void)gethostbyname("microsoft.com");
1095 if (errno == ECONNREFUSED)
1096 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1099 AC_MSG_RESULT(no); enable_netbeans="no")
1103 if test "$enable_netbeans" = "yes"; then
1104 AC_DEFINE(FEAT_NETBEANS_INTG)
1105 NETBEANS_SRC="netbeans.c"
1106 AC_SUBST(NETBEANS_SRC)
1107 NETBEANS_OBJ="objects/netbeans.o"
1108 AC_SUBST(NETBEANS_OBJ)
1111 AC_MSG_CHECKING(--enable-sniff argument)
1112 AC_ARG_ENABLE(sniff,
1113 [ --enable-sniff Include Sniff interface.], ,
1114 [enable_sniff="no"])
1115 AC_MSG_RESULT($enable_sniff)
1116 if test "$enable_sniff" = "yes"; then
1117 AC_DEFINE(FEAT_SNIFF)
1118 SNIFF_SRC="if_sniff.c"
1120 SNIFF_OBJ="objects/if_sniff.o"
1124 AC_MSG_CHECKING(--enable-multibyte argument)
1125 AC_ARG_ENABLE(multibyte,
1126 [ --enable-multibyte Include multibyte editing support.], ,
1127 [enable_multibyte="no"])
1128 AC_MSG_RESULT($enable_multibyte)
1129 if test "$enable_multibyte" = "yes"; then
1130 AC_DEFINE(FEAT_MBYTE)
1133 AC_MSG_CHECKING(--enable-hangulinput argument)
1134 AC_ARG_ENABLE(hangulinput,
1135 [ --enable-hangulinput Include Hangul input support.], ,
1136 [enable_hangulinput="no"])
1137 AC_MSG_RESULT($enable_hangulinput)
1139 AC_MSG_CHECKING(--enable-xim argument)
1141 [ --enable-xim Include XIM input support.],
1142 AC_MSG_RESULT($enable_xim),
1143 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1144 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1146 AC_MSG_CHECKING(--enable-fontset argument)
1147 AC_ARG_ENABLE(fontset,
1148 [ --enable-fontset Include X fontset output support.], ,
1149 [enable_fontset="no"])
1150 AC_MSG_RESULT($enable_fontset)
1151 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1153 test -z "$with_x" && with_x=yes
1154 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1155 if test "$with_x" = no; then
1156 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1158 dnl Do this check early, so that its failure can override user requests.
1160 AC_PATH_PROG(xmkmfpath, xmkmf)
1164 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1165 dnl be compiled with a special option.
1166 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1167 if test "$OS390Unix" = "yes"; then
1168 CFLAGS="$CFLAGS -W c,dll"
1169 LDFLAGS="$LDFLAGS -W l,dll"
1170 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1173 dnl On my HPUX system the X include dir is found, but the lib dir not.
1174 dnl This is a desparate try to fix this.
1176 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1177 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1178 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1179 X_LIBS="$X_LIBS -L$x_libraries"
1180 if test "`(uname) 2>/dev/null`" = SunOS &&
1181 uname -r | grep '^5' >/dev/null; then
1182 X_LIBS="$X_LIBS -R $x_libraries"
1186 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1187 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1188 AC_MSG_RESULT(Corrected X includes to $x_includes)
1189 X_CFLAGS="$X_CFLAGS -I$x_includes"
1192 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1193 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1194 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1195 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1196 dnl Same for "-R/usr/lib ".
1197 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1200 dnl Check if the X11 header files are correctly installed. On some systems
1201 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1203 AC_MSG_CHECKING(if X11 header files can be found)
1205 CFLAGS="$CFLAGS $X_CFLAGS"
1206 AC_TRY_COMPILE([#include <X11/Xlib.h>
1207 #include <X11/Intrinsic.h>], ,
1209 AC_MSG_RESULT(no); no_x=yes)
1212 if test "${no_x-no}" = yes; then
1219 ac_save_LDFLAGS="$LDFLAGS"
1220 LDFLAGS="-L$x_libraries $LDFLAGS"
1222 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1223 dnl For HP-UX 10.20 it must be before -lSM -lICE
1224 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1225 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1227 dnl Some systems need -lnsl -lsocket when testing for ICE.
1228 dnl The check above doesn't do this, try here (again). Also needed to get
1229 dnl them after Xdmcp. link.sh will remove them when not needed.
1230 dnl Check for other function than above to avoid the cached value
1231 AC_CHECK_LIB(ICE, IceOpenConnection,
1232 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1234 dnl Check for -lXpm (needed for some versions of Motif)
1235 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1236 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1237 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1239 dnl Check that the X11 header files don't use implicit declarations
1240 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1242 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1243 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1245 CFLAGS="$CFLAGS -Wno-implicit-int"
1246 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1247 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1248 AC_MSG_RESULT(test failed)
1253 LDFLAGS="$ac_save_LDFLAGS"
1255 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1256 AC_CACHE_VAL(ac_cv_small_wchar_t,
1258 #include <X11/Xlib.h>
1260 # include <stdlib.h>
1261 # include <stddef.h>
1265 if (sizeof(wchar_t) <= 2)
1269 ac_cv_small_wchar_t="no",
1270 ac_cv_small_wchar_t="yes",
1271 AC_MSG_ERROR(failed to compile test program))])
1272 AC_MSG_RESULT($ac_cv_small_wchar_t)
1273 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1274 AC_DEFINE(SMALL_WCHAR_T)
1280 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1282 AC_MSG_CHECKING(--enable-gui argument)
1284 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
1286 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1287 dnl Do not use character classes for portability with old tools.
1288 enable_gui_canon=`echo "_$enable_gui" | \
1289 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1291 dnl Skip everything by default.
1302 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1304 case "$enable_gui_canon" in
1305 no) AC_MSG_RESULT(no GUI support)
1307 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1308 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1309 photon) AC_MSG_RESULT(Photon GUI support) ;;
1310 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1314 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1316 case "$enable_gui_canon" in
1317 no) AC_MSG_RESULT(no GUI support)
1319 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1320 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1321 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1322 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1328 case "$enable_gui_canon" in
1329 no|none) AC_MSG_RESULT(no GUI support) ;;
1330 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1338 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1340 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1343 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1346 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1350 motif) AC_MSG_RESULT(Motif GUI support)
1352 athena) AC_MSG_RESULT(Athena GUI support)
1354 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1356 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1361 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1362 AC_MSG_CHECKING(whether or not to look for GTK)
1363 AC_ARG_ENABLE(gtk-check,
1364 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1365 , enable_gtk_check="yes")
1366 AC_MSG_RESULT($enable_gtk_check)
1367 if test "x$enable_gtk_check" = "xno"; then
1373 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1374 -a "$enable_gui_canon" != "gnome2"; then
1375 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1376 AC_ARG_ENABLE(gtk2-check,
1377 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1378 , enable_gtk2_check="yes")
1379 AC_MSG_RESULT($enable_gtk2_check)
1380 if test "x$enable_gtk2_check" = "xno"; then
1385 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1386 -a "$enable_gui_canon" != "gnome2"; then
1387 AC_MSG_CHECKING(whether or not to look for GNOME)
1388 AC_ARG_ENABLE(gnome-check,
1389 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1390 , enable_gnome_check="no")
1391 AC_MSG_RESULT($enable_gnome_check)
1392 if test "x$enable_gnome_check" = "xno"; then
1397 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1398 AC_MSG_CHECKING(whether or not to look for Motif)
1399 AC_ARG_ENABLE(motif-check,
1400 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1401 , enable_motif_check="yes")
1402 AC_MSG_RESULT($enable_motif_check)
1403 if test "x$enable_motif_check" = "xno"; then
1408 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1409 AC_MSG_CHECKING(whether or not to look for Athena)
1410 AC_ARG_ENABLE(athena-check,
1411 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1412 , enable_athena_check="yes")
1413 AC_MSG_RESULT($enable_athena_check)
1414 if test "x$enable_athena_check" = "xno"; then
1419 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1420 AC_MSG_CHECKING(whether or not to look for neXtaw)
1421 AC_ARG_ENABLE(nextaw-check,
1422 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1423 , enable_nextaw_check="yes")
1424 AC_MSG_RESULT($enable_nextaw_check);
1425 if test "x$enable_nextaw_check" = "xno"; then
1430 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1431 AC_MSG_CHECKING(whether or not to look for Carbon)
1432 AC_ARG_ENABLE(carbon-check,
1433 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1434 , enable_carbon_check="yes")
1435 AC_MSG_RESULT($enable_carbon_check);
1436 if test "x$enable_carbon_check" = "xno"; then
1442 if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1443 AC_MSG_CHECKING(for Carbon GUI)
1444 dnl already did the check, just give the message
1447 if test "$VIMNAME" = "vim"; then
1451 dnl Default install directory is not /usr/local
1452 if test x$prefix = xNONE; then
1453 prefix=/Applications
1456 dnl Sorry for the hard coded default
1457 datadir='${prefix}/Vim.app/Contents/Resources'
1459 dnl skip everything else
1471 dnl Get the cflags and libraries from the gtk-config script
1474 dnl define an autoconf function to check for a specified version of GTK, and
1475 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1477 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1478 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1480 AC_DEFUN(AM_PATH_GTK,
1482 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1484 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1485 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1487 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1488 && $PKG_CONFIG --exists gtk+-2.0; then
1490 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1491 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1492 dnl something like that.
1493 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1494 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1495 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1496 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1497 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1498 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1499 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1500 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1501 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1503 elif test "X$GTK_CONFIG" != "Xno"; then
1505 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1507 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1508 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1509 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1510 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1511 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1512 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1513 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1519 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1521 ac_save_CFLAGS="$CFLAGS"
1522 ac_save_LIBS="$LIBS"
1523 CFLAGS="$CFLAGS $GTK_CFLAGS"
1524 LIBS="$LIBS $GTK_LIBS"
1527 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1528 dnl checks the results of gtk-config to some extent
1532 #include <gtk/gtk.h>
1535 # include <stdlib.h>
1536 # include <stddef.h>
1542 int major, minor, micro;
1545 system ("touch conf.gtktest");
1547 /* HP/UX 9 (%@#!) writes to sscanf strings */
1548 tmp_version = g_strdup("$min_gtk_version");
1549 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1550 printf("%s, bad version string\n", "$min_gtk_version");
1554 if ((gtk_major_version > major) ||
1555 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1556 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1557 (gtk_micro_version >= micro)))
1563 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1564 CFLAGS="$ac_save_CFLAGS"
1565 LIBS="$ac_save_LIBS"
1568 if test "x$no_gtk" = x ; then
1569 if test "x$enable_gtktest" = "xyes"; then
1570 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1572 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1574 ifelse([$2], , :, [$2])
1580 ifelse([$3], , :, [$3])
1587 ifelse([$3], , :, [$3])
1589 AC_SUBST(GTK_CFLAGS)
1594 dnl ---------------------------------------------------------------------------
1596 dnl ---------------------------------------------------------------------------
1597 AC_DEFUN([GNOME_INIT_HOOK],
1599 AC_SUBST(GNOME_LIBS)
1600 AC_SUBST(GNOME_LIBDIR)
1601 AC_SUBST(GNOME_INCLUDEDIR)
1603 AC_ARG_WITH(gnome-includes,
1604 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1605 [CFLAGS="$CFLAGS -I$withval"]
1608 AC_ARG_WITH(gnome-libs,
1609 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1610 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1614 [ --with-gnome Specify prefix for GNOME files],
1615 if test x$withval = xyes; then
1617 ifelse([$1], [], :, [$1])
1619 if test "x$withval" = xno; then
1623 LDFLAGS="$LDFLAGS -L$withval/lib"
1624 CFLAGS="$CFLAGS -I$withval/include"
1625 gnome_prefix=$withval/lib
1630 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1632 AC_MSG_CHECKING(for libgnomeui-2.0)
1633 if $PKG_CONFIG --exists libgnomeui-2.0; then
1635 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1636 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1637 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1639 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1640 dnl This might not be the right way but it works for me...
1641 AC_MSG_CHECKING(for FreeBSD)
1642 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1643 AC_MSG_RESULT(yes, adding -pthread)
1644 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1645 GNOME_LIBS="$GNOME_LIBS -pthread"
1651 AC_MSG_RESULT(not found)
1652 if test "x$2" = xfail; then
1653 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1657 elif test "x$want_gnome" = xyes; then
1659 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1660 if test "$GNOME_CONFIG" = "no"; then
1661 no_gnome_config="yes"
1663 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1664 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1666 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1667 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1668 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1672 no_gnome_config="yes"
1676 if test x$exec_prefix = xNONE; then
1677 if test x$prefix = xNONE; then
1678 gnome_prefix=$ac_default_prefix/lib
1680 gnome_prefix=$prefix/lib
1683 gnome_prefix=`eval echo \`echo $libdir\``
1686 if test "$no_gnome_config" = "yes"; then
1687 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1688 if test -f $gnome_prefix/gnomeConf.sh; then
1689 AC_MSG_RESULT(found)
1690 echo "loading gnome configuration from" \
1691 "$gnome_prefix/gnomeConf.sh"
1692 . $gnome_prefix/gnomeConf.sh
1695 AC_MSG_RESULT(not found)
1696 if test x$2 = xfail; then
1697 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1705 AC_DEFUN([GNOME_INIT],[
1706 GNOME_INIT_HOOK([],fail)
1710 dnl ---------------------------------------------------------------------------
1711 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1712 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1713 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1714 dnl ---------------------------------------------------------------------------
1715 if test -z "$SKIP_GTK"; then
1717 AC_MSG_CHECKING(--with-gtk-prefix argument)
1718 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1719 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1720 gtk_config_prefix=""; AC_MSG_RESULT(no))
1722 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1723 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1724 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1725 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1727 AC_MSG_CHECKING(--disable-gtktest argument)
1728 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1729 , enable_gtktest=yes)
1730 if test "x$enable_gtktest" = "xyes" ; then
1731 AC_MSG_RESULT(gtk test enabled)
1733 AC_MSG_RESULT(gtk test disabled)
1736 if test "x$gtk_config_prefix" != "x" ; then
1737 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1738 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1740 if test "x$gtk_config_exec_prefix" != "x" ; then
1741 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1742 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1744 if test "X$GTK_CONFIG" = "X"; then
1745 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1746 if test "X$GTK_CONFIG" = "Xno"; then
1747 dnl Some distributions call it gtk12-config, annoying!
1748 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1749 GTK_CONFIG="$GTK12_CONFIG"
1752 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1754 if test "X$PKG_CONFIG" = "X"; then
1755 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1758 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1759 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1760 dnl problems (bold fonts, --remote doesn't work).
1761 if test "X$SKIP_GTK2" != "XYES"; then
1763 [GUI_LIB_LOC="$GTK_LIBDIR"
1764 GTK_LIBNAME="$GTK_LIBS"
1765 GUI_INC_LOC="$GTK_CFLAGS"], )
1766 if test "x$GTK_CFLAGS" != "x"; then
1771 AC_SUBST(GTK_LIBNAME)
1775 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1776 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1777 dnl were test versions.
1778 if test "x$GUITYPE" != "xGTK"; then
1781 [GTK_LIBNAME="$GTK_LIBS"
1782 GUI_INC_LOC="$GTK_CFLAGS"], )
1783 if test "x$GTK_CFLAGS" != "x"; then
1788 AC_SUBST(GTK_LIBNAME)
1792 dnl Give a warning if GTK is older than 1.2.3
1793 if test "x$GUITYPE" = "xGTK"; then
1794 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1795 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1796 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1799 if test "0$gtk_major_version" -ge 2; then
1800 AC_DEFINE(HAVE_GTK2)
1801 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1802 || test "0$gtk_minor_version" -ge 2 \
1803 || test "0$gtk_major_version" -gt 2; then
1804 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1808 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1810 if test -z "$SKIP_GNOME"; then
1812 GNOME_INIT_HOOK([have_gnome=yes])
1813 if test x$have_gnome = xyes ; then
1814 AC_DEFINE(FEAT_GUI_GNOME)
1815 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1816 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1825 dnl Check for Motif include files location.
1826 dnl The LAST one found is used, this makes the highest version to be used,
1827 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1829 if test -z "$SKIP_MOTIF"; then
1830 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"
1831 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1832 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1834 AC_MSG_CHECKING(for location of Motif GUI includes)
1835 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1837 for try in $gui_includes; do
1838 if test -f "$try/Xm/Xm.h"; then
1842 if test -n "$GUI_INC_LOC"; then
1843 if test "$GUI_INC_LOC" = /usr/include; then
1845 AC_MSG_RESULT(in default path)
1847 AC_MSG_RESULT($GUI_INC_LOC)
1850 AC_MSG_RESULT(<not found>)
1855 dnl Check for Motif library files location. In the same order as the include
1856 dnl files, to avoid a mixup if several versions are present
1858 if test -z "$SKIP_MOTIF"; then
1859 AC_MSG_CHECKING(--with-motif-lib argument)
1860 AC_ARG_WITH(motif-lib,
1861 [ --with-motif-lib=STRING Library for Motif ],
1862 [ MOTIF_LIBNAME="${withval}" ] )
1864 if test -n "$MOTIF_LIBNAME"; then
1865 AC_MSG_RESULT($MOTIF_LIBNAME)
1870 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1871 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1873 AC_MSG_CHECKING(for location of Motif GUI libs)
1874 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"
1876 for try in $gui_libs; do
1877 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1878 if test -f "$libtry"; then
1883 if test -n "$GUI_LIB_LOC"; then
1884 dnl Remove /usr/lib, it causes trouble on some systems
1885 if test "$GUI_LIB_LOC" = /usr/lib; then
1887 AC_MSG_RESULT(in default path)
1889 if test -n "$GUI_LIB_LOC"; then
1890 AC_MSG_RESULT($GUI_LIB_LOC)
1891 if test "`(uname) 2>/dev/null`" = SunOS &&
1892 uname -r | grep '^5' >/dev/null; then
1893 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1899 AC_MSG_RESULT(<not found>)
1905 if test -z "$SKIP_MOTIF"; then
1909 AC_SUBST(MOTIF_LIBNAME)
1912 dnl Check if the Athena files can be found
1916 if test -z "$SKIP_ATHENA"; then
1917 AC_MSG_CHECKING(if Athena header files can be found)
1919 CFLAGS="$CFLAGS $X_CFLAGS"
1921 #include <X11/Intrinsic.h>
1922 #include <X11/Xaw/Paned.h>], ,
1924 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1928 if test -z "$SKIP_ATHENA"; then
1932 if test -z "$SKIP_NEXTAW"; then
1933 AC_MSG_CHECKING(if neXtaw header files can be found)
1935 CFLAGS="$CFLAGS $X_CFLAGS"
1937 #include <X11/Intrinsic.h>
1938 #include <X11/neXtaw/Paned.h>], ,
1940 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1944 if test -z "$SKIP_NEXTAW"; then
1948 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1949 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1950 dnl Avoid adding it when it twice
1951 if test -n "$GUI_INC_LOC"; then
1952 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1954 if test -n "$GUI_LIB_LOC"; then
1955 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1958 dnl Check for -lXext and then for -lXmu
1959 ldflags_save=$LDFLAGS
1960 LDFLAGS="$X_LIBS $LDFLAGS"
1961 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1962 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1963 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1964 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1965 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1966 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1967 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1968 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1969 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1970 if test -z "$SKIP_MOTIF"; then
1971 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1972 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1974 LDFLAGS=$ldflags_save
1976 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1977 AC_MSG_CHECKING(for extra X11 defines)
1980 if mkdir conftestdir; then
1982 cat > Imakefile <<'EOF'
1984 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
1986 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
1987 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
1992 if test -z "$NARROW_PROTO"; then
1995 AC_MSG_RESULT($NARROW_PROTO)
1997 AC_SUBST(NARROW_PROTO)
2000 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2001 dnl use the X11 include path
2002 if test "$enable_xsmp" = "yes"; then
2003 cppflags_save=$CPPFLAGS
2004 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2005 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2006 CPPFLAGS=$cppflags_save
2010 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2011 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2012 cppflags_save=$CPPFLAGS
2013 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2014 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2016 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2017 if test ! "$enable_xim" = "no"; then
2018 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2019 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2021 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2023 CPPFLAGS=$cppflags_save
2025 dnl automatically enable XIM when hangul input isn't enabled
2026 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2027 -a "x$GUITYPE" != "xNONE" ; then
2028 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2033 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2034 cppflags_save=$CPPFLAGS
2035 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2036 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2037 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2039 #include <X11/Intrinsic.h>
2040 #include <X11/Xmu/Editres.h>],
2043 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2045 CPPFLAGS=$cppflags_save
2048 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2049 if test -z "$SKIP_MOTIF"; then
2050 cppflags_save=$CPPFLAGS
2051 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2052 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2053 Xm/UnhighlightT.h Xm/Notebook.h)
2055 if test $ac_cv_header_Xm_XpmP_h = yes; then
2056 dnl Solaris uses XpmAttributes_21, very annoying.
2057 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2058 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2059 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2060 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2063 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2065 CPPFLAGS=$cppflags_save
2068 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2069 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2072 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2073 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2076 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2077 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2081 if test -z "$SKIP_PHOTON"; then
2085 AC_SUBST(GUI_INC_LOC)
2086 AC_SUBST(GUI_LIB_LOC)
2088 AC_SUBST(GUI_X_LIBS)
2090 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2091 AC_MSG_ERROR([cannot use workshop without Motif])
2094 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2095 if test "$enable_xim" = "yes"; then
2098 if test "$enable_fontset" = "yes"; then
2099 AC_DEFINE(FEAT_XFONTSET)
2103 dnl ---------------------------------------------------------------------------
2104 dnl end of GUI-checking
2105 dnl ---------------------------------------------------------------------------
2108 dnl Only really enable hangul input when GUI and XFONTSET are available
2109 if test "$enable_hangulinput" = "yes"; then
2110 if test "x$GUITYPE" = "xNONE"; then
2111 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2112 enable_hangulinput=no
2114 AC_DEFINE(FEAT_HANGULIN)
2115 HANGULIN_SRC=hangulin.c
2116 AC_SUBST(HANGULIN_SRC)
2117 HANGULIN_OBJ=objects/hangulin.o
2118 AC_SUBST(HANGULIN_OBJ)
2122 dnl Checks for libraries and include files.
2124 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2127 #include "confdefs.h"
2130 # include <stdlib.h>
2131 # include <stddef.h>
2133 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2135 vim_cv_toupper_broken=yes
2137 vim_cv_toupper_broken=no
2139 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2142 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2143 AC_DEFINE(BROKEN_TOUPPER)
2146 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2147 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2148 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2151 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2152 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2153 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2156 dnl Checks for header files.
2157 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2158 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2159 if test "$HAS_ELF" = 1; then
2160 AC_CHECK_LIB(elf, main)
2165 dnl If sys/wait.h is not found it might still exist but not be POSIX
2166 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2167 if test $ac_cv_header_sys_wait_h = no; then
2168 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2169 AC_TRY_COMPILE([#include <sys/wait.h>],
2170 [union wait xx, yy; xx = yy],
2172 AC_DEFINE(HAVE_SYS_WAIT_H)
2173 AC_DEFINE(HAVE_UNION_WAIT),
2177 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2178 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2179 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2180 sys/resource.h sys/systeminfo.h locale.h \
2181 sys/stream.h termios.h libc.h sys/statfs.h \
2182 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2183 libgen.h util/debug.h util/msg18n.h frame.h \
2184 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2186 dnl sys/ptem.h depends on sys/stream.h on Solaris
2187 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2188 [#if defined HAVE_SYS_STREAM_H
2189 # include <sys/stream.h>
2192 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2193 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2194 [#if defined HAVE_SYS_PARAM_H
2195 # include <sys/param.h>
2199 dnl pthread_np.h may exist but can only be used after including pthread.h
2200 AC_MSG_CHECKING([for pthread_np.h])
2202 #include <pthread.h>
2203 #include <pthread_np.h>],
2206 AC_DEFINE(HAVE_PTHREAD_NP_H),
2209 AC_CHECK_HEADERS(strings.h)
2210 if test "x$MACOSX" = "xyes"; then
2211 dnl The strings.h file on OS/X contains a warning and nothing useful.
2212 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2215 dnl Check if strings.h and string.h can both be included when defined.
2216 AC_MSG_CHECKING([if strings.h can be included after string.h])
2217 cppflags_save=$CPPFLAGS
2218 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2220 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2221 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2222 /* but don't do it on AIX 5.1 (Uribarri) */
2225 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2227 #ifdef HAVE_STRING_H
2228 # include <string.h>
2230 #if defined(HAVE_STRINGS_H)
2231 # include <strings.h>
2235 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2237 CPPFLAGS=$cppflags_save
2240 dnl Checks for typedefs, structures, and compiler characteristics.
2241 AC_PROG_GCC_TRADITIONAL
2250 AC_CHECK_TYPE(ino_t, long)
2251 AC_CHECK_TYPE(dev_t, unsigned)
2253 AC_MSG_CHECKING(for rlim_t)
2254 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2255 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2258 changequote(<<,>>)dnl
2259 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2262 #include <sys/types.h>
2264 # include <stdlib.h>
2265 # include <stddef.h>
2267 #ifdef HAVE_SYS_RESOURCE_H
2268 # include <sys/resource.h>
2270 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2271 AC_MSG_RESULT($ac_cv_type_rlim_t)
2273 if test $ac_cv_type_rlim_t = no; then
2274 cat >> confdefs.h <<\EOF
2275 #define rlim_t unsigned long
2279 AC_MSG_CHECKING(for stack_t)
2280 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2281 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2283 AC_EGREP_CPP(stack_t,
2285 #include <sys/types.h>
2287 # include <stdlib.h>
2288 # include <stddef.h>
2291 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2292 AC_MSG_RESULT($ac_cv_type_stack_t)
2294 if test $ac_cv_type_stack_t = no; then
2295 cat >> confdefs.h <<\EOF
2296 #define stack_t struct sigaltstack
2300 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2301 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2303 #include <sys/types.h>
2305 # include <stdlib.h>
2306 # include <stddef.h>
2309 #include "confdefs.h"
2310 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2311 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2315 AC_MSG_CHECKING(--with-tlib argument)
2316 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2317 if test -n "$with_tlib"; then
2318 AC_MSG_RESULT($with_tlib)
2319 LIBS="$LIBS -l$with_tlib"
2320 AC_MSG_CHECKING(for linking with $with_tlib library)
2321 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2322 dnl Need to check for tgetent() below.
2325 AC_MSG_RESULT([empty: automatic terminal library selection])
2326 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2327 dnl curses, because curses is much slower.
2328 dnl Newer versions of ncurses are preferred over anything.
2329 dnl Older versions of ncurses have bugs, get a new one!
2330 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2331 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2332 case "`uname -s 2>/dev/null`" in
2333 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2334 *) tlibs="ncurses termlib termcap curses";;
2336 for libname in $tlibs; do
2337 AC_CHECK_LIB(${libname}, tgetent,,)
2338 if test "x$olibs" != "x$LIBS"; then
2339 dnl It's possible that a library is found but it doesn't work
2340 dnl e.g., shared library that cannot be found
2341 dnl compile and run a test program to be sure
2343 #ifdef HAVE_TERMCAP_H
2344 # include <termcap.h>
2347 # include <stdlib.h>
2348 # include <stddef.h>
2350 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2351 res="OK", res="FAIL", res="FAIL")
2352 if test "$res" = "OK"; then
2355 AC_MSG_RESULT($libname library is not usable)
2359 if test "x$olibs" = "x$LIBS"; then
2360 AC_MSG_RESULT(no terminal library found)
2364 if test "x$olibs" = "x$LIBS"; then
2365 AC_MSG_CHECKING([for tgetent()])
2367 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2369 AC_MSG_ERROR([NOT FOUND!
2370 You need to install a terminal library; for example ncurses.
2371 Or specify the name of the library with --with-tlib.]))
2374 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2377 #include "confdefs.h"
2378 #ifdef HAVE_TERMCAP_H
2379 # include <termcap.h>
2381 #ifdef HAVE_STRING_H
2382 # include <string.h>
2385 # include <stdlib.h>
2386 # include <stddef.h>
2389 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2395 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2399 if test "x$vim_cv_terminfo" = "xyes" ; then
2403 if test "x$olibs" != "x$LIBS"; then
2404 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2407 #include "confdefs.h"
2408 #ifdef HAVE_TERMCAP_H
2409 # include <termcap.h>
2412 # include <stdlib.h>
2413 # include <stddef.h>
2416 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2420 vim_cv_tgent=non-zero
2422 AC_MSG_ERROR(failed to compile test program.)
2426 if test "x$vim_cv_tgent" = "xzero" ; then
2427 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2431 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2433 #ifdef HAVE_TERMCAP_H
2434 # include <termcap.h>
2436 ], [ospeed = 20000],
2437 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2439 AC_MSG_CHECKING(whether ospeed can be extern)
2441 #ifdef HAVE_TERMCAP_H
2442 # include <termcap.h>
2444 extern short ospeed;
2445 ], [ospeed = 20000],
2446 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2450 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2452 #ifdef HAVE_TERMCAP_H
2453 # include <termcap.h>
2455 ], [if (UP == 0 && BC == 0) PC = 1],
2456 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2458 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2460 #ifdef HAVE_TERMCAP_H
2461 # include <termcap.h>
2463 extern char *UP, *BC, PC;
2464 ], [if (UP == 0 && BC == 0) PC = 1],
2465 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2469 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2471 #ifdef HAVE_TERMCAP_H
2472 # include <termcap.h>
2474 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2475 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2478 dnl On some SCO machines sys/select redefines struct timeval
2479 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2481 #include <sys/types.h>
2482 #include <sys/time.h>
2483 #include <sys/select.h>], ,
2485 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2488 dnl AC_DECL_SYS_SIGLIST
2490 dnl Checks for pty.c (copied from screen) ==========================
2491 AC_MSG_CHECKING(for /dev/ptc)
2492 if test -r /dev/ptc; then
2493 AC_DEFINE(HAVE_DEV_PTC)
2499 AC_MSG_CHECKING(for SVR4 ptys)
2500 if test -c /dev/ptmx ; then
2501 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2502 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2508 AC_MSG_CHECKING(for ptyranges)
2509 if test -d /dev/ptym ; then
2519 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2520 dnl if test -c /dev/ptyp19; then
2521 dnl ptys=`echo /dev/ptyp??`
2523 dnl ptys=`echo $pdir/pty??`
2525 if test "$ptys" != "$pdir/pty??" ; then
2526 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2527 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2528 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2529 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2530 AC_MSG_RESULT([$p0 / $p1])
2532 AC_MSG_RESULT([don't know])
2535 dnl **** pty mode/group handling ****
2537 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2539 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2542 #include "confdefs.h"
2543 #include <sys/types.h>
2545 # include <stdlib.h>
2546 # include <stddef.h>
2548 #ifdef HAVE_UNISTD_H
2551 #include <sys/stat.h>
2560 if (!(x = ttyname(0))) exit(1);
2561 if (stat(x, &sb)) exit(1);
2563 if (om & 002) exit(0);
2564 m = system("mesg y");
2565 if (m == -1 || m == 127) exit(1);
2566 if (stat(x, &sb)) exit(1);
2568 if (chmod(x, om)) exit(1);
2569 if (m & 002) exit(0);
2570 if (sb.st_gid == getgid()) exit(1);
2571 if (!(fp=fopen("conftest_grp", "w")))
2573 fprintf(fp, "%d\n", sb.st_gid);
2578 if test -f conftest_grp; then
2579 vim_cv_tty_group=`cat conftest_grp`
2580 if test "x$vim_cv_tty_mode" = "x" ; then
2581 vim_cv_tty_mode=0620
2583 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2585 vim_cv_tty_group=world
2586 AC_MSG_RESULT([ptys are world accessible])
2589 vim_cv_tty_group=world
2590 AC_MSG_RESULT([can't determine - assume ptys are world accessible])
2592 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2597 if test "x$vim_cv_tty_group" != "xworld" ; then
2598 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2599 if test "x$vim_cv_tty_mode" = "x" ; then
2600 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)])
2602 AC_DEFINE(PTYMODE, 0620)
2606 dnl Checks for library functions. ===================================
2610 dnl find out what to use at the end of a signal function
2611 if test $ac_cv_type_signal = void; then
2612 AC_DEFINE(SIGRETURN, [return])
2614 AC_DEFINE(SIGRETURN, [return 0])
2617 dnl check if struct sigcontext is defined (used for SGI only)
2618 AC_MSG_CHECKING(for struct sigcontext)
2623 struct sigcontext *scont;
2624 scont = (struct sigcontext *)0;
2628 AC_DEFINE(HAVE_SIGCONTEXT),
2631 dnl tricky stuff: try to find out if getcwd() is implemented with
2632 dnl system("sh -c pwd")
2633 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2636 #include "confdefs.h"
2637 #ifdef HAVE_UNISTD_H
2640 char *dagger[] = { "IFS=pwd", 0 };
2644 extern char **environ;
2646 return getcwd(buffer, 500) ? 0 : 1;
2649 vim_cv_getcwd_broken=no
2651 vim_cv_getcwd_broken=yes
2653 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2657 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2658 AC_DEFINE(BAD_GETCWD)
2661 dnl Check for functions in one big call, to reduce the size of configure.
2662 dnl Can only be used for functions that do not require any include.
2663 AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
2664 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2665 memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
2666 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2667 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2668 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2669 usleep utime utimes)
2672 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2673 AC_MSG_CHECKING(for st_blksize)
2675 [#include <sys/types.h>
2676 #include <sys/stat.h>],
2681 n = (int)st.st_blksize;],
2682 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2685 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2688 #include "confdefs.h"
2690 # include <stdlib.h>
2691 # include <stddef.h>
2693 #include <sys/types.h>
2694 #include <sys/stat.h>
2695 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2697 vim_cv_stat_ignores_slash=yes
2699 vim_cv_stat_ignores_slash=no
2701 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2705 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2706 AC_DEFINE(STAT_IGNORES_SLASH)
2709 dnl Link with iconv for charset translation, if not found without library.
2710 dnl check for iconv() requires including iconv.h
2711 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2712 dnl has been installed.
2713 AC_MSG_CHECKING(for iconv_open())
2715 LIBS="$LIBS -liconv"
2720 ], [iconv_open("fr", "to");],
2721 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2727 ], [iconv_open("fr", "to");],
2728 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2732 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2734 #ifdef HAVE_LANGINFO_H
2735 # include <langinfo.h>
2737 ], [char *cs = nl_langinfo(CODESET);],
2738 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2741 dnl Need various functions for floating point support. Only enable
2742 dnl floating point when they are all present.
2743 AC_CHECK_LIB(m, strtod)
2744 AC_MSG_CHECKING([for strtod() and other floating point functions])
2750 # include <stdlib.h>
2751 # include <stddef.h>
2753 ], [char *s; double d;
2754 d = strtod("1.1", &s);
2759 d = pow(1.11, 2.22);
2765 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2768 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2769 dnl when -lacl works, also try to use -lattr (required for Debian).
2770 AC_MSG_CHECKING(--disable-acl argument)
2772 [ --disable-acl Don't check for ACL support.],
2773 , [enable_acl="yes"])
2774 if test "$enable_acl" = "yes"; then
2776 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2777 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2778 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2780 AC_MSG_CHECKING(for POSIX ACL support)
2782 #include <sys/types.h>
2783 #ifdef HAVE_SYS_ACL_H
2784 # include <sys/acl.h>
2786 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2787 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2789 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2792 AC_MSG_CHECKING(for Solaris ACL support)
2794 #ifdef HAVE_SYS_ACL_H
2795 # include <sys/acl.h>
2796 #endif], [acl("foo", GETACLCNT, 0, NULL);
2798 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2801 AC_MSG_CHECKING(for AIX ACL support)
2804 # include <stdlib.h>
2805 # include <stddef.h>
2807 #ifdef HAVE_SYS_ACL_H
2808 # include <sys/acl.h>
2810 #ifdef HAVE_SYS_ACCESS_H
2811 # include <sys/access.h>
2815 #include <sys/stat.h>
2818 struct acl *aclent;], [aclsize = sizeof(struct acl);
2819 aclent = (void *)malloc(aclsize);
2820 statacl("foo", STX_NORMAL, aclent, aclsize);
2822 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2828 AC_MSG_CHECKING(--disable-gpm argument)
2830 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2833 if test "$enable_gpm" = "yes"; then
2835 dnl Checking if gpm support can be compiled
2836 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2837 [olibs="$LIBS" ; LIBS="-lgpm"]
2840 #include <linux/keyboard.h>],
2841 [Gpm_GetLibVersion(NULL);],
2842 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2843 dnl FEAT_MOUSE_GPM if mouse support is included
2844 [vi_cv_have_gpm=yes],
2845 [vi_cv_have_gpm=no])
2848 if test $vi_cv_have_gpm = yes; then
2856 AC_MSG_CHECKING(--disable-sysmouse argument)
2857 AC_ARG_ENABLE(sysmouse,
2858 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2859 [enable_sysmouse="yes"])
2861 if test "$enable_sysmouse" = "yes"; then
2863 dnl Checking if sysmouse support can be compiled
2864 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2865 dnl defines FEAT_SYSMOUSE if mouse support is included
2866 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2868 [#include <sys/consio.h>
2870 #include <sys/fbio.h>],
2871 [struct mouse_info mouse;
2872 mouse.operation = MOUSE_MODE;
2873 mouse.operation = MOUSE_SHOW;
2874 mouse.u.mode.mode = 0;
2875 mouse.u.mode.signal = SIGUSR2;],
2876 [vi_cv_have_sysmouse=yes],
2877 [vi_cv_have_sysmouse=no])
2879 if test $vi_cv_have_sysmouse = yes; then
2880 AC_DEFINE(HAVE_SYSMOUSE)
2886 dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
2887 AC_MSG_CHECKING(for FD_CLOEXEC)
2892 [ int flag = FD_CLOEXEC;],
2893 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
2894 AC_MSG_RESULT(not usable))
2896 dnl rename needs to be checked separately to work on Nextstep with cc
2897 AC_MSG_CHECKING(for rename)
2898 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2899 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2902 dnl sysctl() may exist but not the arguments we use
2903 AC_MSG_CHECKING(for sysctl)
2905 [#include <sys/types.h>
2906 #include <sys/sysctl.h>],
2911 mib[1] = HW_USERMEM;
2913 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2915 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2916 AC_MSG_RESULT(not usable))
2918 dnl sysinfo() may exist but not be Linux compatible
2919 AC_MSG_CHECKING(for sysinfo)
2921 [#include <sys/types.h>
2922 #include <sys/sysinfo.h>],
2923 [ struct sysinfo sinfo;
2926 (void)sysinfo(&sinfo);
2929 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2930 AC_MSG_RESULT(not usable))
2932 dnl struct sysinfo may have the mem_unit field or not
2933 AC_MSG_CHECKING(for sysinfo.mem_unit)
2935 [#include <sys/types.h>
2936 #include <sys/sysinfo.h>],
2937 [ struct sysinfo sinfo;
2940 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2943 dnl sysconf() may exist but not support what we want to use
2944 AC_MSG_CHECKING(for sysconf)
2946 [#include <unistd.h>],
2947 [ (void)sysconf(_SC_PAGESIZE);
2948 (void)sysconf(_SC_PHYS_PAGES);
2950 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2951 AC_MSG_RESULT(not usable))
2953 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2954 dnl be printed with "%d", and avoids a warning for cross-compiling.
2956 AC_MSG_CHECKING(size of int)
2957 AC_CACHE_VAL(ac_cv_sizeof_int,
2961 # include <stdlib.h>
2962 # include <stddef.h>
2966 FILE *f=fopen("conftestval", "w");
2968 fprintf(f, "%d\n", (int)sizeof(int));
2971 ac_cv_sizeof_int=`cat conftestval`,
2973 AC_MSG_ERROR(failed to compile test program))])
2974 AC_MSG_RESULT($ac_cv_sizeof_int)
2975 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2977 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2978 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2981 #include "confdefs.h"
2982 #ifdef HAVE_STRING_H
2983 # include <string.h>
2986 # include <stdlib.h>
2987 # include <stddef.h>
2991 strcpy(buf, "abcdefghi");
2992 mch_memmove(buf, buf + 2, 3);
2993 if (strncmp(buf, "ababcf", 6))
2995 strcpy(buf, "abcdefghi");
2996 mch_memmove(buf + 2, buf, 3);
2997 if (strncmp(buf, "cdedef", 6))
2999 exit(0); /* libc version works properly. */
3002 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3004 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3006 vim_cv_memmove_handles_overlap=yes
3008 vim_cv_memmove_handles_overlap=no
3010 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3014 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3015 AC_DEFINE(USEMEMMOVE)
3017 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3019 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3021 vim_cv_bcopy_handles_overlap=yes
3023 vim_cv_bcopy_handles_overlap=no
3025 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3029 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3032 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3034 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3036 vim_cv_memcpy_handles_overlap=yes
3038 vim_cv_memcpy_handles_overlap=no
3040 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3044 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3045 AC_DEFINE(USEMEMCPY)
3051 dnl Check for multibyte locale functions
3052 dnl Find out if _Xsetlocale() is supported by libX11.
3053 dnl Check if X_LOCALE should be defined.
3055 if test "$enable_multibyte" = "yes"; then
3057 ldflags_save=$LDFLAGS
3058 if test "x$x_includes" != "xNONE" ; then
3059 CFLAGS="$CFLAGS -I$x_includes"
3060 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3061 AC_MSG_CHECKING(whether X_LOCALE needed)
3062 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3063 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3064 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3068 LDFLAGS=$ldflags_save
3071 dnl Link with xpg4, it is said to make Korean locale working
3072 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3074 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3075 dnl --version for Exuberant ctags (preferred)
3076 dnl Add --fields=+S to get function signatures for omni completion.
3077 dnl -t for typedefs (many ctags have this)
3078 dnl -s for static functions (Elvis ctags only?)
3079 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3080 dnl -i+m to test for older Exuberant ctags
3081 AC_MSG_CHECKING(how to create tags)
3082 test -f tags && mv tags tags.save
3083 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3084 TAGPRG="ctags -I INIT+ --fields=+S"
3087 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3088 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3089 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3090 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3091 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3092 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3093 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3095 test -f tags.save && mv tags.save tags
3096 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3098 dnl Check how we can run man with a section number
3099 AC_MSG_CHECKING(how to run man with a section nr)
3101 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3102 AC_MSG_RESULT($MANDEF)
3103 if test "$MANDEF" = "man -s"; then
3107 dnl Check if gettext() is working and if it needs -lintl
3108 AC_MSG_CHECKING(--disable-nls argument)
3110 [ --disable-nls Don't support NLS (gettext()).], ,
3113 if test "$enable_nls" = "yes"; then
3116 INSTALL_LANGS=install-languages
3117 AC_SUBST(INSTALL_LANGS)
3118 INSTALL_TOOL_LANGS=install-tool-languages
3119 AC_SUBST(INSTALL_TOOL_LANGS)
3121 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3122 AC_MSG_CHECKING([for NLS])
3123 if test -f po/Makefile; then
3125 if test -n "$MSGFMT"; then
3127 [#include <libintl.h>],
3129 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3133 [#include <libintl.h>],
3135 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3136 AC_MSG_RESULT([gettext() doesn't work]);
3139 AC_MSG_RESULT([msgfmt not found - disabled]);
3141 if test $have_gettext = "yes"; then
3142 AC_DEFINE(HAVE_GETTEXT)
3145 dnl this was added in GNU gettext 0.10.36
3146 AC_CHECK_FUNCS(bind_textdomain_codeset)
3147 dnl _nl_msg_cat_cntr is required for GNU gettext
3148 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3150 [#include <libintl.h>
3151 extern int _nl_msg_cat_cntr;],
3152 [++_nl_msg_cat_cntr;],
3153 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3154 AC_MSG_RESULT([no]))
3157 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3163 dnl Check for dynamic linking loader
3164 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3165 if test x${DLL} = xdlfcn.h; then
3166 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3167 AC_MSG_CHECKING([for dlopen()])
3169 extern void* dlopen();
3173 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3175 AC_MSG_CHECKING([for dlopen() in -ldl])
3179 extern void* dlopen();
3183 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3186 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3188 AC_MSG_CHECKING([for dlsym()])
3190 extern void* dlsym();
3194 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3196 AC_MSG_CHECKING([for dlsym() in -ldl])
3200 extern void* dlsym();
3204 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3207 elif test x${DLL} = xdl.h; then
3208 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3209 AC_MSG_CHECKING([for shl_load()])
3211 extern void* shl_load();
3215 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3217 AC_MSG_CHECKING([for shl_load() in -ldld])
3221 extern void* shl_load();
3225 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3229 AC_CHECK_HEADERS(setjmp.h)
3231 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3232 dnl -ldl must come after DynaLoader.a
3233 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3234 LIBS=`echo $LIBS | sed s/-ldl//`
3235 PERL_LIBS="$PERL_LIBS -ldl"
3239 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3240 && test "x$GUITYPE" != "xCARBONGUI"; then
3241 AC_MSG_CHECKING(whether we need -framework Carbon)
3242 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3243 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3244 || test "x$features" = "xhuge"; then
3245 LIBS="$LIBS -framework Carbon"
3251 if test "x$MACARCH" = "xboth"; then
3252 LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3255 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3256 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3257 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3258 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3259 dnl the number before the version number.
3260 DEPEND_CFLAGS_FILTER=
3261 if test "$GCC" = yes; then
3262 AC_MSG_CHECKING(for GCC 3 or later)
3263 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3264 if test "$gccmajor" -gt "2"; then
3265 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3270 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3271 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3272 dnl Also remove duplicate _FORTIFY_SOURCE arguments.
3273 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3274 if test "$gccmajor" -gt "3"; then
3275 CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
3281 AC_SUBST(DEPEND_CFLAGS_FILTER)
3283 dnl write output files
3284 AC_OUTPUT(auto/config.mk:config.mk.in)
3286 dnl vim: set sw=2 tw=78 fo+=l: