1 dnl configure.in: autoconf script for Vim
3 dnl Process this file with autoconf 2.12 or 2.13 to produce "configure".
4 dnl Should also work with autoconf 2.54 and later.
7 AC_CONFIG_HEADER(auto/config.h:config.h.in)
9 dnl Being able to run configure means the system is Unix (compatible).
13 dnl Checks for programs.
14 AC_PROG_CC dnl required by almost everything
15 AC_PROG_CPP dnl required by header file checks
16 AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
17 AC_ISC_POSIX dnl required by AC_C_CROSS
18 AC_PROG_AWK dnl required for "make html" in ../doc
20 dnl Don't strip if we don't have it
21 AC_CHECK_PROG(STRIP, strip, strip, :)
23 dnl Check for extension of executables
26 dnl Check for standard headers. We don't use this in Vim but other stuff
27 dnl in autoconf needs it, where it uses STDC_HEADERS.
31 dnl Set default value for CFLAGS if none is defined or it's empty
32 if test -z "$CFLAGS"; then
34 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
36 if test "$GCC" = yes; then
37 dnl method that should work for nearly all versions
38 gccversion=`"$CC" -dumpversion`
39 if test "x$gccversion" = "x"; then
40 dnl old method; fall-back for when -dumpversion doesn't work
41 gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
43 dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
44 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
45 echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
46 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
48 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
49 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
50 CFLAGS="$CFLAGS -fno-strength-reduce"
55 dnl If configure thinks we are cross compiling, there might be something
56 dnl wrong with the CC or CFLAGS settings, give a useful warning message
57 if test "$cross_compiling" = yes; then
58 AC_MSG_RESULT([cannot compile a simple program; if not cross compiling check CC and CFLAGS])
61 dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies.
62 dnl But gcc 3.1 changed the meaning! See near the end.
63 test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
65 if test -f ./toolcheck; then
66 AC_CHECKING(for buggy tools)
67 sh ./toolcheck 1>&AC_FD_MSG
70 OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
72 dnl Check for BeOS, which needs an extra source file
73 AC_MSG_CHECKING(for BeOS)
75 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
76 BEOS=yes; AC_MSG_RESULT(yes);;
77 *) BEOS=no; AC_MSG_RESULT(no);;
80 dnl If QNX is found, assume we don't want to use Xphoton
81 dnl unless it was specifically asked for (--with-x)
82 AC_MSG_CHECKING(for QNX)
84 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
85 test -z "$with_x" && with_x=no
86 QNX=yes; AC_MSG_RESULT(yes);;
87 *) QNX=no; AC_MSG_RESULT(no);;
90 dnl Check for Darwin and MacOS X
91 dnl We do a check for MacOS X in the very beginning because there
92 dnl are a lot of other things we need to change besides GUI stuff
93 AC_MSG_CHECKING([for Darwin (Mac OS X)])
94 if test "`(uname) 2>/dev/null`" = Darwin; then
97 AC_MSG_CHECKING(--disable-darwin argument)
99 [ --disable-darwin Disable Darwin (Mac OS X) support.],
100 , [enable_darwin="yes"])
101 if test "$enable_darwin" = "yes"; then
103 AC_MSG_CHECKING(if Darwin files are there)
104 if test -f os_macosx.c; then
107 AC_MSG_RESULT([no, Darwin support disabled])
111 AC_MSG_RESULT([yes, Darwin support excluded])
114 AC_MSG_CHECKING(--with-mac-arch argument)
115 AC_ARG_WITH(mac-arch, [ --with-mac-arch=ARCH current, intel, ppc or both],
116 MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
117 MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
119 if test "x$MACARCH" = "xboth"; then
120 AC_MSG_CHECKING(for 10.4 universal SDK)
121 dnl There is a terrible inconsistency (but we appear to get away with it):
122 dnl $CFLAGS uses the 10.4u SDK library for the headers, while $CPPFLAGS
123 dnl doesn't, because "gcc -E" doesn't grok it. That means the configure
124 dnl tests using the preprocessor are actually done with the wrong header
125 dnl files. $LDFLAGS is set at the end, because configure uses it together
126 dnl with $CFLAGS and we can only have one -sysroot argument.
127 save_cppflags="$CPPFLAGS"
128 save_cflags="$CFLAGS"
129 save_ldflags="$LDFLAGS"
130 CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
131 AC_TRY_LINK([ ], [ ],
132 AC_MSG_RESULT(found, will make universal binary),
134 AC_MSG_RESULT(not found)
135 CFLAGS="$save_cflags"
136 AC_MSG_CHECKING(if Intel architecture is supported)
137 CPPFLAGS="$CPPFLAGS -arch i386"
138 LDFLAGS="$save_ldflags -arch i386"
139 AC_TRY_LINK([ ], [ ],
140 AC_MSG_RESULT(yes); MACARCH="intel",
141 AC_MSG_RESULT(no, using PowerPC)
143 CPPFLAGS="$save_cppflags -arch ppc"
144 LDFLAGS="$save_ldflags -arch ppc"))
145 elif test "x$MACARCH" = "xintel"; then
146 CPPFLAGS="$CPPFLAGS -arch intel"
147 LDFLAGS="$LDFLAGS -arch intel"
148 elif test "x$MACARCH" = "xppc"; then
149 CPPFLAGS="$CPPFLAGS -arch ppc"
150 LDFLAGS="$LDFLAGS -arch ppc"
153 if test "$enable_darwin" = "yes"; then
155 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
156 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
157 dnl TODO: use -arch i386 on Intel machines
158 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
159 if test "x$MACARCH" = "xboth"; then
160 CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
162 CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
165 dnl If Carbon or Cocoa is found, assume we don't want
166 dnl X11 unless it was specifically asked for (--with-x)
167 dnl or Motif, Athena or GTK GUI is used.
168 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
170 SAVE_CPPFLAGS=$CPPFLAGS
172 CPPFLAGS="$CPPFLAGS -ObjC"
173 CFLAGS="$CFLAGS -ObjC"
174 AC_CHECK_HEADER(Cocoa/Cocoa.h, COCOA=yes)
175 CPPFLAGS=$SAVE_CPPFLAGS
178 if test "x$CARBON" = "xyes" -o "x$COCOA" = "xyes"; then
179 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
185 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
186 dnl free. This happens in expand_filename(), because the optimizer swaps
187 dnl two blocks of code, both using "repl", that can't be swapped.
188 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
189 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
196 AC_SUBST(OS_EXTRA_SRC)
197 AC_SUBST(OS_EXTRA_OBJ)
199 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
200 dnl Only when the directory exists and it wasn't there yet.
201 dnl For gcc don't do this when it is already in the default search path.
202 dnl Skip all of this when cross-compiling.
203 if test "$cross_compiling" = no; then
204 AC_MSG_CHECKING(--with-local-dir argument)
205 have_local_include=''
207 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
208 --without-local-dir do not search /usr/local for local libraries.], [
213 # avoid adding local dir to LDFLAGS and CPPFLAGS
217 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
219 AC_MSG_RESULT($local_dir)
222 AC_MSG_RESULT(Defaulting to $local_dir)
224 if test "$GCC" = yes -a "$local_dir" != no; then
225 echo 'void f(){}' > conftest.c
226 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
227 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
228 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
229 rm -f conftest.c conftest.o
231 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
232 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
233 if test "$tt" = "$LDFLAGS"; then
234 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
237 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
238 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
239 if test "$tt" = "$CPPFLAGS"; then
240 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
245 AC_MSG_CHECKING(--with-vim-name argument)
246 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
247 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
248 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
250 AC_MSG_CHECKING(--with-ex-name argument)
251 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
252 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
253 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
255 AC_MSG_CHECKING(--with-view-name argument)
256 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
257 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
258 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
261 AC_MSG_CHECKING(--with-global-runtime argument)
262 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
263 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
266 AC_MSG_CHECKING(--with-modified-by argument)
267 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
268 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
271 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
272 AC_MSG_CHECKING(if character set is EBCDIC)
274 [ /* TryCompile function for CharSet.
275 Treat any failure as ASCII for compatibility with existing art.
276 Use compile-time rather than run-time tests for cross-compiler
279 make an error "Character set is not EBCDIC"
281 [ # TryCompile action if true
283 [ # TryCompile action if false
285 # end of TryCompile ])
286 # end of CacheVal CvEbcdic
287 AC_MSG_RESULT($cf_cv_ebcdic)
288 case "$cf_cv_ebcdic" in #(vi
289 yes) AC_DEFINE(EBCDIC)
292 *) line_break='"\\012"';;
296 if test "$cf_cv_ebcdic" = "yes"; then
297 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
298 AC_MSG_CHECKING(for OS/390 Unix)
300 OS/390) OS390Unix="yes";
301 dnl If using cc the environment variable _CC_CCMODE must be
302 dnl set to "1", so that some compiler extensions are enabled.
303 dnl If using c89 the environment variable is named _CC_C89MODE.
304 dnl Note: compile with c89 never tested.
305 if test "$CC" = "cc"; then
309 if test "$CC" = "c89"; then
316 if test "$ccm" != "1"; then
318 echo "------------------------------------------"
319 echo " On OS/390 Unix, the environment variable"
320 echo " __CC_${ccn}MODE must be set to \"1\"!"
322 echo " export _CC_${ccn}MODE=1"
323 echo " and then call configure again."
324 echo "------------------------------------------"
327 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
336 dnl Link with -lselinux for SELinux stuff; if not found
337 AC_MSG_CHECKING(--disable-selinux argument)
338 AC_ARG_ENABLE(selinux,
339 [ --disable-selinux Don't check for SELinux support.],
340 , enable_selinux="yes")
341 if test "$enable_selinux" = "yes"; then
343 AC_CHECK_LIB(selinux, is_selinux_enabled,
344 [LIBS="$LIBS -lselinux"
345 AC_DEFINE(HAVE_SELINUX)])
350 dnl Check user requested features.
352 AC_MSG_CHECKING(--with-features argument)
353 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
354 features="$withval"; AC_MSG_RESULT($features),
355 features="normal"; AC_MSG_RESULT(Defaulting to normal))
360 tiny) AC_DEFINE(FEAT_TINY) ;;
361 small) AC_DEFINE(FEAT_SMALL) ;;
362 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
363 dogvimdiff="installgvimdiff" ;;
364 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
365 dogvimdiff="installgvimdiff" ;;
366 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
367 dogvimdiff="installgvimdiff" ;;
368 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
374 AC_MSG_CHECKING(--with-compiledby argument)
375 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
376 compiledby="$withval"; AC_MSG_RESULT($withval),
377 compiledby=""; AC_MSG_RESULT(no))
380 AC_MSG_CHECKING(--disable-xsmp argument)
382 [ --disable-xsmp Disable XSMP session management],
385 if test "$enable_xsmp" = "yes"; then
387 AC_MSG_CHECKING(--disable-xsmp-interact argument)
388 AC_ARG_ENABLE(xsmp-interact,
389 [ --disable-xsmp-interact Disable XSMP interaction],
390 , enable_xsmp_interact="yes")
391 if test "$enable_xsmp_interact" = "yes"; then
393 AC_DEFINE(USE_XSMP_INTERACT)
401 dnl Check for MzScheme feature.
402 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
403 AC_ARG_ENABLE(mzschemeinterp,
404 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
405 [enable_mzschemeinterp="no"])
406 AC_MSG_RESULT($enable_mzschemeinterp)
408 if test "$enable_mzschemeinterp" = "yes"; then
409 dnl -- find the mzscheme executable
410 AC_SUBST(vi_cv_path_mzscheme)
412 AC_MSG_CHECKING(--with-plthome argument)
414 [ --with-plthome=PLTHOME Use PLTHOME.],
415 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
416 with_plthome="";AC_MSG_RESULT("no"))
418 if test "X$with_plthome" != "X"; then
419 vi_cv_path_mzscheme_pfx="$with_plthome"
421 AC_MSG_CHECKING(PLTHOME environment var)
422 if test "X$PLTHOME" != "X"; then
423 AC_MSG_RESULT("$PLTHOME")
424 vi_cv_path_mzscheme_pfx="$PLTHOME"
426 AC_MSG_RESULT(not set)
427 dnl -- try to find MzScheme executable
428 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
430 dnl resolve symbolic link, the executable is often elsewhere and there
431 dnl are no links for the include files.
432 if test "X$vi_cv_path_mzscheme" != "X"; then
433 lsout=`ls -l $vi_cv_path_mzscheme`
434 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
435 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
439 if test "X$vi_cv_path_mzscheme" != "X"; then
440 dnl -- find where MzScheme thinks it was installed
441 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
442 dnl different versions of MzScheme differ in command line processing
443 dnl use universal approach
444 echo "(display (simplify-path \
445 (build-path (call-with-values \
446 (lambda () (split-path (find-system-path (quote exec-file)))) \
447 (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
448 dnl Remove a trailing slash
449 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
457 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
458 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
459 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
460 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
464 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
465 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
467 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
470 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
471 if test -f /usr/include/plt/scheme.h; then
473 SCHEME_INC=/usr/include/plt
476 vi_cv_path_mzscheme_pfx=
482 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
483 if test "x$MACOSX" = "xyes"; then
484 MZSCHEME_LIBS="-framework PLT_MzScheme"
485 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
486 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
487 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
488 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
489 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
491 dnl Using shared objects
492 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
493 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
494 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
496 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
498 if test "$GCC" = yes; then
499 dnl Make Vim remember the path to the library. For when it's not in
500 dnl $LD_LIBRARY_PATH.
501 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
502 elif test "`(uname) 2>/dev/null`" = SunOS &&
503 uname -r | grep '^5' >/dev/null; then
504 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
507 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
508 SCHEME_COLLECTS=lib/plt/
510 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
511 dnl need to generate bytecode for MzScheme base
512 MZSCHEME_EXTRA="mzscheme_base.c"
513 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
514 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
516 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
517 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
518 MZSCHEME_SRC="if_mzsch.c"
519 MZSCHEME_OBJ="objects/if_mzsch.o"
520 MZSCHEME_PRO="if_mzsch.pro"
521 AC_DEFINE(FEAT_MZSCHEME)
523 AC_SUBST(MZSCHEME_SRC)
524 AC_SUBST(MZSCHEME_OBJ)
525 AC_SUBST(MZSCHEME_PRO)
526 AC_SUBST(MZSCHEME_LIBS)
527 AC_SUBST(MZSCHEME_CFLAGS)
528 AC_SUBST(MZSCHEME_EXTRA)
529 AC_SUBST(MZSCHEME_MZC)
533 AC_MSG_CHECKING(--enable-perlinterp argument)
534 AC_ARG_ENABLE(perlinterp,
535 [ --enable-perlinterp Include Perl interpreter.], ,
536 [enable_perlinterp="no"])
537 AC_MSG_RESULT($enable_perlinterp)
538 if test "$enable_perlinterp" = "yes"; then
539 AC_SUBST(vi_cv_path_perl)
540 AC_PATH_PROG(vi_cv_path_perl, perl)
541 if test "X$vi_cv_path_perl" != "X"; then
542 AC_MSG_CHECKING(Perl version)
543 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
544 eval `$vi_cv_path_perl -V:usethreads`
545 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
548 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
549 eval `$vi_cv_path_perl -V:use5005threads`
550 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
554 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
558 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
561 if test $badthreads = no; then
563 eval `$vi_cv_path_perl -V:shrpenv`
564 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
567 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
568 AC_SUBST(vi_cv_perllib)
569 dnl Remove "-fno-something", it breaks using cproto.
570 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
571 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
572 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
573 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
574 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
575 -e 's/-bE:perl.exp//' -e 's/-lc //'`
576 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
577 dnl a test in configure may fail because of that.
578 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
579 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
581 dnl check that compiling a simple program still works with the flags
583 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
586 ldflags_save=$LDFLAGS
587 CFLAGS="$CFLAGS $perlcppflags"
588 LIBS="$LIBS $perllibs"
589 LDFLAGS="$perlldflags $LDFLAGS"
591 AC_MSG_RESULT(yes); perl_ok=yes,
592 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
595 LDFLAGS=$ldflags_save
596 if test $perl_ok = yes; then
597 if test "X$perlcppflags" != "X"; then
598 dnl remove -pipe and -Wxxx, it confuses cproto
599 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
601 if test "X$perlldflags" != "X"; then
602 LDFLAGS="$perlldflags $LDFLAGS"
605 PERL_SRC="auto/if_perl.c if_perlsfio.c"
606 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
607 PERL_PRO="if_perl.pro if_perlsfio.pro"
612 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
616 if test "x$MACOSX" = "xyes"; then
617 dnl Mac OS X 10.2 or later
618 dir=/System/Library/Perl
619 darwindir=$dir/darwin
620 if test -d $darwindir; then
624 dir=/System/Library/Perl/5.8.1
625 darwindir=$dir/darwin-thread-multi-2level
626 if test -d $darwindir; then
630 if test -n "$PERL"; then
632 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
633 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
634 PERL_LIBS="-L$darwindir/CORE -lperl"
642 AC_SUBST(PERL_CFLAGS)
645 AC_MSG_CHECKING(--enable-pythoninterp argument)
646 AC_ARG_ENABLE(pythoninterp,
647 [ --enable-pythoninterp Include Python interpreter.], ,
648 [enable_pythoninterp="no"])
649 AC_MSG_RESULT($enable_pythoninterp)
650 if test "$enable_pythoninterp" = "yes"; then
651 dnl -- find the python executable
652 AC_PATH_PROG(vi_cv_path_python, python)
653 if test "X$vi_cv_path_python" != "X"; then
655 dnl -- get its version number
656 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
657 [[vi_cv_var_python_version=`
658 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
661 dnl -- it must be at least version 1.4
662 AC_MSG_CHECKING(Python is 1.4 or better)
663 if ${vi_cv_path_python} -c \
664 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
668 dnl -- find where python thinks it was installed
669 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
670 [ vi_cv_path_python_pfx=`
671 ${vi_cv_path_python} -c \
672 "import sys; print sys.prefix"` ])
674 dnl -- and where it thinks it runs
675 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
676 [ vi_cv_path_python_epfx=`
677 ${vi_cv_path_python} -c \
678 "import sys; print sys.exec_prefix"` ])
680 dnl -- python's internal library path
682 AC_CACHE_VAL(vi_cv_path_pythonpath,
683 [ vi_cv_path_pythonpath=`
685 ${vi_cv_path_python} -c \
686 "import sys, string; print string.join(sys.path,':')"` ])
688 dnl -- where the Python implementation library archives are
690 AC_ARG_WITH(python-config-dir,
691 [ --with-python-config-dir=PATH Python's config directory],
692 [ vi_cv_path_python_conf="${withval}" ] )
694 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
696 vi_cv_path_python_conf=
697 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
698 for subdir in lib share; do
699 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
700 if test -d "$d" && test -f "$d/config.c"; then
701 vi_cv_path_python_conf="$d"
707 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
709 if test "X$PYTHON_CONFDIR" = "X"; then
710 AC_MSG_RESULT([can't find it!])
713 dnl -- we need to examine Python's config/Makefile too
714 dnl see what the interpreter is built from
715 AC_CACHE_VAL(vi_cv_path_python_plibs,
718 tmp_mkf="$pwd/config-PyMake$$"
719 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
721 @echo "python_MODLIBS='$(MODLIBS)'"
722 @echo "python_LIBS='$(LIBS)'"
723 @echo "python_SYSLIBS='$(SYSLIBS)'"
724 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
726 dnl -- delete the lines from make about Entering/Leaving directory
727 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
728 rm -f -- "${tmp_mkf}"
729 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
730 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
731 vi_cv_path_python_plibs="-framework Python"
733 if test "${vi_cv_var_python_version}" = "1.4"; then
734 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
736 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
738 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
739 dnl remove -ltermcap, it can conflict with an earlier -lncurses
740 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
744 PYTHON_LIBS="${vi_cv_path_python_plibs}"
745 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
746 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
748 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}"
750 PYTHON_SRC="if_python.c"
751 dnl For Mac OSX 10.2 config.o is included in the Python library.
752 if test "x$MACOSX" = "xyes"; then
753 PYTHON_OBJ="objects/if_python.o"
755 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
757 if test "${vi_cv_var_python_version}" = "1.4"; then
758 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
760 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
762 dnl On FreeBSD linking with "-pthread" is required to use threads.
763 dnl _THREAD_SAFE must be used for compiling then.
764 dnl The "-pthread" is added to $LIBS, so that the following check for
765 dnl sigaltstack() will look in libc_r (it's there in libc!).
766 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
767 dnl will then define target-specific defines, e.g., -D_REENTRANT.
768 dnl Don't do this for Mac OSX, -pthread will generate a warning.
769 AC_MSG_CHECKING([if -pthread should be used])
772 dnl if test "x$MACOSX" != "xyes"; then
773 if test "`(uname) 2>/dev/null`" != Darwin; then
774 test "$GCC" = yes && threadsafe_flag="-pthread"
775 if test "`(uname) 2>/dev/null`" = FreeBSD; then
776 threadsafe_flag="-D_THREAD_SAFE"
777 thread_lib="-pthread"
781 if test -n "$threadsafe_flag"; then
783 CFLAGS="$CFLAGS $threadsafe_flag"
784 LIBS="$LIBS $thread_lib"
786 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
787 AC_MSG_RESULT(no); LIBS=$libs_save_old
794 dnl check that compiling a simple program still works with the flags
795 dnl added for Python.
796 AC_MSG_CHECKING([if compile and link flags for Python are sane])
799 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
800 LIBS="$LIBS $PYTHON_LIBS"
802 AC_MSG_RESULT(yes); python_ok=yes,
803 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
806 if test $python_ok = yes; then
807 AC_DEFINE(FEAT_PYTHON)
818 AC_MSG_RESULT(too old)
822 AC_SUBST(PYTHON_CONFDIR)
823 AC_SUBST(PYTHON_LIBS)
824 AC_SUBST(PYTHON_GETPATH_CFLAGS)
825 AC_SUBST(PYTHON_CFLAGS)
829 AC_MSG_CHECKING(--enable-tclinterp argument)
830 AC_ARG_ENABLE(tclinterp,
831 [ --enable-tclinterp Include Tcl interpreter.], ,
832 [enable_tclinterp="no"])
833 AC_MSG_RESULT($enable_tclinterp)
835 if test "$enable_tclinterp" = "yes"; then
837 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
838 AC_MSG_CHECKING(--with-tclsh argument)
839 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
840 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
841 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
842 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
843 AC_SUBST(vi_cv_path_tcl)
845 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
846 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
847 tclsh_name="tclsh8.4"
848 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
850 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
851 tclsh_name="tclsh8.2"
852 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
854 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
855 tclsh_name="tclsh8.0"
856 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
858 dnl still didn't find it, try without version number
859 if test "X$vi_cv_path_tcl" = "X"; then
861 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
863 if test "X$vi_cv_path_tcl" != "X"; then
864 AC_MSG_CHECKING(Tcl version)
865 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
866 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
867 AC_MSG_RESULT($tclver - OK);
868 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 -`
870 AC_MSG_CHECKING(for location of Tcl include)
871 if test "x$MACOSX" != "xyes"; then
872 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
874 dnl For Mac OS X 10.3, use the OS-provided framework location
875 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
878 for try in $tclinc; do
879 if test -f "$try/tcl.h"; then
880 AC_MSG_RESULT($try/tcl.h)
885 if test -z "$TCL_INC"; then
886 AC_MSG_RESULT(<not found>)
889 if test -z "$SKIP_TCL"; then
890 AC_MSG_CHECKING(for location of tclConfig.sh script)
891 if test "x$MACOSX" != "xyes"; then
892 tclcnf=`echo $tclinc | sed s/include/lib/g`
893 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
895 dnl For Mac OS X 10.3, use the OS-provided framework location
896 tclcnf="/System/Library/Frameworks/Tcl.framework"
898 for try in $tclcnf; do
899 if test -f $try/tclConfig.sh; then
900 AC_MSG_RESULT($try/tclConfig.sh)
902 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
903 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
904 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
905 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
906 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'`
910 if test -z "$TCL_LIBS"; then
911 AC_MSG_RESULT(<not found>)
912 AC_MSG_CHECKING(for Tcl library by myself)
913 tcllib=`echo $tclinc | sed s/include/lib/g`
914 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
915 for ext in .so .a ; do
916 for ver in "" $tclver ; do
917 for try in $tcllib ; do
919 if test -f $try/lib$trylib ; then
920 AC_MSG_RESULT($try/lib$trylib)
921 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
922 if test "`(uname) 2>/dev/null`" = SunOS &&
923 uname -r | grep '^5' >/dev/null; then
924 TCL_LIBS="$TCL_LIBS -R $try"
931 if test -z "$TCL_LIBS"; then
932 AC_MSG_RESULT(<not found>)
936 if test -z "$SKIP_TCL"; then
939 TCL_OBJ=objects/if_tcl.o
941 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
945 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
955 AC_MSG_CHECKING(--enable-rubyinterp argument)
956 AC_ARG_ENABLE(rubyinterp,
957 [ --enable-rubyinterp Include Ruby interpreter.], ,
958 [enable_rubyinterp="no"])
959 AC_MSG_RESULT($enable_rubyinterp)
960 if test "$enable_rubyinterp" = "yes"; then
961 AC_SUBST(vi_cv_path_ruby)
962 AC_PATH_PROG(vi_cv_path_ruby, ruby)
963 if test "X$vi_cv_path_ruby" != "X"; then
964 AC_MSG_CHECKING(Ruby version)
965 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
967 AC_MSG_CHECKING(Ruby header files)
968 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
969 if test "X$rubyhdrdir" != "X"; then
970 AC_MSG_RESULT($rubyhdrdir)
971 RUBY_CFLAGS="-I$rubyhdrdir"
972 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
973 if test "X$rubylibs" != "X"; then
974 RUBY_LIBS="$rubylibs"
976 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
977 if test -f "$rubyhdrdir/$librubyarg"; then
978 librubyarg="$rubyhdrdir/$librubyarg"
980 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
981 if test -f "$rubylibdir/$librubyarg"; then
982 librubyarg="$rubylibdir/$librubyarg"
983 elif test "$librubyarg" = "libruby.a"; then
984 dnl required on Mac OS 10.3 where libruby.a doesn't exist
987 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
991 if test "X$librubyarg" != "X"; then
992 RUBY_LIBS="$librubyarg $RUBY_LIBS"
994 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
995 if test "X$rubyldflags" != "X"; then
996 LDFLAGS="$rubyldflags $LDFLAGS"
999 RUBY_OBJ="objects/if_ruby.o"
1000 RUBY_PRO="if_ruby.pro"
1001 AC_DEFINE(FEAT_RUBY)
1003 AC_MSG_RESULT(not found, disabling Ruby)
1006 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1013 AC_SUBST(RUBY_CFLAGS)
1016 AC_MSG_CHECKING(--enable-cscope argument)
1017 AC_ARG_ENABLE(cscope,
1018 [ --enable-cscope Include cscope interface.], ,
1019 [enable_cscope="no"])
1020 AC_MSG_RESULT($enable_cscope)
1021 if test "$enable_cscope" = "yes"; then
1022 AC_DEFINE(FEAT_CSCOPE)
1025 AC_MSG_CHECKING(--enable-workshop argument)
1026 AC_ARG_ENABLE(workshop,
1027 [ --enable-workshop Include Sun Visual Workshop support.], ,
1028 [enable_workshop="no"])
1029 AC_MSG_RESULT($enable_workshop)
1030 if test "$enable_workshop" = "yes"; then
1031 AC_DEFINE(FEAT_SUN_WORKSHOP)
1032 WORKSHOP_SRC="workshop.c integration.c"
1033 AC_SUBST(WORKSHOP_SRC)
1034 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1035 AC_SUBST(WORKSHOP_OBJ)
1036 if test "${enable_gui-xxx}" = xxx; then
1041 AC_MSG_CHECKING(--disable-netbeans argument)
1042 AC_ARG_ENABLE(netbeans,
1043 [ --disable-netbeans Disable NetBeans integration support.],
1044 , [enable_netbeans="yes"])
1045 if test "$enable_netbeans" = "yes"; then
1047 dnl On Solaris we need the socket and nsl library.
1048 AC_CHECK_LIB(socket, socket)
1049 AC_CHECK_LIB(nsl, gethostbyname)
1050 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1057 #include <netinet/in.h>
1059 #include <sys/types.h>
1060 #include <sys/socket.h>
1061 /* Check bitfields */
1063 unsigned int initDone:1;
1067 /* Check creating a socket. */
1068 struct sockaddr_in server;
1069 (void)socket(AF_INET, SOCK_STREAM, 0);
1071 (void)gethostbyname("microsoft.com");
1072 if (errno == ECONNREFUSED)
1073 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1076 AC_MSG_RESULT(no); enable_netbeans="no")
1080 if test "$enable_netbeans" = "yes"; then
1081 AC_DEFINE(FEAT_NETBEANS_INTG)
1082 NETBEANS_SRC="netbeans.c"
1083 AC_SUBST(NETBEANS_SRC)
1084 NETBEANS_OBJ="objects/netbeans.o"
1085 AC_SUBST(NETBEANS_OBJ)
1088 AC_MSG_CHECKING(--enable-sniff argument)
1089 AC_ARG_ENABLE(sniff,
1090 [ --enable-sniff Include Sniff interface.], ,
1091 [enable_sniff="no"])
1092 AC_MSG_RESULT($enable_sniff)
1093 if test "$enable_sniff" = "yes"; then
1094 AC_DEFINE(FEAT_SNIFF)
1095 SNIFF_SRC="if_sniff.c"
1097 SNIFF_OBJ="objects/if_sniff.o"
1101 AC_MSG_CHECKING(--enable-multibyte argument)
1102 AC_ARG_ENABLE(multibyte,
1103 [ --enable-multibyte Include multibyte editing support.], ,
1104 [enable_multibyte="no"])
1105 AC_MSG_RESULT($enable_multibyte)
1106 if test "$enable_multibyte" = "yes"; then
1107 AC_DEFINE(FEAT_MBYTE)
1110 AC_MSG_CHECKING(--enable-hangulinput argument)
1111 AC_ARG_ENABLE(hangulinput,
1112 [ --enable-hangulinput Include Hangul input support.], ,
1113 [enable_hangulinput="no"])
1114 AC_MSG_RESULT($enable_hangulinput)
1116 AC_MSG_CHECKING(--enable-xim argument)
1118 [ --enable-xim Include XIM input support.],
1119 AC_MSG_RESULT($enable_xim),
1120 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1121 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1123 AC_MSG_CHECKING(--enable-fontset argument)
1124 AC_ARG_ENABLE(fontset,
1125 [ --enable-fontset Include X fontset output support.], ,
1126 [enable_fontset="no"])
1127 AC_MSG_RESULT($enable_fontset)
1128 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1130 test -z "$with_x" && with_x=yes
1131 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1132 if test "$with_x" = no; then
1133 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1135 dnl Do this check early, so that its failure can override user requests.
1137 AC_PATH_PROG(xmkmfpath, xmkmf)
1141 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1142 dnl be compiled with a special option.
1143 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1144 if test "$OS390Unix" = "yes"; then
1145 CFLAGS="$CFLAGS -W c,dll"
1146 LDFLAGS="$LDFLAGS -W l,dll"
1147 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1150 dnl On my HPUX system the X include dir is found, but the lib dir not.
1151 dnl This is a desparate try to fix this.
1153 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1154 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1155 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1156 X_LIBS="$X_LIBS -L$x_libraries"
1157 if test "`(uname) 2>/dev/null`" = SunOS &&
1158 uname -r | grep '^5' >/dev/null; then
1159 X_LIBS="$X_LIBS -R $x_libraries"
1163 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1164 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1165 AC_MSG_RESULT(Corrected X includes to $x_includes)
1166 X_CFLAGS="$X_CFLAGS -I$x_includes"
1169 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1170 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1171 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1172 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1173 dnl Same for "-R/usr/lib ".
1174 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1177 dnl Check if the X11 header files are correctly installed. On some systems
1178 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1180 AC_MSG_CHECKING(if X11 header files can be found)
1182 CFLAGS="$CFLAGS $X_CFLAGS"
1183 AC_TRY_COMPILE([#include <X11/Xlib.h>
1184 #include <X11/Intrinsic.h>], ,
1186 AC_MSG_RESULT(no); no_x=yes)
1189 if test "${no_x-no}" = yes; then
1196 ac_save_LDFLAGS="$LDFLAGS"
1197 LDFLAGS="-L$x_libraries $LDFLAGS"
1199 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1200 dnl For HP-UX 10.20 it must be before -lSM -lICE
1201 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1202 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1204 dnl Some systems need -lnsl -lsocket when testing for ICE.
1205 dnl The check above doesn't do this, try here (again). Also needed to get
1206 dnl them after Xdmcp. link.sh will remove them when not needed.
1207 dnl Check for other function than above to avoid the cached value
1208 AC_CHECK_LIB(ICE, IceOpenConnection,
1209 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1211 dnl Check for -lXpm (needed for some versions of Motif)
1212 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1213 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1214 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1216 dnl Check that the X11 header files don't use implicit declarations
1217 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1219 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1220 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1222 CFLAGS="$CFLAGS -Wno-implicit-int"
1223 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1224 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1225 AC_MSG_RESULT(test failed)
1230 LDFLAGS="$ac_save_LDFLAGS"
1232 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1233 AC_CACHE_VAL(ac_cv_small_wchar_t,
1235 #include <X11/Xlib.h>
1237 # include <stdlib.h>
1238 # include <stddef.h>
1242 if (sizeof(wchar_t) <= 2)
1246 ac_cv_small_wchar_t="no",
1247 ac_cv_small_wchar_t="yes",
1248 AC_MSG_ERROR(failed to compile test program))])
1249 AC_MSG_RESULT($ac_cv_small_wchar_t)
1250 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1251 AC_DEFINE(SMALL_WCHAR_T)
1257 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1259 AC_MSG_CHECKING(--enable-gui argument)
1261 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon/macvim]], , enable_gui="auto")
1263 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1264 dnl Do not use character classes for portability with old tools.
1265 enable_gui_canon=`echo "_$enable_gui" | \
1266 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1268 dnl Skip everything by default.
1280 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1282 case "$enable_gui_canon" in
1283 no) AC_MSG_RESULT(no GUI support)
1285 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1286 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1287 photon) AC_MSG_RESULT(Photon GUI support) ;;
1288 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1292 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1295 case "$enable_gui_canon" in
1296 no) AC_MSG_RESULT(no GUI support)
1299 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1300 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1301 carbon) AC_MSG_RESULT(Carbon GUI support)
1303 macvim) AC_MSG_RESULT(MacVim GUI support)
1305 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1312 case "$enable_gui_canon" in
1313 no|none) AC_MSG_RESULT(no GUI support) ;;
1314 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1323 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1325 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1328 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1331 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1335 motif) AC_MSG_RESULT(Motif GUI support)
1337 athena) AC_MSG_RESULT(Athena GUI support)
1339 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1341 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1346 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1347 AC_MSG_CHECKING(whether or not to look for GTK)
1348 AC_ARG_ENABLE(gtk-check,
1349 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1350 , enable_gtk_check="yes")
1351 AC_MSG_RESULT($enable_gtk_check)
1352 if test "x$enable_gtk_check" = "xno"; then
1358 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1359 -a "$enable_gui_canon" != "gnome2"; then
1360 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1361 AC_ARG_ENABLE(gtk2-check,
1362 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1363 , enable_gtk2_check="yes")
1364 AC_MSG_RESULT($enable_gtk2_check)
1365 if test "x$enable_gtk2_check" = "xno"; then
1370 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1371 -a "$enable_gui_canon" != "gnome2"; then
1372 AC_MSG_CHECKING(whether or not to look for GNOME)
1373 AC_ARG_ENABLE(gnome-check,
1374 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1375 , enable_gnome_check="no")
1376 AC_MSG_RESULT($enable_gnome_check)
1377 if test "x$enable_gnome_check" = "xno"; then
1382 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1383 AC_MSG_CHECKING(whether or not to look for Motif)
1384 AC_ARG_ENABLE(motif-check,
1385 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1386 , enable_motif_check="yes")
1387 AC_MSG_RESULT($enable_motif_check)
1388 if test "x$enable_motif_check" = "xno"; then
1393 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1394 AC_MSG_CHECKING(whether or not to look for Athena)
1395 AC_ARG_ENABLE(athena-check,
1396 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1397 , enable_athena_check="yes")
1398 AC_MSG_RESULT($enable_athena_check)
1399 if test "x$enable_athena_check" = "xno"; then
1404 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1405 AC_MSG_CHECKING(whether or not to look for neXtaw)
1406 AC_ARG_ENABLE(nextaw-check,
1407 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1408 , enable_nextaw_check="yes")
1409 AC_MSG_RESULT($enable_nextaw_check);
1410 if test "x$enable_nextaw_check" = "xno"; then
1415 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1416 AC_MSG_CHECKING(whether or not to look for Carbon)
1417 AC_ARG_ENABLE(carbon-check,
1418 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1419 , enable_carbon_check="yes")
1420 AC_MSG_RESULT($enable_carbon_check);
1421 if test "x$enable_carbon_check" = "xno"; then
1426 if test "x$SKIP_MACVIM" != "xYES" -a "$enable_gui_canon" != "macvim"; then
1427 AC_MSG_CHECKING(whether or not to look for MacVim)
1428 AC_ARG_ENABLE(macvim-check,
1429 [ --enable-macvim-check If auto-select GUI, check for MacVim [default=yes]],
1430 , enable_macvim_check="yes")
1431 AC_MSG_RESULT($enable_macvim_check);
1432 if test "x$enable_macvim_check" = "xno"; then
1437 if test "x$MACOSX" = "xyes"; then
1438 if test -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1439 AC_MSG_CHECKING(for Carbon GUI)
1440 dnl already did the check, just give the message
1443 elif test -z "$SKIP_MACVIM" -a "x$COCOA" = "xyes"; then
1444 AC_MSG_CHECKING(for MacVim GUI)
1445 dnl already did the check, just give the message
1450 if test "$VIMNAME" = "vim"; then
1454 dnl Default install directory is not /usr/local
1455 if test x$prefix = xNONE; then
1456 prefix=/Applications
1459 dnl Sorry for the hard coded default
1460 datadir='${prefix}/Vim.app/Contents/Resources'
1462 dnl skip everything else
1475 dnl Get the cflags and libraries from the gtk-config script
1478 dnl define an autoconf function to check for a specified version of GTK, and
1479 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1481 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1482 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1484 AC_DEFUN(AM_PATH_GTK,
1486 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1488 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1489 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1491 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1492 && $PKG_CONFIG --exists gtk+-2.0; then
1494 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1495 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1496 dnl something like that.
1497 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1498 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1499 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1500 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1501 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1502 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1503 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1504 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1505 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1507 elif test "X$GTK_CONFIG" != "Xno"; then
1509 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1511 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1512 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1513 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1514 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1515 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1516 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1517 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1523 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1525 ac_save_CFLAGS="$CFLAGS"
1526 ac_save_LIBS="$LIBS"
1527 CFLAGS="$CFLAGS $GTK_CFLAGS"
1528 LIBS="$LIBS $GTK_LIBS"
1531 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1532 dnl checks the results of gtk-config to some extent
1536 #include <gtk/gtk.h>
1539 # include <stdlib.h>
1540 # include <stddef.h>
1546 int major, minor, micro;
1549 system ("touch conf.gtktest");
1551 /* HP/UX 9 (%@#!) writes to sscanf strings */
1552 tmp_version = g_strdup("$min_gtk_version");
1553 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1554 printf("%s, bad version string\n", "$min_gtk_version");
1558 if ((gtk_major_version > major) ||
1559 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1560 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1561 (gtk_micro_version >= micro)))
1567 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1568 CFLAGS="$ac_save_CFLAGS"
1569 LIBS="$ac_save_LIBS"
1572 if test "x$no_gtk" = x ; then
1573 if test "x$enable_gtktest" = "xyes"; then
1574 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1576 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1578 ifelse([$2], , :, [$2])
1584 ifelse([$3], , :, [$3])
1591 ifelse([$3], , :, [$3])
1593 AC_SUBST(GTK_CFLAGS)
1598 dnl ---------------------------------------------------------------------------
1600 dnl ---------------------------------------------------------------------------
1601 AC_DEFUN([GNOME_INIT_HOOK],
1603 AC_SUBST(GNOME_LIBS)
1604 AC_SUBST(GNOME_LIBDIR)
1605 AC_SUBST(GNOME_INCLUDEDIR)
1607 AC_ARG_WITH(gnome-includes,
1608 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1609 [CFLAGS="$CFLAGS -I$withval"]
1612 AC_ARG_WITH(gnome-libs,
1613 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1614 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1618 [ --with-gnome Specify prefix for GNOME files],
1619 if test x$withval = xyes; then
1621 ifelse([$1], [], :, [$1])
1623 if test "x$withval" = xno; then
1627 LDFLAGS="$LDFLAGS -L$withval/lib"
1628 CFLAGS="$CFLAGS -I$withval/include"
1629 gnome_prefix=$withval/lib
1634 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1636 AC_MSG_CHECKING(for libgnomeui-2.0)
1637 if $PKG_CONFIG --exists libgnomeui-2.0; then
1639 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1640 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1641 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1643 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1644 dnl This might not be the right way but it works for me...
1645 AC_MSG_CHECKING(for FreeBSD)
1646 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1647 AC_MSG_RESULT(yes, adding -pthread)
1648 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1649 GNOME_LIBS="$GNOME_LIBS -pthread"
1655 AC_MSG_RESULT(not found)
1656 if test "x$2" = xfail; then
1657 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1661 elif test "x$want_gnome" = xyes; then
1663 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1664 if test "$GNOME_CONFIG" = "no"; then
1665 no_gnome_config="yes"
1667 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1668 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1670 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1671 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1672 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1676 no_gnome_config="yes"
1680 if test x$exec_prefix = xNONE; then
1681 if test x$prefix = xNONE; then
1682 gnome_prefix=$ac_default_prefix/lib
1684 gnome_prefix=$prefix/lib
1687 gnome_prefix=`eval echo \`echo $libdir\``
1690 if test "$no_gnome_config" = "yes"; then
1691 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1692 if test -f $gnome_prefix/gnomeConf.sh; then
1693 AC_MSG_RESULT(found)
1694 echo "loading gnome configuration from" \
1695 "$gnome_prefix/gnomeConf.sh"
1696 . $gnome_prefix/gnomeConf.sh
1699 AC_MSG_RESULT(not found)
1700 if test x$2 = xfail; then
1701 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1709 AC_DEFUN([GNOME_INIT],[
1710 GNOME_INIT_HOOK([],fail)
1714 dnl ---------------------------------------------------------------------------
1715 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1716 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1717 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1718 dnl ---------------------------------------------------------------------------
1719 if test -z "$SKIP_GTK"; then
1721 AC_MSG_CHECKING(--with-gtk-prefix argument)
1722 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1723 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1724 gtk_config_prefix=""; AC_MSG_RESULT(no))
1726 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1727 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1728 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1729 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1731 AC_MSG_CHECKING(--disable-gtktest argument)
1732 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1733 , enable_gtktest=yes)
1734 if test "x$enable_gtktest" = "xyes" ; then
1735 AC_MSG_RESULT(gtk test enabled)
1737 AC_MSG_RESULT(gtk test disabled)
1740 if test "x$gtk_config_prefix" != "x" ; then
1741 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1742 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1744 if test "x$gtk_config_exec_prefix" != "x" ; then
1745 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1746 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1748 if test "X$GTK_CONFIG" = "X"; then
1749 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1750 if test "X$GTK_CONFIG" = "Xno"; then
1751 dnl Some distributions call it gtk12-config, annoying!
1752 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1753 GTK_CONFIG="$GTK12_CONFIG"
1756 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1758 if test "X$PKG_CONFIG" = "X"; then
1759 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1762 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1763 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1764 dnl problems (bold fonts, --remote doesn't work).
1765 if test "X$SKIP_GTK2" != "XYES"; then
1767 [GUI_LIB_LOC="$GTK_LIBDIR"
1768 GTK_LIBNAME="$GTK_LIBS"
1769 GUI_INC_LOC="$GTK_CFLAGS"], )
1770 if test "x$GTK_CFLAGS" != "x"; then
1775 AC_SUBST(GTK_LIBNAME)
1779 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1780 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1781 dnl were test versions.
1782 if test "x$GUITYPE" != "xGTK"; then
1785 [GTK_LIBNAME="$GTK_LIBS"
1786 GUI_INC_LOC="$GTK_CFLAGS"], )
1787 if test "x$GTK_CFLAGS" != "x"; then
1792 AC_SUBST(GTK_LIBNAME)
1796 dnl Give a warning if GTK is older than 1.2.3
1797 if test "x$GUITYPE" = "xGTK"; then
1798 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1799 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1800 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1803 if test "0$gtk_major_version" -ge 2; then
1804 AC_DEFINE(HAVE_GTK2)
1805 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1806 || test "0$gtk_minor_version" -ge 2 \
1807 || test "0$gtk_major_version" -gt 2; then
1808 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1812 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1814 if test -z "$SKIP_GNOME"; then
1816 GNOME_INIT_HOOK([have_gnome=yes])
1817 if test x$have_gnome = xyes ; then
1818 AC_DEFINE(FEAT_GUI_GNOME)
1819 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1820 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1829 dnl Check for Motif include files location.
1830 dnl The LAST one found is used, this makes the highest version to be used,
1831 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1833 if test -z "$SKIP_MOTIF"; then
1834 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"
1835 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1836 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1838 AC_MSG_CHECKING(for location of Motif GUI includes)
1839 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1841 for try in $gui_includes; do
1842 if test -f "$try/Xm/Xm.h"; then
1846 if test -n "$GUI_INC_LOC"; then
1847 if test "$GUI_INC_LOC" = /usr/include; then
1849 AC_MSG_RESULT(in default path)
1851 AC_MSG_RESULT($GUI_INC_LOC)
1854 AC_MSG_RESULT(<not found>)
1859 dnl Check for Motif library files location. In the same order as the include
1860 dnl files, to avoid a mixup if several versions are present
1862 if test -z "$SKIP_MOTIF"; then
1863 AC_MSG_CHECKING(--with-motif-lib argument)
1864 AC_ARG_WITH(motif-lib,
1865 [ --with-motif-lib=STRING Library for Motif ],
1866 [ MOTIF_LIBNAME="${withval}" ] )
1868 if test -n "$MOTIF_LIBNAME"; then
1869 AC_MSG_RESULT($MOTIF_LIBNAME)
1874 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1875 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1877 AC_MSG_CHECKING(for location of Motif GUI libs)
1878 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"
1880 for try in $gui_libs; do
1881 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1882 if test -f "$libtry"; then
1887 if test -n "$GUI_LIB_LOC"; then
1888 dnl Remove /usr/lib, it causes trouble on some systems
1889 if test "$GUI_LIB_LOC" = /usr/lib; then
1891 AC_MSG_RESULT(in default path)
1893 if test -n "$GUI_LIB_LOC"; then
1894 AC_MSG_RESULT($GUI_LIB_LOC)
1895 if test "`(uname) 2>/dev/null`" = SunOS &&
1896 uname -r | grep '^5' >/dev/null; then
1897 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1903 AC_MSG_RESULT(<not found>)
1909 if test -z "$SKIP_MOTIF"; then
1913 AC_SUBST(MOTIF_LIBNAME)
1916 dnl Check if the Athena files can be found
1920 if test -z "$SKIP_ATHENA"; then
1921 AC_MSG_CHECKING(if Athena header files can be found)
1923 CFLAGS="$CFLAGS $X_CFLAGS"
1925 #include <X11/Intrinsic.h>
1926 #include <X11/Xaw/Paned.h>], ,
1928 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1932 if test -z "$SKIP_ATHENA"; then
1936 if test -z "$SKIP_NEXTAW"; then
1937 AC_MSG_CHECKING(if neXtaw header files can be found)
1939 CFLAGS="$CFLAGS $X_CFLAGS"
1941 #include <X11/Intrinsic.h>
1942 #include <X11/neXtaw/Paned.h>], ,
1944 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
1948 if test -z "$SKIP_NEXTAW"; then
1952 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
1953 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
1954 dnl Avoid adding it when it twice
1955 if test -n "$GUI_INC_LOC"; then
1956 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
1958 if test -n "$GUI_LIB_LOC"; then
1959 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
1962 dnl Check for -lXext and then for -lXmu
1963 ldflags_save=$LDFLAGS
1964 LDFLAGS="$X_LIBS $LDFLAGS"
1965 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
1966 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1967 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
1968 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
1969 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1970 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
1971 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1972 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
1973 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1974 if test -z "$SKIP_MOTIF"; then
1975 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
1976 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
1978 LDFLAGS=$ldflags_save
1980 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
1981 AC_MSG_CHECKING(for extra X11 defines)
1984 if mkdir conftestdir; then
1986 cat > Imakefile <<'EOF'
1988 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
1990 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
1991 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
1996 if test -z "$NARROW_PROTO"; then
1999 AC_MSG_RESULT($NARROW_PROTO)
2001 AC_SUBST(NARROW_PROTO)
2004 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2005 dnl use the X11 include path
2006 if test "$enable_xsmp" = "yes"; then
2007 cppflags_save=$CPPFLAGS
2008 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2009 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2010 CPPFLAGS=$cppflags_save
2014 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2015 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2016 cppflags_save=$CPPFLAGS
2017 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2018 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2020 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2021 if test ! "$enable_xim" = "no"; then
2022 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2023 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2025 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2027 CPPFLAGS=$cppflags_save
2029 dnl automatically enable XIM when hangul input isn't enabled
2030 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2031 -a "x$GUITYPE" != "xNONE" ; then
2032 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2037 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2038 cppflags_save=$CPPFLAGS
2039 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2040 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2041 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2043 #include <X11/Intrinsic.h>
2044 #include <X11/Xmu/Editres.h>],
2047 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2049 CPPFLAGS=$cppflags_save
2052 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2053 if test -z "$SKIP_MOTIF"; then
2054 cppflags_save=$CPPFLAGS
2055 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2056 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2057 Xm/UnhighlightT.h Xm/Notebook.h)
2059 if test $ac_cv_header_Xm_XpmP_h = yes; then
2060 dnl Solaris uses XpmAttributes_21, very annoying.
2061 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2062 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2063 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2064 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2067 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2069 CPPFLAGS=$cppflags_save
2072 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2073 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2076 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2077 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2080 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2081 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2085 if test -z "$SKIP_PHOTON"; then
2089 AC_SUBST(GUI_INC_LOC)
2090 AC_SUBST(GUI_LIB_LOC)
2092 AC_SUBST(GUI_X_LIBS)
2094 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2095 AC_MSG_ERROR([cannot use workshop without Motif])
2098 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2099 if test "$enable_xim" = "yes"; then
2102 if test "$enable_fontset" = "yes"; then
2103 AC_DEFINE(FEAT_XFONTSET)
2107 dnl ---------------------------------------------------------------------------
2108 dnl end of GUI-checking
2109 dnl ---------------------------------------------------------------------------
2112 dnl Only really enable hangul input when GUI and XFONTSET are available
2113 if test "$enable_hangulinput" = "yes"; then
2114 if test "x$GUITYPE" = "xNONE"; then
2115 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2116 enable_hangulinput=no
2118 AC_DEFINE(FEAT_HANGULIN)
2119 HANGULIN_SRC=hangulin.c
2120 AC_SUBST(HANGULIN_SRC)
2121 HANGULIN_OBJ=objects/hangulin.o
2122 AC_SUBST(HANGULIN_OBJ)
2126 dnl Checks for libraries and include files.
2128 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2131 #include "confdefs.h"
2134 # include <stdlib.h>
2135 # include <stddef.h>
2137 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2139 vim_cv_toupper_broken=yes
2141 vim_cv_toupper_broken=no
2143 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2146 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2147 AC_DEFINE(BROKEN_TOUPPER)
2150 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2151 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2152 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2155 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2156 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2157 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2160 dnl Checks for header files.
2161 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2162 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2163 if test "$HAS_ELF" = 1; then
2164 AC_CHECK_LIB(elf, main)
2169 dnl If sys/wait.h is not found it might still exist but not be POSIX
2170 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2171 if test $ac_cv_header_sys_wait_h = no; then
2172 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2173 AC_TRY_COMPILE([#include <sys/wait.h>],
2174 [union wait xx, yy; xx = yy],
2176 AC_DEFINE(HAVE_SYS_WAIT_H)
2177 AC_DEFINE(HAVE_UNION_WAIT),
2181 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2182 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2183 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2184 sys/resource.h sys/systeminfo.h locale.h \
2185 sys/stream.h termios.h libc.h sys/statfs.h \
2186 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2187 libgen.h util/debug.h util/msg18n.h frame.h \
2188 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2190 dnl sys/ptem.h depends on sys/stream.h on Solaris
2191 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2192 [#if defined HAVE_SYS_STREAM_H
2193 # include <sys/stream.h>
2196 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2197 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2198 [#if defined HAVE_SYS_PARAM_H
2199 # include <sys/param.h>
2203 dnl pthread_np.h may exist but can only be used after including pthread.h
2204 AC_MSG_CHECKING([for pthread_np.h])
2206 #include <pthread.h>
2207 #include <pthread_np.h>],
2210 AC_DEFINE(HAVE_PTHREAD_NP_H),
2213 AC_CHECK_HEADERS(strings.h)
2214 if test "x$MACOSX" = "xyes"; then
2215 dnl The strings.h file on OS/X contains a warning and nothing useful.
2216 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2219 dnl Check if strings.h and string.h can both be included when defined.
2220 AC_MSG_CHECKING([if strings.h can be included after string.h])
2221 cppflags_save=$CPPFLAGS
2222 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2224 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2225 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2226 /* but don't do it on AIX 5.1 (Uribarri) */
2229 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2231 #ifdef HAVE_STRING_H
2232 # include <string.h>
2234 #if defined(HAVE_STRINGS_H)
2235 # include <strings.h>
2239 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2241 CPPFLAGS=$cppflags_save
2244 dnl Checks for typedefs, structures, and compiler characteristics.
2245 AC_PROG_GCC_TRADITIONAL
2254 AC_CHECK_TYPE(ino_t, long)
2255 AC_CHECK_TYPE(dev_t, unsigned)
2257 AC_MSG_CHECKING(for rlim_t)
2258 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2259 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2262 changequote(<<,>>)dnl
2263 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2266 #include <sys/types.h>
2268 # include <stdlib.h>
2269 # include <stddef.h>
2271 #ifdef HAVE_SYS_RESOURCE_H
2272 # include <sys/resource.h>
2274 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2275 AC_MSG_RESULT($ac_cv_type_rlim_t)
2277 if test $ac_cv_type_rlim_t = no; then
2278 cat >> confdefs.h <<\EOF
2279 #define rlim_t unsigned long
2283 AC_MSG_CHECKING(for stack_t)
2284 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2285 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2287 AC_EGREP_CPP(stack_t,
2289 #include <sys/types.h>
2291 # include <stdlib.h>
2292 # include <stddef.h>
2295 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2296 AC_MSG_RESULT($ac_cv_type_stack_t)
2298 if test $ac_cv_type_stack_t = no; then
2299 cat >> confdefs.h <<\EOF
2300 #define stack_t struct sigaltstack
2304 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2305 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2307 #include <sys/types.h>
2309 # include <stdlib.h>
2310 # include <stddef.h>
2313 #include "confdefs.h"
2314 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2315 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2319 AC_MSG_CHECKING(--with-tlib argument)
2320 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2321 if test -n "$with_tlib"; then
2322 AC_MSG_RESULT($with_tlib)
2323 LIBS="$LIBS -l$with_tlib"
2324 AC_MSG_CHECKING(for linking with $with_tlib library)
2325 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2326 dnl Need to check for tgetent() below.
2329 AC_MSG_RESULT([empty: automatic terminal library selection])
2330 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2331 dnl curses, because curses is much slower.
2332 dnl Newer versions of ncurses are preferred over anything.
2333 dnl Older versions of ncurses have bugs, get a new one!
2334 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2335 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2336 case "`uname -s 2>/dev/null`" in
2337 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2338 *) tlibs="ncurses termlib termcap curses";;
2340 for libname in $tlibs; do
2341 AC_CHECK_LIB(${libname}, tgetent,,)
2342 if test "x$olibs" != "x$LIBS"; then
2343 dnl It's possible that a library is found but it doesn't work
2344 dnl e.g., shared library that cannot be found
2345 dnl compile and run a test program to be sure
2347 #ifdef HAVE_TERMCAP_H
2348 # include <termcap.h>
2351 # include <stdlib.h>
2352 # include <stddef.h>
2354 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2355 res="OK", res="FAIL", res="FAIL")
2356 if test "$res" = "OK"; then
2359 AC_MSG_RESULT($libname library is not usable)
2363 if test "x$olibs" = "x$LIBS"; then
2364 AC_MSG_RESULT(no terminal library found)
2368 if test "x$olibs" = "x$LIBS"; then
2369 AC_MSG_CHECKING([for tgetent()])
2371 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2373 AC_MSG_ERROR([NOT FOUND!
2374 You need to install a terminal library; for example ncurses.
2375 Or specify the name of the library with --with-tlib.]))
2378 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2381 #include "confdefs.h"
2382 #ifdef HAVE_TERMCAP_H
2383 # include <termcap.h>
2385 #ifdef HAVE_STRING_H
2386 # include <string.h>
2389 # include <stdlib.h>
2390 # include <stddef.h>
2393 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2399 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2403 if test "x$vim_cv_terminfo" = "xyes" ; then
2407 if test "x$olibs" != "x$LIBS"; then
2408 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2411 #include "confdefs.h"
2412 #ifdef HAVE_TERMCAP_H
2413 # include <termcap.h>
2416 # include <stdlib.h>
2417 # include <stddef.h>
2420 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2424 vim_cv_tgent=non-zero
2426 AC_MSG_ERROR(failed to compile test program.)
2430 if test "x$vim_cv_tgent" = "xzero" ; then
2431 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2435 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2437 #ifdef HAVE_TERMCAP_H
2438 # include <termcap.h>
2440 ], [ospeed = 20000],
2441 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2443 AC_MSG_CHECKING(whether ospeed can be extern)
2445 #ifdef HAVE_TERMCAP_H
2446 # include <termcap.h>
2448 extern short ospeed;
2449 ], [ospeed = 20000],
2450 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2454 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2456 #ifdef HAVE_TERMCAP_H
2457 # include <termcap.h>
2459 ], [if (UP == 0 && BC == 0) PC = 1],
2460 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2462 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2464 #ifdef HAVE_TERMCAP_H
2465 # include <termcap.h>
2467 extern char *UP, *BC, PC;
2468 ], [if (UP == 0 && BC == 0) PC = 1],
2469 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2473 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2475 #ifdef HAVE_TERMCAP_H
2476 # include <termcap.h>
2478 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2479 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2482 dnl On some SCO machines sys/select redefines struct timeval
2483 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2485 #include <sys/types.h>
2486 #include <sys/time.h>
2487 #include <sys/select.h>], ,
2489 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2492 dnl AC_DECL_SYS_SIGLIST
2494 dnl Checks for pty.c (copied from screen) ==========================
2495 AC_MSG_CHECKING(for /dev/ptc)
2496 if test -r /dev/ptc; then
2497 AC_DEFINE(HAVE_DEV_PTC)
2503 AC_MSG_CHECKING(for SVR4 ptys)
2504 if test -c /dev/ptmx ; then
2505 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2506 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2512 AC_MSG_CHECKING(for ptyranges)
2513 if test -d /dev/ptym ; then
2523 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2524 dnl if test -c /dev/ptyp19; then
2525 dnl ptys=`echo /dev/ptyp??`
2527 dnl ptys=`echo $pdir/pty??`
2529 if test "$ptys" != "$pdir/pty??" ; then
2530 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2531 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2532 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2533 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2534 AC_MSG_RESULT([$p0 / $p1])
2536 AC_MSG_RESULT([don't know])
2539 dnl **** pty mode/group handling ****
2541 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2543 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2546 #include "confdefs.h"
2547 #include <sys/types.h>
2549 # include <stdlib.h>
2550 # include <stddef.h>
2552 #ifdef HAVE_UNISTD_H
2555 #include <sys/stat.h>
2564 if (!(x = ttyname(0))) exit(1);
2565 if (stat(x, &sb)) exit(1);
2567 if (om & 002) exit(0);
2568 m = system("mesg y");
2569 if (m == -1 || m == 127) exit(1);
2570 if (stat(x, &sb)) exit(1);
2572 if (chmod(x, om)) exit(1);
2573 if (m & 002) exit(0);
2574 if (sb.st_gid == getgid()) exit(1);
2575 if (!(fp=fopen("conftest_grp", "w")))
2577 fprintf(fp, "%d\n", sb.st_gid);
2582 if test -f conftest_grp; then
2583 vim_cv_tty_group=`cat conftest_grp`
2584 if test "x$vim_cv_tty_mode" = "x" ; then
2585 vim_cv_tty_mode=0620
2587 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2589 vim_cv_tty_group=world
2590 AC_MSG_RESULT([ptys are world accessable])
2593 vim_cv_tty_group=world
2594 AC_MSG_RESULT([can't determine - assume ptys are world accessable])
2596 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2601 if test "x$vim_cv_tty_group" != "xworld" ; then
2602 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2603 if test "x$vim_cv_tty_mode" = "x" ; then
2604 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)])
2606 AC_DEFINE(PTYMODE, 0620)
2610 dnl Checks for library functions. ===================================
2614 dnl find out what to use at the end of a signal function
2615 if test $ac_cv_type_signal = void; then
2616 AC_DEFINE(SIGRETURN, [return])
2618 AC_DEFINE(SIGRETURN, [return 0])
2621 dnl check if struct sigcontext is defined (used for SGI only)
2622 AC_MSG_CHECKING(for struct sigcontext)
2627 struct sigcontext *scont;
2628 scont = (struct sigcontext *)0;
2632 AC_DEFINE(HAVE_SIGCONTEXT),
2635 dnl tricky stuff: try to find out if getcwd() is implemented with
2636 dnl system("sh -c pwd")
2637 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2640 #include "confdefs.h"
2641 #ifdef HAVE_UNISTD_H
2644 char *dagger[] = { "IFS=pwd", 0 };
2648 extern char **environ;
2650 return getcwd(buffer, 500) ? 0 : 1;
2653 vim_cv_getcwd_broken=no
2655 vim_cv_getcwd_broken=yes
2657 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2661 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2662 AC_DEFINE(BAD_GETCWD)
2665 dnl Check for functions in one big call, to reduce the size of configure
2666 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2667 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2668 memset nanosleep opendir putenv qsort readlink select setenv \
2669 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2670 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2671 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2672 usleep utime utimes)
2674 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2675 AC_MSG_CHECKING(for st_blksize)
2677 [#include <sys/types.h>
2678 #include <sys/stat.h>],
2683 n = (int)st.st_blksize;],
2684 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2687 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2690 #include "confdefs.h"
2692 # include <stdlib.h>
2693 # include <stddef.h>
2695 #include <sys/types.h>
2696 #include <sys/stat.h>
2697 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2699 vim_cv_stat_ignores_slash=yes
2701 vim_cv_stat_ignores_slash=no
2703 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2707 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2708 AC_DEFINE(STAT_IGNORES_SLASH)
2711 dnl Link with iconv for charset translation, if not found without library.
2712 dnl check for iconv() requires including iconv.h
2713 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2714 dnl has been installed.
2715 AC_MSG_CHECKING(for iconv_open())
2717 LIBS="$LIBS -liconv"
2722 ], [iconv_open("fr", "to");],
2723 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2729 ], [iconv_open("fr", "to");],
2730 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2734 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2736 #ifdef HAVE_LANGINFO_H
2737 # include <langinfo.h>
2739 ], [char *cs = nl_langinfo(CODESET);],
2740 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2743 dnl Need various functions for floating point support. Only enable
2744 dnl floating point when they are all present.
2745 AC_CHECK_LIB(m, strtod)
2746 AC_MSG_CHECKING([for strtod() and other floating point functions])
2752 # include <stdlib.h>
2753 # include <stddef.h>
2755 ], [char *s; double d;
2756 d = strtod("1.1", &s);
2761 d = pow(1.11, 2.22);
2767 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2770 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2771 dnl when -lacl works, also try to use -lattr (required for Debian).
2772 AC_MSG_CHECKING(--disable-acl argument)
2774 [ --disable-acl Don't check for ACL support.],
2775 , [enable_acl="yes"])
2776 if test "$enable_acl" = "yes"; then
2778 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2779 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2780 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2782 AC_MSG_CHECKING(for POSIX ACL support)
2784 #include <sys/types.h>
2785 #ifdef HAVE_SYS_ACL_H
2786 # include <sys/acl.h>
2788 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2789 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2791 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2794 AC_MSG_CHECKING(for Solaris ACL support)
2796 #ifdef HAVE_SYS_ACL_H
2797 # include <sys/acl.h>
2798 #endif], [acl("foo", GETACLCNT, 0, NULL);
2800 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2803 AC_MSG_CHECKING(for AIX ACL support)
2806 # include <stdlib.h>
2807 # include <stddef.h>
2809 #ifdef HAVE_SYS_ACL_H
2810 # include <sys/acl.h>
2812 #ifdef HAVE_SYS_ACCESS_H
2813 # include <sys/access.h>
2817 #include <sys/stat.h>
2820 struct acl *aclent;], [aclsize = sizeof(struct acl);
2821 aclent = (void *)malloc(aclsize);
2822 statacl("foo", STX_NORMAL, aclent, aclsize);
2824 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2830 AC_MSG_CHECKING(--disable-gpm argument)
2832 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2835 if test "$enable_gpm" = "yes"; then
2837 dnl Checking if gpm support can be compiled
2838 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2839 [olibs="$LIBS" ; LIBS="-lgpm"]
2842 #include <linux/keyboard.h>],
2843 [Gpm_GetLibVersion(NULL);],
2844 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2845 dnl FEAT_MOUSE_GPM if mouse support is included
2846 [vi_cv_have_gpm=yes],
2847 [vi_cv_have_gpm=no])
2850 if test $vi_cv_have_gpm = yes; then
2858 AC_MSG_CHECKING(--disable-sysmouse argument)
2859 AC_ARG_ENABLE(sysmouse,
2860 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2861 [enable_sysmouse="yes"])
2863 if test "$enable_sysmouse" = "yes"; then
2865 dnl Checking if sysmouse support can be compiled
2866 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2867 dnl defines FEAT_SYSMOUSE if mouse support is included
2868 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2870 [#include <sys/consio.h>
2872 #include <sys/fbio.h>],
2873 [struct mouse_info mouse;
2874 mouse.operation = MOUSE_MODE;
2875 mouse.operation = MOUSE_SHOW;
2876 mouse.u.mode.mode = 0;
2877 mouse.u.mode.signal = SIGUSR2;],
2878 [vi_cv_have_sysmouse=yes],
2879 [vi_cv_have_sysmouse=no])
2881 if test $vi_cv_have_sysmouse = yes; then
2882 AC_DEFINE(HAVE_SYSMOUSE)
2888 dnl rename needs to be checked separately to work on Nextstep with cc
2889 AC_MSG_CHECKING(for rename)
2890 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2891 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2894 dnl sysctl() may exist but not the arguments we use
2895 AC_MSG_CHECKING(for sysctl)
2897 [#include <sys/types.h>
2898 #include <sys/sysctl.h>],
2903 mib[1] = HW_USERMEM;
2905 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2907 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2908 AC_MSG_RESULT(not usable))
2910 dnl sysinfo() may exist but not be Linux compatible
2911 AC_MSG_CHECKING(for sysinfo)
2913 [#include <sys/types.h>
2914 #include <sys/sysinfo.h>],
2915 [ struct sysinfo sinfo;
2918 (void)sysinfo(&sinfo);
2921 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2922 AC_MSG_RESULT(not usable))
2924 dnl struct sysinfo may have the mem_unit field or not
2925 AC_MSG_CHECKING(for sysinfo.mem_unit)
2927 [#include <sys/types.h>
2928 #include <sys/sysinfo.h>],
2929 [ struct sysinfo sinfo;
2932 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
2935 dnl sysconf() may exist but not support what we want to use
2936 AC_MSG_CHECKING(for sysconf)
2938 [#include <unistd.h>],
2939 [ (void)sysconf(_SC_PAGESIZE);
2940 (void)sysconf(_SC_PHYS_PAGES);
2942 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2943 AC_MSG_RESULT(not usable))
2945 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2946 dnl be printed with "%d", and avoids a warning for cross-compiling.
2948 AC_MSG_CHECKING(size of int)
2949 AC_CACHE_VAL(ac_cv_sizeof_int,
2953 # include <stdlib.h>
2954 # include <stddef.h>
2958 FILE *f=fopen("conftestval", "w");
2960 fprintf(f, "%d\n", (int)sizeof(int));
2963 ac_cv_sizeof_int=`cat conftestval`,
2965 AC_MSG_ERROR(failed to compile test program))])
2966 AC_MSG_RESULT($ac_cv_sizeof_int)
2967 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2969 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2970 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2973 #include "confdefs.h"
2974 #ifdef HAVE_STRING_H
2975 # include <string.h>
2978 # include <stdlib.h>
2979 # include <stddef.h>
2983 strcpy(buf, "abcdefghi");
2984 mch_memmove(buf, buf + 2, 3);
2985 if (strncmp(buf, "ababcf", 6))
2987 strcpy(buf, "abcdefghi");
2988 mch_memmove(buf + 2, buf, 3);
2989 if (strncmp(buf, "cdedef", 6))
2991 exit(0); /* libc version works properly. */
2994 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
2996 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
2998 vim_cv_memmove_handles_overlap=yes
3000 vim_cv_memmove_handles_overlap=no
3002 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3006 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3007 AC_DEFINE(USEMEMMOVE)
3009 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3011 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3013 vim_cv_bcopy_handles_overlap=yes
3015 vim_cv_bcopy_handles_overlap=no
3017 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3021 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3024 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3026 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3028 vim_cv_memcpy_handles_overlap=yes
3030 vim_cv_memcpy_handles_overlap=no
3032 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3036 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3037 AC_DEFINE(USEMEMCPY)
3043 dnl Check for multibyte locale functions
3044 dnl Find out if _Xsetlocale() is supported by libX11.
3045 dnl Check if X_LOCALE should be defined.
3047 if test "$enable_multibyte" = "yes"; then
3049 ldflags_save=$LDFLAGS
3050 if test "x$x_includes" != "xNONE" ; then
3051 CFLAGS="$CFLAGS -I$x_includes"
3052 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3053 AC_MSG_CHECKING(whether X_LOCALE needed)
3054 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3055 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3056 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3060 LDFLAGS=$ldflags_save
3063 dnl Link with xpg4, it is said to make Korean locale working
3064 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3066 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3067 dnl --version for Exuberant ctags (preferred)
3068 dnl Add --fields=+S to get function signatures for omni completion.
3069 dnl -t for typedefs (many ctags have this)
3070 dnl -s for static functions (Elvis ctags only?)
3071 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3072 dnl -i+m to test for older Exuberant ctags
3073 AC_MSG_CHECKING(how to create tags)
3074 test -f tags && mv tags tags.save
3075 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3076 TAGPRG="ctags -I INIT+ --fields=+S"
3079 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3080 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3081 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3082 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3083 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3084 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3085 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3087 test -f tags.save && mv tags.save tags
3088 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3090 dnl Check how we can run man with a section number
3091 AC_MSG_CHECKING(how to run man with a section nr)
3093 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3094 AC_MSG_RESULT($MANDEF)
3095 if test "$MANDEF" = "man -s"; then
3099 dnl Check if gettext() is working and if it needs -lintl
3100 AC_MSG_CHECKING(--disable-nls argument)
3102 [ --disable-nls Don't support NLS (gettext()).], ,
3105 if test "$enable_nls" = "yes"; then
3108 INSTALL_LANGS=install-languages
3109 AC_SUBST(INSTALL_LANGS)
3110 INSTALL_TOOL_LANGS=install-tool-languages
3111 AC_SUBST(INSTALL_TOOL_LANGS)
3113 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3114 AC_MSG_CHECKING([for NLS])
3115 if test -f po/Makefile; then
3117 if test -n "$MSGFMT"; then
3119 [#include <libintl.h>],
3121 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3125 [#include <libintl.h>],
3127 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3128 AC_MSG_RESULT([gettext() doesn't work]);
3131 AC_MSG_RESULT([msgfmt not found - disabled]);
3133 if test $have_gettext = "yes"; then
3134 AC_DEFINE(HAVE_GETTEXT)
3137 dnl this was added in GNU gettext 0.10.36
3138 AC_CHECK_FUNCS(bind_textdomain_codeset)
3139 dnl _nl_msg_cat_cntr is required for GNU gettext
3140 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3142 [#include <libintl.h>
3143 extern int _nl_msg_cat_cntr;],
3144 [++_nl_msg_cat_cntr;],
3145 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3146 AC_MSG_RESULT([no]))
3149 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3155 dnl Check for dynamic linking loader
3156 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3157 if test x${DLL} = xdlfcn.h; then
3158 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3159 AC_MSG_CHECKING([for dlopen()])
3161 extern void* dlopen();
3165 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3167 AC_MSG_CHECKING([for dlopen() in -ldl])
3171 extern void* dlopen();
3175 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3178 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3180 AC_MSG_CHECKING([for dlsym()])
3182 extern void* dlsym();
3186 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3188 AC_MSG_CHECKING([for dlsym() in -ldl])
3192 extern void* dlsym();
3196 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3199 elif test x${DLL} = xdl.h; then
3200 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3201 AC_MSG_CHECKING([for shl_load()])
3203 extern void* shl_load();
3207 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3209 AC_MSG_CHECKING([for shl_load() in -ldld])
3213 extern void* shl_load();
3217 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3221 AC_CHECK_HEADERS(setjmp.h)
3223 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3224 dnl -ldl must come after DynaLoader.a
3225 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3226 LIBS=`echo $LIBS | sed s/-ldl//`
3227 PERL_LIBS="$PERL_LIBS -ldl"
3231 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3232 && test "x$GUITYPE" != "xCARBONGUI" && test "x$GUITYPE" != "xMACVIMGUI"; then
3233 AC_MSG_CHECKING(whether we need -framework Carbon)
3234 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3235 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3236 || test "x$features" = "xhuge"; then
3237 LIBS="$LIBS -framework Carbon"
3243 if test "x$MACARCH" = "xboth"; then
3244 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3247 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3248 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3249 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3250 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3251 dnl the number before the version number.
3252 DEPEND_CFLAGS_FILTER=
3253 if test "$GCC" = yes; then
3254 AC_MSG_CHECKING(for GCC 3 or later)
3255 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3256 if test "$gccmajor" -gt "2"; then
3257 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3262 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3263 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3264 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3265 if test "$gccmajor" -gt "3"; then
3266 CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=1"
3272 AC_SUBST(DEPEND_CFLAGS_FILTER)
3274 dnl write output files
3275 AC_OUTPUT(auto/config.mk:config.mk.in)
3277 dnl vim: set sw=2 tw=78 fo+=l: