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-developer-dir argument)
115 AC_ARG_WITH(developer-dir, [ --with-developer-dir=PATH use PATH as location for Xcode developer tools],
116 DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
117 DEVELOPER_DIR=""; AC_MSG_RESULT(not present))
119 if test "x$DEVELOPER_DIR" = "x"; then
120 AC_PATH_PROG(XCODE_SELECT, xcode-select)
121 if test "x$XCODE_SELECT" != "x"; then
122 AC_MSG_CHECKING(for developer dir using xcode-select)
123 DEVELOPER_DIR=`$XCODE_SELECT -print-path`
124 AC_MSG_RESULT([$DEVELOPER_DIR])
126 DEVELOPER_DIR=/Developer
130 AC_MSG_CHECKING(--with-macsdk argument)
132 [ --with-macsdk=SDK SDK version (10.4, 10.5, 10.6, ...)],
133 [ MACSDK="$withval"; AC_MSG_RESULT($MACSDK) ],
134 [ MACSDK=""; AC_MSG_RESULT(using default) ])
136 if test -n "$MACSDK"; then
137 AC_MSG_CHECKING(if SDK is supported)
138 save_cflags="$CFLAGS"
139 save_ldflags="$LDFLAGS"
140 sdkflags="$DEVELOPER_DIR/SDKs/MacOSX$MACSDK"
141 if test "x$MACSDK" = "x10.4"; then
142 sdkflags="$sdkflags""u"
144 sdkflags="$sdkflags.sdk -mmacosx-version-min=$MACSDK"
145 CFLAGS="$CFLAGS -isysroot $sdkflags"
146 LDFLAGS="$LDFLAGS -Wl,-syslibroot,$sdkflags"
147 AC_TRY_LINK([ ], [ ],
148 [ AC_MSG_RESULT([yes])
149 XCODEFLAGS="$XCODEFLAGS -sdk macosx$MACSDK MACOSX_DEPLOYMENT_TARGET=$MACSDK" ],
150 [ AC_MSG_RESULT([no])
151 dnl Important to clear MACSDK so later on in the script we can assume
152 dnl that no SDK was chosen if it is empty.
154 CFLAGS="$save_cflags"
155 LDFLAGS="$save_ldflags" ])
159 AC_MSG_CHECKING(--with-macarchs argument)
160 AC_ARG_WITH(macarchs,
161 [ --with-macarchs=ARCHS space separated list of archs (i386 x86_64 ppc ...)],
162 [ ARCHS="$withval"; AC_MSG_RESULT($ARCHS) ],
163 [ ARCHS=""; AC_MSG_RESULT(defaulting to native arch) ])
165 if test -n "$ARCHS"; then
166 AC_MSG_CHECKING(if architectures are supported)
167 save_cflags="$CFLAGS"
168 save_ldflags="$LDFLAGS"
169 archflags=`echo "$ARCHS" | sed -e 's/[[[:<:]]]/-arch /g'`
170 CFLAGS="$CFLAGS $archflags"
171 LDFLAGS="$LDFLAGS $archflags"
172 AC_TRY_LINK([ ], [ ],
173 [ AC_MSG_RESULT([yes])
174 XCODEFLAGS="$XCODEFLAGS ARCHS=\"$ARCHS\" ONLY_ACTIVE_ARCH=\"NO\"" ],
175 [ AC_MSG_RESULT([no, will build for native arch only])
177 CFLAGS="$save_cflags"
178 LDFLAGS="$save_ldflags" ])
182 if test "$enable_darwin" = "yes"; then
184 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
185 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
186 dnl TODO: use -arch i386 on Intel machines
187 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
189 dnl If Carbon or Cocoa is found, assume we don't want
190 dnl X11 unless it was specifically asked for (--with-x)
191 dnl or Motif, Athena or GTK GUI is used.
192 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
194 SAVE_CPPFLAGS=$CPPFLAGS
196 CPPFLAGS="$CPPFLAGS -ObjC"
197 CFLAGS="$CFLAGS -ObjC"
198 AC_CHECK_HEADER(Cocoa/Cocoa.h, COCOA=yes)
199 CPPFLAGS=$SAVE_CPPFLAGS
202 if test "x$CARBON" = "xyes" -o "x$COCOA" = "xyes"; then
203 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
212 AC_SUBST(OS_EXTRA_SRC)
213 AC_SUBST(OS_EXTRA_OBJ)
215 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
216 dnl Only when the directory exists and it wasn't there yet.
217 dnl For gcc don't do this when it is already in the default search path.
218 dnl Skip all of this when cross-compiling.
219 if test "$cross_compiling" = no; then
220 AC_MSG_CHECKING(--with-local-dir argument)
221 have_local_include=''
223 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
224 --without-local-dir do not search /usr/local for local libraries.], [
229 # avoid adding local dir to LDFLAGS and CPPFLAGS
233 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
235 AC_MSG_RESULT($local_dir)
238 AC_MSG_RESULT(Defaulting to $local_dir)
240 if test "$GCC" = yes -a "$local_dir" != no; then
241 echo 'void f(){}' > conftest.c
242 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
243 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
244 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
245 rm -f conftest.c conftest.o
247 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
248 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
249 if test "$tt" = "$LDFLAGS"; then
250 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
253 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
254 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
255 if test "$tt" = "$CPPFLAGS"; then
256 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
261 AC_MSG_CHECKING(--with-vim-name argument)
262 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
263 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
264 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
266 AC_MSG_CHECKING(--with-ex-name argument)
267 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
268 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
269 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
271 AC_MSG_CHECKING(--with-view-name argument)
272 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
273 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
274 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
277 AC_MSG_CHECKING(--with-global-runtime argument)
278 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
279 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
282 AC_MSG_CHECKING(--with-modified-by argument)
283 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
284 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
287 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
288 AC_MSG_CHECKING(if character set is EBCDIC)
290 [ /* TryCompile function for CharSet.
291 Treat any failure as ASCII for compatibility with existing art.
292 Use compile-time rather than run-time tests for cross-compiler
295 make an error "Character set is not EBCDIC"
297 [ # TryCompile action if true
299 [ # TryCompile action if false
301 # end of TryCompile ])
302 # end of CacheVal CvEbcdic
303 AC_MSG_RESULT($cf_cv_ebcdic)
304 case "$cf_cv_ebcdic" in #(vi
305 yes) AC_DEFINE(EBCDIC)
308 *) line_break='"\\012"';;
312 if test "$cf_cv_ebcdic" = "yes"; then
313 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
314 AC_MSG_CHECKING(for OS/390 Unix)
316 OS/390) OS390Unix="yes";
317 dnl If using cc the environment variable _CC_CCMODE must be
318 dnl set to "1", so that some compiler extensions are enabled.
319 dnl If using c89 the environment variable is named _CC_C89MODE.
320 dnl Note: compile with c89 never tested.
321 if test "$CC" = "cc"; then
325 if test "$CC" = "c89"; then
332 if test "$ccm" != "1"; then
334 echo "------------------------------------------"
335 echo " On OS/390 Unix, the environment variable"
336 echo " __CC_${ccn}MODE must be set to \"1\"!"
338 echo " export _CC_${ccn}MODE=1"
339 echo " and then call configure again."
340 echo "------------------------------------------"
343 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
352 dnl Link with -lselinux for SELinux stuff; if not found
353 AC_MSG_CHECKING(--disable-selinux argument)
354 AC_ARG_ENABLE(selinux,
355 [ --disable-selinux Don't check for SELinux support.],
356 , enable_selinux="yes")
357 if test "$enable_selinux" = "yes"; then
359 AC_CHECK_LIB(selinux, is_selinux_enabled,
360 [LIBS="$LIBS -lselinux"
361 AC_DEFINE(HAVE_SELINUX)])
366 dnl Check user requested features.
368 AC_MSG_CHECKING(--with-features argument)
369 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
370 features="$withval"; AC_MSG_RESULT($features),
371 features="normal"; AC_MSG_RESULT(Defaulting to normal))
376 tiny) AC_DEFINE(FEAT_TINY) ;;
377 small) AC_DEFINE(FEAT_SMALL) ;;
378 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
379 dogvimdiff="installgvimdiff" ;;
380 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
381 dogvimdiff="installgvimdiff" ;;
382 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
383 dogvimdiff="installgvimdiff" ;;
384 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
390 AC_MSG_CHECKING(--with-compiledby argument)
391 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
392 compiledby="$withval"; AC_MSG_RESULT($withval),
393 compiledby=""; AC_MSG_RESULT(no))
396 AC_MSG_CHECKING(--disable-xsmp argument)
398 [ --disable-xsmp Disable XSMP session management],
401 if test "$enable_xsmp" = "yes"; then
403 AC_MSG_CHECKING(--disable-xsmp-interact argument)
404 AC_ARG_ENABLE(xsmp-interact,
405 [ --disable-xsmp-interact Disable XSMP interaction],
406 , enable_xsmp_interact="yes")
407 if test "$enable_xsmp_interact" = "yes"; then
409 AC_DEFINE(USE_XSMP_INTERACT)
417 dnl Check for MzScheme feature.
418 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
419 AC_ARG_ENABLE(mzschemeinterp,
420 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
421 [enable_mzschemeinterp="no"])
422 AC_MSG_RESULT($enable_mzschemeinterp)
424 if test "$enable_mzschemeinterp" = "yes"; then
425 dnl -- find the mzscheme executable
426 AC_SUBST(vi_cv_path_mzscheme)
428 AC_MSG_CHECKING(--with-plthome argument)
430 [ --with-plthome=PLTHOME Use PLTHOME.],
431 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
432 with_plthome="";AC_MSG_RESULT("no"))
434 if test "X$with_plthome" != "X"; then
435 vi_cv_path_mzscheme_pfx="$with_plthome"
437 AC_MSG_CHECKING(PLTHOME environment var)
438 if test "X$PLTHOME" != "X"; then
439 AC_MSG_RESULT("$PLTHOME")
440 vi_cv_path_mzscheme_pfx="$PLTHOME"
442 AC_MSG_RESULT(not set)
443 dnl -- try to find MzScheme executable
444 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
446 dnl resolve symbolic link, the executable is often elsewhere and there
447 dnl are no links for the include files.
448 if test "X$vi_cv_path_mzscheme" != "X"; then
449 lsout=`ls -l $vi_cv_path_mzscheme`
450 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
451 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
455 if test "X$vi_cv_path_mzscheme" != "X"; then
456 dnl -- find where MzScheme thinks it was installed
457 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
458 dnl different versions of MzScheme differ in command line processing
459 dnl use universal approach
460 echo "(display (simplify-path \
461 (build-path (call-with-values \
462 (lambda () (split-path (find-system-path (quote exec-file)))) \
463 (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
464 dnl Remove a trailing slash
465 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
473 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
474 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
475 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
476 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
480 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
481 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
483 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
486 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
487 if test -f /usr/include/plt/scheme.h; then
489 SCHEME_INC=/usr/include/plt
492 vi_cv_path_mzscheme_pfx=
498 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
499 if test "x$MACOSX" = "xyes"; then
500 MZSCHEME_LIBS="-framework PLT_MzScheme"
501 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
502 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
503 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
504 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
505 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
507 dnl Using shared objects
508 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
509 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
510 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
512 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
514 if test "$GCC" = yes; then
515 dnl Make Vim remember the path to the library. For when it's not in
516 dnl $LD_LIBRARY_PATH.
517 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
518 elif test "`(uname) 2>/dev/null`" = SunOS &&
519 uname -r | grep '^5' >/dev/null; then
520 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
523 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
524 SCHEME_COLLECTS=lib/plt/
526 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
527 dnl need to generate bytecode for MzScheme base
528 MZSCHEME_EXTRA="mzscheme_base.c"
529 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
530 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
532 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
533 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
534 MZSCHEME_SRC="if_mzsch.c"
535 MZSCHEME_OBJ="objects/if_mzsch.o"
536 MZSCHEME_PRO="if_mzsch.pro"
537 AC_DEFINE(FEAT_MZSCHEME)
539 AC_SUBST(MZSCHEME_SRC)
540 AC_SUBST(MZSCHEME_OBJ)
541 AC_SUBST(MZSCHEME_PRO)
542 AC_SUBST(MZSCHEME_LIBS)
543 AC_SUBST(MZSCHEME_CFLAGS)
544 AC_SUBST(MZSCHEME_EXTRA)
545 AC_SUBST(MZSCHEME_MZC)
549 AC_MSG_CHECKING(--enable-perlinterp argument)
550 AC_ARG_ENABLE(perlinterp,
551 [ --enable-perlinterp Include Perl interpreter.], ,
552 [enable_perlinterp="no"])
553 AC_MSG_RESULT($enable_perlinterp)
554 if test "$enable_perlinterp" = "yes"; then
555 AC_SUBST(vi_cv_path_perl)
556 AC_PATH_PROG(vi_cv_path_perl, perl)
557 if test "X$vi_cv_path_perl" != "X"; then
558 AC_MSG_CHECKING(Perl version)
559 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
560 eval `$vi_cv_path_perl -V:usethreads`
561 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
564 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
565 eval `$vi_cv_path_perl -V:use5005threads`
566 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
570 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
574 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
577 if test $badthreads = no; then
579 eval `$vi_cv_path_perl -V:shrpenv`
580 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
583 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
584 AC_SUBST(vi_cv_perllib)
585 dnl Remove "-fno-something", it breaks using cproto.
586 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
587 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
588 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
589 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
590 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
591 -e 's/-bE:perl.exp//' -e 's/-lc //'`
592 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
593 dnl a test in configure may fail because of that.
594 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
595 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
597 if test "x$MACOSX" = "xyes"; then
598 dnl Perl on Mac OS X 10.5 and later adds "-arch" flags but these
599 dnl should only be included if requested by passing --with-archs
600 dnl to configure, so strip these flags first (if present)
601 perllibs=`echo "$perllibs" | sed -e 's/-arch[[^-]]*//g'`
602 perlcppflags=`echo "$perlcppflags" | sed -e 's/-arch[[^-]]*//g'`
605 dnl check that compiling a simple program still works with the flags
607 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
610 ldflags_save=$LDFLAGS
611 CFLAGS="$CFLAGS $perlcppflags"
612 LIBS="$LIBS $perllibs"
613 LDFLAGS="$perlldflags $LDFLAGS"
615 AC_MSG_RESULT(yes); perl_ok=yes,
616 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
619 LDFLAGS=$ldflags_save
620 if test $perl_ok = yes; then
621 if test "X$perlcppflags" != "X"; then
622 dnl remove -pipe and -Wxxx, it confuses cproto
623 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
625 if test "X$perlldflags" != "X"; then
626 LDFLAGS="$perlldflags $LDFLAGS"
629 PERL_SRC="auto/if_perl.c if_perlsfio.c"
630 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
631 PERL_PRO="if_perl.pro if_perlsfio.pro"
636 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
640 if test "x$MACOSX" = "xyes"; then
641 dnl Mac OS X 10.2 or later
642 dir=/System/Library/Perl
643 darwindir=$dir/darwin
644 if test -d $darwindir; then
648 dir=/System/Library/Perl/5.8.1
649 darwindir=$dir/darwin-thread-multi-2level
650 if test -d $darwindir; then
654 if test -n "$PERL"; then
656 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
657 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
658 PERL_LIBS="-L$darwindir/CORE -lperl"
666 AC_SUBST(PERL_CFLAGS)
669 AC_MSG_CHECKING(--enable-pythoninterp argument)
670 AC_ARG_ENABLE(pythoninterp,
671 [ --enable-pythoninterp Include Python interpreter.], ,
672 [enable_pythoninterp="no"])
673 AC_MSG_RESULT($enable_pythoninterp)
674 if test "$enable_pythoninterp" = "yes"; then
675 dnl -- find the python executable
676 AC_PATH_PROG(vi_cv_path_python, python)
677 if test "X$vi_cv_path_python" != "X"; then
679 dnl -- get its version number
680 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
681 [[vi_cv_var_python_version=`
682 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
685 dnl -- it must be at least version 1.4
686 AC_MSG_CHECKING(Python is 1.4 or better)
687 if ${vi_cv_path_python} -c \
688 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
692 dnl -- find where python thinks it was installed
693 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
694 [ vi_cv_path_python_pfx=`
695 ${vi_cv_path_python} -c \
696 "import sys; print sys.prefix"` ])
698 dnl -- and where it thinks it runs
699 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
700 [ vi_cv_path_python_epfx=`
701 ${vi_cv_path_python} -c \
702 "import sys; print sys.exec_prefix"` ])
704 dnl -- python's internal library path
706 AC_CACHE_VAL(vi_cv_path_pythonpath,
707 [ vi_cv_path_pythonpath=`
709 ${vi_cv_path_python} -c \
710 "import sys, string; print string.join(sys.path,':')"` ])
712 dnl -- where the Python implementation library archives are
714 AC_ARG_WITH(python-config-dir,
715 [ --with-python-config-dir=PATH Python's config directory],
716 [ vi_cv_path_python_conf="${withval}" ] )
718 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
720 vi_cv_path_python_conf=
721 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
722 for subdir in lib64 lib share; do
723 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
724 if test -d "$d" && test -f "$d/config.c"; then
725 vi_cv_path_python_conf="$d"
731 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
733 if test "X$PYTHON_CONFDIR" = "X"; then
734 AC_MSG_RESULT([can't find it!])
737 dnl -- we need to examine Python's config/Makefile too
738 dnl see what the interpreter is built from
739 AC_CACHE_VAL(vi_cv_path_python_plibs,
742 tmp_mkf="$pwd/config-PyMake$$"
743 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
745 @echo "python_MODLIBS='$(MODLIBS)'"
746 @echo "python_LIBS='$(LIBS)'"
747 @echo "python_SYSLIBS='$(SYSLIBS)'"
748 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
750 dnl -- delete the lines from make about Entering/Leaving directory
751 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
752 rm -f -- "${tmp_mkf}"
753 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
754 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
755 vi_cv_path_python_plibs="-framework Python"
757 if test "${vi_cv_var_python_version}" = "1.4"; then
758 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
760 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
762 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
763 dnl remove -ltermcap, it can conflict with an earlier -lncurses
764 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
768 PYTHON_LIBS="${vi_cv_path_python_plibs}"
769 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
770 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
772 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}"
774 PYTHON_SRC="if_python.c"
775 dnl For Mac OSX 10.2 config.o is included in the Python library.
776 if test "x$MACOSX" = "xyes"; then
777 PYTHON_OBJ="objects/if_python.o"
779 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
781 if test "${vi_cv_var_python_version}" = "1.4"; then
782 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
784 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
786 dnl On FreeBSD linking with "-pthread" is required to use threads.
787 dnl _THREAD_SAFE must be used for compiling then.
788 dnl The "-pthread" is added to $LIBS, so that the following check for
789 dnl sigaltstack() will look in libc_r (it's there in libc!).
790 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
791 dnl will then define target-specific defines, e.g., -D_REENTRANT.
792 dnl Don't do this for Mac OSX, -pthread will generate a warning.
793 AC_MSG_CHECKING([if -pthread should be used])
796 dnl if test "x$MACOSX" != "xyes"; then
797 if test "`(uname) 2>/dev/null`" != Darwin; then
798 test "$GCC" = yes && threadsafe_flag="-pthread"
799 if test "`(uname) 2>/dev/null`" = FreeBSD; then
800 threadsafe_flag="-D_THREAD_SAFE"
801 thread_lib="-pthread"
805 if test -n "$threadsafe_flag"; then
807 CFLAGS="$CFLAGS $threadsafe_flag"
808 LIBS="$LIBS $thread_lib"
810 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
811 AC_MSG_RESULT(no); LIBS=$libs_save_old
818 dnl On Mac OS X, when an SDK has been explicitly chosen we can't rely
819 dnl on any of the search paths set above. The -framework flag does it
821 if test -n "$MACSDK"; then
823 PYTHON_LIBS=-framework Python
825 PYTHON_GETPATH_CFLAGS=
828 dnl check that compiling a simple program still works with the flags
829 dnl added for Python.
830 AC_MSG_CHECKING([if compile and link flags for Python are sane])
833 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
834 LIBS="$LIBS $PYTHON_LIBS"
836 AC_MSG_RESULT(yes); python_ok=yes,
837 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
840 if test $python_ok = yes; then
841 AC_DEFINE(FEAT_PYTHON)
852 AC_MSG_RESULT(too old)
856 AC_SUBST(PYTHON_CONFDIR)
857 AC_SUBST(PYTHON_LIBS)
858 AC_SUBST(PYTHON_GETPATH_CFLAGS)
859 AC_SUBST(PYTHON_CFLAGS)
863 AC_MSG_CHECKING(--enable-tclinterp argument)
864 AC_ARG_ENABLE(tclinterp,
865 [ --enable-tclinterp Include Tcl interpreter.], ,
866 [enable_tclinterp="no"])
867 AC_MSG_RESULT($enable_tclinterp)
869 if test "$enable_tclinterp" = "yes"; then
871 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
872 AC_MSG_CHECKING(--with-tclsh argument)
873 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
874 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
875 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
876 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
877 AC_SUBST(vi_cv_path_tcl)
879 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
880 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
881 tclsh_name="tclsh8.4"
882 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
884 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
885 tclsh_name="tclsh8.2"
886 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
888 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
889 tclsh_name="tclsh8.0"
890 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
892 dnl still didn't find it, try without version number
893 if test "X$vi_cv_path_tcl" = "X"; then
895 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
897 if test "X$vi_cv_path_tcl" != "X"; then
898 AC_MSG_CHECKING(Tcl version)
899 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
900 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
901 AC_MSG_RESULT($tclver - OK);
902 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 -`
904 AC_MSG_CHECKING(for location of Tcl include)
905 if test "x$MACOSX" != "xyes"; then
906 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
908 dnl For Mac OS X 10.3, use the OS-provided framework location
909 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
912 for try in $tclinc; do
913 if test -f "$try/tcl.h"; then
914 AC_MSG_RESULT($try/tcl.h)
919 if test -z "$TCL_INC"; then
920 AC_MSG_RESULT(<not found>)
923 if test -z "$SKIP_TCL"; then
924 AC_MSG_CHECKING(for location of tclConfig.sh script)
925 if test "x$MACOSX" != "xyes"; then
926 tclcnf=`echo $tclinc | sed s/include/lib/g`
927 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
929 dnl For Mac OS X 10.3, use the OS-provided framework location
930 tclcnf="/System/Library/Frameworks/Tcl.framework"
932 for try in $tclcnf; do
933 if test -f $try/tclConfig.sh; then
934 AC_MSG_RESULT($try/tclConfig.sh)
936 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
937 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
938 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
939 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
940 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'`
944 if test -z "$TCL_LIBS"; then
945 AC_MSG_RESULT(<not found>)
946 AC_MSG_CHECKING(for Tcl library by myself)
947 tcllib=`echo $tclinc | sed s/include/lib/g`
948 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
949 for ext in .so .a ; do
950 for ver in "" $tclver ; do
951 for try in $tcllib ; do
953 if test -f $try/lib$trylib ; then
954 AC_MSG_RESULT($try/lib$trylib)
955 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
956 if test "`(uname) 2>/dev/null`" = SunOS &&
957 uname -r | grep '^5' >/dev/null; then
958 TCL_LIBS="$TCL_LIBS -R $try"
965 if test -z "$TCL_LIBS"; then
966 AC_MSG_RESULT(<not found>)
970 if test -z "$SKIP_TCL"; then
973 TCL_OBJ=objects/if_tcl.o
975 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
979 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
989 AC_MSG_CHECKING(--enable-rubyinterp argument)
990 AC_ARG_ENABLE(rubyinterp,
991 [ --enable-rubyinterp Include Ruby interpreter.], ,
992 [enable_rubyinterp="no"])
993 AC_MSG_RESULT($enable_rubyinterp)
994 if test "$enable_rubyinterp" = "yes"; then
995 AC_MSG_CHECKING(--with-ruby-command argument)
996 AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
997 RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
998 RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
999 AC_SUBST(vi_cv_path_ruby)
1000 AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
1001 if test "X$vi_cv_path_ruby" != "X"; then
1002 AC_MSG_CHECKING(Ruby version)
1003 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
1005 AC_MSG_CHECKING(Ruby header files)
1006 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
1007 if test "X$rubyhdrdir" != "X"; then
1008 AC_MSG_RESULT($rubyhdrdir)
1009 RUBY_CFLAGS="-I$rubyhdrdir"
1010 rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
1011 if test -d "$rubyhdrdir/$rubyarch"; then
1012 RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
1014 rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
1015 RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
1016 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
1017 if test "X$rubylibs" != "X"; then
1018 RUBY_LIBS="$rubylibs"
1020 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
1021 if test -f "$rubyhdrdir/$librubyarg"; then
1022 librubyarg="$rubyhdrdir/$librubyarg"
1024 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
1025 if test -d "/System/Library/Frameworks/Ruby.framework"; then
1026 dnl On Mac OS X it is safer to just use the -framework flag
1027 RUBY_LIBS="-framework Ruby"
1028 dnl Don't include the -I flag when -framework is set
1031 elif test -f "$rubylibdir/$librubyarg"; then
1032 librubyarg="$rubylibdir/$librubyarg"
1033 elif test "$librubyarg" = "libruby.a"; then
1034 dnl required on Mac OS 10.3 where libruby.a doesn't exist
1037 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
1041 if test "X$librubyarg" != "X"; then
1042 RUBY_LIBS="$librubyarg $RUBY_LIBS"
1044 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
1045 if test "x$MACOSX" = "xyes"; then
1046 dnl Ruby on Mac OS X 10.5 and later adds "-arch" flags but these
1047 dnl should only be included if requested by passing --with-archs
1048 dnl to configure, so strip these flags first (if present)
1049 rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch[[^-]]*//g'`
1051 if test "X$rubyldflags" != "X"; then
1052 LDFLAGS="$rubyldflags $LDFLAGS"
1054 RUBY_SRC="if_ruby.c"
1055 RUBY_OBJ="objects/if_ruby.o"
1056 RUBY_PRO="if_ruby.pro"
1058 AC_DEFINE(FEAT_RUBY)
1060 AC_MSG_RESULT(not found; disabling Ruby)
1063 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1070 AC_SUBST(RUBY_CFLAGS)
1073 AC_MSG_CHECKING(--enable-cscope argument)
1074 AC_ARG_ENABLE(cscope,
1075 [ --enable-cscope Include cscope interface.], ,
1076 [enable_cscope="no"])
1077 AC_MSG_RESULT($enable_cscope)
1078 if test "$enable_cscope" = "yes"; then
1079 AC_DEFINE(FEAT_CSCOPE)
1082 AC_MSG_CHECKING(--enable-workshop argument)
1083 AC_ARG_ENABLE(workshop,
1084 [ --enable-workshop Include Sun Visual Workshop support.], ,
1085 [enable_workshop="no"])
1086 AC_MSG_RESULT($enable_workshop)
1087 if test "$enable_workshop" = "yes"; then
1088 AC_DEFINE(FEAT_SUN_WORKSHOP)
1089 WORKSHOP_SRC="workshop.c integration.c"
1090 AC_SUBST(WORKSHOP_SRC)
1091 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1092 AC_SUBST(WORKSHOP_OBJ)
1093 if test "${enable_gui-xxx}" = xxx; then
1098 AC_MSG_CHECKING(--disable-netbeans argument)
1099 AC_ARG_ENABLE(netbeans,
1100 [ --disable-netbeans Disable NetBeans integration support.],
1101 , [enable_netbeans="yes"])
1102 if test "$enable_netbeans" = "yes"; then
1104 dnl On Solaris we need the socket and nsl library.
1105 AC_CHECK_LIB(socket, socket)
1106 AC_CHECK_LIB(nsl, gethostbyname)
1107 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1114 #include <netinet/in.h>
1116 #include <sys/types.h>
1117 #include <sys/socket.h>
1118 /* Check bitfields */
1120 unsigned int initDone:1;
1124 /* Check creating a socket. */
1125 struct sockaddr_in server;
1126 (void)socket(AF_INET, SOCK_STREAM, 0);
1128 (void)gethostbyname("microsoft.com");
1129 if (errno == ECONNREFUSED)
1130 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1133 AC_MSG_RESULT(no); enable_netbeans="no")
1137 if test "$enable_netbeans" = "yes"; then
1138 AC_DEFINE(FEAT_NETBEANS_INTG)
1139 NETBEANS_SRC="netbeans.c"
1140 AC_SUBST(NETBEANS_SRC)
1141 NETBEANS_OBJ="objects/netbeans.o"
1142 AC_SUBST(NETBEANS_OBJ)
1145 AC_MSG_CHECKING(--enable-sniff argument)
1146 AC_ARG_ENABLE(sniff,
1147 [ --enable-sniff Include Sniff interface.], ,
1148 [enable_sniff="no"])
1149 AC_MSG_RESULT($enable_sniff)
1150 if test "$enable_sniff" = "yes"; then
1151 AC_DEFINE(FEAT_SNIFF)
1152 SNIFF_SRC="if_sniff.c"
1154 SNIFF_OBJ="objects/if_sniff.o"
1158 AC_MSG_CHECKING(--enable-multibyte argument)
1159 AC_ARG_ENABLE(multibyte,
1160 [ --enable-multibyte Include multibyte editing support.], ,
1161 [enable_multibyte="no"])
1162 AC_MSG_RESULT($enable_multibyte)
1163 if test "$enable_multibyte" = "yes"; then
1164 AC_DEFINE(FEAT_MBYTE)
1167 AC_MSG_CHECKING(--enable-hangulinput argument)
1168 AC_ARG_ENABLE(hangulinput,
1169 [ --enable-hangulinput Include Hangul input support.], ,
1170 [enable_hangulinput="no"])
1171 AC_MSG_RESULT($enable_hangulinput)
1173 AC_MSG_CHECKING(--enable-xim argument)
1175 [ --enable-xim Include XIM input support.],
1176 AC_MSG_RESULT($enable_xim),
1177 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1178 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1180 AC_MSG_CHECKING(--enable-fontset argument)
1181 AC_ARG_ENABLE(fontset,
1182 [ --enable-fontset Include X fontset output support.], ,
1183 [enable_fontset="no"])
1184 AC_MSG_RESULT($enable_fontset)
1185 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1187 test -z "$with_x" && with_x=yes
1188 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1189 if test "$with_x" = no; then
1190 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1192 dnl Do this check early, so that its failure can override user requests.
1194 AC_PATH_PROG(xmkmfpath, xmkmf)
1198 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1199 dnl be compiled with a special option.
1200 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1201 if test "$OS390Unix" = "yes"; then
1202 CFLAGS="$CFLAGS -W c,dll"
1203 LDFLAGS="$LDFLAGS -W l,dll"
1204 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1207 dnl On my HPUX system the X include dir is found, but the lib dir not.
1208 dnl This is a desparate try to fix this.
1210 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1211 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1212 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1213 X_LIBS="$X_LIBS -L$x_libraries"
1214 if test "`(uname) 2>/dev/null`" = SunOS &&
1215 uname -r | grep '^5' >/dev/null; then
1216 X_LIBS="$X_LIBS -R $x_libraries"
1220 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1221 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1222 AC_MSG_RESULT(Corrected X includes to $x_includes)
1223 X_CFLAGS="$X_CFLAGS -I$x_includes"
1226 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1227 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1228 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1229 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1230 dnl Same for "-R/usr/lib ".
1231 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1234 dnl Check if the X11 header files are correctly installed. On some systems
1235 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1237 AC_MSG_CHECKING(if X11 header files can be found)
1239 CFLAGS="$CFLAGS $X_CFLAGS"
1240 AC_TRY_COMPILE([#include <X11/Xlib.h>
1241 #include <X11/Intrinsic.h>], ,
1243 AC_MSG_RESULT(no); no_x=yes)
1246 if test "${no_x-no}" = yes; then
1253 ac_save_LDFLAGS="$LDFLAGS"
1254 LDFLAGS="-L$x_libraries $LDFLAGS"
1256 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1257 dnl For HP-UX 10.20 it must be before -lSM -lICE
1258 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1259 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1261 dnl Some systems need -lnsl -lsocket when testing for ICE.
1262 dnl The check above doesn't do this, try here (again). Also needed to get
1263 dnl them after Xdmcp. link.sh will remove them when not needed.
1264 dnl Check for other function than above to avoid the cached value
1265 AC_CHECK_LIB(ICE, IceOpenConnection,
1266 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1268 dnl Check for -lXpm (needed for some versions of Motif)
1269 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1270 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1271 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1273 dnl Check that the X11 header files don't use implicit declarations
1274 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1276 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1277 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1279 CFLAGS="$CFLAGS -Wno-implicit-int"
1280 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1281 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1282 AC_MSG_RESULT(test failed)
1287 LDFLAGS="$ac_save_LDFLAGS"
1289 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1290 AC_CACHE_VAL(ac_cv_small_wchar_t,
1292 #include <X11/Xlib.h>
1294 # include <stdlib.h>
1295 # include <stddef.h>
1299 if (sizeof(wchar_t) <= 2)
1303 ac_cv_small_wchar_t="no",
1304 ac_cv_small_wchar_t="yes",
1305 AC_MSG_ERROR(failed to compile test program))])
1306 AC_MSG_RESULT($ac_cv_small_wchar_t)
1307 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1308 AC_DEFINE(SMALL_WCHAR_T)
1314 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1316 AC_MSG_CHECKING(--enable-gui argument)
1318 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon/macvim]], , enable_gui="auto")
1320 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1321 dnl Do not use character classes for portability with old tools.
1322 enable_gui_canon=`echo "_$enable_gui" | \
1323 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1325 dnl Skip everything by default.
1337 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1339 case "$enable_gui_canon" in
1340 no) AC_MSG_RESULT(no GUI support)
1342 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1343 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1344 photon) AC_MSG_RESULT(Photon GUI support) ;;
1345 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1349 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1352 case "$enable_gui_canon" in
1353 no) AC_MSG_RESULT(no GUI support)
1356 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1357 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1358 carbon) AC_MSG_RESULT(Carbon GUI support)
1360 macvim) AC_MSG_RESULT(MacVim GUI support)
1362 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1369 case "$enable_gui_canon" in
1370 no|none) AC_MSG_RESULT(no GUI support) ;;
1371 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1380 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1382 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1385 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1388 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1392 motif) AC_MSG_RESULT(Motif GUI support)
1394 athena) AC_MSG_RESULT(Athena GUI support)
1396 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1398 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1403 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1404 AC_MSG_CHECKING(whether or not to look for GTK)
1405 AC_ARG_ENABLE(gtk-check,
1406 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1407 , enable_gtk_check="yes")
1408 AC_MSG_RESULT($enable_gtk_check)
1409 if test "x$enable_gtk_check" = "xno"; then
1415 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1416 -a "$enable_gui_canon" != "gnome2"; then
1417 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1418 AC_ARG_ENABLE(gtk2-check,
1419 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1420 , enable_gtk2_check="yes")
1421 AC_MSG_RESULT($enable_gtk2_check)
1422 if test "x$enable_gtk2_check" = "xno"; then
1427 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1428 -a "$enable_gui_canon" != "gnome2"; then
1429 AC_MSG_CHECKING(whether or not to look for GNOME)
1430 AC_ARG_ENABLE(gnome-check,
1431 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1432 , enable_gnome_check="no")
1433 AC_MSG_RESULT($enable_gnome_check)
1434 if test "x$enable_gnome_check" = "xno"; then
1439 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1440 AC_MSG_CHECKING(whether or not to look for Motif)
1441 AC_ARG_ENABLE(motif-check,
1442 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1443 , enable_motif_check="yes")
1444 AC_MSG_RESULT($enable_motif_check)
1445 if test "x$enable_motif_check" = "xno"; then
1450 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1451 AC_MSG_CHECKING(whether or not to look for Athena)
1452 AC_ARG_ENABLE(athena-check,
1453 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1454 , enable_athena_check="yes")
1455 AC_MSG_RESULT($enable_athena_check)
1456 if test "x$enable_athena_check" = "xno"; then
1461 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1462 AC_MSG_CHECKING(whether or not to look for neXtaw)
1463 AC_ARG_ENABLE(nextaw-check,
1464 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1465 , enable_nextaw_check="yes")
1466 AC_MSG_RESULT($enable_nextaw_check);
1467 if test "x$enable_nextaw_check" = "xno"; then
1472 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1473 AC_MSG_CHECKING(whether or not to look for Carbon)
1474 AC_ARG_ENABLE(carbon-check,
1475 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1476 , enable_carbon_check="yes")
1477 AC_MSG_RESULT($enable_carbon_check);
1478 if test "x$enable_carbon_check" = "xno"; then
1483 if test "x$SKIP_MACVIM" != "xYES" -a "$enable_gui_canon" != "macvim"; then
1484 AC_MSG_CHECKING(whether or not to look for MacVim)
1485 AC_ARG_ENABLE(macvim-check,
1486 [ --enable-macvim-check If auto-select GUI, check for MacVim [default=yes]],
1487 , enable_macvim_check="yes")
1488 AC_MSG_RESULT($enable_macvim_check);
1489 if test "x$enable_macvim_check" = "xno"; then
1494 if test "x$MACOSX" = "xyes"; then
1495 dnl Default install directory is not /usr/local
1496 if test x$prefix = xNONE; then
1497 prefix=/Applications
1500 if test -z "$SKIP_MACVIM" -a "x$COCOA" = "xyes"; then
1501 AC_MSG_CHECKING(for MacVim GUI)
1502 dnl already did the check, just give the message
1505 dnl Sorry for the hard coded default
1506 datadir='${prefix}/MacVim.app/Contents/Resources'
1507 elif test -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1508 AC_MSG_CHECKING(for Carbon GUI)
1509 dnl already did the check, just give the message
1512 dnl Sorry for the hard coded default
1513 datadir='${prefix}/Vim.app/Contents/Resources'
1515 CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
1518 if test "$VIMNAME" = "vim"; then
1522 dnl skip everything else
1535 dnl Get the cflags and libraries from the gtk-config script
1538 dnl define an autoconf function to check for a specified version of GTK, and
1539 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1541 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1542 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1544 AC_DEFUN(AM_PATH_GTK,
1546 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1548 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1549 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1551 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1552 && $PKG_CONFIG --exists gtk+-2.0; then
1554 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1555 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1556 dnl something like that.
1557 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1558 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1559 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1560 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1561 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1562 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1563 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1564 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1565 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1567 elif test "X$GTK_CONFIG" != "Xno"; then
1569 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1571 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1572 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1573 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1574 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1575 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1576 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1577 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1583 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1585 ac_save_CFLAGS="$CFLAGS"
1586 ac_save_LIBS="$LIBS"
1587 CFLAGS="$CFLAGS $GTK_CFLAGS"
1588 LIBS="$LIBS $GTK_LIBS"
1591 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1592 dnl checks the results of gtk-config to some extent
1596 #include <gtk/gtk.h>
1599 # include <stdlib.h>
1600 # include <stddef.h>
1606 int major, minor, micro;
1609 system ("touch conf.gtktest");
1611 /* HP/UX 9 (%@#!) writes to sscanf strings */
1612 tmp_version = g_strdup("$min_gtk_version");
1613 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1614 printf("%s, bad version string\n", "$min_gtk_version");
1618 if ((gtk_major_version > major) ||
1619 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1620 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1621 (gtk_micro_version >= micro)))
1627 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1628 CFLAGS="$ac_save_CFLAGS"
1629 LIBS="$ac_save_LIBS"
1632 if test "x$no_gtk" = x ; then
1633 if test "x$enable_gtktest" = "xyes"; then
1634 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1636 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1638 ifelse([$2], , :, [$2])
1644 ifelse([$3], , :, [$3])
1651 ifelse([$3], , :, [$3])
1653 AC_SUBST(GTK_CFLAGS)
1658 dnl ---------------------------------------------------------------------------
1660 dnl ---------------------------------------------------------------------------
1661 AC_DEFUN([GNOME_INIT_HOOK],
1663 AC_SUBST(GNOME_LIBS)
1664 AC_SUBST(GNOME_LIBDIR)
1665 AC_SUBST(GNOME_INCLUDEDIR)
1667 AC_ARG_WITH(gnome-includes,
1668 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1669 [CFLAGS="$CFLAGS -I$withval"]
1672 AC_ARG_WITH(gnome-libs,
1673 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1674 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1678 [ --with-gnome Specify prefix for GNOME files],
1679 if test x$withval = xyes; then
1681 ifelse([$1], [], :, [$1])
1683 if test "x$withval" = xno; then
1687 LDFLAGS="$LDFLAGS -L$withval/lib"
1688 CFLAGS="$CFLAGS -I$withval/include"
1689 gnome_prefix=$withval/lib
1694 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1696 AC_MSG_CHECKING(for libgnomeui-2.0)
1697 if $PKG_CONFIG --exists libgnomeui-2.0; then
1699 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1700 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1701 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1703 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1704 dnl This might not be the right way but it works for me...
1705 AC_MSG_CHECKING(for FreeBSD)
1706 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1707 AC_MSG_RESULT(yes, adding -pthread)
1708 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1709 GNOME_LIBS="$GNOME_LIBS -pthread"
1715 AC_MSG_RESULT(not found)
1716 if test "x$2" = xfail; then
1717 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1721 elif test "x$want_gnome" = xyes; then
1723 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1724 if test "$GNOME_CONFIG" = "no"; then
1725 no_gnome_config="yes"
1727 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1728 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1730 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1731 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1732 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1736 no_gnome_config="yes"
1740 if test x$exec_prefix = xNONE; then
1741 if test x$prefix = xNONE; then
1742 gnome_prefix=$ac_default_prefix/lib
1744 gnome_prefix=$prefix/lib
1747 gnome_prefix=`eval echo \`echo $libdir\``
1750 if test "$no_gnome_config" = "yes"; then
1751 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1752 if test -f $gnome_prefix/gnomeConf.sh; then
1753 AC_MSG_RESULT(found)
1754 echo "loading gnome configuration from" \
1755 "$gnome_prefix/gnomeConf.sh"
1756 . $gnome_prefix/gnomeConf.sh
1759 AC_MSG_RESULT(not found)
1760 if test x$2 = xfail; then
1761 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1769 AC_DEFUN([GNOME_INIT],[
1770 GNOME_INIT_HOOK([],fail)
1774 dnl ---------------------------------------------------------------------------
1775 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1776 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1777 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1778 dnl ---------------------------------------------------------------------------
1779 if test -z "$SKIP_GTK"; then
1781 AC_MSG_CHECKING(--with-gtk-prefix argument)
1782 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1783 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1784 gtk_config_prefix=""; AC_MSG_RESULT(no))
1786 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1787 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1788 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1789 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1791 AC_MSG_CHECKING(--disable-gtktest argument)
1792 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1793 , enable_gtktest=yes)
1794 if test "x$enable_gtktest" = "xyes" ; then
1795 AC_MSG_RESULT(gtk test enabled)
1797 AC_MSG_RESULT(gtk test disabled)
1800 if test "x$gtk_config_prefix" != "x" ; then
1801 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1802 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1804 if test "x$gtk_config_exec_prefix" != "x" ; then
1805 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1806 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1808 if test "X$GTK_CONFIG" = "X"; then
1809 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1810 if test "X$GTK_CONFIG" = "Xno"; then
1811 dnl Some distributions call it gtk12-config, annoying!
1812 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1813 GTK_CONFIG="$GTK12_CONFIG"
1816 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1818 if test "X$PKG_CONFIG" = "X"; then
1819 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1822 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1823 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1824 dnl problems (bold fonts, --remote doesn't work).
1825 if test "X$SKIP_GTK2" != "XYES"; then
1827 [GUI_LIB_LOC="$GTK_LIBDIR"
1828 GTK_LIBNAME="$GTK_LIBS"
1829 GUI_INC_LOC="$GTK_CFLAGS"], )
1830 if test "x$GTK_CFLAGS" != "x"; then
1835 AC_SUBST(GTK_LIBNAME)
1839 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1840 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1841 dnl were test versions.
1842 if test "x$GUITYPE" != "xGTK"; then
1845 [GTK_LIBNAME="$GTK_LIBS"
1846 GUI_INC_LOC="$GTK_CFLAGS"], )
1847 if test "x$GTK_CFLAGS" != "x"; then
1852 AC_SUBST(GTK_LIBNAME)
1856 dnl Give a warning if GTK is older than 1.2.3
1857 if test "x$GUITYPE" = "xGTK"; then
1858 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1859 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1860 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1863 if test "0$gtk_major_version" -ge 2; then
1864 AC_DEFINE(HAVE_GTK2)
1865 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1866 || test "0$gtk_minor_version" -ge 2 \
1867 || test "0$gtk_major_version" -gt 2; then
1868 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1872 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1874 if test -z "$SKIP_GNOME"; then
1876 GNOME_INIT_HOOK([have_gnome=yes])
1877 if test x$have_gnome = xyes ; then
1878 AC_DEFINE(FEAT_GUI_GNOME)
1879 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1880 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1889 dnl Check for Motif include files location.
1890 dnl The LAST one found is used, this makes the highest version to be used,
1891 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1893 if test -z "$SKIP_MOTIF"; then
1894 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"
1895 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1896 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1898 AC_MSG_CHECKING(for location of Motif GUI includes)
1899 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1901 for try in $gui_includes; do
1902 if test -f "$try/Xm/Xm.h"; then
1906 if test -n "$GUI_INC_LOC"; then
1907 if test "$GUI_INC_LOC" = /usr/include; then
1909 AC_MSG_RESULT(in default path)
1911 AC_MSG_RESULT($GUI_INC_LOC)
1914 AC_MSG_RESULT(<not found>)
1919 dnl Check for Motif library files location. In the same order as the include
1920 dnl files, to avoid a mixup if several versions are present
1922 if test -z "$SKIP_MOTIF"; then
1923 AC_MSG_CHECKING(--with-motif-lib argument)
1924 AC_ARG_WITH(motif-lib,
1925 [ --with-motif-lib=STRING Library for Motif ],
1926 [ MOTIF_LIBNAME="${withval}" ] )
1928 if test -n "$MOTIF_LIBNAME"; then
1929 AC_MSG_RESULT($MOTIF_LIBNAME)
1934 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1935 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1937 AC_MSG_CHECKING(for location of Motif GUI libs)
1938 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"
1940 for try in $gui_libs; do
1941 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1942 if test -f "$libtry"; then
1947 if test -n "$GUI_LIB_LOC"; then
1948 dnl Remove /usr/lib, it causes trouble on some systems
1949 if test "$GUI_LIB_LOC" = /usr/lib; then
1951 AC_MSG_RESULT(in default path)
1953 if test -n "$GUI_LIB_LOC"; then
1954 AC_MSG_RESULT($GUI_LIB_LOC)
1955 if test "`(uname) 2>/dev/null`" = SunOS &&
1956 uname -r | grep '^5' >/dev/null; then
1957 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1963 AC_MSG_RESULT(<not found>)
1969 if test -z "$SKIP_MOTIF"; then
1973 AC_SUBST(MOTIF_LIBNAME)
1976 dnl Check if the Athena files can be found
1980 if test -z "$SKIP_ATHENA"; then
1981 AC_MSG_CHECKING(if Athena header files can be found)
1983 CFLAGS="$CFLAGS $X_CFLAGS"
1985 #include <X11/Intrinsic.h>
1986 #include <X11/Xaw/Paned.h>], ,
1988 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1992 if test -z "$SKIP_ATHENA"; then
1996 if test -z "$SKIP_NEXTAW"; then
1997 AC_MSG_CHECKING(if neXtaw header files can be found)
1999 CFLAGS="$CFLAGS $X_CFLAGS"
2001 #include <X11/Intrinsic.h>
2002 #include <X11/neXtaw/Paned.h>], ,
2004 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
2008 if test -z "$SKIP_NEXTAW"; then
2012 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2013 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
2014 dnl Avoid adding it when it twice
2015 if test -n "$GUI_INC_LOC"; then
2016 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
2018 if test -n "$GUI_LIB_LOC"; then
2019 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
2022 dnl Check for -lXext and then for -lXmu
2023 ldflags_save=$LDFLAGS
2024 LDFLAGS="$X_LIBS $LDFLAGS"
2025 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
2026 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2027 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
2028 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
2029 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2030 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
2031 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2032 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
2033 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2034 if test -z "$SKIP_MOTIF"; then
2035 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
2036 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2038 LDFLAGS=$ldflags_save
2040 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
2041 AC_MSG_CHECKING(for extra X11 defines)
2044 if mkdir conftestdir; then
2046 cat > Imakefile <<'EOF'
2048 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2050 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2051 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2056 if test -z "$NARROW_PROTO"; then
2059 AC_MSG_RESULT($NARROW_PROTO)
2061 AC_SUBST(NARROW_PROTO)
2064 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2065 dnl use the X11 include path
2066 if test "$enable_xsmp" = "yes"; then
2067 cppflags_save=$CPPFLAGS
2068 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2069 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2070 CPPFLAGS=$cppflags_save
2074 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2075 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2076 cppflags_save=$CPPFLAGS
2077 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2078 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2080 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2081 if test ! "$enable_xim" = "no"; then
2082 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2083 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2085 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2087 CPPFLAGS=$cppflags_save
2089 dnl automatically enable XIM when hangul input isn't enabled
2090 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2091 -a "x$GUITYPE" != "xNONE" ; then
2092 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2097 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2098 cppflags_save=$CPPFLAGS
2099 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2100 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2101 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2103 #include <X11/Intrinsic.h>
2104 #include <X11/Xmu/Editres.h>],
2107 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2109 CPPFLAGS=$cppflags_save
2112 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2113 if test -z "$SKIP_MOTIF"; then
2114 cppflags_save=$CPPFLAGS
2115 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2116 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2117 Xm/UnhighlightT.h Xm/Notebook.h)
2119 if test $ac_cv_header_Xm_XpmP_h = yes; then
2120 dnl Solaris uses XpmAttributes_21, very annoying.
2121 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2122 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2123 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2124 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2127 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2129 CPPFLAGS=$cppflags_save
2132 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2133 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2136 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2137 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2140 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2141 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2145 if test -z "$SKIP_PHOTON"; then
2149 AC_SUBST(GUI_INC_LOC)
2150 AC_SUBST(GUI_LIB_LOC)
2152 AC_SUBST(GUI_X_LIBS)
2154 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2155 AC_MSG_ERROR([cannot use workshop without Motif])
2158 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2159 if test "$enable_xim" = "yes"; then
2162 if test "$enable_fontset" = "yes"; then
2163 AC_DEFINE(FEAT_XFONTSET)
2167 dnl ---------------------------------------------------------------------------
2168 dnl end of GUI-checking
2169 dnl ---------------------------------------------------------------------------
2172 dnl Only really enable hangul input when GUI and XFONTSET are available
2173 if test "$enable_hangulinput" = "yes"; then
2174 if test "x$GUITYPE" = "xNONE"; then
2175 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2176 enable_hangulinput=no
2178 AC_DEFINE(FEAT_HANGULIN)
2179 HANGULIN_SRC=hangulin.c
2180 AC_SUBST(HANGULIN_SRC)
2181 HANGULIN_OBJ=objects/hangulin.o
2182 AC_SUBST(HANGULIN_OBJ)
2186 dnl Checks for libraries and include files.
2188 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2191 #include "confdefs.h"
2194 # include <stdlib.h>
2195 # include <stddef.h>
2197 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2199 vim_cv_toupper_broken=yes
2201 vim_cv_toupper_broken=no
2203 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2206 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2207 AC_DEFINE(BROKEN_TOUPPER)
2210 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2211 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2212 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2215 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2216 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2217 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2220 dnl Checks for header files.
2221 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2222 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2223 if test "$HAS_ELF" = 1; then
2224 AC_CHECK_LIB(elf, main)
2229 dnl If sys/wait.h is not found it might still exist but not be POSIX
2230 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2231 if test $ac_cv_header_sys_wait_h = no; then
2232 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2233 AC_TRY_COMPILE([#include <sys/wait.h>],
2234 [union wait xx, yy; xx = yy],
2236 AC_DEFINE(HAVE_SYS_WAIT_H)
2237 AC_DEFINE(HAVE_UNION_WAIT),
2241 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2242 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2243 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2244 sys/resource.h sys/systeminfo.h locale.h \
2245 sys/stream.h termios.h libc.h sys/statfs.h \
2246 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2247 libgen.h util/debug.h util/msg18n.h frame.h \
2248 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2250 dnl sys/ptem.h depends on sys/stream.h on Solaris
2251 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2252 [#if defined HAVE_SYS_STREAM_H
2253 # include <sys/stream.h>
2256 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2257 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2258 [#if defined HAVE_SYS_PARAM_H
2259 # include <sys/param.h>
2263 dnl pthread_np.h may exist but can only be used after including pthread.h
2264 AC_MSG_CHECKING([for pthread_np.h])
2266 #include <pthread.h>
2267 #include <pthread_np.h>],
2270 AC_DEFINE(HAVE_PTHREAD_NP_H),
2273 AC_CHECK_HEADERS(strings.h)
2274 if test "x$MACOSX" = "xyes"; then
2275 dnl The strings.h file on OS/X contains a warning and nothing useful.
2276 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2279 dnl Check if strings.h and string.h can both be included when defined.
2280 AC_MSG_CHECKING([if strings.h can be included after string.h])
2281 cppflags_save=$CPPFLAGS
2282 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2284 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2285 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2286 /* but don't do it on AIX 5.1 (Uribarri) */
2289 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2291 #ifdef HAVE_STRING_H
2292 # include <string.h>
2294 #if defined(HAVE_STRINGS_H)
2295 # include <strings.h>
2299 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2301 CPPFLAGS=$cppflags_save
2304 dnl Checks for typedefs, structures, and compiler characteristics.
2305 AC_PROG_GCC_TRADITIONAL
2314 AC_CHECK_TYPE(ino_t, long)
2315 AC_CHECK_TYPE(dev_t, unsigned)
2317 AC_MSG_CHECKING(for rlim_t)
2318 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2319 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2322 changequote(<<,>>)dnl
2323 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2326 #include <sys/types.h>
2328 # include <stdlib.h>
2329 # include <stddef.h>
2331 #ifdef HAVE_SYS_RESOURCE_H
2332 # include <sys/resource.h>
2334 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2335 AC_MSG_RESULT($ac_cv_type_rlim_t)
2337 if test $ac_cv_type_rlim_t = no; then
2338 cat >> confdefs.h <<\EOF
2339 #define rlim_t unsigned long
2343 AC_MSG_CHECKING(for stack_t)
2344 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2345 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2347 AC_EGREP_CPP(stack_t,
2349 #include <sys/types.h>
2351 # include <stdlib.h>
2352 # include <stddef.h>
2355 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2356 AC_MSG_RESULT($ac_cv_type_stack_t)
2358 if test $ac_cv_type_stack_t = no; then
2359 cat >> confdefs.h <<\EOF
2360 #define stack_t struct sigaltstack
2364 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2365 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2367 #include <sys/types.h>
2369 # include <stdlib.h>
2370 # include <stddef.h>
2373 #include "confdefs.h"
2374 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2375 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2379 AC_MSG_CHECKING(--with-tlib argument)
2380 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2381 if test -n "$with_tlib"; then
2382 AC_MSG_RESULT($with_tlib)
2383 LIBS="$LIBS -l$with_tlib"
2384 AC_MSG_CHECKING(for linking with $with_tlib library)
2385 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2386 dnl Need to check for tgetent() below.
2389 AC_MSG_RESULT([empty: automatic terminal library selection])
2390 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2391 dnl curses, because curses is much slower.
2392 dnl Newer versions of ncurses are preferred over anything.
2393 dnl Older versions of ncurses have bugs, get a new one!
2394 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2395 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2396 case "`uname -s 2>/dev/null`" in
2397 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2398 *) tlibs="ncurses termlib termcap curses";;
2400 for libname in $tlibs; do
2401 AC_CHECK_LIB(${libname}, tgetent,,)
2402 if test "x$olibs" != "x$LIBS"; then
2403 dnl It's possible that a library is found but it doesn't work
2404 dnl e.g., shared library that cannot be found
2405 dnl compile and run a test program to be sure
2407 #ifdef HAVE_TERMCAP_H
2408 # include <termcap.h>
2411 # include <stdlib.h>
2412 # include <stddef.h>
2414 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2415 res="OK", res="FAIL", res="FAIL")
2416 if test "$res" = "OK"; then
2419 AC_MSG_RESULT($libname library is not usable)
2423 if test "x$olibs" = "x$LIBS"; then
2424 AC_MSG_RESULT(no terminal library found)
2428 if test "x$olibs" = "x$LIBS"; then
2429 AC_MSG_CHECKING([for tgetent()])
2431 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2433 AC_MSG_ERROR([NOT FOUND!
2434 You need to install a terminal library; for example ncurses.
2435 Or specify the name of the library with --with-tlib.]))
2438 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2441 #include "confdefs.h"
2442 #ifdef HAVE_TERMCAP_H
2443 # include <termcap.h>
2445 #ifdef HAVE_STRING_H
2446 # include <string.h>
2449 # include <stdlib.h>
2450 # include <stddef.h>
2453 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2459 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2463 if test "x$vim_cv_terminfo" = "xyes" ; then
2467 if test "x$olibs" != "x$LIBS"; then
2468 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2471 #include "confdefs.h"
2472 #ifdef HAVE_TERMCAP_H
2473 # include <termcap.h>
2476 # include <stdlib.h>
2477 # include <stddef.h>
2480 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2484 vim_cv_tgent=non-zero
2486 AC_MSG_ERROR(failed to compile test program.)
2490 if test "x$vim_cv_tgent" = "xzero" ; then
2491 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2495 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2497 #ifdef HAVE_TERMCAP_H
2498 # include <termcap.h>
2500 ], [ospeed = 20000],
2501 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2503 AC_MSG_CHECKING(whether ospeed can be extern)
2505 #ifdef HAVE_TERMCAP_H
2506 # include <termcap.h>
2508 extern short ospeed;
2509 ], [ospeed = 20000],
2510 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2514 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2516 #ifdef HAVE_TERMCAP_H
2517 # include <termcap.h>
2519 ], [if (UP == 0 && BC == 0) PC = 1],
2520 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2522 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2524 #ifdef HAVE_TERMCAP_H
2525 # include <termcap.h>
2527 extern char *UP, *BC, PC;
2528 ], [if (UP == 0 && BC == 0) PC = 1],
2529 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2533 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2535 #ifdef HAVE_TERMCAP_H
2536 # include <termcap.h>
2538 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2539 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2542 dnl On some SCO machines sys/select redefines struct timeval
2543 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2545 #include <sys/types.h>
2546 #include <sys/time.h>
2547 #include <sys/select.h>], ,
2549 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2552 dnl AC_DECL_SYS_SIGLIST
2554 dnl Checks for pty.c (copied from screen) ==========================
2555 AC_MSG_CHECKING(for /dev/ptc)
2556 if test -r /dev/ptc; then
2557 AC_DEFINE(HAVE_DEV_PTC)
2563 AC_MSG_CHECKING(for SVR4 ptys)
2564 if test -c /dev/ptmx ; then
2565 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2566 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2572 AC_MSG_CHECKING(for ptyranges)
2573 if test -d /dev/ptym ; then
2583 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2584 dnl if test -c /dev/ptyp19; then
2585 dnl ptys=`echo /dev/ptyp??`
2587 dnl ptys=`echo $pdir/pty??`
2589 if test "$ptys" != "$pdir/pty??" ; then
2590 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2591 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2592 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2593 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2594 AC_MSG_RESULT([$p0 / $p1])
2596 AC_MSG_RESULT([don't know])
2599 dnl **** pty mode/group handling ****
2601 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2603 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2606 #include "confdefs.h"
2607 #include <sys/types.h>
2609 # include <stdlib.h>
2610 # include <stddef.h>
2612 #ifdef HAVE_UNISTD_H
2615 #include <sys/stat.h>
2624 if (!(x = ttyname(0))) exit(1);
2625 if (stat(x, &sb)) exit(1);
2627 if (om & 002) exit(0);
2628 m = system("mesg y");
2629 if (m == -1 || m == 127) exit(1);
2630 if (stat(x, &sb)) exit(1);
2632 if (chmod(x, om)) exit(1);
2633 if (m & 002) exit(0);
2634 if (sb.st_gid == getgid()) exit(1);
2635 if (!(fp=fopen("conftest_grp", "w")))
2637 fprintf(fp, "%d\n", sb.st_gid);
2642 if test -f conftest_grp; then
2643 vim_cv_tty_group=`cat conftest_grp`
2644 if test "x$vim_cv_tty_mode" = "x" ; then
2645 vim_cv_tty_mode=0620
2647 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2649 vim_cv_tty_group=world
2650 AC_MSG_RESULT([ptys are world accessible])
2653 vim_cv_tty_group=world
2654 AC_MSG_RESULT([can't determine - assume ptys are world accessible])
2656 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2661 if test "x$vim_cv_tty_group" != "xworld" ; then
2662 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2663 if test "x$vim_cv_tty_mode" = "x" ; then
2664 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)])
2666 AC_DEFINE(PTYMODE, 0620)
2670 dnl Checks for library functions. ===================================
2674 dnl find out what to use at the end of a signal function
2675 if test $ac_cv_type_signal = void; then
2676 AC_DEFINE(SIGRETURN, [return])
2678 AC_DEFINE(SIGRETURN, [return 0])
2681 dnl check if struct sigcontext is defined (used for SGI only)
2682 AC_MSG_CHECKING(for struct sigcontext)
2687 struct sigcontext *scont;
2688 scont = (struct sigcontext *)0;
2692 AC_DEFINE(HAVE_SIGCONTEXT),
2695 dnl tricky stuff: try to find out if getcwd() is implemented with
2696 dnl system("sh -c pwd")
2697 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2700 #include "confdefs.h"
2701 #ifdef HAVE_UNISTD_H
2704 char *dagger[] = { "IFS=pwd", 0 };
2708 extern char **environ;
2710 return getcwd(buffer, 500) ? 0 : 1;
2713 vim_cv_getcwd_broken=no
2715 vim_cv_getcwd_broken=yes
2717 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2721 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2722 AC_DEFINE(BAD_GETCWD)
2725 dnl Check for functions in one big call, to reduce the size of configure.
2726 dnl Can only be used for functions that do not require any include.
2727 AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
2728 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2729 memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
2730 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2731 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2732 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2733 usleep utime utimes)
2736 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2737 AC_MSG_CHECKING(for st_blksize)
2739 [#include <sys/types.h>
2740 #include <sys/stat.h>],
2745 n = (int)st.st_blksize;],
2746 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2749 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2752 #include "confdefs.h"
2754 # include <stdlib.h>
2755 # include <stddef.h>
2757 #include <sys/types.h>
2758 #include <sys/stat.h>
2759 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2761 vim_cv_stat_ignores_slash=yes
2763 vim_cv_stat_ignores_slash=no
2765 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2769 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2770 AC_DEFINE(STAT_IGNORES_SLASH)
2773 dnl Link with iconv for charset translation, if not found without library.
2774 dnl check for iconv() requires including iconv.h
2775 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2776 dnl has been installed.
2777 AC_MSG_CHECKING(for iconv_open())
2779 LIBS="$LIBS -liconv"
2784 ], [iconv_open("fr", "to");],
2785 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2791 ], [iconv_open("fr", "to");],
2792 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2796 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2798 #ifdef HAVE_LANGINFO_H
2799 # include <langinfo.h>
2801 ], [char *cs = nl_langinfo(CODESET);],
2802 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2805 dnl Need various functions for floating point support. Only enable
2806 dnl floating point when they are all present.
2807 AC_CHECK_LIB(m, strtod)
2808 AC_MSG_CHECKING([for strtod() and other floating point functions])
2814 # include <stdlib.h>
2815 # include <stddef.h>
2817 ], [char *s; double d;
2818 d = strtod("1.1", &s);
2823 d = pow(1.11, 2.22);
2829 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2832 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2833 dnl when -lacl works, also try to use -lattr (required for Debian).
2834 AC_MSG_CHECKING(--disable-acl argument)
2836 [ --disable-acl Don't check for ACL support.],
2837 , [enable_acl="yes"])
2838 if test "$enable_acl" = "yes"; then
2840 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2841 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2842 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2844 AC_MSG_CHECKING(for POSIX ACL support)
2846 #include <sys/types.h>
2847 #ifdef HAVE_SYS_ACL_H
2848 # include <sys/acl.h>
2850 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2851 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2853 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2856 AC_MSG_CHECKING(for Solaris ACL support)
2858 #ifdef HAVE_SYS_ACL_H
2859 # include <sys/acl.h>
2860 #endif], [acl("foo", GETACLCNT, 0, NULL);
2862 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2865 AC_MSG_CHECKING(for AIX ACL support)
2868 # include <stdlib.h>
2869 # include <stddef.h>
2871 #ifdef HAVE_SYS_ACL_H
2872 # include <sys/acl.h>
2874 #ifdef HAVE_SYS_ACCESS_H
2875 # include <sys/access.h>
2879 #include <sys/stat.h>
2882 struct acl *aclent;], [aclsize = sizeof(struct acl);
2883 aclent = (void *)malloc(aclsize);
2884 statacl("foo", STX_NORMAL, aclent, aclsize);
2886 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2892 AC_MSG_CHECKING(--disable-gpm argument)
2894 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2897 if test "$enable_gpm" = "yes"; then
2899 dnl Checking if gpm support can be compiled
2900 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2901 [olibs="$LIBS" ; LIBS="-lgpm"]
2904 #include <linux/keyboard.h>],
2905 [Gpm_GetLibVersion(NULL);],
2906 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2907 dnl FEAT_MOUSE_GPM if mouse support is included
2908 [vi_cv_have_gpm=yes],
2909 [vi_cv_have_gpm=no])
2912 if test $vi_cv_have_gpm = yes; then
2920 AC_MSG_CHECKING(--disable-sysmouse argument)
2921 AC_ARG_ENABLE(sysmouse,
2922 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2923 [enable_sysmouse="yes"])
2925 if test "$enable_sysmouse" = "yes"; then
2927 dnl Checking if sysmouse support can be compiled
2928 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2929 dnl defines FEAT_SYSMOUSE if mouse support is included
2930 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2932 [#include <sys/consio.h>
2934 #include <sys/fbio.h>],
2935 [struct mouse_info mouse;
2936 mouse.operation = MOUSE_MODE;
2937 mouse.operation = MOUSE_SHOW;
2938 mouse.u.mode.mode = 0;
2939 mouse.u.mode.signal = SIGUSR2;],
2940 [vi_cv_have_sysmouse=yes],
2941 [vi_cv_have_sysmouse=no])
2943 if test $vi_cv_have_sysmouse = yes; then
2944 AC_DEFINE(HAVE_SYSMOUSE)
2950 dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
2951 AC_MSG_CHECKING(for FD_CLOEXEC)
2956 [ int flag = FD_CLOEXEC;],
2957 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
2958 AC_MSG_RESULT(not usable))
2960 dnl rename needs to be checked separately to work on Nextstep with cc
2961 AC_MSG_CHECKING(for rename)
2962 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2963 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2966 dnl sysctl() may exist but not the arguments we use
2967 AC_MSG_CHECKING(for sysctl)
2969 [#include <sys/types.h>
2970 #include <sys/sysctl.h>],
2975 mib[1] = HW_USERMEM;
2977 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2979 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2980 AC_MSG_RESULT(not usable))
2982 dnl sysinfo() may exist but not be Linux compatible
2983 AC_MSG_CHECKING(for sysinfo)
2985 [#include <sys/types.h>
2986 #include <sys/sysinfo.h>],
2987 [ struct sysinfo sinfo;
2990 (void)sysinfo(&sinfo);
2993 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2994 AC_MSG_RESULT(not usable))
2996 dnl struct sysinfo may have the mem_unit field or not
2997 AC_MSG_CHECKING(for sysinfo.mem_unit)
2999 [#include <sys/types.h>
3000 #include <sys/sysinfo.h>],
3001 [ struct sysinfo sinfo;
3004 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
3007 dnl sysconf() may exist but not support what we want to use
3008 AC_MSG_CHECKING(for sysconf)
3010 [#include <unistd.h>],
3011 [ (void)sysconf(_SC_PAGESIZE);
3012 (void)sysconf(_SC_PHYS_PAGES);
3014 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
3015 AC_MSG_RESULT(not usable))
3017 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
3018 dnl be printed with "%d", and avoids a warning for cross-compiling.
3020 AC_MSG_CHECKING(size of int)
3021 AC_CACHE_VAL(ac_cv_sizeof_int,
3025 # include <stdlib.h>
3026 # include <stddef.h>
3030 FILE *f=fopen("conftestval", "w");
3032 fprintf(f, "%d\n", (int)sizeof(int));
3035 ac_cv_sizeof_int=`cat conftestval`,
3037 AC_MSG_ERROR(failed to compile test program))])
3038 AC_MSG_RESULT($ac_cv_sizeof_int)
3039 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
3041 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
3042 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
3045 #include "confdefs.h"
3046 #ifdef HAVE_STRING_H
3047 # include <string.h>
3050 # include <stdlib.h>
3051 # include <stddef.h>
3055 strcpy(buf, "abcdefghi");
3056 mch_memmove(buf, buf + 2, 3);
3057 if (strncmp(buf, "ababcf", 6))
3059 strcpy(buf, "abcdefghi");
3060 mch_memmove(buf + 2, buf, 3);
3061 if (strncmp(buf, "cdedef", 6))
3063 exit(0); /* libc version works properly. */
3066 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3068 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3070 vim_cv_memmove_handles_overlap=yes
3072 vim_cv_memmove_handles_overlap=no
3074 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3078 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3079 AC_DEFINE(USEMEMMOVE)
3081 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3083 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3085 vim_cv_bcopy_handles_overlap=yes
3087 vim_cv_bcopy_handles_overlap=no
3089 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3093 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3096 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3098 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3100 vim_cv_memcpy_handles_overlap=yes
3102 vim_cv_memcpy_handles_overlap=no
3104 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3108 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3109 AC_DEFINE(USEMEMCPY)
3115 dnl Check for multibyte locale functions
3116 dnl Find out if _Xsetlocale() is supported by libX11.
3117 dnl Check if X_LOCALE should be defined.
3119 if test "$enable_multibyte" = "yes"; then
3121 ldflags_save=$LDFLAGS
3122 if test "x$x_includes" != "xNONE" ; then
3123 CFLAGS="$CFLAGS -I$x_includes"
3124 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3125 AC_MSG_CHECKING(whether X_LOCALE needed)
3126 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3127 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3128 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3132 LDFLAGS=$ldflags_save
3135 dnl Link with xpg4, it is said to make Korean locale working
3136 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3138 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3139 dnl --version for Exuberant ctags (preferred)
3140 dnl Add --fields=+S to get function signatures for omni completion.
3141 dnl -t for typedefs (many ctags have this)
3142 dnl -s for static functions (Elvis ctags only?)
3143 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3144 dnl -i+m to test for older Exuberant ctags
3145 AC_MSG_CHECKING(how to create tags)
3146 test -f tags && mv tags tags.save
3147 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3148 TAGPRG="ctags -I INIT+ --fields=+S"
3151 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3152 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3153 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3154 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3155 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3156 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3157 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3159 test -f tags.save && mv tags.save tags
3160 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3162 dnl Check how we can run man with a section number
3163 AC_MSG_CHECKING(how to run man with a section nr)
3165 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3166 AC_MSG_RESULT($MANDEF)
3167 if test "$MANDEF" = "man -s"; then
3171 dnl Check if gettext() is working and if it needs -lintl
3172 AC_MSG_CHECKING(--disable-nls argument)
3174 [ --disable-nls Don't support NLS (gettext()).], ,
3177 if test "$enable_nls" = "yes"; then
3180 INSTALL_LANGS=install-languages
3181 AC_SUBST(INSTALL_LANGS)
3182 INSTALL_TOOL_LANGS=install-tool-languages
3183 AC_SUBST(INSTALL_TOOL_LANGS)
3185 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3186 AC_MSG_CHECKING([for NLS])
3187 if test -f po/Makefile; then
3189 if test -n "$MSGFMT"; then
3191 [#include <libintl.h>],
3193 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3197 [#include <libintl.h>],
3199 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3200 AC_MSG_RESULT([gettext() doesn't work]);
3203 AC_MSG_RESULT([msgfmt not found - disabled]);
3205 if test $have_gettext = "yes"; then
3206 AC_DEFINE(HAVE_GETTEXT)
3209 dnl this was added in GNU gettext 0.10.36
3210 AC_CHECK_FUNCS(bind_textdomain_codeset)
3211 dnl _nl_msg_cat_cntr is required for GNU gettext
3212 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3214 [#include <libintl.h>
3215 extern int _nl_msg_cat_cntr;],
3216 [++_nl_msg_cat_cntr;],
3217 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3218 AC_MSG_RESULT([no]))
3221 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3227 dnl Check for dynamic linking loader
3228 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3229 if test x${DLL} = xdlfcn.h; then
3230 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3231 AC_MSG_CHECKING([for dlopen()])
3233 extern void* dlopen();
3237 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3239 AC_MSG_CHECKING([for dlopen() in -ldl])
3243 extern void* dlopen();
3247 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3250 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3252 AC_MSG_CHECKING([for dlsym()])
3254 extern void* dlsym();
3258 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3260 AC_MSG_CHECKING([for dlsym() in -ldl])
3264 extern void* dlsym();
3268 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3271 elif test x${DLL} = xdl.h; then
3272 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3273 AC_MSG_CHECKING([for shl_load()])
3275 extern void* shl_load();
3279 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3281 AC_MSG_CHECKING([for shl_load() in -ldld])
3285 extern void* shl_load();
3289 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3293 AC_CHECK_HEADERS(setjmp.h)
3295 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3296 dnl -ldl must come after DynaLoader.a
3297 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3298 LIBS=`echo $LIBS | sed s/-ldl//`
3299 PERL_LIBS="$PERL_LIBS -ldl"
3303 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3304 && test "x$GUITYPE" != "xCARBONGUI" && test "x$GUITYPE" != "xMACVIMGUI"; then
3305 AC_MSG_CHECKING(whether we need -framework Carbon)
3306 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3307 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3308 || test "x$features" = "xhuge"; then
3309 LIBS="$LIBS -framework Carbon"
3316 if test "x$MACOSX" = "xyes"; then
3317 AC_MSG_CHECKING(--with-xcodecfg argument)
3318 AC_ARG_WITH(xcodecfg,
3319 [ --with-xcodecfg=CFG Debug, Release (default: Release)],
3320 [ XCODEFLAGS="$XCODEFLAGS -configuration $withval"
3321 AC_MSG_RESULT($withval) ],
3322 [ AC_MSG_RESULT(using default) ])
3324 AC_SUBST(XCODEFLAGS)
3328 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3329 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3330 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3331 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3332 dnl the number before the version number.
3333 DEPEND_CFLAGS_FILTER=
3334 if test "$GCC" = yes; then
3335 AC_MSG_CHECKING(for GCC 3 or later)
3336 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3337 if test "$gccmajor" -gt "2"; then
3338 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3343 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3344 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3345 dnl Also remove duplicate _FORTIFY_SOURCE arguments.
3346 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3347 if test "$gccmajor" -gt "3"; then
3348 CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
3354 AC_SUBST(DEPEND_CFLAGS_FILTER)
3356 dnl write output files
3357 AC_OUTPUT(auto/config.mk:config.mk.in)
3359 dnl vim: set sw=2 tw=78 fo+=l: