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 Check --disable-uimfep option.
2187 AC_MSG_CHECKING(--disable-uimfep argument)
2188 AC_ARG_ENABLE(uimfep,
2189 [ --disable-uimfep Don't support UIMFEP.],,
2190 [enable_uimfep="yes"])
2191 if test "$enable_uimfep" = "yes"; then
2193 AC_DEFINE(FEAT_UIMFEP)
2199 dnl Checks for libraries and include files.
2201 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2204 #include "confdefs.h"
2207 # include <stdlib.h>
2208 # include <stddef.h>
2210 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2212 vim_cv_toupper_broken=yes
2214 vim_cv_toupper_broken=no
2216 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2219 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2220 AC_DEFINE(BROKEN_TOUPPER)
2223 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2224 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2225 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2228 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2229 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2230 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2233 dnl Checks for header files.
2234 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2235 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2236 if test "$HAS_ELF" = 1; then
2237 AC_CHECK_LIB(elf, main)
2242 dnl If sys/wait.h is not found it might still exist but not be POSIX
2243 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2244 if test $ac_cv_header_sys_wait_h = no; then
2245 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2246 AC_TRY_COMPILE([#include <sys/wait.h>],
2247 [union wait xx, yy; xx = yy],
2249 AC_DEFINE(HAVE_SYS_WAIT_H)
2250 AC_DEFINE(HAVE_UNION_WAIT),
2254 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2255 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2256 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2258 sys/resource.h sys/systeminfo.h locale.h \
2259 sys/stream.h termios.h libc.h sys/statfs.h \
2260 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2261 libgen.h util/debug.h util/msg18n.h frame.h \
2262 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2264 dnl sys/ptem.h depends on sys/stream.h on Solaris
2265 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2266 [#if defined HAVE_SYS_STREAM_H
2267 # include <sys/stream.h>
2270 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2271 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2272 [#if defined HAVE_SYS_PARAM_H
2273 # include <sys/param.h>
2277 dnl pthread_np.h may exist but can only be used after including pthread.h
2278 AC_MSG_CHECKING([for pthread_np.h])
2280 #include <pthread.h>
2281 #include <pthread_np.h>],
2284 AC_DEFINE(HAVE_PTHREAD_NP_H),
2287 AC_CHECK_HEADERS(strings.h)
2288 if test "x$MACOSX" = "xyes"; then
2289 dnl The strings.h file on OS/X contains a warning and nothing useful.
2290 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2293 dnl Check if strings.h and string.h can both be included when defined.
2294 AC_MSG_CHECKING([if strings.h can be included after string.h])
2295 cppflags_save=$CPPFLAGS
2296 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2298 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2299 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2300 /* but don't do it on AIX 5.1 (Uribarri) */
2303 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2305 #ifdef HAVE_STRING_H
2306 # include <string.h>
2308 #if defined(HAVE_STRINGS_H)
2309 # include <strings.h>
2313 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2315 CPPFLAGS=$cppflags_save
2318 dnl Checks for typedefs, structures, and compiler characteristics.
2319 AC_PROG_GCC_TRADITIONAL
2328 AC_CHECK_TYPE(ino_t, long)
2329 AC_CHECK_TYPE(dev_t, unsigned)
2331 AC_MSG_CHECKING(for rlim_t)
2332 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2333 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2336 changequote(<<,>>)dnl
2337 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2340 #include <sys/types.h>
2342 # include <stdlib.h>
2343 # include <stddef.h>
2345 #ifdef HAVE_SYS_RESOURCE_H
2346 # include <sys/resource.h>
2348 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2349 AC_MSG_RESULT($ac_cv_type_rlim_t)
2351 if test $ac_cv_type_rlim_t = no; then
2352 cat >> confdefs.h <<\EOF
2353 #define rlim_t unsigned long
2357 AC_MSG_CHECKING(for stack_t)
2358 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2359 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2361 AC_EGREP_CPP(stack_t,
2363 #include <sys/types.h>
2365 # include <stdlib.h>
2366 # include <stddef.h>
2369 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2370 AC_MSG_RESULT($ac_cv_type_stack_t)
2372 if test $ac_cv_type_stack_t = no; then
2373 cat >> confdefs.h <<\EOF
2374 #define stack_t struct sigaltstack
2378 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2379 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2381 #include <sys/types.h>
2383 # include <stdlib.h>
2384 # include <stddef.h>
2387 #include "confdefs.h"
2388 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2389 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2393 AC_MSG_CHECKING(--with-tlib argument)
2394 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2395 if test -n "$with_tlib"; then
2396 AC_MSG_RESULT($with_tlib)
2397 LIBS="$LIBS -l$with_tlib"
2398 AC_MSG_CHECKING(for linking with $with_tlib library)
2399 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2400 dnl Need to check for tgetent() below.
2403 AC_MSG_RESULT([empty: automatic terminal library selection])
2404 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2405 dnl curses, because curses is much slower.
2406 dnl Newer versions of ncurses are preferred over anything.
2407 dnl Older versions of ncurses have bugs, get a new one!
2408 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2409 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2410 case "`uname -s 2>/dev/null`" in
2411 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2412 *) tlibs="ncurses termlib termcap curses";;
2414 for libname in $tlibs; do
2415 AC_CHECK_LIB(${libname}, tgetent,,)
2416 if test "x$olibs" != "x$LIBS"; then
2417 dnl It's possible that a library is found but it doesn't work
2418 dnl e.g., shared library that cannot be found
2419 dnl compile and run a test program to be sure
2421 #ifdef HAVE_TERMCAP_H
2422 # include <termcap.h>
2425 # include <stdlib.h>
2426 # include <stddef.h>
2428 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2429 res="OK", res="FAIL", res="FAIL")
2430 if test "$res" = "OK"; then
2433 AC_MSG_RESULT($libname library is not usable)
2437 if test "x$olibs" = "x$LIBS"; then
2438 AC_MSG_RESULT(no terminal library found)
2442 if test "x$olibs" = "x$LIBS"; then
2443 AC_MSG_CHECKING([for tgetent()])
2445 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2447 AC_MSG_ERROR([NOT FOUND!
2448 You need to install a terminal library; for example ncurses.
2449 Or specify the name of the library with --with-tlib.]))
2452 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2455 #include "confdefs.h"
2456 #ifdef HAVE_TERMCAP_H
2457 # include <termcap.h>
2459 #ifdef HAVE_STRING_H
2460 # include <string.h>
2463 # include <stdlib.h>
2464 # include <stddef.h>
2467 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2473 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2477 if test "x$vim_cv_terminfo" = "xyes" ; then
2481 if test "x$olibs" != "x$LIBS"; then
2482 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2485 #include "confdefs.h"
2486 #ifdef HAVE_TERMCAP_H
2487 # include <termcap.h>
2490 # include <stdlib.h>
2491 # include <stddef.h>
2494 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2498 vim_cv_tgent=non-zero
2500 AC_MSG_ERROR(failed to compile test program.)
2504 if test "x$vim_cv_tgent" = "xzero" ; then
2505 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2509 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2511 #ifdef HAVE_TERMCAP_H
2512 # include <termcap.h>
2514 ], [ospeed = 20000],
2515 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2517 AC_MSG_CHECKING(whether ospeed can be extern)
2519 #ifdef HAVE_TERMCAP_H
2520 # include <termcap.h>
2522 extern short ospeed;
2523 ], [ospeed = 20000],
2524 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2528 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2530 #ifdef HAVE_TERMCAP_H
2531 # include <termcap.h>
2533 ], [if (UP == 0 && BC == 0) PC = 1],
2534 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2536 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2538 #ifdef HAVE_TERMCAP_H
2539 # include <termcap.h>
2541 extern char *UP, *BC, PC;
2542 ], [if (UP == 0 && BC == 0) PC = 1],
2543 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2547 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2549 #ifdef HAVE_TERMCAP_H
2550 # include <termcap.h>
2552 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2553 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2556 dnl On some SCO machines sys/select redefines struct timeval
2557 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2559 #include <sys/types.h>
2560 #include <sys/time.h>
2561 #include <sys/select.h>], ,
2563 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2566 dnl AC_DECL_SYS_SIGLIST
2568 dnl Checks for pty.c (copied from screen) ==========================
2569 AC_MSG_CHECKING(for /dev/ptc)
2570 if test -r /dev/ptc; then
2571 AC_DEFINE(HAVE_DEV_PTC)
2577 AC_MSG_CHECKING(for SVR4 ptys)
2578 if test -c /dev/ptmx ; then
2579 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2580 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2586 AC_MSG_CHECKING(for ptyranges)
2587 if test -d /dev/ptym ; then
2597 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2598 dnl if test -c /dev/ptyp19; then
2599 dnl ptys=`echo /dev/ptyp??`
2601 dnl ptys=`echo $pdir/pty??`
2603 if test "$ptys" != "$pdir/pty??" ; then
2604 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2605 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2606 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2607 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2608 AC_MSG_RESULT([$p0 / $p1])
2610 AC_MSG_RESULT([don't know])
2613 dnl **** pty mode/group handling ****
2615 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2617 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2620 #include "confdefs.h"
2621 #include <sys/types.h>
2623 # include <stdlib.h>
2624 # include <stddef.h>
2626 #ifdef HAVE_UNISTD_H
2629 #include <sys/stat.h>
2638 if (!(x = ttyname(0))) exit(1);
2639 if (stat(x, &sb)) exit(1);
2641 if (om & 002) exit(0);
2642 m = system("mesg y");
2643 if (m == -1 || m == 127) exit(1);
2644 if (stat(x, &sb)) exit(1);
2646 if (chmod(x, om)) exit(1);
2647 if (m & 002) exit(0);
2648 if (sb.st_gid == getgid()) exit(1);
2649 if (!(fp=fopen("conftest_grp", "w")))
2651 fprintf(fp, "%d\n", sb.st_gid);
2656 if test -f conftest_grp; then
2657 vim_cv_tty_group=`cat conftest_grp`
2658 if test "x$vim_cv_tty_mode" = "x" ; then
2659 vim_cv_tty_mode=0620
2661 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2663 vim_cv_tty_group=world
2664 AC_MSG_RESULT([ptys are world accessible])
2667 vim_cv_tty_group=world
2668 AC_MSG_RESULT([can't determine - assume ptys are world accessible])
2670 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2675 if test "x$vim_cv_tty_group" != "xworld" ; then
2676 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2677 if test "x$vim_cv_tty_mode" = "x" ; then
2678 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)])
2680 AC_DEFINE(PTYMODE, 0620)
2684 dnl Checks for library functions. ===================================
2688 dnl find out what to use at the end of a signal function
2689 if test $ac_cv_type_signal = void; then
2690 AC_DEFINE(SIGRETURN, [return])
2692 AC_DEFINE(SIGRETURN, [return 0])
2695 dnl check if struct sigcontext is defined (used for SGI only)
2696 AC_MSG_CHECKING(for struct sigcontext)
2701 struct sigcontext *scont;
2702 scont = (struct sigcontext *)0;
2706 AC_DEFINE(HAVE_SIGCONTEXT),
2709 dnl tricky stuff: try to find out if getcwd() is implemented with
2710 dnl system("sh -c pwd")
2711 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2714 #include "confdefs.h"
2715 #ifdef HAVE_UNISTD_H
2718 char *dagger[] = { "IFS=pwd", 0 };
2722 extern char **environ;
2724 return getcwd(buffer, 500) ? 0 : 1;
2727 vim_cv_getcwd_broken=no
2729 vim_cv_getcwd_broken=yes
2731 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2735 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2736 AC_DEFINE(BAD_GETCWD)
2739 dnl Check for functions in one big call, to reduce the size of configure.
2740 dnl Can only be used for functions that do not require any include.
2741 AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
2742 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2743 memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
2744 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2745 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2746 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2747 usleep utime utimes)
2750 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2751 AC_MSG_CHECKING(for st_blksize)
2753 [#include <sys/types.h>
2754 #include <sys/stat.h>],
2759 n = (int)st.st_blksize;],
2760 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2763 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2766 #include "confdefs.h"
2768 # include <stdlib.h>
2769 # include <stddef.h>
2771 #include <sys/types.h>
2772 #include <sys/stat.h>
2773 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2775 vim_cv_stat_ignores_slash=yes
2777 vim_cv_stat_ignores_slash=no
2779 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2783 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2784 AC_DEFINE(STAT_IGNORES_SLASH)
2787 dnl Link with iconv for charset translation, if not found without library.
2788 dnl check for iconv() requires including iconv.h
2789 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2790 dnl has been installed.
2791 AC_MSG_CHECKING(for iconv_open())
2793 LIBS="$LIBS -liconv"
2798 ], [iconv_open("fr", "to");],
2799 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2805 ], [iconv_open("fr", "to");],
2806 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2810 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2812 #ifdef HAVE_LANGINFO_H
2813 # include <langinfo.h>
2815 ], [char *cs = nl_langinfo(CODESET);],
2816 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2819 dnl Need various functions for floating point support. Only enable
2820 dnl floating point when they are all present.
2821 AC_CHECK_LIB(m, strtod)
2822 AC_MSG_CHECKING([for strtod() and other floating point functions])
2828 # include <stdlib.h>
2829 # include <stddef.h>
2831 ], [char *s; double d;
2832 d = strtod("1.1", &s);
2837 d = pow(1.11, 2.22);
2843 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2846 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2847 dnl when -lacl works, also try to use -lattr (required for Debian).
2848 AC_MSG_CHECKING(--disable-acl argument)
2850 [ --disable-acl Don't check for ACL support.],
2851 , [enable_acl="yes"])
2852 if test "$enable_acl" = "yes"; then
2854 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2855 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2856 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2858 AC_MSG_CHECKING(for POSIX ACL support)
2860 #include <sys/types.h>
2861 #ifdef HAVE_SYS_ACL_H
2862 # include <sys/acl.h>
2864 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2865 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2867 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2870 AC_MSG_CHECKING(for Solaris ACL support)
2872 #ifdef HAVE_SYS_ACL_H
2873 # include <sys/acl.h>
2874 #endif], [acl("foo", GETACLCNT, 0, NULL);
2876 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2879 AC_MSG_CHECKING(for AIX ACL support)
2882 # include <stdlib.h>
2883 # include <stddef.h>
2885 #ifdef HAVE_SYS_ACL_H
2886 # include <sys/acl.h>
2888 #ifdef HAVE_SYS_ACCESS_H
2889 # include <sys/access.h>
2893 #include <sys/stat.h>
2896 struct acl *aclent;], [aclsize = sizeof(struct acl);
2897 aclent = (void *)malloc(aclsize);
2898 statacl("foo", STX_NORMAL, aclent, aclsize);
2900 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2906 AC_MSG_CHECKING(--disable-gpm argument)
2908 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2911 if test "$enable_gpm" = "yes"; then
2913 dnl Checking if gpm support can be compiled
2914 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2915 [olibs="$LIBS" ; LIBS="-lgpm"]
2918 #include <linux/keyboard.h>],
2919 [Gpm_GetLibVersion(NULL);],
2920 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2921 dnl FEAT_MOUSE_GPM if mouse support is included
2922 [vi_cv_have_gpm=yes],
2923 [vi_cv_have_gpm=no])
2926 if test $vi_cv_have_gpm = yes; then
2934 AC_MSG_CHECKING(--disable-sysmouse argument)
2935 AC_ARG_ENABLE(sysmouse,
2936 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2937 [enable_sysmouse="yes"])
2939 if test "$enable_sysmouse" = "yes"; then
2941 dnl Checking if sysmouse support can be compiled
2942 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2943 dnl defines FEAT_SYSMOUSE if mouse support is included
2944 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2946 [#include <sys/consio.h>
2948 #include <sys/fbio.h>],
2949 [struct mouse_info mouse;
2950 mouse.operation = MOUSE_MODE;
2951 mouse.operation = MOUSE_SHOW;
2952 mouse.u.mode.mode = 0;
2953 mouse.u.mode.signal = SIGUSR2;],
2954 [vi_cv_have_sysmouse=yes],
2955 [vi_cv_have_sysmouse=no])
2957 if test $vi_cv_have_sysmouse = yes; then
2958 AC_DEFINE(HAVE_SYSMOUSE)
2964 dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
2965 AC_MSG_CHECKING(for FD_CLOEXEC)
2970 [ int flag = FD_CLOEXEC;],
2971 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
2972 AC_MSG_RESULT(not usable))
2974 dnl rename needs to be checked separately to work on Nextstep with cc
2975 AC_MSG_CHECKING(for rename)
2976 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2977 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2980 dnl sysctl() may exist but not the arguments we use
2981 AC_MSG_CHECKING(for sysctl)
2983 [#include <sys/types.h>
2984 #include <sys/sysctl.h>],
2989 mib[1] = HW_USERMEM;
2991 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2993 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2994 AC_MSG_RESULT(not usable))
2996 dnl sysinfo() may exist but not be Linux compatible
2997 AC_MSG_CHECKING(for sysinfo)
2999 [#include <sys/types.h>
3000 #include <sys/sysinfo.h>],
3001 [ struct sysinfo sinfo;
3004 (void)sysinfo(&sinfo);
3007 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
3008 AC_MSG_RESULT(not usable))
3010 dnl struct sysinfo may have the mem_unit field or not
3011 AC_MSG_CHECKING(for sysinfo.mem_unit)
3013 [#include <sys/types.h>
3014 #include <sys/sysinfo.h>],
3015 [ struct sysinfo sinfo;
3018 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
3021 dnl sysconf() may exist but not support what we want to use
3022 AC_MSG_CHECKING(for sysconf)
3024 [#include <unistd.h>],
3025 [ (void)sysconf(_SC_PAGESIZE);
3026 (void)sysconf(_SC_PHYS_PAGES);
3028 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
3029 AC_MSG_RESULT(not usable))
3031 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
3032 dnl be printed with "%d", and avoids a warning for cross-compiling.
3034 AC_MSG_CHECKING(size of int)
3035 AC_CACHE_VAL(ac_cv_sizeof_int,
3039 # include <stdlib.h>
3040 # include <stddef.h>
3044 FILE *f=fopen("conftestval", "w");
3046 fprintf(f, "%d\n", (int)sizeof(int));
3049 ac_cv_sizeof_int=`cat conftestval`,
3051 AC_MSG_ERROR(failed to compile test program))])
3052 AC_MSG_RESULT($ac_cv_sizeof_int)
3053 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
3055 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
3056 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
3059 #include "confdefs.h"
3060 #ifdef HAVE_STRING_H
3061 # include <string.h>
3064 # include <stdlib.h>
3065 # include <stddef.h>
3069 strcpy(buf, "abcdefghi");
3070 mch_memmove(buf, buf + 2, 3);
3071 if (strncmp(buf, "ababcf", 6))
3073 strcpy(buf, "abcdefghi");
3074 mch_memmove(buf + 2, buf, 3);
3075 if (strncmp(buf, "cdedef", 6))
3077 exit(0); /* libc version works properly. */
3080 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3082 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3084 vim_cv_memmove_handles_overlap=yes
3086 vim_cv_memmove_handles_overlap=no
3088 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3092 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3093 AC_DEFINE(USEMEMMOVE)
3095 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3097 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3099 vim_cv_bcopy_handles_overlap=yes
3101 vim_cv_bcopy_handles_overlap=no
3103 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3107 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3110 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3112 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3114 vim_cv_memcpy_handles_overlap=yes
3116 vim_cv_memcpy_handles_overlap=no
3118 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3122 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3123 AC_DEFINE(USEMEMCPY)
3129 dnl Check for multibyte locale functions
3130 dnl Find out if _Xsetlocale() is supported by libX11.
3131 dnl Check if X_LOCALE should be defined.
3133 if test "$enable_multibyte" = "yes"; then
3135 ldflags_save=$LDFLAGS
3136 if test "x$x_includes" != "xNONE" ; then
3137 CFLAGS="$CFLAGS -I$x_includes"
3138 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3139 AC_MSG_CHECKING(whether X_LOCALE needed)
3140 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3141 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3142 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3146 LDFLAGS=$ldflags_save
3149 dnl Link with xpg4, it is said to make Korean locale working
3150 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3152 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3153 dnl --version for Exuberant ctags (preferred)
3154 dnl Add --fields=+S to get function signatures for omni completion.
3155 dnl -t for typedefs (many ctags have this)
3156 dnl -s for static functions (Elvis ctags only?)
3157 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3158 dnl -i+m to test for older Exuberant ctags
3159 AC_MSG_CHECKING(how to create tags)
3160 test -f tags && mv tags tags.save
3161 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3162 TAGPRG="ctags -I INIT+ --fields=+S"
3165 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3166 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3167 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3168 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3169 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3170 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3171 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3173 test -f tags.save && mv tags.save tags
3174 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3176 dnl Check how we can run man with a section number
3177 AC_MSG_CHECKING(how to run man with a section nr)
3179 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3180 AC_MSG_RESULT($MANDEF)
3181 if test "$MANDEF" = "man -s"; then
3185 dnl Check if gettext() is working and if it needs -lintl
3186 AC_MSG_CHECKING(--disable-nls argument)
3188 [ --disable-nls Don't support NLS (gettext()).], ,
3191 if test "$enable_nls" = "yes"; then
3194 INSTALL_LANGS=install-languages
3195 AC_SUBST(INSTALL_LANGS)
3196 INSTALL_TOOL_LANGS=install-tool-languages
3197 AC_SUBST(INSTALL_TOOL_LANGS)
3199 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3200 AC_MSG_CHECKING([for NLS])
3201 if test -f po/Makefile; then
3203 if test -n "$MSGFMT"; then
3205 [#include <libintl.h>],
3207 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3211 [#include <libintl.h>],
3213 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3214 AC_MSG_RESULT([gettext() doesn't work]);
3217 AC_MSG_RESULT([msgfmt not found - disabled]);
3219 if test $have_gettext = "yes"; then
3220 AC_DEFINE(HAVE_GETTEXT)
3223 dnl this was added in GNU gettext 0.10.36
3224 AC_CHECK_FUNCS(bind_textdomain_codeset)
3225 dnl _nl_msg_cat_cntr is required for GNU gettext
3226 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3228 [#include <libintl.h>
3229 extern int _nl_msg_cat_cntr;],
3230 [++_nl_msg_cat_cntr;],
3231 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3232 AC_MSG_RESULT([no]))
3235 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3241 dnl Check for C/Migemo (regexp pattern expansion).
3242 AC_MSG_CHECKING(--disable-migemo argument)
3243 AC_ARG_ENABLE(migemo,
3244 [ --disable-migemo Don't support C/Migemo.], ,
3245 [enable_migemo="yes"])
3246 if test "$enable_migemo" = "yes"; then
3248 AC_CHECK_LIB(migemo, migemo_open,
3249 [LIBS="$LIBS -lmigemo"; AC_DEFINE(HAVE_MIGEMO)],,)
3254 dnl Check for dynamic linking loader
3255 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3256 if test x${DLL} = xdlfcn.h; then
3257 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3258 AC_MSG_CHECKING([for dlopen()])
3260 extern void* dlopen();
3264 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3266 AC_MSG_CHECKING([for dlopen() in -ldl])
3270 extern void* dlopen();
3274 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3277 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3279 AC_MSG_CHECKING([for dlsym()])
3281 extern void* dlsym();
3285 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3287 AC_MSG_CHECKING([for dlsym() in -ldl])
3291 extern void* dlsym();
3295 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3298 elif test x${DLL} = xdl.h; then
3299 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3300 AC_MSG_CHECKING([for shl_load()])
3302 extern void* shl_load();
3306 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3308 AC_MSG_CHECKING([for shl_load() in -ldld])
3312 extern void* shl_load();
3316 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3320 AC_CHECK_HEADERS(setjmp.h)
3322 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3323 dnl -ldl must come after DynaLoader.a
3324 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3325 LIBS=`echo $LIBS | sed s/-ldl//`
3326 PERL_LIBS="$PERL_LIBS -ldl"
3330 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3331 && test "x$GUITYPE" != "xCARBONGUI" && test "x$GUITYPE" != "xMACVIMGUI"; then
3332 AC_MSG_CHECKING(whether we need -framework Carbon)
3333 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3334 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3335 || test "x$features" = "xhuge"; then
3336 LIBS="$LIBS -framework Carbon"
3343 if test "x$MACOSX" = "xyes"; then
3344 AC_MSG_CHECKING(--with-xcodecfg argument)
3345 AC_ARG_WITH(xcodecfg,
3346 [ --with-xcodecfg=CFG Debug, Release (default: Release)],
3347 [ XCODEFLAGS="$XCODEFLAGS -configuration $withval"
3348 AC_MSG_RESULT($withval) ],
3349 [ AC_MSG_RESULT(using default) ])
3351 AC_SUBST(XCODEFLAGS)
3355 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3356 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3357 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3358 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3359 dnl the number before the version number.
3360 DEPEND_CFLAGS_FILTER=
3361 if test "$GCC" = yes; then
3362 AC_MSG_CHECKING(for GCC 3 or later)
3363 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3364 if test "$gccmajor" -gt "2"; then
3365 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3370 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3371 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3372 dnl Also remove duplicate _FORTIFY_SOURCE arguments.
3373 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3374 if test "$gccmajor" -gt "3"; then
3375 CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
3381 AC_SUBST(DEPEND_CFLAGS_FILTER)
3383 dnl write output files
3384 AC_OUTPUT(auto/config.mk:config.mk.in)
3386 dnl vim: set sw=2 tw=78 fo+=l: