1 dnl configure.in: autoconf script for Vim
3 dnl Process this file with autoconf 2.12 or 2.13 to produce "configure".
4 dnl Should also work with autoconf 2.54 and later.
7 AC_CONFIG_HEADER(auto/config.h:config.h.in)
9 dnl Being able to run configure means the system is Unix (compatible).
13 dnl Checks for programs.
14 AC_PROG_CC dnl required by almost everything
15 AC_PROG_CPP dnl required by header file checks
16 AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
17 AC_ISC_POSIX dnl required by AC_C_CROSS
18 AC_PROG_AWK dnl required for "make html" in ../doc
20 dnl Don't strip if we don't have it
21 AC_CHECK_PROG(STRIP, strip, strip, :)
23 dnl Check for extension of executables
26 dnl Check for standard headers. We don't use this in Vim but other stuff
27 dnl in autoconf needs it, where it uses STDC_HEADERS.
31 dnl Set default value for CFLAGS if none is defined or it's empty
32 if test -z "$CFLAGS"; then
34 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
36 if test "$GCC" = yes; then
37 dnl method that should work for nearly all versions
38 gccversion=`"$CC" -dumpversion`
39 if test "x$gccversion" = "x"; then
40 dnl old method; fall-back for when -dumpversion doesn't work
41 gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
43 dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
44 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
45 echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
46 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
48 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
49 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
50 CFLAGS="$CFLAGS -fno-strength-reduce"
55 dnl If configure thinks we are cross compiling, there might be something
56 dnl wrong with the CC or CFLAGS settings, give a useful warning message
57 if test "$cross_compiling" = yes; then
58 AC_MSG_RESULT([cannot compile a simple program; if not cross compiling check CC and CFLAGS])
61 dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies.
62 dnl But gcc 3.1 changed the meaning! See near the end.
63 test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
65 if test -f ./toolcheck; then
66 AC_CHECKING(for buggy tools)
67 sh ./toolcheck 1>&AC_FD_MSG
70 OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
72 dnl Check for BeOS, which needs an extra source file
73 AC_MSG_CHECKING(for BeOS)
75 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
76 BEOS=yes; AC_MSG_RESULT(yes);;
77 *) BEOS=no; AC_MSG_RESULT(no);;
80 dnl If QNX is found, assume we don't want to use Xphoton
81 dnl unless it was specifically asked for (--with-x)
82 AC_MSG_CHECKING(for QNX)
84 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
85 test -z "$with_x" && with_x=no
86 QNX=yes; AC_MSG_RESULT(yes);;
87 *) QNX=no; AC_MSG_RESULT(no);;
90 dnl Check for Darwin and MacOS X
91 dnl We do a check for MacOS X in the very beginning because there
92 dnl are a lot of other things we need to change besides GUI stuff
93 AC_MSG_CHECKING([for Darwin (Mac OS X)])
94 if test "`(uname) 2>/dev/null`" = Darwin; then
97 AC_MSG_CHECKING(--disable-darwin argument)
99 [ --disable-darwin Disable Darwin (Mac OS X) support.],
100 , [enable_darwin="yes"])
101 if test "$enable_darwin" = "yes"; then
103 AC_MSG_CHECKING(if Darwin files are there)
104 if test -f os_macosx.c; then
107 AC_MSG_RESULT([no, Darwin support disabled])
111 AC_MSG_RESULT([yes, Darwin support excluded])
114 AC_MSG_CHECKING(--with-mac-arch argument)
115 AC_ARG_WITH(mac-arch, [ --with-mac-arch=ARCH current, intel, ppc or both],
116 MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
117 MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
119 if test "x$MACARCH" = "xboth"; then
120 AC_MSG_CHECKING(for 10.4 universal SDK)
121 dnl There is a terrible inconsistency (but we appear to get away with it):
122 dnl $CFLAGS uses the 10.4u SDK library for the headers, while $CPPFLAGS
123 dnl doesn't, because "gcc -E" doesn't grok it. That means the configure
124 dnl tests using the preprocessor are actually done with the wrong header
125 dnl files. $LDFLAGS is set at the end, because configure uses it together
126 dnl with $CFLAGS and we can only have one -sysroot argument.
127 save_cppflags="$CPPFLAGS"
128 save_cflags="$CFLAGS"
129 save_ldflags="$LDFLAGS"
130 CFLAGS="$CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
131 AC_TRY_LINK([ ], [ ],
132 AC_MSG_RESULT(found, will make universal binary),
134 AC_MSG_RESULT(not found)
135 CFLAGS="$save_cflags"
136 AC_MSG_CHECKING(if Intel architecture is supported)
137 CPPFLAGS="$CPPFLAGS -arch i386"
138 LDFLAGS="$save_ldflags -arch i386"
139 AC_TRY_LINK([ ], [ ],
140 AC_MSG_RESULT(yes); MACARCH="intel",
141 AC_MSG_RESULT(no, using PowerPC)
143 CPPFLAGS="$save_cppflags -arch ppc"
144 LDFLAGS="$save_ldflags -arch ppc"))
145 elif test "x$MACARCH" = "xintel"; then
146 CPPFLAGS="$CPPFLAGS -arch intel"
147 LDFLAGS="$LDFLAGS -arch intel"
148 elif test "x$MACARCH" = "xppc"; then
149 CPPFLAGS="$CPPFLAGS -arch ppc"
150 LDFLAGS="$LDFLAGS -arch ppc"
153 if test "$enable_darwin" = "yes"; then
155 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
156 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
157 dnl TODO: use -arch i386 on Intel machines
158 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
159 if test "x$MACARCH" = "xboth"; then
160 CPPFLAGS="$CPPFLAGS -I/Developer/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
162 CPPFLAGS="$CPPFLAGS -I/Developer/Headers/FlatCarbon"
165 dnl If Carbon is found, assume we don't want X11
166 dnl unless it was specifically asked for (--with-x)
167 dnl or Motif, Athena or GTK GUI is used.
168 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
169 if test "x$CARBON" = "xyes"; then
170 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
176 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
177 dnl free. This happens in expand_filename(), because the optimizer swaps
178 dnl two blocks of code, both using "repl", that can't be swapped.
179 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
180 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
187 AC_SUBST(OS_EXTRA_SRC)
188 AC_SUBST(OS_EXTRA_OBJ)
190 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
191 dnl Only when the directory exists and it wasn't there yet.
192 dnl For gcc don't do this when it is already in the default search path.
193 dnl Skip all of this when cross-compiling.
194 if test "$cross_compiling" = no; then
195 AC_MSG_CHECKING(--with-local-dir argument)
196 have_local_include=''
198 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
199 --without-local-dir do not search /usr/local for local libraries.], [
204 # avoid adding local dir to LDFLAGS and CPPFLAGS
208 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
210 AC_MSG_RESULT($local_dir)
213 AC_MSG_RESULT(Defaulting to $local_dir)
215 if test "$GCC" = yes -a "$local_dir" != no; then
216 echo 'void f(){}' > conftest.c
217 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
218 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
219 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
220 rm -f conftest.c conftest.o
222 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
223 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
224 if test "$tt" = "$LDFLAGS"; then
225 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
228 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
229 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
230 if test "$tt" = "$CPPFLAGS"; then
231 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
236 AC_MSG_CHECKING(--with-vim-name argument)
237 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
238 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
239 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
241 AC_MSG_CHECKING(--with-ex-name argument)
242 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
243 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
244 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
246 AC_MSG_CHECKING(--with-view-name argument)
247 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
248 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
249 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
252 AC_MSG_CHECKING(--with-global-runtime argument)
253 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
254 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
257 AC_MSG_CHECKING(--with-modified-by argument)
258 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
259 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
262 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
263 AC_MSG_CHECKING(if character set is EBCDIC)
265 [ /* TryCompile function for CharSet.
266 Treat any failure as ASCII for compatibility with existing art.
267 Use compile-time rather than run-time tests for cross-compiler
270 make an error "Character set is not EBCDIC"
272 [ # TryCompile action if true
274 [ # TryCompile action if false
276 # end of TryCompile ])
277 # end of CacheVal CvEbcdic
278 AC_MSG_RESULT($cf_cv_ebcdic)
279 case "$cf_cv_ebcdic" in #(vi
280 yes) AC_DEFINE(EBCDIC)
283 *) line_break='"\\012"';;
287 if test "$cf_cv_ebcdic" = "yes"; then
288 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
289 AC_MSG_CHECKING(for OS/390 Unix)
291 OS/390) OS390Unix="yes";
292 dnl If using cc the environment variable _CC_CCMODE must be
293 dnl set to "1", so that some compiler extensions are enabled.
294 dnl If using c89 the environment variable is named _CC_C89MODE.
295 dnl Note: compile with c89 never tested.
296 if test "$CC" = "cc"; then
300 if test "$CC" = "c89"; then
307 if test "$ccm" != "1"; then
309 echo "------------------------------------------"
310 echo " On OS/390 Unix, the environment variable"
311 echo " __CC_${ccn}MODE must be set to \"1\"!"
313 echo " export _CC_${ccn}MODE=1"
314 echo " and then call configure again."
315 echo "------------------------------------------"
318 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
327 dnl Link with -lselinux for SELinux stuff; if not found
328 AC_MSG_CHECKING(--disable-selinux argument)
329 AC_ARG_ENABLE(selinux,
330 [ --disable-selinux Don't check for SELinux support.],
331 , enable_selinux="yes")
332 if test "$enable_selinux" = "yes"; then
334 AC_CHECK_LIB(selinux, is_selinux_enabled,
335 [LIBS="$LIBS -lselinux"
336 AC_DEFINE(HAVE_SELINUX)])
341 dnl Check user requested features.
343 AC_MSG_CHECKING(--with-features argument)
344 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
345 features="$withval"; AC_MSG_RESULT($features),
346 features="normal"; AC_MSG_RESULT(Defaulting to normal))
351 tiny) AC_DEFINE(FEAT_TINY) ;;
352 small) AC_DEFINE(FEAT_SMALL) ;;
353 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
354 dogvimdiff="installgvimdiff" ;;
355 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
356 dogvimdiff="installgvimdiff" ;;
357 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
358 dogvimdiff="installgvimdiff" ;;
359 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
365 AC_MSG_CHECKING(--with-compiledby argument)
366 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
367 compiledby="$withval"; AC_MSG_RESULT($withval),
368 compiledby=""; AC_MSG_RESULT(no))
371 AC_MSG_CHECKING(--disable-xsmp argument)
373 [ --disable-xsmp Disable XSMP session management],
376 if test "$enable_xsmp" = "yes"; then
378 AC_MSG_CHECKING(--disable-xsmp-interact argument)
379 AC_ARG_ENABLE(xsmp-interact,
380 [ --disable-xsmp-interact Disable XSMP interaction],
381 , enable_xsmp_interact="yes")
382 if test "$enable_xsmp_interact" = "yes"; then
384 AC_DEFINE(USE_XSMP_INTERACT)
392 dnl Check for Lua feature.
393 AC_MSG_CHECKING(--enable-luainterp argument)
394 AC_ARG_ENABLE(luainterp,
395 [ --enable-luainterp Include Lua interpreter.], ,
396 [enable_luainterp="no"])
397 AC_MSG_RESULT($enable_luainterp)
399 if test "$enable_luainterp" = "yes"; then
400 dnl -- find the lua executable
401 AC_SUBST(vi_cv_path_lua)
403 AC_MSG_CHECKING(--with-lua-prefix argument)
404 AC_ARG_WITH(lua_prefix,
405 [ --with-lua-prefix=PFX Prefix where Lua is installed.],
406 with_lua_prefix="$withval"; AC_MSG_RESULT($with_lua_prefix),
407 with_lua_prefix="";AC_MSG_RESULT("no"))
409 if test "X$with_lua_prefix" != "X"; then
410 vi_cv_path_lua_pfx="$with_lua_prefix"
412 AC_MSG_CHECKING(LUA_PREFIX environment var)
413 if test "X$LUA_PREFIX" != "X"; then
414 AC_MSG_RESULT("$LUA_PREFIX")
415 vi_cv_path_lua_pfx="$LUA_PREFIX"
417 AC_MSG_RESULT("not set")
422 if test "X$vi_cv_path_lua_pfx" != "X"; then
423 AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include)
424 if test -f $vi_cv_path_lua_pfx/include/lua.h; then
428 dnl -- try to find Lua executable
429 AC_PATH_PROG(vi_cv_path_lua, lua)
430 if test "X$vi_cv_path_lua" != "X"; then
431 dnl -- find Lua version
432 AC_CACHE_CHECK(Lua version, vi_cv_version_lua,
433 [ vi_cv_version_lua=`${vi_cv_path_lua} -e "print(_VERSION:sub(5,7))"` ])
434 AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua)
435 if test -f $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua/lua.h; then
437 LUA_INC=/lua$vi_cv_version_lua
446 if test "X$vi_cv_path_lua_pfx" != "X"; then
447 if test "X$vi_cv_version_lua" != "X"; then
448 dnl Test alternate location using version
449 LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua$vi_cv_version_lua"
451 LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua"
453 LUA_CFLAGS="-I${vi_cv_path_lua_pfx}/include${LUA_INC}"
455 LUA_OBJ="objects/if_lua.o"
467 dnl Check for MzScheme feature.
468 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
469 AC_ARG_ENABLE(mzschemeinterp,
470 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
471 [enable_mzschemeinterp="no"])
472 AC_MSG_RESULT($enable_mzschemeinterp)
474 if test "$enable_mzschemeinterp" = "yes"; then
475 dnl -- find the mzscheme executable
476 AC_SUBST(vi_cv_path_mzscheme)
478 AC_MSG_CHECKING(--with-plthome argument)
480 [ --with-plthome=PLTHOME Use PLTHOME.],
481 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
482 with_plthome="";AC_MSG_RESULT("no"))
484 if test "X$with_plthome" != "X"; then
485 vi_cv_path_mzscheme_pfx="$with_plthome"
487 AC_MSG_CHECKING(PLTHOME environment var)
488 if test "X$PLTHOME" != "X"; then
489 AC_MSG_RESULT("$PLTHOME")
490 vi_cv_path_mzscheme_pfx="$PLTHOME"
492 AC_MSG_RESULT(not set)
493 dnl -- try to find MzScheme executable
494 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
496 dnl resolve symbolic link, the executable is often elsewhere and there
497 dnl are no links for the include files.
498 if test "X$vi_cv_path_mzscheme" != "X"; then
499 lsout=`ls -l $vi_cv_path_mzscheme`
500 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
501 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
505 if test "X$vi_cv_path_mzscheme" != "X"; then
506 dnl -- find where MzScheme thinks it was installed
507 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
508 dnl different versions of MzScheme differ in command line processing
509 dnl use universal approach
510 echo "(display (simplify-path \
511 (build-path (call-with-values \
512 (lambda () (split-path (find-system-path (quote exec-file)))) \
513 (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
514 dnl Remove a trailing slash
515 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
523 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
524 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
525 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
526 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
530 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
531 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
533 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
536 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
537 if test -f /usr/include/plt/scheme.h; then
539 SCHEME_INC=/usr/include/plt
542 vi_cv_path_mzscheme_pfx=
548 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
549 if test "x$MACOSX" = "xyes"; then
550 MZSCHEME_LIBS="-framework PLT_MzScheme"
551 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
552 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
553 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
554 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
555 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
557 dnl Using shared objects
558 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
559 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
560 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
562 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
564 if test "$GCC" = yes; then
565 dnl Make Vim remember the path to the library. For when it's not in
566 dnl $LD_LIBRARY_PATH.
567 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
568 elif test "`(uname) 2>/dev/null`" = SunOS &&
569 uname -r | grep '^5' >/dev/null; then
570 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
573 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
574 SCHEME_COLLECTS=lib/plt/
576 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
577 dnl need to generate bytecode for MzScheme base
578 MZSCHEME_EXTRA="mzscheme_base.c"
579 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
580 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
582 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
583 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
584 MZSCHEME_SRC="if_mzsch.c"
585 MZSCHEME_OBJ="objects/if_mzsch.o"
586 MZSCHEME_PRO="if_mzsch.pro"
587 AC_DEFINE(FEAT_MZSCHEME)
589 AC_SUBST(MZSCHEME_SRC)
590 AC_SUBST(MZSCHEME_OBJ)
591 AC_SUBST(MZSCHEME_PRO)
592 AC_SUBST(MZSCHEME_LIBS)
593 AC_SUBST(MZSCHEME_CFLAGS)
594 AC_SUBST(MZSCHEME_EXTRA)
595 AC_SUBST(MZSCHEME_MZC)
599 AC_MSG_CHECKING(--enable-perlinterp argument)
600 AC_ARG_ENABLE(perlinterp,
601 [ --enable-perlinterp Include Perl interpreter.], ,
602 [enable_perlinterp="no"])
603 AC_MSG_RESULT($enable_perlinterp)
604 if test "$enable_perlinterp" = "yes"; then
605 AC_SUBST(vi_cv_path_perl)
606 AC_PATH_PROG(vi_cv_path_perl, perl)
607 if test "X$vi_cv_path_perl" != "X"; then
608 AC_MSG_CHECKING(Perl version)
609 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
610 eval `$vi_cv_path_perl -V:usethreads`
611 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
614 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
615 eval `$vi_cv_path_perl -V:use5005threads`
616 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
620 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
624 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
627 if test $badthreads = no; then
629 eval `$vi_cv_path_perl -V:shrpenv`
630 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
633 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
634 AC_SUBST(vi_cv_perllib)
635 dnl Remove "-fno-something", it breaks using cproto.
636 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
637 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
638 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
639 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
640 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
641 -e 's/-bE:perl.exp//' -e 's/-lc //'`
642 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
643 dnl a test in configure may fail because of that.
644 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
645 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
647 dnl check that compiling a simple program still works with the flags
649 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
652 ldflags_save=$LDFLAGS
653 CFLAGS="$CFLAGS $perlcppflags"
654 LIBS="$LIBS $perllibs"
655 LDFLAGS="$perlldflags $LDFLAGS"
657 AC_MSG_RESULT(yes); perl_ok=yes,
658 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
661 LDFLAGS=$ldflags_save
662 if test $perl_ok = yes; then
663 if test "X$perlcppflags" != "X"; then
664 dnl remove -pipe and -Wxxx, it confuses cproto
665 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
667 if test "X$perlldflags" != "X"; then
668 LDFLAGS="$perlldflags $LDFLAGS"
671 PERL_SRC="auto/if_perl.c if_perlsfio.c"
672 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
673 PERL_PRO="if_perl.pro if_perlsfio.pro"
678 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
682 if test "x$MACOSX" = "xyes"; then
683 dnl Mac OS X 10.2 or later
684 dir=/System/Library/Perl
685 darwindir=$dir/darwin
686 if test -d $darwindir; then
690 dir=/System/Library/Perl/5.8.1
691 darwindir=$dir/darwin-thread-multi-2level
692 if test -d $darwindir; then
696 if test -n "$PERL"; then
698 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
699 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
700 PERL_LIBS="-L$darwindir/CORE -lperl"
708 AC_SUBST(PERL_CFLAGS)
711 AC_MSG_CHECKING(--enable-pythoninterp argument)
712 AC_ARG_ENABLE(pythoninterp,
713 [ --enable-pythoninterp Include Python interpreter.], ,
714 [enable_pythoninterp="no"])
715 AC_MSG_RESULT($enable_pythoninterp)
716 if test "$enable_pythoninterp" = "yes"; then
717 dnl -- find the python executable
718 AC_PATH_PROG(vi_cv_path_python, python)
719 if test "X$vi_cv_path_python" != "X"; then
721 dnl -- get its version number
722 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
723 [[vi_cv_var_python_version=`
724 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
727 dnl -- it must be at least version 1.4
728 AC_MSG_CHECKING(Python is 1.4 or better)
729 if ${vi_cv_path_python} -c \
730 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
734 dnl -- find where python thinks it was installed
735 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
736 [ vi_cv_path_python_pfx=`
737 ${vi_cv_path_python} -c \
738 "import sys; print sys.prefix"` ])
740 dnl -- and where it thinks it runs
741 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
742 [ vi_cv_path_python_epfx=`
743 ${vi_cv_path_python} -c \
744 "import sys; print sys.exec_prefix"` ])
746 dnl -- python's internal library path
748 AC_CACHE_VAL(vi_cv_path_pythonpath,
749 [ vi_cv_path_pythonpath=`
751 ${vi_cv_path_python} -c \
752 "import sys, string; print string.join(sys.path,':')"` ])
754 dnl -- where the Python implementation library archives are
756 AC_ARG_WITH(python-config-dir,
757 [ --with-python-config-dir=PATH Python's config directory],
758 [ vi_cv_path_python_conf="${withval}" ] )
760 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
762 vi_cv_path_python_conf=
763 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
764 for subdir in lib64 lib share; do
765 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
766 if test -d "$d" && test -f "$d/config.c"; then
767 vi_cv_path_python_conf="$d"
773 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
775 if test "X$PYTHON_CONFDIR" = "X"; then
776 AC_MSG_RESULT([can't find it!])
779 dnl -- we need to examine Python's config/Makefile too
780 dnl see what the interpreter is built from
781 AC_CACHE_VAL(vi_cv_path_python_plibs,
784 tmp_mkf="$pwd/config-PyMake$$"
785 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
787 @echo "python_MODLIBS='$(MODLIBS)'"
788 @echo "python_LIBS='$(LIBS)'"
789 @echo "python_SYSLIBS='$(SYSLIBS)'"
790 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
792 dnl -- delete the lines from make about Entering/Leaving directory
793 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
794 rm -f -- "${tmp_mkf}"
795 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
796 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
797 vi_cv_path_python_plibs="-framework Python"
799 if test "${vi_cv_var_python_version}" = "1.4"; then
800 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
802 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
804 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
805 dnl remove -ltermcap, it can conflict with an earlier -lncurses
806 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
810 PYTHON_LIBS="${vi_cv_path_python_plibs}"
811 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
812 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
814 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}"
816 PYTHON_SRC="if_python.c"
817 dnl For Mac OSX 10.2 config.o is included in the Python library.
818 if test "x$MACOSX" = "xyes"; then
819 PYTHON_OBJ="objects/if_python.o"
821 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
823 if test "${vi_cv_var_python_version}" = "1.4"; then
824 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
826 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
828 dnl On FreeBSD linking with "-pthread" is required to use threads.
829 dnl _THREAD_SAFE must be used for compiling then.
830 dnl The "-pthread" is added to $LIBS, so that the following check for
831 dnl sigaltstack() will look in libc_r (it's there in libc!).
832 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
833 dnl will then define target-specific defines, e.g., -D_REENTRANT.
834 dnl Don't do this for Mac OSX, -pthread will generate a warning.
835 AC_MSG_CHECKING([if -pthread should be used])
838 dnl if test "x$MACOSX" != "xyes"; then
839 if test "`(uname) 2>/dev/null`" != Darwin; then
840 test "$GCC" = yes && threadsafe_flag="-pthread"
841 if test "`(uname) 2>/dev/null`" = FreeBSD; then
842 threadsafe_flag="-D_THREAD_SAFE"
843 thread_lib="-pthread"
847 if test -n "$threadsafe_flag"; then
849 CFLAGS="$CFLAGS $threadsafe_flag"
850 LIBS="$LIBS $thread_lib"
852 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
853 AC_MSG_RESULT(no); LIBS=$libs_save_old
860 dnl check that compiling a simple program still works with the flags
861 dnl added for Python.
862 AC_MSG_CHECKING([if compile and link flags for Python are sane])
865 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
866 LIBS="$LIBS $PYTHON_LIBS"
868 AC_MSG_RESULT(yes); python_ok=yes,
869 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
872 if test $python_ok = yes; then
873 AC_DEFINE(FEAT_PYTHON)
884 AC_MSG_RESULT(too old)
888 AC_SUBST(PYTHON_CONFDIR)
889 AC_SUBST(PYTHON_LIBS)
890 AC_SUBST(PYTHON_GETPATH_CFLAGS)
891 AC_SUBST(PYTHON_CFLAGS)
895 AC_MSG_CHECKING(--enable-tclinterp argument)
896 AC_ARG_ENABLE(tclinterp,
897 [ --enable-tclinterp Include Tcl interpreter.], ,
898 [enable_tclinterp="no"])
899 AC_MSG_RESULT($enable_tclinterp)
901 if test "$enable_tclinterp" = "yes"; then
903 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
904 AC_MSG_CHECKING(--with-tclsh argument)
905 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
906 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
907 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
908 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
909 AC_SUBST(vi_cv_path_tcl)
911 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
912 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
913 tclsh_name="tclsh8.4"
914 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
916 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
917 tclsh_name="tclsh8.2"
918 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
920 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
921 tclsh_name="tclsh8.0"
922 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
924 dnl still didn't find it, try without version number
925 if test "X$vi_cv_path_tcl" = "X"; then
927 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
929 if test "X$vi_cv_path_tcl" != "X"; then
930 AC_MSG_CHECKING(Tcl version)
931 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
932 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
933 AC_MSG_RESULT($tclver - OK);
934 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 -`
936 AC_MSG_CHECKING(for location of Tcl include)
937 if test "x$MACOSX" != "xyes"; then
938 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
940 dnl For Mac OS X 10.3, use the OS-provided framework location
941 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
944 for try in $tclinc; do
945 if test -f "$try/tcl.h"; then
946 AC_MSG_RESULT($try/tcl.h)
951 if test -z "$TCL_INC"; then
952 AC_MSG_RESULT(<not found>)
955 if test -z "$SKIP_TCL"; then
956 AC_MSG_CHECKING(for location of tclConfig.sh script)
957 if test "x$MACOSX" != "xyes"; then
958 tclcnf=`echo $tclinc | sed s/include/lib/g`
959 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
961 dnl For Mac OS X 10.3, use the OS-provided framework location
962 tclcnf="/System/Library/Frameworks/Tcl.framework"
964 for try in $tclcnf; do
965 if test -f $try/tclConfig.sh; then
966 AC_MSG_RESULT($try/tclConfig.sh)
968 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
969 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
970 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
971 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
972 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'`
976 if test -z "$TCL_LIBS"; then
977 AC_MSG_RESULT(<not found>)
978 AC_MSG_CHECKING(for Tcl library by myself)
979 tcllib=`echo $tclinc | sed s/include/lib/g`
980 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
981 for ext in .so .a ; do
982 for ver in "" $tclver ; do
983 for try in $tcllib ; do
985 if test -f $try/lib$trylib ; then
986 AC_MSG_RESULT($try/lib$trylib)
987 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
988 if test "`(uname) 2>/dev/null`" = SunOS &&
989 uname -r | grep '^5' >/dev/null; then
990 TCL_LIBS="$TCL_LIBS -R $try"
997 if test -z "$TCL_LIBS"; then
998 AC_MSG_RESULT(<not found>)
1002 if test -z "$SKIP_TCL"; then
1005 TCL_OBJ=objects/if_tcl.o
1007 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
1011 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
1018 AC_SUBST(TCL_CFLAGS)
1021 AC_MSG_CHECKING(--enable-rubyinterp argument)
1022 AC_ARG_ENABLE(rubyinterp,
1023 [ --enable-rubyinterp Include Ruby interpreter.], ,
1024 [enable_rubyinterp="no"])
1025 AC_MSG_RESULT($enable_rubyinterp)
1026 if test "$enable_rubyinterp" = "yes"; then
1027 AC_MSG_CHECKING(--with-ruby-command argument)
1028 AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
1029 RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
1030 RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
1031 AC_SUBST(vi_cv_path_ruby)
1032 AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
1033 if test "X$vi_cv_path_ruby" != "X"; then
1034 AC_MSG_CHECKING(Ruby version)
1035 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
1037 AC_MSG_CHECKING(Ruby header files)
1038 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
1039 if test "X$rubyhdrdir" != "X"; then
1040 AC_MSG_RESULT($rubyhdrdir)
1041 RUBY_CFLAGS="-I$rubyhdrdir"
1042 rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
1043 if test -d "$rubyhdrdir/$rubyarch"; then
1044 RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
1046 rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
1047 RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
1048 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
1049 if test "X$rubylibs" != "X"; then
1050 RUBY_LIBS="$rubylibs"
1052 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
1053 if test -f "$rubyhdrdir/$librubyarg"; then
1054 librubyarg="$rubyhdrdir/$librubyarg"
1056 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
1057 if test -f "$rubylibdir/$librubyarg"; then
1058 librubyarg="$rubylibdir/$librubyarg"
1059 elif test "$librubyarg" = "libruby.a"; then
1060 dnl required on Mac OS 10.3 where libruby.a doesn't exist
1063 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
1067 if test "X$librubyarg" != "X"; then
1068 RUBY_LIBS="$librubyarg $RUBY_LIBS"
1070 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
1071 if test "X$rubyldflags" != "X"; then
1072 dnl Ruby on Mac OS X 10.5 adds "-arch" flags but these should only
1073 dnl be included if requested by passing --with-mac-arch to
1074 dnl configure, so strip these flags first (if present)
1075 rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//'`
1076 if test "X$rubyldflags" != "X"; then
1077 LDFLAGS="$rubyldflags $LDFLAGS"
1080 RUBY_SRC="if_ruby.c"
1081 RUBY_OBJ="objects/if_ruby.o"
1082 RUBY_PRO="if_ruby.pro"
1083 AC_DEFINE(FEAT_RUBY)
1085 AC_MSG_RESULT(not found; disabling Ruby)
1088 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1095 AC_SUBST(RUBY_CFLAGS)
1098 AC_MSG_CHECKING(--enable-cscope argument)
1099 AC_ARG_ENABLE(cscope,
1100 [ --enable-cscope Include cscope interface.], ,
1101 [enable_cscope="no"])
1102 AC_MSG_RESULT($enable_cscope)
1103 if test "$enable_cscope" = "yes"; then
1104 AC_DEFINE(FEAT_CSCOPE)
1107 AC_MSG_CHECKING(--enable-workshop argument)
1108 AC_ARG_ENABLE(workshop,
1109 [ --enable-workshop Include Sun Visual Workshop support.], ,
1110 [enable_workshop="no"])
1111 AC_MSG_RESULT($enable_workshop)
1112 if test "$enable_workshop" = "yes"; then
1113 AC_DEFINE(FEAT_SUN_WORKSHOP)
1114 WORKSHOP_SRC="workshop.c integration.c"
1115 AC_SUBST(WORKSHOP_SRC)
1116 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1117 AC_SUBST(WORKSHOP_OBJ)
1118 if test "${enable_gui-xxx}" = xxx; then
1123 AC_MSG_CHECKING(--disable-netbeans argument)
1124 AC_ARG_ENABLE(netbeans,
1125 [ --disable-netbeans Disable NetBeans integration support.],
1126 , [enable_netbeans="yes"])
1127 if test "$enable_netbeans" = "yes"; then
1129 dnl On Solaris we need the socket and nsl library.
1130 AC_CHECK_LIB(socket, socket)
1131 AC_CHECK_LIB(nsl, gethostbyname)
1132 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1139 #include <netinet/in.h>
1141 #include <sys/types.h>
1142 #include <sys/socket.h>
1143 /* Check bitfields */
1145 unsigned int initDone:1;
1149 /* Check creating a socket. */
1150 struct sockaddr_in server;
1151 (void)socket(AF_INET, SOCK_STREAM, 0);
1153 (void)gethostbyname("microsoft.com");
1154 if (errno == ECONNREFUSED)
1155 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1158 AC_MSG_RESULT(no); enable_netbeans="no")
1162 if test "$enable_netbeans" = "yes"; then
1163 AC_DEFINE(FEAT_NETBEANS_INTG)
1164 NETBEANS_SRC="netbeans.c"
1165 AC_SUBST(NETBEANS_SRC)
1166 NETBEANS_OBJ="objects/netbeans.o"
1167 AC_SUBST(NETBEANS_OBJ)
1170 AC_MSG_CHECKING(--enable-sniff argument)
1171 AC_ARG_ENABLE(sniff,
1172 [ --enable-sniff Include Sniff interface.], ,
1173 [enable_sniff="no"])
1174 AC_MSG_RESULT($enable_sniff)
1175 if test "$enable_sniff" = "yes"; then
1176 AC_DEFINE(FEAT_SNIFF)
1177 SNIFF_SRC="if_sniff.c"
1179 SNIFF_OBJ="objects/if_sniff.o"
1183 AC_MSG_CHECKING(--enable-multibyte argument)
1184 AC_ARG_ENABLE(multibyte,
1185 [ --enable-multibyte Include multibyte editing support.], ,
1186 [enable_multibyte="no"])
1187 AC_MSG_RESULT($enable_multibyte)
1188 if test "$enable_multibyte" = "yes"; then
1189 AC_DEFINE(FEAT_MBYTE)
1192 AC_MSG_CHECKING(--enable-hangulinput argument)
1193 AC_ARG_ENABLE(hangulinput,
1194 [ --enable-hangulinput Include Hangul input support.], ,
1195 [enable_hangulinput="no"])
1196 AC_MSG_RESULT($enable_hangulinput)
1198 AC_MSG_CHECKING(--enable-xim argument)
1200 [ --enable-xim Include XIM input support.],
1201 AC_MSG_RESULT($enable_xim),
1202 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1203 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1205 AC_MSG_CHECKING(--enable-fontset argument)
1206 AC_ARG_ENABLE(fontset,
1207 [ --enable-fontset Include X fontset output support.], ,
1208 [enable_fontset="no"])
1209 AC_MSG_RESULT($enable_fontset)
1210 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1212 test -z "$with_x" && with_x=yes
1213 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1214 if test "$with_x" = no; then
1215 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1217 dnl Do this check early, so that its failure can override user requests.
1219 AC_PATH_PROG(xmkmfpath, xmkmf)
1223 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1224 dnl be compiled with a special option.
1225 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1226 if test "$OS390Unix" = "yes"; then
1227 CFLAGS="$CFLAGS -W c,dll"
1228 LDFLAGS="$LDFLAGS -W l,dll"
1229 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1232 dnl On my HPUX system the X include dir is found, but the lib dir not.
1233 dnl This is a desparate try to fix this.
1235 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1236 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1237 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1238 X_LIBS="$X_LIBS -L$x_libraries"
1239 if test "`(uname) 2>/dev/null`" = SunOS &&
1240 uname -r | grep '^5' >/dev/null; then
1241 X_LIBS="$X_LIBS -R $x_libraries"
1245 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1246 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1247 AC_MSG_RESULT(Corrected X includes to $x_includes)
1248 X_CFLAGS="$X_CFLAGS -I$x_includes"
1251 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1252 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1253 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1254 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1255 dnl Same for "-R/usr/lib ".
1256 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1259 dnl Check if the X11 header files are correctly installed. On some systems
1260 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1262 AC_MSG_CHECKING(if X11 header files can be found)
1264 CFLAGS="$CFLAGS $X_CFLAGS"
1265 AC_TRY_COMPILE([#include <X11/Xlib.h>
1266 #include <X11/Intrinsic.h>], ,
1268 AC_MSG_RESULT(no); no_x=yes)
1271 if test "${no_x-no}" = yes; then
1278 ac_save_LDFLAGS="$LDFLAGS"
1279 LDFLAGS="-L$x_libraries $LDFLAGS"
1281 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1282 dnl For HP-UX 10.20 it must be before -lSM -lICE
1283 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1284 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1286 dnl Some systems need -lnsl -lsocket when testing for ICE.
1287 dnl The check above doesn't do this, try here (again). Also needed to get
1288 dnl them after Xdmcp. link.sh will remove them when not needed.
1289 dnl Check for other function than above to avoid the cached value
1290 AC_CHECK_LIB(ICE, IceOpenConnection,
1291 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1293 dnl Check for -lXpm (needed for some versions of Motif)
1294 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1295 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1296 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1298 dnl Check that the X11 header files don't use implicit declarations
1299 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1301 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1302 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1304 CFLAGS="$CFLAGS -Wno-implicit-int"
1305 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1306 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1307 AC_MSG_RESULT(test failed)
1312 LDFLAGS="$ac_save_LDFLAGS"
1314 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1315 AC_CACHE_VAL(ac_cv_small_wchar_t,
1317 #include <X11/Xlib.h>
1319 # include <stdlib.h>
1320 # include <stddef.h>
1324 if (sizeof(wchar_t) <= 2)
1328 ac_cv_small_wchar_t="no",
1329 ac_cv_small_wchar_t="yes",
1330 AC_MSG_ERROR(failed to compile test program))])
1331 AC_MSG_RESULT($ac_cv_small_wchar_t)
1332 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1333 AC_DEFINE(SMALL_WCHAR_T)
1339 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1341 AC_MSG_CHECKING(--enable-gui argument)
1343 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
1345 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1346 dnl Do not use character classes for portability with old tools.
1347 enable_gui_canon=`echo "_$enable_gui" | \
1348 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1350 dnl Skip everything by default.
1361 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1363 case "$enable_gui_canon" in
1364 no) AC_MSG_RESULT(no GUI support)
1366 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1367 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1368 photon) AC_MSG_RESULT(Photon GUI support) ;;
1369 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1373 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1375 case "$enable_gui_canon" in
1376 no) AC_MSG_RESULT(no GUI support)
1378 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1379 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1380 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1381 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1387 case "$enable_gui_canon" in
1388 no|none) AC_MSG_RESULT(no GUI support) ;;
1389 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1397 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1399 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1402 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1405 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1409 motif) AC_MSG_RESULT(Motif GUI support)
1411 athena) AC_MSG_RESULT(Athena GUI support)
1413 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1415 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1420 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1421 AC_MSG_CHECKING(whether or not to look for GTK)
1422 AC_ARG_ENABLE(gtk-check,
1423 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1424 , enable_gtk_check="yes")
1425 AC_MSG_RESULT($enable_gtk_check)
1426 if test "x$enable_gtk_check" = "xno"; then
1432 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1433 -a "$enable_gui_canon" != "gnome2"; then
1434 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1435 AC_ARG_ENABLE(gtk2-check,
1436 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1437 , enable_gtk2_check="yes")
1438 AC_MSG_RESULT($enable_gtk2_check)
1439 if test "x$enable_gtk2_check" = "xno"; then
1444 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1445 -a "$enable_gui_canon" != "gnome2"; then
1446 AC_MSG_CHECKING(whether or not to look for GNOME)
1447 AC_ARG_ENABLE(gnome-check,
1448 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1449 , enable_gnome_check="no")
1450 AC_MSG_RESULT($enable_gnome_check)
1451 if test "x$enable_gnome_check" = "xno"; then
1456 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1457 AC_MSG_CHECKING(whether or not to look for Motif)
1458 AC_ARG_ENABLE(motif-check,
1459 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1460 , enable_motif_check="yes")
1461 AC_MSG_RESULT($enable_motif_check)
1462 if test "x$enable_motif_check" = "xno"; then
1467 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1468 AC_MSG_CHECKING(whether or not to look for Athena)
1469 AC_ARG_ENABLE(athena-check,
1470 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1471 , enable_athena_check="yes")
1472 AC_MSG_RESULT($enable_athena_check)
1473 if test "x$enable_athena_check" = "xno"; then
1478 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1479 AC_MSG_CHECKING(whether or not to look for neXtaw)
1480 AC_ARG_ENABLE(nextaw-check,
1481 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1482 , enable_nextaw_check="yes")
1483 AC_MSG_RESULT($enable_nextaw_check);
1484 if test "x$enable_nextaw_check" = "xno"; then
1489 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1490 AC_MSG_CHECKING(whether or not to look for Carbon)
1491 AC_ARG_ENABLE(carbon-check,
1492 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1493 , enable_carbon_check="yes")
1494 AC_MSG_RESULT($enable_carbon_check);
1495 if test "x$enable_carbon_check" = "xno"; then
1501 if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1502 AC_MSG_CHECKING(for Carbon GUI)
1503 dnl already did the check, just give the message
1506 if test "$VIMNAME" = "vim"; then
1510 dnl Default install directory is not /usr/local
1511 if test x$prefix = xNONE; then
1512 prefix=/Applications
1515 dnl Sorry for the hard coded default
1516 datadir='${prefix}/Vim.app/Contents/Resources'
1518 dnl skip everything else
1530 dnl Get the cflags and libraries from the gtk-config script
1533 dnl define an autoconf function to check for a specified version of GTK, and
1534 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1536 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1537 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1539 AC_DEFUN(AM_PATH_GTK,
1541 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1543 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1544 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1546 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1547 && $PKG_CONFIG --exists gtk+-2.0; then
1549 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1550 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1551 dnl something like that.
1552 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1553 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1554 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1555 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1556 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1557 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1558 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1559 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1560 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1562 elif test "X$GTK_CONFIG" != "Xno"; then
1564 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1566 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1567 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1568 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1569 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1570 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1571 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1572 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1578 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1580 ac_save_CFLAGS="$CFLAGS"
1581 ac_save_LIBS="$LIBS"
1582 CFLAGS="$CFLAGS $GTK_CFLAGS"
1583 LIBS="$LIBS $GTK_LIBS"
1586 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1587 dnl checks the results of gtk-config to some extent
1591 #include <gtk/gtk.h>
1594 # include <stdlib.h>
1595 # include <stddef.h>
1601 int major, minor, micro;
1604 system ("touch conf.gtktest");
1606 /* HP/UX 9 (%@#!) writes to sscanf strings */
1607 tmp_version = g_strdup("$min_gtk_version");
1608 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1609 printf("%s, bad version string\n", "$min_gtk_version");
1613 if ((gtk_major_version > major) ||
1614 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1615 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1616 (gtk_micro_version >= micro)))
1622 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1623 CFLAGS="$ac_save_CFLAGS"
1624 LIBS="$ac_save_LIBS"
1627 if test "x$no_gtk" = x ; then
1628 if test "x$enable_gtktest" = "xyes"; then
1629 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1631 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1633 ifelse([$2], , :, [$2])
1639 ifelse([$3], , :, [$3])
1646 ifelse([$3], , :, [$3])
1648 AC_SUBST(GTK_CFLAGS)
1653 dnl ---------------------------------------------------------------------------
1655 dnl ---------------------------------------------------------------------------
1656 AC_DEFUN([GNOME_INIT_HOOK],
1658 AC_SUBST(GNOME_LIBS)
1659 AC_SUBST(GNOME_LIBDIR)
1660 AC_SUBST(GNOME_INCLUDEDIR)
1662 AC_ARG_WITH(gnome-includes,
1663 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1664 [CFLAGS="$CFLAGS -I$withval"]
1667 AC_ARG_WITH(gnome-libs,
1668 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1669 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1673 [ --with-gnome Specify prefix for GNOME files],
1674 if test x$withval = xyes; then
1676 ifelse([$1], [], :, [$1])
1678 if test "x$withval" = xno; then
1682 LDFLAGS="$LDFLAGS -L$withval/lib"
1683 CFLAGS="$CFLAGS -I$withval/include"
1684 gnome_prefix=$withval/lib
1689 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1691 AC_MSG_CHECKING(for libgnomeui-2.0)
1692 if $PKG_CONFIG --exists libgnomeui-2.0; then
1694 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1695 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1696 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1698 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1699 dnl This might not be the right way but it works for me...
1700 AC_MSG_CHECKING(for FreeBSD)
1701 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1702 AC_MSG_RESULT(yes, adding -pthread)
1703 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1704 GNOME_LIBS="$GNOME_LIBS -pthread"
1710 AC_MSG_RESULT(not found)
1711 if test "x$2" = xfail; then
1712 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1716 elif test "x$want_gnome" = xyes; then
1718 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1719 if test "$GNOME_CONFIG" = "no"; then
1720 no_gnome_config="yes"
1722 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1723 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1725 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1726 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1727 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1731 no_gnome_config="yes"
1735 if test x$exec_prefix = xNONE; then
1736 if test x$prefix = xNONE; then
1737 gnome_prefix=$ac_default_prefix/lib
1739 gnome_prefix=$prefix/lib
1742 gnome_prefix=`eval echo \`echo $libdir\``
1745 if test "$no_gnome_config" = "yes"; then
1746 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1747 if test -f $gnome_prefix/gnomeConf.sh; then
1748 AC_MSG_RESULT(found)
1749 echo "loading gnome configuration from" \
1750 "$gnome_prefix/gnomeConf.sh"
1751 . $gnome_prefix/gnomeConf.sh
1754 AC_MSG_RESULT(not found)
1755 if test x$2 = xfail; then
1756 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1764 AC_DEFUN([GNOME_INIT],[
1765 GNOME_INIT_HOOK([],fail)
1769 dnl ---------------------------------------------------------------------------
1770 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1771 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1772 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1773 dnl ---------------------------------------------------------------------------
1774 if test -z "$SKIP_GTK"; then
1776 AC_MSG_CHECKING(--with-gtk-prefix argument)
1777 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1778 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1779 gtk_config_prefix=""; AC_MSG_RESULT(no))
1781 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1782 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1783 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1784 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1786 AC_MSG_CHECKING(--disable-gtktest argument)
1787 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1788 , enable_gtktest=yes)
1789 if test "x$enable_gtktest" = "xyes" ; then
1790 AC_MSG_RESULT(gtk test enabled)
1792 AC_MSG_RESULT(gtk test disabled)
1795 if test "x$gtk_config_prefix" != "x" ; then
1796 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1797 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1799 if test "x$gtk_config_exec_prefix" != "x" ; then
1800 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1801 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1803 if test "X$GTK_CONFIG" = "X"; then
1804 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1805 if test "X$GTK_CONFIG" = "Xno"; then
1806 dnl Some distributions call it gtk12-config, annoying!
1807 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1808 GTK_CONFIG="$GTK12_CONFIG"
1811 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1813 if test "X$PKG_CONFIG" = "X"; then
1814 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1817 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1818 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1819 dnl problems (bold fonts, --remote doesn't work).
1820 if test "X$SKIP_GTK2" != "XYES"; then
1822 [GUI_LIB_LOC="$GTK_LIBDIR"
1823 GTK_LIBNAME="$GTK_LIBS"
1824 GUI_INC_LOC="$GTK_CFLAGS"], )
1825 if test "x$GTK_CFLAGS" != "x"; then
1830 AC_SUBST(GTK_LIBNAME)
1834 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1835 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1836 dnl were test versions.
1837 if test "x$GUITYPE" != "xGTK"; then
1840 [GTK_LIBNAME="$GTK_LIBS"
1841 GUI_INC_LOC="$GTK_CFLAGS"], )
1842 if test "x$GTK_CFLAGS" != "x"; then
1847 AC_SUBST(GTK_LIBNAME)
1851 dnl Give a warning if GTK is older than 1.2.3
1852 if test "x$GUITYPE" = "xGTK"; then
1853 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1854 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1855 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1858 if test "0$gtk_major_version" -ge 2; then
1859 AC_DEFINE(HAVE_GTK2)
1860 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1861 || test "0$gtk_minor_version" -ge 2 \
1862 || test "0$gtk_major_version" -gt 2; then
1863 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1867 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1869 if test -z "$SKIP_GNOME"; then
1871 GNOME_INIT_HOOK([have_gnome=yes])
1872 if test x$have_gnome = xyes ; then
1873 AC_DEFINE(FEAT_GUI_GNOME)
1874 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1875 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1884 dnl Check for Motif include files location.
1885 dnl The LAST one found is used, this makes the highest version to be used,
1886 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1888 if test -z "$SKIP_MOTIF"; then
1889 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"
1890 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1891 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1893 AC_MSG_CHECKING(for location of Motif GUI includes)
1894 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1896 for try in $gui_includes; do
1897 if test -f "$try/Xm/Xm.h"; then
1901 if test -n "$GUI_INC_LOC"; then
1902 if test "$GUI_INC_LOC" = /usr/include; then
1904 AC_MSG_RESULT(in default path)
1906 AC_MSG_RESULT($GUI_INC_LOC)
1909 AC_MSG_RESULT(<not found>)
1914 dnl Check for Motif library files location. In the same order as the include
1915 dnl files, to avoid a mixup if several versions are present
1917 if test -z "$SKIP_MOTIF"; then
1918 AC_MSG_CHECKING(--with-motif-lib argument)
1919 AC_ARG_WITH(motif-lib,
1920 [ --with-motif-lib=STRING Library for Motif ],
1921 [ MOTIF_LIBNAME="${withval}" ] )
1923 if test -n "$MOTIF_LIBNAME"; then
1924 AC_MSG_RESULT($MOTIF_LIBNAME)
1929 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1930 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1932 AC_MSG_CHECKING(for location of Motif GUI libs)
1933 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"
1935 for try in $gui_libs; do
1936 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1937 if test -f "$libtry"; then
1942 if test -n "$GUI_LIB_LOC"; then
1943 dnl Remove /usr/lib, it causes trouble on some systems
1944 if test "$GUI_LIB_LOC" = /usr/lib; then
1946 AC_MSG_RESULT(in default path)
1948 if test -n "$GUI_LIB_LOC"; then
1949 AC_MSG_RESULT($GUI_LIB_LOC)
1950 if test "`(uname) 2>/dev/null`" = SunOS &&
1951 uname -r | grep '^5' >/dev/null; then
1952 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1958 AC_MSG_RESULT(<not found>)
1964 if test -z "$SKIP_MOTIF"; then
1968 AC_SUBST(MOTIF_LIBNAME)
1971 dnl Check if the Athena files can be found
1975 if test -z "$SKIP_ATHENA"; then
1976 AC_MSG_CHECKING(if Athena header files can be found)
1978 CFLAGS="$CFLAGS $X_CFLAGS"
1980 #include <X11/Intrinsic.h>
1981 #include <X11/Xaw/Paned.h>], ,
1983 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
1987 if test -z "$SKIP_ATHENA"; then
1991 if test -z "$SKIP_NEXTAW"; then
1992 AC_MSG_CHECKING(if neXtaw header files can be found)
1994 CFLAGS="$CFLAGS $X_CFLAGS"
1996 #include <X11/Intrinsic.h>
1997 #include <X11/neXtaw/Paned.h>], ,
1999 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
2003 if test -z "$SKIP_NEXTAW"; then
2007 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2008 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
2009 dnl Avoid adding it when it twice
2010 if test -n "$GUI_INC_LOC"; then
2011 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
2013 if test -n "$GUI_LIB_LOC"; then
2014 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
2017 dnl Check for -lXext and then for -lXmu
2018 ldflags_save=$LDFLAGS
2019 LDFLAGS="$X_LIBS $LDFLAGS"
2020 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
2021 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2022 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
2023 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
2024 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2025 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
2026 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2027 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
2028 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2029 if test -z "$SKIP_MOTIF"; then
2030 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
2031 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2033 LDFLAGS=$ldflags_save
2035 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
2036 AC_MSG_CHECKING(for extra X11 defines)
2039 if mkdir conftestdir; then
2041 cat > Imakefile <<'EOF'
2043 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2045 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2046 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2051 if test -z "$NARROW_PROTO"; then
2054 AC_MSG_RESULT($NARROW_PROTO)
2056 AC_SUBST(NARROW_PROTO)
2059 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2060 dnl use the X11 include path
2061 if test "$enable_xsmp" = "yes"; then
2062 cppflags_save=$CPPFLAGS
2063 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2064 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2065 CPPFLAGS=$cppflags_save
2069 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2070 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2071 cppflags_save=$CPPFLAGS
2072 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2073 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2075 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2076 if test ! "$enable_xim" = "no"; then
2077 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2078 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2080 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2082 CPPFLAGS=$cppflags_save
2084 dnl automatically enable XIM when hangul input isn't enabled
2085 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2086 -a "x$GUITYPE" != "xNONE" ; then
2087 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2092 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2093 cppflags_save=$CPPFLAGS
2094 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2095 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2096 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2098 #include <X11/Intrinsic.h>
2099 #include <X11/Xmu/Editres.h>],
2102 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2104 CPPFLAGS=$cppflags_save
2107 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2108 if test -z "$SKIP_MOTIF"; then
2109 cppflags_save=$CPPFLAGS
2110 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2111 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2112 Xm/UnhighlightT.h Xm/Notebook.h)
2114 if test $ac_cv_header_Xm_XpmP_h = yes; then
2115 dnl Solaris uses XpmAttributes_21, very annoying.
2116 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2117 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2118 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2119 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2122 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2124 CPPFLAGS=$cppflags_save
2127 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2128 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2131 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2132 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2135 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2136 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2140 if test -z "$SKIP_PHOTON"; then
2144 AC_SUBST(GUI_INC_LOC)
2145 AC_SUBST(GUI_LIB_LOC)
2147 AC_SUBST(GUI_X_LIBS)
2149 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2150 AC_MSG_ERROR([cannot use workshop without Motif])
2153 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2154 if test "$enable_xim" = "yes"; then
2157 if test "$enable_fontset" = "yes"; then
2158 AC_DEFINE(FEAT_XFONTSET)
2162 dnl ---------------------------------------------------------------------------
2163 dnl end of GUI-checking
2164 dnl ---------------------------------------------------------------------------
2167 dnl Only really enable hangul input when GUI and XFONTSET are available
2168 if test "$enable_hangulinput" = "yes"; then
2169 if test "x$GUITYPE" = "xNONE"; then
2170 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2171 enable_hangulinput=no
2173 AC_DEFINE(FEAT_HANGULIN)
2174 HANGULIN_SRC=hangulin.c
2175 AC_SUBST(HANGULIN_SRC)
2176 HANGULIN_OBJ=objects/hangulin.o
2177 AC_SUBST(HANGULIN_OBJ)
2181 dnl Checks for libraries and include files.
2183 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2186 #include "confdefs.h"
2189 # include <stdlib.h>
2190 # include <stddef.h>
2192 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2194 vim_cv_toupper_broken=yes
2196 vim_cv_toupper_broken=no
2198 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2201 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2202 AC_DEFINE(BROKEN_TOUPPER)
2205 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2206 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2207 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2210 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2211 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2212 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2215 dnl Checks for header files.
2216 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2217 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2218 if test "$HAS_ELF" = 1; then
2219 AC_CHECK_LIB(elf, main)
2224 dnl If sys/wait.h is not found it might still exist but not be POSIX
2225 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2226 if test $ac_cv_header_sys_wait_h = no; then
2227 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2228 AC_TRY_COMPILE([#include <sys/wait.h>],
2229 [union wait xx, yy; xx = yy],
2231 AC_DEFINE(HAVE_SYS_WAIT_H)
2232 AC_DEFINE(HAVE_UNION_WAIT),
2236 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2237 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2238 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2239 sys/resource.h sys/systeminfo.h locale.h \
2240 sys/stream.h termios.h libc.h sys/statfs.h \
2241 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2242 libgen.h util/debug.h util/msg18n.h frame.h \
2243 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2245 dnl sys/ptem.h depends on sys/stream.h on Solaris
2246 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2247 [#if defined HAVE_SYS_STREAM_H
2248 # include <sys/stream.h>
2251 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2252 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2253 [#if defined HAVE_SYS_PARAM_H
2254 # include <sys/param.h>
2258 dnl pthread_np.h may exist but can only be used after including pthread.h
2259 AC_MSG_CHECKING([for pthread_np.h])
2261 #include <pthread.h>
2262 #include <pthread_np.h>],
2265 AC_DEFINE(HAVE_PTHREAD_NP_H),
2268 AC_CHECK_HEADERS(strings.h)
2269 if test "x$MACOSX" = "xyes"; then
2270 dnl The strings.h file on OS/X contains a warning and nothing useful.
2271 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2274 dnl Check if strings.h and string.h can both be included when defined.
2275 AC_MSG_CHECKING([if strings.h can be included after string.h])
2276 cppflags_save=$CPPFLAGS
2277 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2279 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2280 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2281 /* but don't do it on AIX 5.1 (Uribarri) */
2284 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2286 #ifdef HAVE_STRING_H
2287 # include <string.h>
2289 #if defined(HAVE_STRINGS_H)
2290 # include <strings.h>
2294 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2296 CPPFLAGS=$cppflags_save
2299 dnl Checks for typedefs, structures, and compiler characteristics.
2300 AC_PROG_GCC_TRADITIONAL
2309 AC_CHECK_TYPE(ino_t, long)
2310 AC_CHECK_TYPE(dev_t, unsigned)
2312 AC_MSG_CHECKING(for rlim_t)
2313 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2314 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2317 changequote(<<,>>)dnl
2318 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2321 #include <sys/types.h>
2323 # include <stdlib.h>
2324 # include <stddef.h>
2326 #ifdef HAVE_SYS_RESOURCE_H
2327 # include <sys/resource.h>
2329 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2330 AC_MSG_RESULT($ac_cv_type_rlim_t)
2332 if test $ac_cv_type_rlim_t = no; then
2333 cat >> confdefs.h <<\EOF
2334 #define rlim_t unsigned long
2338 AC_MSG_CHECKING(for stack_t)
2339 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2340 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2342 AC_EGREP_CPP(stack_t,
2344 #include <sys/types.h>
2346 # include <stdlib.h>
2347 # include <stddef.h>
2350 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2351 AC_MSG_RESULT($ac_cv_type_stack_t)
2353 if test $ac_cv_type_stack_t = no; then
2354 cat >> confdefs.h <<\EOF
2355 #define stack_t struct sigaltstack
2359 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2360 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2362 #include <sys/types.h>
2364 # include <stdlib.h>
2365 # include <stddef.h>
2368 #include "confdefs.h"
2369 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2370 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2374 AC_MSG_CHECKING(--with-tlib argument)
2375 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2376 if test -n "$with_tlib"; then
2377 AC_MSG_RESULT($with_tlib)
2378 LIBS="$LIBS -l$with_tlib"
2379 AC_MSG_CHECKING(for linking with $with_tlib library)
2380 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2381 dnl Need to check for tgetent() below.
2384 AC_MSG_RESULT([empty: automatic terminal library selection])
2385 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2386 dnl curses, because curses is much slower.
2387 dnl Newer versions of ncurses are preferred over anything.
2388 dnl Older versions of ncurses have bugs, get a new one!
2389 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2390 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2391 case "`uname -s 2>/dev/null`" in
2392 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2393 *) tlibs="ncurses termlib termcap curses";;
2395 for libname in $tlibs; do
2396 AC_CHECK_LIB(${libname}, tgetent,,)
2397 if test "x$olibs" != "x$LIBS"; then
2398 dnl It's possible that a library is found but it doesn't work
2399 dnl e.g., shared library that cannot be found
2400 dnl compile and run a test program to be sure
2402 #ifdef HAVE_TERMCAP_H
2403 # include <termcap.h>
2406 # include <stdlib.h>
2407 # include <stddef.h>
2409 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2410 res="OK", res="FAIL", res="FAIL")
2411 if test "$res" = "OK"; then
2414 AC_MSG_RESULT($libname library is not usable)
2418 if test "x$olibs" = "x$LIBS"; then
2419 AC_MSG_RESULT(no terminal library found)
2423 if test "x$olibs" = "x$LIBS"; then
2424 AC_MSG_CHECKING([for tgetent()])
2426 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2428 AC_MSG_ERROR([NOT FOUND!
2429 You need to install a terminal library; for example ncurses.
2430 Or specify the name of the library with --with-tlib.]))
2433 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2436 #include "confdefs.h"
2437 #ifdef HAVE_TERMCAP_H
2438 # include <termcap.h>
2440 #ifdef HAVE_STRING_H
2441 # include <string.h>
2444 # include <stdlib.h>
2445 # include <stddef.h>
2448 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2454 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2458 if test "x$vim_cv_terminfo" = "xyes" ; then
2462 if test "x$olibs" != "x$LIBS"; then
2463 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2466 #include "confdefs.h"
2467 #ifdef HAVE_TERMCAP_H
2468 # include <termcap.h>
2471 # include <stdlib.h>
2472 # include <stddef.h>
2475 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2479 vim_cv_tgent=non-zero
2481 AC_MSG_ERROR(failed to compile test program.)
2485 if test "x$vim_cv_tgent" = "xzero" ; then
2486 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2490 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2492 #ifdef HAVE_TERMCAP_H
2493 # include <termcap.h>
2495 ], [ospeed = 20000],
2496 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2498 AC_MSG_CHECKING(whether ospeed can be extern)
2500 #ifdef HAVE_TERMCAP_H
2501 # include <termcap.h>
2503 extern short ospeed;
2504 ], [ospeed = 20000],
2505 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2509 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2511 #ifdef HAVE_TERMCAP_H
2512 # include <termcap.h>
2514 ], [if (UP == 0 && BC == 0) PC = 1],
2515 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2517 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2519 #ifdef HAVE_TERMCAP_H
2520 # include <termcap.h>
2522 extern char *UP, *BC, PC;
2523 ], [if (UP == 0 && BC == 0) PC = 1],
2524 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2528 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2530 #ifdef HAVE_TERMCAP_H
2531 # include <termcap.h>
2533 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2534 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2537 dnl On some SCO machines sys/select redefines struct timeval
2538 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2540 #include <sys/types.h>
2541 #include <sys/time.h>
2542 #include <sys/select.h>], ,
2544 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2547 dnl AC_DECL_SYS_SIGLIST
2549 dnl Checks for pty.c (copied from screen) ==========================
2550 AC_MSG_CHECKING(for /dev/ptc)
2551 if test -r /dev/ptc; then
2552 AC_DEFINE(HAVE_DEV_PTC)
2558 AC_MSG_CHECKING(for SVR4 ptys)
2559 if test -c /dev/ptmx ; then
2560 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2561 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2567 AC_MSG_CHECKING(for ptyranges)
2568 if test -d /dev/ptym ; then
2578 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2579 dnl if test -c /dev/ptyp19; then
2580 dnl ptys=`echo /dev/ptyp??`
2582 dnl ptys=`echo $pdir/pty??`
2584 if test "$ptys" != "$pdir/pty??" ; then
2585 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2586 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2587 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2588 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2589 AC_MSG_RESULT([$p0 / $p1])
2591 AC_MSG_RESULT([don't know])
2594 dnl **** pty mode/group handling ****
2596 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2598 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2601 #include "confdefs.h"
2602 #include <sys/types.h>
2604 # include <stdlib.h>
2605 # include <stddef.h>
2607 #ifdef HAVE_UNISTD_H
2610 #include <sys/stat.h>
2619 if (!(x = ttyname(0))) exit(1);
2620 if (stat(x, &sb)) exit(1);
2622 if (om & 002) exit(0);
2623 m = system("mesg y");
2624 if (m == -1 || m == 127) exit(1);
2625 if (stat(x, &sb)) exit(1);
2627 if (chmod(x, om)) exit(1);
2628 if (m & 002) exit(0);
2629 if (sb.st_gid == getgid()) exit(1);
2630 if (!(fp=fopen("conftest_grp", "w")))
2632 fprintf(fp, "%d\n", sb.st_gid);
2637 if test -f conftest_grp; then
2638 vim_cv_tty_group=`cat conftest_grp`
2639 if test "x$vim_cv_tty_mode" = "x" ; then
2640 vim_cv_tty_mode=0620
2642 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2644 vim_cv_tty_group=world
2645 AC_MSG_RESULT([ptys are world accessible])
2648 vim_cv_tty_group=world
2649 AC_MSG_RESULT([can't determine - assume ptys are world accessible])
2651 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2656 if test "x$vim_cv_tty_group" != "xworld" ; then
2657 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2658 if test "x$vim_cv_tty_mode" = "x" ; then
2659 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)])
2661 AC_DEFINE(PTYMODE, 0620)
2665 dnl Checks for library functions. ===================================
2669 dnl find out what to use at the end of a signal function
2670 if test $ac_cv_type_signal = void; then
2671 AC_DEFINE(SIGRETURN, [return])
2673 AC_DEFINE(SIGRETURN, [return 0])
2676 dnl check if struct sigcontext is defined (used for SGI only)
2677 AC_MSG_CHECKING(for struct sigcontext)
2682 struct sigcontext *scont;
2683 scont = (struct sigcontext *)0;
2687 AC_DEFINE(HAVE_SIGCONTEXT),
2690 dnl tricky stuff: try to find out if getcwd() is implemented with
2691 dnl system("sh -c pwd")
2692 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2695 #include "confdefs.h"
2696 #ifdef HAVE_UNISTD_H
2699 char *dagger[] = { "IFS=pwd", 0 };
2703 extern char **environ;
2705 return getcwd(buffer, 500) ? 0 : 1;
2708 vim_cv_getcwd_broken=no
2710 vim_cv_getcwd_broken=yes
2712 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2716 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2717 AC_DEFINE(BAD_GETCWD)
2720 dnl Check for functions in one big call, to reduce the size of configure
2721 AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2722 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2723 memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
2724 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2725 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2726 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2727 usleep utime utimes)
2729 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2730 AC_MSG_CHECKING(for st_blksize)
2732 [#include <sys/types.h>
2733 #include <sys/stat.h>],
2738 n = (int)st.st_blksize;],
2739 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2742 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2745 #include "confdefs.h"
2747 # include <stdlib.h>
2748 # include <stddef.h>
2750 #include <sys/types.h>
2751 #include <sys/stat.h>
2752 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2754 vim_cv_stat_ignores_slash=yes
2756 vim_cv_stat_ignores_slash=no
2758 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2762 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2763 AC_DEFINE(STAT_IGNORES_SLASH)
2766 dnl Link with iconv for charset translation, if not found without library.
2767 dnl check for iconv() requires including iconv.h
2768 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2769 dnl has been installed.
2770 AC_MSG_CHECKING(for iconv_open())
2772 LIBS="$LIBS -liconv"
2777 ], [iconv_open("fr", "to");],
2778 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2784 ], [iconv_open("fr", "to");],
2785 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2789 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2791 #ifdef HAVE_LANGINFO_H
2792 # include <langinfo.h>
2794 ], [char *cs = nl_langinfo(CODESET);],
2795 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2798 dnl Need various functions for floating point support. Only enable
2799 dnl floating point when they are all present.
2800 AC_CHECK_LIB(m, strtod)
2801 AC_MSG_CHECKING([for strtod() and other floating point functions])
2807 # include <stdlib.h>
2808 # include <stddef.h>
2810 ], [char *s; double d;
2811 d = strtod("1.1", &s);
2816 d = pow(1.11, 2.22);
2822 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2825 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2826 dnl when -lacl works, also try to use -lattr (required for Debian).
2827 AC_MSG_CHECKING(--disable-acl argument)
2829 [ --disable-acl Don't check for ACL support.],
2830 , [enable_acl="yes"])
2831 if test "$enable_acl" = "yes"; then
2833 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2834 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2835 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2837 AC_MSG_CHECKING(for POSIX ACL support)
2839 #include <sys/types.h>
2840 #ifdef HAVE_SYS_ACL_H
2841 # include <sys/acl.h>
2843 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2844 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2846 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2849 AC_MSG_CHECKING(for Solaris ACL support)
2851 #ifdef HAVE_SYS_ACL_H
2852 # include <sys/acl.h>
2853 #endif], [acl("foo", GETACLCNT, 0, NULL);
2855 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2858 AC_MSG_CHECKING(for AIX ACL support)
2861 # include <stdlib.h>
2862 # include <stddef.h>
2864 #ifdef HAVE_SYS_ACL_H
2865 # include <sys/acl.h>
2867 #ifdef HAVE_SYS_ACCESS_H
2868 # include <sys/access.h>
2872 #include <sys/stat.h>
2875 struct acl *aclent;], [aclsize = sizeof(struct acl);
2876 aclent = (void *)malloc(aclsize);
2877 statacl("foo", STX_NORMAL, aclent, aclsize);
2879 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2885 AC_MSG_CHECKING(--disable-gpm argument)
2887 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2890 if test "$enable_gpm" = "yes"; then
2892 dnl Checking if gpm support can be compiled
2893 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2894 [olibs="$LIBS" ; LIBS="-lgpm"]
2897 #include <linux/keyboard.h>],
2898 [Gpm_GetLibVersion(NULL);],
2899 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2900 dnl FEAT_MOUSE_GPM if mouse support is included
2901 [vi_cv_have_gpm=yes],
2902 [vi_cv_have_gpm=no])
2905 if test $vi_cv_have_gpm = yes; then
2913 AC_MSG_CHECKING(--disable-sysmouse argument)
2914 AC_ARG_ENABLE(sysmouse,
2915 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2916 [enable_sysmouse="yes"])
2918 if test "$enable_sysmouse" = "yes"; then
2920 dnl Checking if sysmouse support can be compiled
2921 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2922 dnl defines FEAT_SYSMOUSE if mouse support is included
2923 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2925 [#include <sys/consio.h>
2927 #include <sys/fbio.h>],
2928 [struct mouse_info mouse;
2929 mouse.operation = MOUSE_MODE;
2930 mouse.operation = MOUSE_SHOW;
2931 mouse.u.mode.mode = 0;
2932 mouse.u.mode.signal = SIGUSR2;],
2933 [vi_cv_have_sysmouse=yes],
2934 [vi_cv_have_sysmouse=no])
2936 if test $vi_cv_have_sysmouse = yes; then
2937 AC_DEFINE(HAVE_SYSMOUSE)
2943 dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
2944 AC_MSG_CHECKING(for FD_CLOEXEC)
2949 [ int flag = FD_CLOEXEC;],
2950 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
2951 AC_MSG_RESULT(not usable))
2953 dnl rename needs to be checked separately to work on Nextstep with cc
2954 AC_MSG_CHECKING(for rename)
2955 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2956 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2959 dnl sysctl() may exist but not the arguments we use
2960 AC_MSG_CHECKING(for sysctl)
2962 [#include <sys/types.h>
2963 #include <sys/sysctl.h>],
2968 mib[1] = HW_USERMEM;
2970 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2972 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2973 AC_MSG_RESULT(not usable))
2975 dnl sysinfo() may exist but not be Linux compatible
2976 AC_MSG_CHECKING(for sysinfo)
2978 [#include <sys/types.h>
2979 #include <sys/sysinfo.h>],
2980 [ struct sysinfo sinfo;
2983 (void)sysinfo(&sinfo);
2986 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2987 AC_MSG_RESULT(not usable))
2989 dnl struct sysinfo may have the mem_unit field or not
2990 AC_MSG_CHECKING(for sysinfo.mem_unit)
2992 [#include <sys/types.h>
2993 #include <sys/sysinfo.h>],
2994 [ struct sysinfo sinfo;
2997 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
3000 dnl sysconf() may exist but not support what we want to use
3001 AC_MSG_CHECKING(for sysconf)
3003 [#include <unistd.h>],
3004 [ (void)sysconf(_SC_PAGESIZE);
3005 (void)sysconf(_SC_PHYS_PAGES);
3007 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
3008 AC_MSG_RESULT(not usable))
3010 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
3011 dnl be printed with "%d", and avoids a warning for cross-compiling.
3013 AC_MSG_CHECKING(size of int)
3014 AC_CACHE_VAL(ac_cv_sizeof_int,
3018 # include <stdlib.h>
3019 # include <stddef.h>
3023 FILE *f=fopen("conftestval", "w");
3025 fprintf(f, "%d\n", (int)sizeof(int));
3028 ac_cv_sizeof_int=`cat conftestval`,
3030 AC_MSG_ERROR(failed to compile test program))])
3031 AC_MSG_RESULT($ac_cv_sizeof_int)
3032 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
3034 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
3035 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
3038 #include "confdefs.h"
3039 #ifdef HAVE_STRING_H
3040 # include <string.h>
3043 # include <stdlib.h>
3044 # include <stddef.h>
3048 strcpy(buf, "abcdefghi");
3049 mch_memmove(buf, buf + 2, 3);
3050 if (strncmp(buf, "ababcf", 6))
3052 strcpy(buf, "abcdefghi");
3053 mch_memmove(buf + 2, buf, 3);
3054 if (strncmp(buf, "cdedef", 6))
3056 exit(0); /* libc version works properly. */
3059 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3061 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3063 vim_cv_memmove_handles_overlap=yes
3065 vim_cv_memmove_handles_overlap=no
3067 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3071 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3072 AC_DEFINE(USEMEMMOVE)
3074 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3076 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3078 vim_cv_bcopy_handles_overlap=yes
3080 vim_cv_bcopy_handles_overlap=no
3082 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3086 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3089 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3091 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3093 vim_cv_memcpy_handles_overlap=yes
3095 vim_cv_memcpy_handles_overlap=no
3097 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3101 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3102 AC_DEFINE(USEMEMCPY)
3108 dnl Check for multibyte locale functions
3109 dnl Find out if _Xsetlocale() is supported by libX11.
3110 dnl Check if X_LOCALE should be defined.
3112 if test "$enable_multibyte" = "yes"; then
3114 ldflags_save=$LDFLAGS
3115 if test "x$x_includes" != "xNONE" ; then
3116 CFLAGS="$CFLAGS -I$x_includes"
3117 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3118 AC_MSG_CHECKING(whether X_LOCALE needed)
3119 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3120 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3121 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3125 LDFLAGS=$ldflags_save
3128 dnl Link with xpg4, it is said to make Korean locale working
3129 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3131 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3132 dnl --version for Exuberant ctags (preferred)
3133 dnl Add --fields=+S to get function signatures for omni completion.
3134 dnl -t for typedefs (many ctags have this)
3135 dnl -s for static functions (Elvis ctags only?)
3136 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3137 dnl -i+m to test for older Exuberant ctags
3138 AC_MSG_CHECKING(how to create tags)
3139 test -f tags && mv tags tags.save
3140 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3141 TAGPRG="ctags -I INIT+ --fields=+S"
3144 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3145 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3146 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3147 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3148 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3149 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3150 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3152 test -f tags.save && mv tags.save tags
3153 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3155 dnl Check how we can run man with a section number
3156 AC_MSG_CHECKING(how to run man with a section nr)
3158 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3159 AC_MSG_RESULT($MANDEF)
3160 if test "$MANDEF" = "man -s"; then
3164 dnl Check if gettext() is working and if it needs -lintl
3165 AC_MSG_CHECKING(--disable-nls argument)
3167 [ --disable-nls Don't support NLS (gettext()).], ,
3170 if test "$enable_nls" = "yes"; then
3173 INSTALL_LANGS=install-languages
3174 AC_SUBST(INSTALL_LANGS)
3175 INSTALL_TOOL_LANGS=install-tool-languages
3176 AC_SUBST(INSTALL_TOOL_LANGS)
3178 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3179 AC_MSG_CHECKING([for NLS])
3180 if test -f po/Makefile; then
3182 if test -n "$MSGFMT"; then
3184 [#include <libintl.h>],
3186 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3190 [#include <libintl.h>],
3192 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3193 AC_MSG_RESULT([gettext() doesn't work]);
3196 AC_MSG_RESULT([msgfmt not found - disabled]);
3198 if test $have_gettext = "yes"; then
3199 AC_DEFINE(HAVE_GETTEXT)
3202 dnl this was added in GNU gettext 0.10.36
3203 AC_CHECK_FUNCS(bind_textdomain_codeset)
3204 dnl _nl_msg_cat_cntr is required for GNU gettext
3205 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3207 [#include <libintl.h>
3208 extern int _nl_msg_cat_cntr;],
3209 [++_nl_msg_cat_cntr;],
3210 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3211 AC_MSG_RESULT([no]))
3214 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3220 dnl Check for dynamic linking loader
3221 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3222 if test x${DLL} = xdlfcn.h; then
3223 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3224 AC_MSG_CHECKING([for dlopen()])
3226 extern void* dlopen();
3230 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3232 AC_MSG_CHECKING([for dlopen() in -ldl])
3236 extern void* dlopen();
3240 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3243 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3245 AC_MSG_CHECKING([for dlsym()])
3247 extern void* dlsym();
3251 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3253 AC_MSG_CHECKING([for dlsym() in -ldl])
3257 extern void* dlsym();
3261 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3264 elif test x${DLL} = xdl.h; then
3265 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3266 AC_MSG_CHECKING([for shl_load()])
3268 extern void* shl_load();
3272 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3274 AC_MSG_CHECKING([for shl_load() in -ldld])
3278 extern void* shl_load();
3282 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3286 AC_CHECK_HEADERS(setjmp.h)
3288 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3289 dnl -ldl must come after DynaLoader.a
3290 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3291 LIBS=`echo $LIBS | sed s/-ldl//`
3292 PERL_LIBS="$PERL_LIBS -ldl"
3296 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3297 && test "x$GUITYPE" != "xCARBONGUI"; then
3298 AC_MSG_CHECKING(whether we need -framework Carbon)
3299 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3300 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3301 || test "x$features" = "xhuge"; then
3302 LIBS="$LIBS -framework Carbon"
3308 if test "x$MACARCH" = "xboth"; then
3309 LDFLAGS="$LDFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3312 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3313 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3314 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3315 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3316 dnl the number before the version number.
3317 DEPEND_CFLAGS_FILTER=
3318 if test "$GCC" = yes; then
3319 AC_MSG_CHECKING(for GCC 3 or later)
3320 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3321 if test "$gccmajor" -gt "2"; then
3322 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3327 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3328 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3329 dnl Also remove duplicate _FORTIFY_SOURCE arguments.
3330 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3331 if test "$gccmajor" -gt "3"; then
3332 CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
3338 AC_SUBST(DEPEND_CFLAGS_FILTER)
3340 dnl write output files
3341 AC_OUTPUT(auto/config.mk:config.mk.in)
3343 dnl vim: set sw=2 tw=78 fo+=l: