1 dnl configure.in: autoconf script for Vim
3 dnl Process this file with autoconf 2.12 or 2.13 to produce "configure".
4 dnl Should also work with autoconf 2.54 and later.
7 AC_CONFIG_HEADER(auto/config.h:config.h.in)
9 dnl Being able to run configure means the system is Unix (compatible).
13 dnl Checks for programs.
14 AC_PROG_CC dnl required by almost everything
15 AC_PROG_CPP dnl required by header file checks
16 AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
17 AC_ISC_POSIX dnl required by AC_C_CROSS
18 AC_PROG_AWK dnl required for "make html" in ../doc
20 dnl Don't strip if we don't have it
21 AC_CHECK_PROG(STRIP, strip, strip, :)
23 dnl Check for extension of executables
26 dnl Check for standard headers. We don't use this in Vim but other stuff
27 dnl in autoconf needs it, where it uses STDC_HEADERS.
31 dnl Set default value for CFLAGS if none is defined or it's empty
32 if test -z "$CFLAGS"; then
34 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
36 if test "$GCC" = yes; then
37 dnl method that should work for nearly all versions
38 gccversion=`"$CC" -dumpversion`
39 if test "x$gccversion" = "x"; then
40 dnl old method; fall-back for when -dumpversion doesn't work
41 gccversion=`"$CC" --version | sed -e '2,$d' -e 's/darwin.//' -e 's/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
43 dnl version 4.0.1 was reported to cause trouble on Macintosh by Marcin Dalecki
44 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2" -o "$gccversion" = "4.0.1"; then
45 echo 'GCC [[34]].0.[[12]] has a bug in the optimizer, disabling "-O#"'
46 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
48 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
49 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
50 CFLAGS="$CFLAGS -fno-strength-reduce"
55 dnl If configure thinks we are cross compiling, there might be something
56 dnl wrong with the CC or CFLAGS settings, give a useful warning message
57 if test "$cross_compiling" = yes; then
58 AC_MSG_RESULT([cannot compile a simple program; if not cross compiling check CC and CFLAGS])
61 dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies.
62 dnl But gcc 3.1 changed the meaning! See near the end.
63 test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
65 if test -f ./toolcheck; then
66 AC_CHECKING(for buggy tools)
67 sh ./toolcheck 1>&AC_FD_MSG
70 OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
72 dnl Check for BeOS, which needs an extra source file
73 AC_MSG_CHECKING(for BeOS)
75 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
76 BEOS=yes; AC_MSG_RESULT(yes);;
77 *) BEOS=no; AC_MSG_RESULT(no);;
80 dnl If QNX is found, assume we don't want to use Xphoton
81 dnl unless it was specifically asked for (--with-x)
82 AC_MSG_CHECKING(for QNX)
84 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
85 test -z "$with_x" && with_x=no
86 QNX=yes; AC_MSG_RESULT(yes);;
87 *) QNX=no; AC_MSG_RESULT(no);;
90 dnl Check for Darwin and MacOS X
91 dnl We do a check for MacOS X in the very beginning because there
92 dnl are a lot of other things we need to change besides GUI stuff
93 AC_MSG_CHECKING([for Darwin (Mac OS X)])
94 if test "`(uname) 2>/dev/null`" = Darwin; then
97 AC_MSG_CHECKING(--disable-darwin argument)
99 [ --disable-darwin Disable Darwin (Mac OS X) support.],
100 , [enable_darwin="yes"])
101 if test "$enable_darwin" = "yes"; then
103 AC_MSG_CHECKING(if Darwin files are there)
104 if test -f os_macosx.c; then
107 AC_MSG_RESULT([no, Darwin support disabled])
111 AC_MSG_RESULT([yes, Darwin support excluded])
114 AC_MSG_CHECKING(--with-mac-arch argument)
115 AC_ARG_WITH(mac-arch, [ --with-mac-arch=ARCH current, intel, ppc or both],
116 MACARCH="$withval"; AC_MSG_RESULT($MACARCH),
117 MACARCH="current"; AC_MSG_RESULT(defaulting to $MACARCH))
119 AC_MSG_CHECKING(--with-developer-dir argument)
120 AC_ARG_WITH(developer-dir, [ --with-developer-dir=PATH use PATH as location for Xcode developer tools],
121 DEVELOPER_DIR="$withval"; AC_MSG_RESULT($DEVELOPER_DIR),
122 DEVELOPER_DIR=""; AC_MSG_RESULT(not present))
124 if test "x$DEVELOPER_DIR" = "x"; then
125 AC_PATH_PROG(XCODE_SELECT, xcode-select)
126 if test "x$XCODE_SELECT" != "x"; then
127 AC_MSG_CHECKING(for developer dir using xcode-select)
128 DEVELOPER_DIR=`$XCODE_SELECT -print-path`
129 AC_MSG_RESULT([$DEVELOPER_DIR])
131 DEVELOPER_DIR=/Developer
135 if test "x$MACARCH" = "xboth"; then
136 AC_MSG_CHECKING(for 10.4 universal SDK)
137 dnl There is a terrible inconsistency (but we appear to get away with it):
138 dnl $CFLAGS uses the 10.4u SDK library for the headers, while $CPPFLAGS
139 dnl doesn't, because "gcc -E" doesn't grok it. That means the configure
140 dnl tests using the preprocessor are actually done with the wrong header
141 dnl files. $LDFLAGS is set at the end, because configure uses it together
142 dnl with $CFLAGS and we can only have one -sysroot argument.
143 save_cppflags="$CPPFLAGS"
144 save_cflags="$CFLAGS"
145 save_ldflags="$LDFLAGS"
146 CFLAGS="$CFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
147 AC_TRY_LINK([ ], [ ],
148 AC_MSG_RESULT(found, will make universal binary),
150 AC_MSG_RESULT(not found)
151 CFLAGS="$save_cflags"
152 AC_MSG_CHECKING(if Intel architecture is supported)
153 CPPFLAGS="$CPPFLAGS -arch i386"
154 LDFLAGS="$save_ldflags -arch i386"
155 AC_TRY_LINK([ ], [ ],
156 AC_MSG_RESULT(yes); MACARCH="intel",
157 AC_MSG_RESULT(no, using PowerPC)
159 CPPFLAGS="$save_cppflags -arch ppc"
160 LDFLAGS="$save_ldflags -arch ppc"))
161 elif test "x$MACARCH" = "xintel"; then
162 CPPFLAGS="$CPPFLAGS -arch intel"
163 LDFLAGS="$LDFLAGS -arch intel"
164 elif test "x$MACARCH" = "xppc"; then
165 CPPFLAGS="$CPPFLAGS -arch ppc"
166 LDFLAGS="$LDFLAGS -arch ppc"
169 if test "$enable_darwin" = "yes"; then
171 OS_EXTRA_SRC="os_macosx.c os_mac_conv.c";
172 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
173 dnl TODO: use -arch i386 on Intel machines
174 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp"
175 if test "x$MACARCH" = "xboth"; then
176 CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon"
178 CPPFLAGS="$CPPFLAGS -I$DEVELOPER_DIR/Headers/FlatCarbon"
181 dnl If Carbon is found, assume we don't want X11
182 dnl unless it was specifically asked for (--with-x)
183 dnl or Motif, Athena or GTK GUI is used.
184 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
185 if test "x$CARBON" = "xyes"; then
186 if test -z "$with_x" -a "X$enable_gui" != Xmotif -a "X$enable_gui" != Xathena -a "X$enable_gui" != Xgtk -a "X$enable_gui" != Xgtk2; then
192 dnl Avoid a bug with -O2 with gcc 4.0.1. Symptom: malloc() reports double
193 dnl free. This happens in expand_filename(), because the optimizer swaps
194 dnl two blocks of code, both using "repl", that can't be swapped.
195 if test "$MACARCH" = "intel" -o "$MACARCH" = "both"; then
196 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-Oz/'`
203 AC_SUBST(OS_EXTRA_SRC)
204 AC_SUBST(OS_EXTRA_OBJ)
206 dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
207 dnl Only when the directory exists and it wasn't there yet.
208 dnl For gcc don't do this when it is already in the default search path.
209 dnl Skip all of this when cross-compiling.
210 if test "$cross_compiling" = no; then
211 AC_MSG_CHECKING(--with-local-dir argument)
212 have_local_include=''
214 AC_ARG_WITH([local-dir], [ --with-local-dir=PATH search PATH instead of /usr/local for local libraries.
215 --without-local-dir do not search /usr/local for local libraries.], [
220 # avoid adding local dir to LDFLAGS and CPPFLAGS
224 *) AC_MSG_ERROR(must pass path argument to --with-local-dir) ;;
226 AC_MSG_RESULT($local_dir)
229 AC_MSG_RESULT(Defaulting to $local_dir)
231 if test "$GCC" = yes -a "$local_dir" != no; then
232 echo 'void f(){}' > conftest.c
233 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
234 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"`
235 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"`
236 rm -f conftest.c conftest.o
238 if test -z "$have_local_lib" -a -d "${local_dir}/lib"; then
239 tt=`echo "$LDFLAGS" | sed -e "s+-L${local_dir}/lib ++g" -e "s+-L${local_dir}/lib$++g"`
240 if test "$tt" = "$LDFLAGS"; then
241 LDFLAGS="$LDFLAGS -L${local_dir}/lib"
244 if test -z "$have_local_include" -a -d "${local_dir}/include"; then
245 tt=`echo "$CPPFLAGS" | sed -e "s+-I${local_dir}/include ++g" -e "s+-I${local_dir}/include$++g"`
246 if test "$tt" = "$CPPFLAGS"; then
247 CPPFLAGS="$CPPFLAGS -I${local_dir}/include"
252 AC_MSG_CHECKING(--with-vim-name argument)
253 AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
254 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
255 VIMNAME="vim"; AC_MSG_RESULT(Defaulting to $VIMNAME))
257 AC_MSG_CHECKING(--with-ex-name argument)
258 AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
259 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
260 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
262 AC_MSG_CHECKING(--with-view-name argument)
263 AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
264 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
265 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
268 AC_MSG_CHECKING(--with-global-runtime argument)
269 AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
270 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
273 AC_MSG_CHECKING(--with-modified-by argument)
274 AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
275 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
278 dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
279 AC_MSG_CHECKING(if character set is EBCDIC)
281 [ /* TryCompile function for CharSet.
282 Treat any failure as ASCII for compatibility with existing art.
283 Use compile-time rather than run-time tests for cross-compiler
286 make an error "Character set is not EBCDIC"
288 [ # TryCompile action if true
290 [ # TryCompile action if false
292 # end of TryCompile ])
293 # end of CacheVal CvEbcdic
294 AC_MSG_RESULT($cf_cv_ebcdic)
295 case "$cf_cv_ebcdic" in #(vi
296 yes) AC_DEFINE(EBCDIC)
299 *) line_break='"\\012"';;
303 if test "$cf_cv_ebcdic" = "yes"; then
304 dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
305 AC_MSG_CHECKING(for OS/390 Unix)
307 OS/390) OS390Unix="yes";
308 dnl If using cc the environment variable _CC_CCMODE must be
309 dnl set to "1", so that some compiler extensions are enabled.
310 dnl If using c89 the environment variable is named _CC_C89MODE.
311 dnl Note: compile with c89 never tested.
312 if test "$CC" = "cc"; then
316 if test "$CC" = "c89"; then
323 if test "$ccm" != "1"; then
325 echo "------------------------------------------"
326 echo " On OS/390 Unix, the environment variable"
327 echo " __CC_${ccn}MODE must be set to \"1\"!"
329 echo " export _CC_${ccn}MODE=1"
330 echo " and then call configure again."
331 echo "------------------------------------------"
334 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
343 dnl Link with -lselinux for SELinux stuff; if not found
344 AC_MSG_CHECKING(--disable-selinux argument)
345 AC_ARG_ENABLE(selinux,
346 [ --disable-selinux Don't check for SELinux support.],
347 , enable_selinux="yes")
348 if test "$enable_selinux" = "yes"; then
350 AC_CHECK_LIB(selinux, is_selinux_enabled,
351 [LIBS="$LIBS -lselinux"
352 AC_DEFINE(HAVE_SELINUX)])
357 dnl Check user requested features.
359 AC_MSG_CHECKING(--with-features argument)
360 AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
361 features="$withval"; AC_MSG_RESULT($features),
362 features="normal"; AC_MSG_RESULT(Defaulting to normal))
367 tiny) AC_DEFINE(FEAT_TINY) ;;
368 small) AC_DEFINE(FEAT_SMALL) ;;
369 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
370 dogvimdiff="installgvimdiff" ;;
371 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
372 dogvimdiff="installgvimdiff" ;;
373 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
374 dogvimdiff="installgvimdiff" ;;
375 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
381 AC_MSG_CHECKING(--with-compiledby argument)
382 AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
383 compiledby="$withval"; AC_MSG_RESULT($withval),
384 compiledby=""; AC_MSG_RESULT(no))
387 AC_MSG_CHECKING(--disable-xsmp argument)
389 [ --disable-xsmp Disable XSMP session management],
392 if test "$enable_xsmp" = "yes"; then
394 AC_MSG_CHECKING(--disable-xsmp-interact argument)
395 AC_ARG_ENABLE(xsmp-interact,
396 [ --disable-xsmp-interact Disable XSMP interaction],
397 , enable_xsmp_interact="yes")
398 if test "$enable_xsmp_interact" = "yes"; then
400 AC_DEFINE(USE_XSMP_INTERACT)
408 dnl Check for Lua feature.
409 AC_MSG_CHECKING(--enable-luainterp argument)
410 AC_ARG_ENABLE(luainterp,
411 [ --enable-luainterp Include Lua interpreter.], ,
412 [enable_luainterp="no"])
413 AC_MSG_RESULT($enable_luainterp)
415 if test "$enable_luainterp" = "yes"; then
416 dnl -- find the lua executable
417 AC_SUBST(vi_cv_path_lua)
419 AC_MSG_CHECKING(--with-lua-prefix argument)
420 AC_ARG_WITH(lua_prefix,
421 [ --with-lua-prefix=PFX Prefix where Lua is installed.],
422 with_lua_prefix="$withval"; AC_MSG_RESULT($with_lua_prefix),
423 with_lua_prefix="";AC_MSG_RESULT("no"))
425 if test "X$with_lua_prefix" != "X"; then
426 vi_cv_path_lua_pfx="$with_lua_prefix"
428 AC_MSG_CHECKING(LUA_PREFIX environment var)
429 if test "X$LUA_PREFIX" != "X"; then
430 AC_MSG_RESULT("$LUA_PREFIX")
431 vi_cv_path_lua_pfx="$LUA_PREFIX"
433 AC_MSG_RESULT("not set")
438 if test "X$vi_cv_path_lua_pfx" != "X"; then
439 AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include)
440 if test -f $vi_cv_path_lua_pfx/include/lua.h; then
444 dnl -- try to find Lua executable
445 AC_PATH_PROG(vi_cv_path_lua, lua)
446 if test "X$vi_cv_path_lua" != "X"; then
447 dnl -- find Lua version
448 AC_CACHE_CHECK(Lua version, vi_cv_version_lua,
449 [ vi_cv_version_lua=`${vi_cv_path_lua} -e "print(_VERSION:sub(5,7))"` ])
450 AC_MSG_CHECKING(if lua.h can be found in $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua)
451 if test -f $vi_cv_path_lua_pfx/include/lua$vi_cv_version_lua/lua.h; then
453 LUA_INC=/lua$vi_cv_version_lua
462 if test "X$vi_cv_path_lua_pfx" != "X"; then
463 if test "X$vi_cv_version_lua" != "X"; then
464 dnl Test alternate location using version
465 LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua$vi_cv_version_lua"
467 LUA_LIBS="-L${vi_cv_path_lua_pfx}/lib -llua"
469 LUA_CFLAGS="-I${vi_cv_path_lua_pfx}/include${LUA_INC}"
471 LUA_OBJ="objects/if_lua.o"
483 dnl Check for MzScheme feature.
484 AC_MSG_CHECKING(--enable-mzschemeinterp argument)
485 AC_ARG_ENABLE(mzschemeinterp,
486 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
487 [enable_mzschemeinterp="no"])
488 AC_MSG_RESULT($enable_mzschemeinterp)
490 if test "$enable_mzschemeinterp" = "yes"; then
491 dnl -- find the mzscheme executable
492 AC_SUBST(vi_cv_path_mzscheme)
494 AC_MSG_CHECKING(--with-plthome argument)
496 [ --with-plthome=PLTHOME Use PLTHOME.],
497 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
498 with_plthome="";AC_MSG_RESULT("no"))
500 if test "X$with_plthome" != "X"; then
501 vi_cv_path_mzscheme_pfx="$with_plthome"
503 AC_MSG_CHECKING(PLTHOME environment var)
504 if test "X$PLTHOME" != "X"; then
505 AC_MSG_RESULT("$PLTHOME")
506 vi_cv_path_mzscheme_pfx="$PLTHOME"
508 AC_MSG_RESULT(not set)
509 dnl -- try to find MzScheme executable
510 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
512 dnl resolve symbolic link, the executable is often elsewhere and there
513 dnl are no links for the include files.
514 if test "X$vi_cv_path_mzscheme" != "X"; then
515 lsout=`ls -l $vi_cv_path_mzscheme`
516 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
517 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
521 if test "X$vi_cv_path_mzscheme" != "X"; then
522 dnl -- find where MzScheme thinks it was installed
523 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
524 dnl different versions of MzScheme differ in command line processing
525 dnl use universal approach
526 echo "(display (simplify-path \
527 (build-path (call-with-values \
528 (lambda () (split-path (find-system-path (quote exec-file)))) \
529 (lambda (base name must-be-dir?) base)) (quote up))))" > mzdirs.scm
530 dnl Remove a trailing slash
531 [ vi_cv_path_mzscheme_pfx=`${vi_cv_path_mzscheme} -r mzdirs.scm | \
539 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
540 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
541 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
542 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include
546 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include/plt)
547 if test -f $vi_cv_path_mzscheme_pfx/include/plt/scheme.h; then
549 SCHEME_INC=${vi_cv_path_mzscheme_pfx}/include/plt
552 AC_MSG_CHECKING(if scheme.h can be found in /usr/include/plt/)
553 if test -f /usr/include/plt/scheme.h; then
555 SCHEME_INC=/usr/include/plt
558 vi_cv_path_mzscheme_pfx=
564 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
565 if test "x$MACOSX" = "xyes"; then
566 MZSCHEME_LIBS="-framework PLT_MzScheme"
567 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"; then
568 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.a"
569 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
570 elif test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
571 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a ${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"
573 dnl Using shared objects
574 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzscheme3m.so"; then
575 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme3m"
576 MZSCHEME_CFLAGS="-DMZ_PRECISE_GC"
578 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzscheme -lmzgc"
580 if test "$GCC" = yes; then
581 dnl Make Vim remember the path to the library. For when it's not in
582 dnl $LD_LIBRARY_PATH.
583 MZSCHEME_LIBS="${MZSCHEME_LIBS} -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
584 elif test "`(uname) 2>/dev/null`" = SunOS &&
585 uname -r | grep '^5' >/dev/null; then
586 MZSCHEME_LIBS="${MZSCHEME_LIBS} -R ${vi_cv_path_mzscheme_pfx}/lib"
589 if test -d $vi_cv_path_mzscheme_pfx/lib/plt/collects; then
590 SCHEME_COLLECTS=lib/plt/
592 if test -f "${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects/scheme/base.ss" ; then
593 dnl need to generate bytecode for MzScheme base
594 MZSCHEME_EXTRA="mzscheme_base.c"
595 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -DINCLUDE_MZSCHEME_BASE"
596 MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc"
598 MZSCHEME_CFLAGS="${MZSCHEME_CFLAGS} -I${SCHEME_INC} \
599 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/${SCHEME_COLLECTS}collects\"'"
600 MZSCHEME_SRC="if_mzsch.c"
601 MZSCHEME_OBJ="objects/if_mzsch.o"
602 MZSCHEME_PRO="if_mzsch.pro"
603 AC_DEFINE(FEAT_MZSCHEME)
605 AC_SUBST(MZSCHEME_SRC)
606 AC_SUBST(MZSCHEME_OBJ)
607 AC_SUBST(MZSCHEME_PRO)
608 AC_SUBST(MZSCHEME_LIBS)
609 AC_SUBST(MZSCHEME_CFLAGS)
610 AC_SUBST(MZSCHEME_EXTRA)
611 AC_SUBST(MZSCHEME_MZC)
615 AC_MSG_CHECKING(--enable-perlinterp argument)
616 AC_ARG_ENABLE(perlinterp,
617 [ --enable-perlinterp Include Perl interpreter.], ,
618 [enable_perlinterp="no"])
619 AC_MSG_RESULT($enable_perlinterp)
620 if test "$enable_perlinterp" = "yes"; then
621 AC_SUBST(vi_cv_path_perl)
622 AC_PATH_PROG(vi_cv_path_perl, perl)
623 if test "X$vi_cv_path_perl" != "X"; then
624 AC_MSG_CHECKING(Perl version)
625 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
626 eval `$vi_cv_path_perl -V:usethreads`
627 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
630 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
631 eval `$vi_cv_path_perl -V:use5005threads`
632 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
636 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
640 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
643 if test $badthreads = no; then
645 eval `$vi_cv_path_perl -V:shrpenv`
646 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
649 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
650 AC_SUBST(vi_cv_perllib)
651 dnl Remove "-fno-something", it breaks using cproto.
652 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
653 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
654 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
655 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
656 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
657 -e 's/-bE:perl.exp//' -e 's/-lc //'`
658 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
659 dnl a test in configure may fail because of that.
660 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
661 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
663 dnl check that compiling a simple program still works with the flags
665 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
668 ldflags_save=$LDFLAGS
669 CFLAGS="$CFLAGS $perlcppflags"
670 LIBS="$LIBS $perllibs"
671 LDFLAGS="$perlldflags $LDFLAGS"
673 AC_MSG_RESULT(yes); perl_ok=yes,
674 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
677 LDFLAGS=$ldflags_save
678 if test $perl_ok = yes; then
679 if test "X$perlcppflags" != "X"; then
680 dnl remove -pipe and -Wxxx, it confuses cproto
681 PERL_CFLAGS=`echo "$perlcppflags" | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'`
683 if test "X$perlldflags" != "X"; then
684 LDFLAGS="$perlldflags $LDFLAGS"
687 PERL_SRC="auto/if_perl.c if_perlsfio.c"
688 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
689 PERL_PRO="if_perl.pro if_perlsfio.pro"
694 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
698 if test "x$MACOSX" = "xyes"; then
699 dnl Mac OS X 10.2 or later
700 dir=/System/Library/Perl
701 darwindir=$dir/darwin
702 if test -d $darwindir; then
706 dir=/System/Library/Perl/5.8.1
707 darwindir=$dir/darwin-thread-multi-2level
708 if test -d $darwindir; then
712 if test -n "$PERL"; then
714 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
715 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
716 PERL_LIBS="-L$darwindir/CORE -lperl"
724 AC_SUBST(PERL_CFLAGS)
727 AC_MSG_CHECKING(--enable-pythoninterp argument)
728 AC_ARG_ENABLE(pythoninterp,
729 [ --enable-pythoninterp Include Python interpreter.], ,
730 [enable_pythoninterp="no"])
731 AC_MSG_RESULT($enable_pythoninterp)
732 if test "$enable_pythoninterp" = "yes"; then
733 dnl -- find the python executable
734 AC_PATH_PROG(vi_cv_path_python, python)
735 if test "X$vi_cv_path_python" != "X"; then
737 dnl -- get its version number
738 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
739 [[vi_cv_var_python_version=`
740 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
743 dnl -- it must be at least version 1.4
744 AC_MSG_CHECKING(Python is 1.4 or better)
745 if ${vi_cv_path_python} -c \
746 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
750 dnl -- find where python thinks it was installed
751 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
752 [ vi_cv_path_python_pfx=`
753 ${vi_cv_path_python} -c \
754 "import sys; print sys.prefix"` ])
756 dnl -- and where it thinks it runs
757 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
758 [ vi_cv_path_python_epfx=`
759 ${vi_cv_path_python} -c \
760 "import sys; print sys.exec_prefix"` ])
762 dnl -- python's internal library path
764 AC_CACHE_VAL(vi_cv_path_pythonpath,
765 [ vi_cv_path_pythonpath=`
767 ${vi_cv_path_python} -c \
768 "import sys, string; print string.join(sys.path,':')"` ])
770 dnl -- where the Python implementation library archives are
772 AC_ARG_WITH(python-config-dir,
773 [ --with-python-config-dir=PATH Python's config directory],
774 [ vi_cv_path_python_conf="${withval}" ] )
776 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
778 vi_cv_path_python_conf=
779 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
780 for subdir in lib64 lib share; do
781 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
782 if test -d "$d" && test -f "$d/config.c"; then
783 vi_cv_path_python_conf="$d"
789 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
791 if test "X$PYTHON_CONFDIR" = "X"; then
792 AC_MSG_RESULT([can't find it!])
795 dnl -- we need to examine Python's config/Makefile too
796 dnl see what the interpreter is built from
797 AC_CACHE_VAL(vi_cv_path_python_plibs,
800 tmp_mkf="$pwd/config-PyMake$$"
801 cat -- "${PYTHON_CONFDIR}/Makefile" - <<'eof' >"${tmp_mkf}"
803 @echo "python_MODLIBS='$(MODLIBS)'"
804 @echo "python_LIBS='$(LIBS)'"
805 @echo "python_SYSLIBS='$(SYSLIBS)'"
806 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
808 dnl -- delete the lines from make about Entering/Leaving directory
809 eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`"
810 rm -f -- "${tmp_mkf}"
811 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
812 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
813 vi_cv_path_python_plibs="-framework Python"
815 if test "${vi_cv_var_python_version}" = "1.4"; then
816 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
818 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
820 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
821 dnl remove -ltermcap, it can conflict with an earlier -lncurses
822 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
826 PYTHON_LIBS="${vi_cv_path_python_plibs}"
827 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
828 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
830 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}"
832 PYTHON_SRC="if_python.c"
833 dnl For Mac OSX 10.2 config.o is included in the Python library.
834 if test "x$MACOSX" = "xyes"; then
835 PYTHON_OBJ="objects/if_python.o"
837 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
839 if test "${vi_cv_var_python_version}" = "1.4"; then
840 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
842 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
844 dnl On FreeBSD linking with "-pthread" is required to use threads.
845 dnl _THREAD_SAFE must be used for compiling then.
846 dnl The "-pthread" is added to $LIBS, so that the following check for
847 dnl sigaltstack() will look in libc_r (it's there in libc!).
848 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
849 dnl will then define target-specific defines, e.g., -D_REENTRANT.
850 dnl Don't do this for Mac OSX, -pthread will generate a warning.
851 AC_MSG_CHECKING([if -pthread should be used])
854 dnl if test "x$MACOSX" != "xyes"; then
855 if test "`(uname) 2>/dev/null`" != Darwin; then
856 test "$GCC" = yes && threadsafe_flag="-pthread"
857 if test "`(uname) 2>/dev/null`" = FreeBSD; then
858 threadsafe_flag="-D_THREAD_SAFE"
859 thread_lib="-pthread"
863 if test -n "$threadsafe_flag"; then
865 CFLAGS="$CFLAGS $threadsafe_flag"
866 LIBS="$LIBS $thread_lib"
868 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
869 AC_MSG_RESULT(no); LIBS=$libs_save_old
876 dnl check that compiling a simple program still works with the flags
877 dnl added for Python.
878 AC_MSG_CHECKING([if compile and link flags for Python are sane])
881 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
882 LIBS="$LIBS $PYTHON_LIBS"
884 AC_MSG_RESULT(yes); python_ok=yes,
885 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
888 if test $python_ok = yes; then
889 AC_DEFINE(FEAT_PYTHON)
900 AC_MSG_RESULT(too old)
904 AC_SUBST(PYTHON_CONFDIR)
905 AC_SUBST(PYTHON_LIBS)
906 AC_SUBST(PYTHON_GETPATH_CFLAGS)
907 AC_SUBST(PYTHON_CFLAGS)
911 AC_MSG_CHECKING(--enable-tclinterp argument)
912 AC_ARG_ENABLE(tclinterp,
913 [ --enable-tclinterp Include Tcl interpreter.], ,
914 [enable_tclinterp="no"])
915 AC_MSG_RESULT($enable_tclinterp)
917 if test "$enable_tclinterp" = "yes"; then
919 dnl on FreeBSD tclsh is a silly script, look for tclsh8.[5420]
920 AC_MSG_CHECKING(--with-tclsh argument)
921 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
922 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
923 tclsh_name="tclsh8.5"; AC_MSG_RESULT(no))
924 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
925 AC_SUBST(vi_cv_path_tcl)
927 dnl when no specific version specified, also try 8.4, 8.2 and 8.0
928 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.5"; then
929 tclsh_name="tclsh8.4"
930 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
932 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.4"; then
933 tclsh_name="tclsh8.2"
934 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
936 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.2"; then
937 tclsh_name="tclsh8.0"
938 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
940 dnl still didn't find it, try without version number
941 if test "X$vi_cv_path_tcl" = "X"; then
943 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
945 if test "X$vi_cv_path_tcl" != "X"; then
946 AC_MSG_CHECKING(Tcl version)
947 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
948 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
949 AC_MSG_RESULT($tclver - OK);
950 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 -`
952 AC_MSG_CHECKING(for location of Tcl include)
953 if test "x$MACOSX" != "xyes"; then
954 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/local/include/tcl$tclver /usr/include /usr/include/tcl$tclver"
956 dnl For Mac OS X 10.3, use the OS-provided framework location
957 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
960 for try in $tclinc; do
961 if test -f "$try/tcl.h"; then
962 AC_MSG_RESULT($try/tcl.h)
967 if test -z "$TCL_INC"; then
968 AC_MSG_RESULT(<not found>)
971 if test -z "$SKIP_TCL"; then
972 AC_MSG_CHECKING(for location of tclConfig.sh script)
973 if test "x$MACOSX" != "xyes"; then
974 tclcnf=`echo $tclinc | sed s/include/lib/g`
975 tclcnf="$tclcnf `echo $tclinc | sed s/include/lib64/g`"
977 dnl For Mac OS X 10.3, use the OS-provided framework location
978 tclcnf="/System/Library/Frameworks/Tcl.framework"
980 for try in $tclcnf; do
981 if test -f $try/tclConfig.sh; then
982 AC_MSG_RESULT($try/tclConfig.sh)
984 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
985 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
986 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
987 dnl "-D_ABC" items. Watch out for -DFOO=long\ long.
988 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'`
992 if test -z "$TCL_LIBS"; then
993 AC_MSG_RESULT(<not found>)
994 AC_MSG_CHECKING(for Tcl library by myself)
995 tcllib=`echo $tclinc | sed s/include/lib/g`
996 tcllib="$tcllib `echo $tclinc | sed s/include/lib64/g`"
997 for ext in .so .a ; do
998 for ver in "" $tclver ; do
999 for try in $tcllib ; do
1001 if test -f $try/lib$trylib ; then
1002 AC_MSG_RESULT($try/lib$trylib)
1003 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
1004 if test "`(uname) 2>/dev/null`" = SunOS &&
1005 uname -r | grep '^5' >/dev/null; then
1006 TCL_LIBS="$TCL_LIBS -R $try"
1013 if test -z "$TCL_LIBS"; then
1014 AC_MSG_RESULT(<not found>)
1018 if test -z "$SKIP_TCL"; then
1021 TCL_OBJ=objects/if_tcl.o
1023 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
1027 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
1034 AC_SUBST(TCL_CFLAGS)
1037 AC_MSG_CHECKING(--enable-rubyinterp argument)
1038 AC_ARG_ENABLE(rubyinterp,
1039 [ --enable-rubyinterp Include Ruby interpreter.], ,
1040 [enable_rubyinterp="no"])
1041 AC_MSG_RESULT($enable_rubyinterp)
1042 if test "$enable_rubyinterp" = "yes"; then
1043 AC_MSG_CHECKING(--with-ruby-command argument)
1044 AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)],
1045 RUBY_CMD="$withval"; AC_MSG_RESULT($RUBY_CMD),
1046 RUBY_CMD="ruby"; AC_MSG_RESULT(defaulting to $RUBY_CMD))
1047 AC_SUBST(vi_cv_path_ruby)
1048 AC_PATH_PROG(vi_cv_path_ruby, $RUBY_CMD)
1049 if test "X$vi_cv_path_ruby" != "X"; then
1050 AC_MSG_CHECKING(Ruby version)
1051 if $vi_cv_path_ruby -e '(VERSION rescue RUBY_VERSION) >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
1053 AC_MSG_CHECKING(Ruby header files)
1054 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["rubyhdrdir"]] || Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
1055 if test "X$rubyhdrdir" != "X"; then
1056 AC_MSG_RESULT($rubyhdrdir)
1057 RUBY_CFLAGS="-I$rubyhdrdir"
1058 rubyarch=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["arch"]]'`
1059 if test -d "$rubyhdrdir/$rubyarch"; then
1060 RUBY_CFLAGS="$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch"
1062 rubyversion=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["ruby_version"]].gsub(/\./, "")[[0,2]]'`
1063 RUBY_CFLAGS="$RUBY_CFLAGS -DRUBY_VERSION=$rubyversion"
1064 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
1065 if test "X$rubylibs" != "X"; then
1066 RUBY_LIBS="$rubylibs"
1068 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
1069 if test -f "$rubyhdrdir/$librubyarg"; then
1070 librubyarg="$rubyhdrdir/$librubyarg"
1072 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
1073 if test -f "$rubylibdir/$librubyarg"; then
1074 librubyarg="$rubylibdir/$librubyarg"
1075 elif test "$librubyarg" = "libruby.a"; then
1076 dnl required on Mac OS 10.3 where libruby.a doesn't exist
1079 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
1083 if test "X$librubyarg" != "X"; then
1084 RUBY_LIBS="$librubyarg $RUBY_LIBS"
1086 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
1087 if test "X$rubyldflags" != "X"; then
1088 dnl Ruby on Mac OS X 10.5 adds "-arch" flags but these should only
1089 dnl be included if requested by passing --with-mac-arch to
1090 dnl configure, so strip these flags first (if present)
1091 rubyldflags=`echo "$rubyldflags" | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//'`
1092 if test "X$rubyldflags" != "X"; then
1093 LDFLAGS="$rubyldflags $LDFLAGS"
1096 RUBY_SRC="if_ruby.c"
1097 RUBY_OBJ="objects/if_ruby.o"
1098 RUBY_PRO="if_ruby.pro"
1099 AC_DEFINE(FEAT_RUBY)
1101 AC_MSG_RESULT(not found; disabling Ruby)
1104 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
1111 AC_SUBST(RUBY_CFLAGS)
1114 AC_MSG_CHECKING(--enable-cscope argument)
1115 AC_ARG_ENABLE(cscope,
1116 [ --enable-cscope Include cscope interface.], ,
1117 [enable_cscope="no"])
1118 AC_MSG_RESULT($enable_cscope)
1119 if test "$enable_cscope" = "yes"; then
1120 AC_DEFINE(FEAT_CSCOPE)
1123 AC_MSG_CHECKING(--enable-workshop argument)
1124 AC_ARG_ENABLE(workshop,
1125 [ --enable-workshop Include Sun Visual Workshop support.], ,
1126 [enable_workshop="no"])
1127 AC_MSG_RESULT($enable_workshop)
1128 if test "$enable_workshop" = "yes"; then
1129 AC_DEFINE(FEAT_SUN_WORKSHOP)
1130 WORKSHOP_SRC="workshop.c integration.c"
1131 AC_SUBST(WORKSHOP_SRC)
1132 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
1133 AC_SUBST(WORKSHOP_OBJ)
1134 if test "${enable_gui-xxx}" = xxx; then
1139 AC_MSG_CHECKING(--disable-netbeans argument)
1140 AC_ARG_ENABLE(netbeans,
1141 [ --disable-netbeans Disable NetBeans integration support.],
1142 , [enable_netbeans="yes"])
1143 if test "$enable_netbeans" = "yes"; then
1145 dnl On Solaris we need the socket and nsl library.
1146 AC_CHECK_LIB(socket, socket)
1147 AC_CHECK_LIB(nsl, gethostbyname)
1148 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
1155 #include <netinet/in.h>
1157 #include <sys/types.h>
1158 #include <sys/socket.h>
1159 /* Check bitfields */
1161 unsigned int initDone:1;
1165 /* Check creating a socket. */
1166 struct sockaddr_in server;
1167 (void)socket(AF_INET, SOCK_STREAM, 0);
1169 (void)gethostbyname("microsoft.com");
1170 if (errno == ECONNREFUSED)
1171 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
1174 AC_MSG_RESULT(no); enable_netbeans="no")
1178 if test "$enable_netbeans" = "yes"; then
1179 AC_DEFINE(FEAT_NETBEANS_INTG)
1180 NETBEANS_SRC="netbeans.c"
1181 AC_SUBST(NETBEANS_SRC)
1182 NETBEANS_OBJ="objects/netbeans.o"
1183 AC_SUBST(NETBEANS_OBJ)
1186 AC_MSG_CHECKING(--enable-sniff argument)
1187 AC_ARG_ENABLE(sniff,
1188 [ --enable-sniff Include Sniff interface.], ,
1189 [enable_sniff="no"])
1190 AC_MSG_RESULT($enable_sniff)
1191 if test "$enable_sniff" = "yes"; then
1192 AC_DEFINE(FEAT_SNIFF)
1193 SNIFF_SRC="if_sniff.c"
1195 SNIFF_OBJ="objects/if_sniff.o"
1199 AC_MSG_CHECKING(--enable-multibyte argument)
1200 AC_ARG_ENABLE(multibyte,
1201 [ --enable-multibyte Include multibyte editing support.], ,
1202 [enable_multibyte="no"])
1203 AC_MSG_RESULT($enable_multibyte)
1204 if test "$enable_multibyte" = "yes"; then
1205 AC_DEFINE(FEAT_MBYTE)
1208 AC_MSG_CHECKING(--enable-hangulinput argument)
1209 AC_ARG_ENABLE(hangulinput,
1210 [ --enable-hangulinput Include Hangul input support.], ,
1211 [enable_hangulinput="no"])
1212 AC_MSG_RESULT($enable_hangulinput)
1214 AC_MSG_CHECKING(--enable-xim argument)
1216 [ --enable-xim Include XIM input support.],
1217 AC_MSG_RESULT($enable_xim),
1218 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
1219 dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
1221 AC_MSG_CHECKING(--enable-fontset argument)
1222 AC_ARG_ENABLE(fontset,
1223 [ --enable-fontset Include X fontset output support.], ,
1224 [enable_fontset="no"])
1225 AC_MSG_RESULT($enable_fontset)
1226 dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
1228 test -z "$with_x" && with_x=yes
1229 test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
1230 if test "$with_x" = no; then
1231 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
1233 dnl Do this check early, so that its failure can override user requests.
1235 AC_PATH_PROG(xmkmfpath, xmkmf)
1239 dnl On OS390Unix the X libraries are DLLs. To use them the code must
1240 dnl be compiled with a special option.
1241 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
1242 if test "$OS390Unix" = "yes"; then
1243 CFLAGS="$CFLAGS -W c,dll"
1244 LDFLAGS="$LDFLAGS -W l,dll"
1245 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
1248 dnl On my HPUX system the X include dir is found, but the lib dir not.
1249 dnl This is a desparate try to fix this.
1251 if test -d "$x_includes" && test ! -d "$x_libraries"; then
1252 x_libraries=`echo "$x_includes" | sed s/include/lib/`
1253 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
1254 X_LIBS="$X_LIBS -L$x_libraries"
1255 if test "`(uname) 2>/dev/null`" = SunOS &&
1256 uname -r | grep '^5' >/dev/null; then
1257 X_LIBS="$X_LIBS -R $x_libraries"
1261 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1262 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1263 AC_MSG_RESULT(Corrected X includes to $x_includes)
1264 X_CFLAGS="$X_CFLAGS -I$x_includes"
1267 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1268 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1269 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1270 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1271 dnl Same for "-R/usr/lib ".
1272 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1275 dnl Check if the X11 header files are correctly installed. On some systems
1276 dnl Xlib.h includes files that don't exist. On some systems X11/Intrinsic.h
1278 AC_MSG_CHECKING(if X11 header files can be found)
1280 CFLAGS="$CFLAGS $X_CFLAGS"
1281 AC_TRY_COMPILE([#include <X11/Xlib.h>
1282 #include <X11/Intrinsic.h>], ,
1284 AC_MSG_RESULT(no); no_x=yes)
1287 if test "${no_x-no}" = yes; then
1294 ac_save_LDFLAGS="$LDFLAGS"
1295 LDFLAGS="-L$x_libraries $LDFLAGS"
1297 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1298 dnl For HP-UX 10.20 it must be before -lSM -lICE
1299 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1300 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1302 dnl Some systems need -lnsl -lsocket when testing for ICE.
1303 dnl The check above doesn't do this, try here (again). Also needed to get
1304 dnl them after Xdmcp. link.sh will remove them when not needed.
1305 dnl Check for other function than above to avoid the cached value
1306 AC_CHECK_LIB(ICE, IceOpenConnection,
1307 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1309 dnl Check for -lXpm (needed for some versions of Motif)
1310 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1311 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1312 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1314 dnl Check that the X11 header files don't use implicit declarations
1315 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1317 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1318 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1320 CFLAGS="$CFLAGS -Wno-implicit-int"
1321 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1322 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1323 AC_MSG_RESULT(test failed)
1328 LDFLAGS="$ac_save_LDFLAGS"
1330 AC_MSG_CHECKING(size of wchar_t is 2 bytes)
1331 AC_CACHE_VAL(ac_cv_small_wchar_t,
1333 #include <X11/Xlib.h>
1335 # include <stdlib.h>
1336 # include <stddef.h>
1340 if (sizeof(wchar_t) <= 2)
1344 ac_cv_small_wchar_t="no",
1345 ac_cv_small_wchar_t="yes",
1346 AC_MSG_ERROR(failed to compile test program))])
1347 AC_MSG_RESULT($ac_cv_small_wchar_t)
1348 if test "x$ac_cv_small_wchar_t" = "xyes" ; then
1349 AC_DEFINE(SMALL_WCHAR_T)
1355 test "x$with_x" = xno -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1357 AC_MSG_CHECKING(--enable-gui argument)
1359 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/motif/athena/neXtaw/photon/carbon]], , enable_gui="auto")
1361 dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1362 dnl Do not use character classes for portability with old tools.
1363 enable_gui_canon=`echo "_$enable_gui" | \
1364 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1366 dnl Skip everything by default.
1377 if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1379 case "$enable_gui_canon" in
1380 no) AC_MSG_RESULT(no GUI support)
1382 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1383 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1384 photon) AC_MSG_RESULT(Photon GUI support) ;;
1385 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1389 elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1391 case "$enable_gui_canon" in
1392 no) AC_MSG_RESULT(no GUI support)
1394 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1395 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1396 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1397 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1403 case "$enable_gui_canon" in
1404 no|none) AC_MSG_RESULT(no GUI support) ;;
1405 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1413 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1415 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1418 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1421 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1425 motif) AC_MSG_RESULT(Motif GUI support)
1427 athena) AC_MSG_RESULT(Athena GUI support)
1429 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1431 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1436 if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1437 AC_MSG_CHECKING(whether or not to look for GTK)
1438 AC_ARG_ENABLE(gtk-check,
1439 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1440 , enable_gtk_check="yes")
1441 AC_MSG_RESULT($enable_gtk_check)
1442 if test "x$enable_gtk_check" = "xno"; then
1448 if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1449 -a "$enable_gui_canon" != "gnome2"; then
1450 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1451 AC_ARG_ENABLE(gtk2-check,
1452 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1453 , enable_gtk2_check="yes")
1454 AC_MSG_RESULT($enable_gtk2_check)
1455 if test "x$enable_gtk2_check" = "xno"; then
1460 if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1461 -a "$enable_gui_canon" != "gnome2"; then
1462 AC_MSG_CHECKING(whether or not to look for GNOME)
1463 AC_ARG_ENABLE(gnome-check,
1464 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1465 , enable_gnome_check="no")
1466 AC_MSG_RESULT($enable_gnome_check)
1467 if test "x$enable_gnome_check" = "xno"; then
1472 if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1473 AC_MSG_CHECKING(whether or not to look for Motif)
1474 AC_ARG_ENABLE(motif-check,
1475 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1476 , enable_motif_check="yes")
1477 AC_MSG_RESULT($enable_motif_check)
1478 if test "x$enable_motif_check" = "xno"; then
1483 if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1484 AC_MSG_CHECKING(whether or not to look for Athena)
1485 AC_ARG_ENABLE(athena-check,
1486 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1487 , enable_athena_check="yes")
1488 AC_MSG_RESULT($enable_athena_check)
1489 if test "x$enable_athena_check" = "xno"; then
1494 if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1495 AC_MSG_CHECKING(whether or not to look for neXtaw)
1496 AC_ARG_ENABLE(nextaw-check,
1497 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1498 , enable_nextaw_check="yes")
1499 AC_MSG_RESULT($enable_nextaw_check);
1500 if test "x$enable_nextaw_check" = "xno"; then
1505 if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1506 AC_MSG_CHECKING(whether or not to look for Carbon)
1507 AC_ARG_ENABLE(carbon-check,
1508 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1509 , enable_carbon_check="yes")
1510 AC_MSG_RESULT($enable_carbon_check);
1511 if test "x$enable_carbon_check" = "xno"; then
1517 if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1518 AC_MSG_CHECKING(for Carbon GUI)
1519 dnl already did the check, just give the message
1522 if test "$VIMNAME" = "vim"; then
1526 dnl Default install directory is not /usr/local
1527 if test x$prefix = xNONE; then
1528 prefix=/Applications
1531 dnl Sorry for the hard coded default
1532 datadir='${prefix}/Vim.app/Contents/Resources'
1534 dnl skip everything else
1546 dnl Get the cflags and libraries from the gtk-config script
1549 dnl define an autoconf function to check for a specified version of GTK, and
1550 dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1552 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
1553 dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
1555 AC_DEFUN(AM_PATH_GTK,
1557 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1559 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1560 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1562 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1563 && $PKG_CONFIG --exists gtk+-2.0; then
1565 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1566 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1567 dnl something like that.
1568 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
1569 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
1570 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1571 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1572 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1573 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1574 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1575 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1576 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1578 elif test "X$GTK_CONFIG" != "Xno"; then
1580 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
1582 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1583 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1584 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1585 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1586 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1587 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1588 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1594 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1596 ac_save_CFLAGS="$CFLAGS"
1597 ac_save_LIBS="$LIBS"
1598 CFLAGS="$CFLAGS $GTK_CFLAGS"
1599 LIBS="$LIBS $GTK_LIBS"
1602 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1603 dnl checks the results of gtk-config to some extent
1607 #include <gtk/gtk.h>
1610 # include <stdlib.h>
1611 # include <stddef.h>
1617 int major, minor, micro;
1620 system ("touch conf.gtktest");
1622 /* HP/UX 9 (%@#!) writes to sscanf strings */
1623 tmp_version = g_strdup("$min_gtk_version");
1624 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) {
1625 printf("%s, bad version string\n", "$min_gtk_version");
1629 if ((gtk_major_version > major) ||
1630 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1631 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1632 (gtk_micro_version >= micro)))
1638 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1639 CFLAGS="$ac_save_CFLAGS"
1640 LIBS="$ac_save_LIBS"
1643 if test "x$no_gtk" = x ; then
1644 if test "x$enable_gtktest" = "xyes"; then
1645 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1647 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1649 ifelse([$2], , :, [$2])
1655 ifelse([$3], , :, [$3])
1662 ifelse([$3], , :, [$3])
1664 AC_SUBST(GTK_CFLAGS)
1669 dnl ---------------------------------------------------------------------------
1671 dnl ---------------------------------------------------------------------------
1672 AC_DEFUN([GNOME_INIT_HOOK],
1674 AC_SUBST(GNOME_LIBS)
1675 AC_SUBST(GNOME_LIBDIR)
1676 AC_SUBST(GNOME_INCLUDEDIR)
1678 AC_ARG_WITH(gnome-includes,
1679 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1680 [CFLAGS="$CFLAGS -I$withval"]
1683 AC_ARG_WITH(gnome-libs,
1684 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1685 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1689 [ --with-gnome Specify prefix for GNOME files],
1690 if test x$withval = xyes; then
1692 ifelse([$1], [], :, [$1])
1694 if test "x$withval" = xno; then
1698 LDFLAGS="$LDFLAGS -L$withval/lib"
1699 CFLAGS="$CFLAGS -I$withval/include"
1700 gnome_prefix=$withval/lib
1705 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1707 AC_MSG_CHECKING(for libgnomeui-2.0)
1708 if $PKG_CONFIG --exists libgnomeui-2.0; then
1710 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1711 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1712 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1714 dnl On FreeBSD we need -pthread but pkg-config doesn't include it.
1715 dnl This might not be the right way but it works for me...
1716 AC_MSG_CHECKING(for FreeBSD)
1717 if test "`(uname) 2>/dev/null`" = FreeBSD; then
1718 AC_MSG_RESULT(yes, adding -pthread)
1719 GNOME_INCLUDEDIR="$GNOME_INCLUDEDIR -D_THREAD_SAFE"
1720 GNOME_LIBS="$GNOME_LIBS -pthread"
1726 AC_MSG_RESULT(not found)
1727 if test "x$2" = xfail; then
1728 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1732 elif test "x$want_gnome" = xyes; then
1734 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1735 if test "$GNOME_CONFIG" = "no"; then
1736 no_gnome_config="yes"
1738 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1739 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1741 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1742 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1743 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1747 no_gnome_config="yes"
1751 if test x$exec_prefix = xNONE; then
1752 if test x$prefix = xNONE; then
1753 gnome_prefix=$ac_default_prefix/lib
1755 gnome_prefix=$prefix/lib
1758 gnome_prefix=`eval echo \`echo $libdir\``
1761 if test "$no_gnome_config" = "yes"; then
1762 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1763 if test -f $gnome_prefix/gnomeConf.sh; then
1764 AC_MSG_RESULT(found)
1765 echo "loading gnome configuration from" \
1766 "$gnome_prefix/gnomeConf.sh"
1767 . $gnome_prefix/gnomeConf.sh
1770 AC_MSG_RESULT(not found)
1771 if test x$2 = xfail; then
1772 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1780 AC_DEFUN([GNOME_INIT],[
1781 GNOME_INIT_HOOK([],fail)
1785 dnl ---------------------------------------------------------------------------
1786 dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1787 dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1788 dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1789 dnl ---------------------------------------------------------------------------
1790 if test -z "$SKIP_GTK"; then
1792 AC_MSG_CHECKING(--with-gtk-prefix argument)
1793 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1794 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1795 gtk_config_prefix=""; AC_MSG_RESULT(no))
1797 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1798 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1799 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1800 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1802 AC_MSG_CHECKING(--disable-gtktest argument)
1803 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1804 , enable_gtktest=yes)
1805 if test "x$enable_gtktest" = "xyes" ; then
1806 AC_MSG_RESULT(gtk test enabled)
1808 AC_MSG_RESULT(gtk test disabled)
1811 if test "x$gtk_config_prefix" != "x" ; then
1812 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1813 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1815 if test "x$gtk_config_exec_prefix" != "x" ; then
1816 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1817 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1819 if test "X$GTK_CONFIG" = "X"; then
1820 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1821 if test "X$GTK_CONFIG" = "Xno"; then
1822 dnl Some distributions call it gtk12-config, annoying!
1823 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1824 GTK_CONFIG="$GTK12_CONFIG"
1827 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1829 if test "X$PKG_CONFIG" = "X"; then
1830 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1833 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1834 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1835 dnl problems (bold fonts, --remote doesn't work).
1836 if test "X$SKIP_GTK2" != "XYES"; then
1838 [GUI_LIB_LOC="$GTK_LIBDIR"
1839 GTK_LIBNAME="$GTK_LIBS"
1840 GUI_INC_LOC="$GTK_CFLAGS"], )
1841 if test "x$GTK_CFLAGS" != "x"; then
1846 AC_SUBST(GTK_LIBNAME)
1850 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1851 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1852 dnl were test versions.
1853 if test "x$GUITYPE" != "xGTK"; then
1856 [GTK_LIBNAME="$GTK_LIBS"
1857 GUI_INC_LOC="$GTK_CFLAGS"], )
1858 if test "x$GTK_CFLAGS" != "x"; then
1863 AC_SUBST(GTK_LIBNAME)
1867 dnl Give a warning if GTK is older than 1.2.3
1868 if test "x$GUITYPE" = "xGTK"; then
1869 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1870 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1871 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1874 if test "0$gtk_major_version" -ge 2; then
1875 AC_DEFINE(HAVE_GTK2)
1876 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1877 || test "0$gtk_minor_version" -ge 2 \
1878 || test "0$gtk_major_version" -gt 2; then
1879 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1883 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1885 if test -z "$SKIP_GNOME"; then
1887 GNOME_INIT_HOOK([have_gnome=yes])
1888 if test x$have_gnome = xyes ; then
1889 AC_DEFINE(FEAT_GUI_GNOME)
1890 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1891 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1900 dnl Check for Motif include files location.
1901 dnl The LAST one found is used, this makes the highest version to be used,
1902 dnl e.g. when Motif1.2 and Motif2.0 are both present.
1904 if test -z "$SKIP_MOTIF"; then
1905 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"
1906 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1907 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1909 AC_MSG_CHECKING(for location of Motif GUI includes)
1910 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1912 for try in $gui_includes; do
1913 if test -f "$try/Xm/Xm.h"; then
1917 if test -n "$GUI_INC_LOC"; then
1918 if test "$GUI_INC_LOC" = /usr/include; then
1920 AC_MSG_RESULT(in default path)
1922 AC_MSG_RESULT($GUI_INC_LOC)
1925 AC_MSG_RESULT(<not found>)
1930 dnl Check for Motif library files location. In the same order as the include
1931 dnl files, to avoid a mixup if several versions are present
1933 if test -z "$SKIP_MOTIF"; then
1934 AC_MSG_CHECKING(--with-motif-lib argument)
1935 AC_ARG_WITH(motif-lib,
1936 [ --with-motif-lib=STRING Library for Motif ],
1937 [ MOTIF_LIBNAME="${withval}" ] )
1939 if test -n "$MOTIF_LIBNAME"; then
1940 AC_MSG_RESULT($MOTIF_LIBNAME)
1945 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1946 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1948 AC_MSG_CHECKING(for location of Motif GUI libs)
1949 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"
1951 for try in $gui_libs; do
1952 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
1953 if test -f "$libtry"; then
1958 if test -n "$GUI_LIB_LOC"; then
1959 dnl Remove /usr/lib, it causes trouble on some systems
1960 if test "$GUI_LIB_LOC" = /usr/lib; then
1962 AC_MSG_RESULT(in default path)
1964 if test -n "$GUI_LIB_LOC"; then
1965 AC_MSG_RESULT($GUI_LIB_LOC)
1966 if test "`(uname) 2>/dev/null`" = SunOS &&
1967 uname -r | grep '^5' >/dev/null; then
1968 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1974 AC_MSG_RESULT(<not found>)
1980 if test -z "$SKIP_MOTIF"; then
1984 AC_SUBST(MOTIF_LIBNAME)
1987 dnl Check if the Athena files can be found
1991 if test -z "$SKIP_ATHENA"; then
1992 AC_MSG_CHECKING(if Athena header files can be found)
1994 CFLAGS="$CFLAGS $X_CFLAGS"
1996 #include <X11/Intrinsic.h>
1997 #include <X11/Xaw/Paned.h>], ,
1999 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
2003 if test -z "$SKIP_ATHENA"; then
2007 if test -z "$SKIP_NEXTAW"; then
2008 AC_MSG_CHECKING(if neXtaw header files can be found)
2010 CFLAGS="$CFLAGS $X_CFLAGS"
2012 #include <X11/Intrinsic.h>
2013 #include <X11/neXtaw/Paned.h>], ,
2015 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
2019 if test -z "$SKIP_NEXTAW"; then
2023 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2024 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
2025 dnl Avoid adding it when it twice
2026 if test -n "$GUI_INC_LOC"; then
2027 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
2029 if test -n "$GUI_LIB_LOC"; then
2030 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
2033 dnl Check for -lXext and then for -lXmu
2034 ldflags_save=$LDFLAGS
2035 LDFLAGS="$X_LIBS $LDFLAGS"
2036 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
2037 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2038 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
2039 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
2040 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2041 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
2042 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2043 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
2044 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2045 if test -z "$SKIP_MOTIF"; then
2046 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
2047 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2049 LDFLAGS=$ldflags_save
2051 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
2052 AC_MSG_CHECKING(for extra X11 defines)
2055 if mkdir conftestdir; then
2057 cat > Imakefile <<'EOF'
2059 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2061 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2062 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2067 if test -z "$NARROW_PROTO"; then
2070 AC_MSG_RESULT($NARROW_PROTO)
2072 AC_SUBST(NARROW_PROTO)
2075 dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2076 dnl use the X11 include path
2077 if test "$enable_xsmp" = "yes"; then
2078 cppflags_save=$CPPFLAGS
2079 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2080 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2081 CPPFLAGS=$cppflags_save
2085 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2086 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2087 cppflags_save=$CPPFLAGS
2088 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2089 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2091 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2092 if test ! "$enable_xim" = "no"; then
2093 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2094 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2096 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2098 CPPFLAGS=$cppflags_save
2100 dnl automatically enable XIM when hangul input isn't enabled
2101 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2102 -a "x$GUITYPE" != "xNONE" ; then
2103 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2108 if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2109 cppflags_save=$CPPFLAGS
2110 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2111 dnl Xmu/Editres.h may exist but can only be used after including Intrinsic.h
2112 AC_MSG_CHECKING([for X11/Xmu/Editres.h])
2114 #include <X11/Intrinsic.h>
2115 #include <X11/Xmu/Editres.h>],
2118 AC_DEFINE(HAVE_X11_XMU_EDITRES_H),
2120 CPPFLAGS=$cppflags_save
2123 dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2124 if test -z "$SKIP_MOTIF"; then
2125 cppflags_save=$CPPFLAGS
2126 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2127 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h Xm/JoinSideT.h Xm/TraitP.h Xm/Manager.h \
2128 Xm/UnhighlightT.h Xm/Notebook.h)
2130 if test $ac_cv_header_Xm_XpmP_h = yes; then
2131 dnl Solaris uses XpmAttributes_21, very annoying.
2132 AC_MSG_CHECKING([for XpmAttributes_21 in Xm/XpmP.h])
2133 AC_TRY_COMPILE([#include <Xm/XpmP.h>], [XpmAttributes_21 attr;],
2134 AC_MSG_RESULT(yes); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes_21),
2135 AC_MSG_RESULT(no); AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2138 AC_DEFINE(XPMATTRIBUTES_TYPE, XpmAttributes)
2140 CPPFLAGS=$cppflags_save
2143 if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2144 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2147 if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2148 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2151 if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2152 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2156 if test -z "$SKIP_PHOTON"; then
2160 AC_SUBST(GUI_INC_LOC)
2161 AC_SUBST(GUI_LIB_LOC)
2163 AC_SUBST(GUI_X_LIBS)
2165 if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2166 AC_MSG_ERROR([cannot use workshop without Motif])
2169 dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2170 if test "$enable_xim" = "yes"; then
2173 if test "$enable_fontset" = "yes"; then
2174 AC_DEFINE(FEAT_XFONTSET)
2178 dnl ---------------------------------------------------------------------------
2179 dnl end of GUI-checking
2180 dnl ---------------------------------------------------------------------------
2183 dnl Only really enable hangul input when GUI and XFONTSET are available
2184 if test "$enable_hangulinput" = "yes"; then
2185 if test "x$GUITYPE" = "xNONE"; then
2186 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2187 enable_hangulinput=no
2189 AC_DEFINE(FEAT_HANGULIN)
2190 HANGULIN_SRC=hangulin.c
2191 AC_SUBST(HANGULIN_SRC)
2192 HANGULIN_OBJ=objects/hangulin.o
2193 AC_SUBST(HANGULIN_OBJ)
2197 dnl Checks for libraries and include files.
2199 AC_CACHE_CHECK([whether toupper is broken], [vim_cv_toupper_broken],
2202 #include "confdefs.h"
2205 # include <stdlib.h>
2206 # include <stddef.h>
2208 main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }
2210 vim_cv_toupper_broken=yes
2212 vim_cv_toupper_broken=no
2214 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_toupper_broken')
2217 if test "x$vim_cv_toupper_broken" = "xyes" ; then
2218 AC_DEFINE(BROKEN_TOUPPER)
2221 AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2222 AC_TRY_COMPILE([#include <stdio.h>], [printf("(" __DATE__ " " __TIME__ ")");],
2223 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2226 AC_MSG_CHECKING(whether __attribute__((unused)) is allowed)
2227 AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
2228 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ATTRIBUTE_UNUSED),
2231 dnl Checks for header files.
2232 AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2233 dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2234 if test "$HAS_ELF" = 1; then
2235 AC_CHECK_LIB(elf, main)
2240 dnl If sys/wait.h is not found it might still exist but not be POSIX
2241 dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2242 if test $ac_cv_header_sys_wait_h = no; then
2243 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2244 AC_TRY_COMPILE([#include <sys/wait.h>],
2245 [union wait xx, yy; xx = yy],
2247 AC_DEFINE(HAVE_SYS_WAIT_H)
2248 AC_DEFINE(HAVE_UNION_WAIT),
2252 AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2253 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h sys/types.h termio.h \
2254 iconv.h langinfo.h math.h unistd.h stropts.h errno.h \
2255 sys/resource.h sys/systeminfo.h locale.h \
2256 sys/stream.h termios.h libc.h sys/statfs.h \
2257 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2258 libgen.h util/debug.h util/msg18n.h frame.h \
2259 sys/acl.h sys/access.h sys/sysinfo.h wchar.h wctype.h)
2261 dnl sys/ptem.h depends on sys/stream.h on Solaris
2262 AC_CHECK_HEADERS(sys/ptem.h, [], [],
2263 [#if defined HAVE_SYS_STREAM_H
2264 # include <sys/stream.h>
2267 dnl sys/sysctl.h depends on sys/param.h on OpenBSD
2268 AC_CHECK_HEADERS(sys/sysctl.h, [], [],
2269 [#if defined HAVE_SYS_PARAM_H
2270 # include <sys/param.h>
2274 dnl pthread_np.h may exist but can only be used after including pthread.h
2275 AC_MSG_CHECKING([for pthread_np.h])
2277 #include <pthread.h>
2278 #include <pthread_np.h>],
2281 AC_DEFINE(HAVE_PTHREAD_NP_H),
2284 AC_CHECK_HEADERS(strings.h)
2285 if test "x$MACOSX" = "xyes"; then
2286 dnl The strings.h file on OS/X contains a warning and nothing useful.
2287 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2290 dnl Check if strings.h and string.h can both be included when defined.
2291 AC_MSG_CHECKING([if strings.h can be included after string.h])
2292 cppflags_save=$CPPFLAGS
2293 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2295 #if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2296 # define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2297 /* but don't do it on AIX 5.1 (Uribarri) */
2300 # include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2302 #ifdef HAVE_STRING_H
2303 # include <string.h>
2305 #if defined(HAVE_STRINGS_H)
2306 # include <strings.h>
2310 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2312 CPPFLAGS=$cppflags_save
2315 dnl Checks for typedefs, structures, and compiler characteristics.
2316 AC_PROG_GCC_TRADITIONAL
2325 AC_CHECK_TYPE(ino_t, long)
2326 AC_CHECK_TYPE(dev_t, unsigned)
2328 AC_MSG_CHECKING(for rlim_t)
2329 if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2330 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2333 changequote(<<,>>)dnl
2334 <<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2337 #include <sys/types.h>
2339 # include <stdlib.h>
2340 # include <stddef.h>
2342 #ifdef HAVE_SYS_RESOURCE_H
2343 # include <sys/resource.h>
2345 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2346 AC_MSG_RESULT($ac_cv_type_rlim_t)
2348 if test $ac_cv_type_rlim_t = no; then
2349 cat >> confdefs.h <<\EOF
2350 #define rlim_t unsigned long
2354 AC_MSG_CHECKING(for stack_t)
2355 if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2356 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2358 AC_EGREP_CPP(stack_t,
2360 #include <sys/types.h>
2362 # include <stdlib.h>
2363 # include <stddef.h>
2366 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2367 AC_MSG_RESULT($ac_cv_type_stack_t)
2369 if test $ac_cv_type_stack_t = no; then
2370 cat >> confdefs.h <<\EOF
2371 #define stack_t struct sigaltstack
2375 dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2376 AC_MSG_CHECKING(whether stack_t has an ss_base field)
2378 #include <sys/types.h>
2380 # include <stdlib.h>
2381 # include <stddef.h>
2384 #include "confdefs.h"
2385 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2386 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2390 AC_MSG_CHECKING(--with-tlib argument)
2391 AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2392 if test -n "$with_tlib"; then
2393 AC_MSG_RESULT($with_tlib)
2394 LIBS="$LIBS -l$with_tlib"
2395 AC_MSG_CHECKING(for linking with $with_tlib library)
2396 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2397 dnl Need to check for tgetent() below.
2400 AC_MSG_RESULT([empty: automatic terminal library selection])
2401 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2402 dnl curses, because curses is much slower.
2403 dnl Newer versions of ncurses are preferred over anything.
2404 dnl Older versions of ncurses have bugs, get a new one!
2405 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2406 dnl On SCO Openserver should prefer termlib (Roger Cornelius).
2407 case "`uname -s 2>/dev/null`" in
2408 OSF1|SCO_SV) tlibs="ncurses curses termlib termcap";;
2409 *) tlibs="ncurses termlib termcap curses";;
2411 for libname in $tlibs; do
2412 AC_CHECK_LIB(${libname}, tgetent,,)
2413 if test "x$olibs" != "x$LIBS"; then
2414 dnl It's possible that a library is found but it doesn't work
2415 dnl e.g., shared library that cannot be found
2416 dnl compile and run a test program to be sure
2418 #ifdef HAVE_TERMCAP_H
2419 # include <termcap.h>
2422 # include <stdlib.h>
2423 # include <stddef.h>
2425 main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2426 res="OK", res="FAIL", res="FAIL")
2427 if test "$res" = "OK"; then
2430 AC_MSG_RESULT($libname library is not usable)
2434 if test "x$olibs" = "x$LIBS"; then
2435 AC_MSG_RESULT(no terminal library found)
2439 if test "x$olibs" = "x$LIBS"; then
2440 AC_MSG_CHECKING([for tgetent()])
2442 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2444 AC_MSG_ERROR([NOT FOUND!
2445 You need to install a terminal library; for example ncurses.
2446 Or specify the name of the library with --with-tlib.]))
2449 AC_CACHE_CHECK([whether we talk terminfo], [vim_cv_terminfo],
2452 #include "confdefs.h"
2453 #ifdef HAVE_TERMCAP_H
2454 # include <termcap.h>
2456 #ifdef HAVE_STRING_H
2457 # include <string.h>
2460 # include <stdlib.h>
2461 # include <stddef.h>
2464 {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }
2470 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_terminfo')
2474 if test "x$vim_cv_terminfo" = "xyes" ; then
2478 if test "x$olibs" != "x$LIBS"; then
2479 AC_CACHE_CHECK([what tgetent() returns for an unknown terminal], [vim_cv_tgent],
2482 #include "confdefs.h"
2483 #ifdef HAVE_TERMCAP_H
2484 # include <termcap.h>
2487 # include <stdlib.h>
2488 # include <stddef.h>
2491 {char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }
2495 vim_cv_tgent=non-zero
2497 AC_MSG_ERROR(failed to compile test program.)
2501 if test "x$vim_cv_tgent" = "xzero" ; then
2502 AC_DEFINE(TGETENT_ZERO_ERR, 0)
2506 AC_MSG_CHECKING(whether termcap.h contains ospeed)
2508 #ifdef HAVE_TERMCAP_H
2509 # include <termcap.h>
2511 ], [ospeed = 20000],
2512 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2514 AC_MSG_CHECKING(whether ospeed can be extern)
2516 #ifdef HAVE_TERMCAP_H
2517 # include <termcap.h>
2519 extern short ospeed;
2520 ], [ospeed = 20000],
2521 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2525 AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2527 #ifdef HAVE_TERMCAP_H
2528 # include <termcap.h>
2530 ], [if (UP == 0 && BC == 0) PC = 1],
2531 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2533 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2535 #ifdef HAVE_TERMCAP_H
2536 # include <termcap.h>
2538 extern char *UP, *BC, PC;
2539 ], [if (UP == 0 && BC == 0) PC = 1],
2540 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2544 AC_MSG_CHECKING(whether tputs() uses outfuntype)
2546 #ifdef HAVE_TERMCAP_H
2547 # include <termcap.h>
2549 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2550 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2553 dnl On some SCO machines sys/select redefines struct timeval
2554 AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2556 #include <sys/types.h>
2557 #include <sys/time.h>
2558 #include <sys/select.h>], ,
2560 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2563 dnl AC_DECL_SYS_SIGLIST
2565 dnl Checks for pty.c (copied from screen) ==========================
2566 AC_MSG_CHECKING(for /dev/ptc)
2567 if test -r /dev/ptc; then
2568 AC_DEFINE(HAVE_DEV_PTC)
2574 AC_MSG_CHECKING(for SVR4 ptys)
2575 if test -c /dev/ptmx ; then
2576 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2577 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2583 AC_MSG_CHECKING(for ptyranges)
2584 if test -d /dev/ptym ; then
2594 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2595 dnl if test -c /dev/ptyp19; then
2596 dnl ptys=`echo /dev/ptyp??`
2598 dnl ptys=`echo $pdir/pty??`
2600 if test "$ptys" != "$pdir/pty??" ; then
2601 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2602 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2603 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2604 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2605 AC_MSG_RESULT([$p0 / $p1])
2607 AC_MSG_RESULT([don't know])
2610 dnl **** pty mode/group handling ****
2612 dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2614 AC_CACHE_CHECK([default tty permissions/group], [vim_cv_tty_group],
2617 #include "confdefs.h"
2618 #include <sys/types.h>
2620 # include <stdlib.h>
2621 # include <stddef.h>
2623 #ifdef HAVE_UNISTD_H
2626 #include <sys/stat.h>
2635 if (!(x = ttyname(0))) exit(1);
2636 if (stat(x, &sb)) exit(1);
2638 if (om & 002) exit(0);
2639 m = system("mesg y");
2640 if (m == -1 || m == 127) exit(1);
2641 if (stat(x, &sb)) exit(1);
2643 if (chmod(x, om)) exit(1);
2644 if (m & 002) exit(0);
2645 if (sb.st_gid == getgid()) exit(1);
2646 if (!(fp=fopen("conftest_grp", "w")))
2648 fprintf(fp, "%d\n", sb.st_gid);
2653 if test -f conftest_grp; then
2654 vim_cv_tty_group=`cat conftest_grp`
2655 if test "x$vim_cv_tty_mode" = "x" ; then
2656 vim_cv_tty_mode=0620
2658 AC_MSG_RESULT([pty mode: $vim_cv_tty_mode, group: $vim_cv_tty_group])
2660 vim_cv_tty_group=world
2661 AC_MSG_RESULT([ptys are world accessible])
2664 vim_cv_tty_group=world
2665 AC_MSG_RESULT([can't determine - assume ptys are world accessible])
2667 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_tty_group' and 'vim_cv_tty_mode')
2672 if test "x$vim_cv_tty_group" != "xworld" ; then
2673 AC_DEFINE_UNQUOTED(PTYGROUP,$vim_cv_tty_group)
2674 if test "x$vim_cv_tty_mode" = "x" ; then
2675 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)])
2677 AC_DEFINE(PTYMODE, 0620)
2681 dnl Checks for library functions. ===================================
2685 dnl find out what to use at the end of a signal function
2686 if test $ac_cv_type_signal = void; then
2687 AC_DEFINE(SIGRETURN, [return])
2689 AC_DEFINE(SIGRETURN, [return 0])
2692 dnl check if struct sigcontext is defined (used for SGI only)
2693 AC_MSG_CHECKING(for struct sigcontext)
2698 struct sigcontext *scont;
2699 scont = (struct sigcontext *)0;
2703 AC_DEFINE(HAVE_SIGCONTEXT),
2706 dnl tricky stuff: try to find out if getcwd() is implemented with
2707 dnl system("sh -c pwd")
2708 AC_CACHE_CHECK([getcwd implementation is broken], [vim_cv_getcwd_broken],
2711 #include "confdefs.h"
2712 #ifdef HAVE_UNISTD_H
2715 char *dagger[] = { "IFS=pwd", 0 };
2719 extern char **environ;
2721 return getcwd(buffer, 500) ? 0 : 1;
2724 vim_cv_getcwd_broken=no
2726 vim_cv_getcwd_broken=yes
2728 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_getcwd_broken')
2732 if test "x$vim_cv_getcwd_broken" = "xyes" ; then
2733 AC_DEFINE(BAD_GETCWD)
2736 dnl Check for functions in one big call, to reduce the size of configure.
2737 dnl Can only be used for functions that do not require any include.
2738 AC_CHECK_FUNCS(bcmp fchdir fchown fsync getcwd getpseudotty \
2739 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2740 memset mkdtemp nanosleep opendir putenv qsort readlink select setenv \
2741 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2742 sigvec strcasecmp strerror strftime stricmp strncasecmp \
2743 strnicmp strpbrk strtol tgetent towlower towupper iswupper \
2744 usleep utime utimes)
2747 dnl define _LARGE_FILES, _FILE_OFFSET_BITS and _LARGEFILE_SOURCE when
2748 dnl appropriate, so that off_t is 64 bits when needed.
2751 dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2752 AC_MSG_CHECKING(for st_blksize)
2754 [#include <sys/types.h>
2755 #include <sys/stat.h>],
2760 n = (int)st.st_blksize;],
2761 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2764 AC_CACHE_CHECK([whether stat() ignores a trailing slash], [vim_cv_stat_ignores_slash],
2767 #include "confdefs.h"
2769 # include <stdlib.h>
2770 # include <stddef.h>
2772 #include <sys/types.h>
2773 #include <sys/stat.h>
2774 main() {struct stat st; exit(stat("configure/", &st) != 0); }
2776 vim_cv_stat_ignores_slash=yes
2778 vim_cv_stat_ignores_slash=no
2780 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_stat_ignores_slash')
2784 if test "x$vim_cv_stat_ignores_slash" = "xyes" ; then
2785 AC_DEFINE(STAT_IGNORES_SLASH)
2788 dnl Link with iconv for charset translation, if not found without library.
2789 dnl check for iconv() requires including iconv.h
2790 dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2791 dnl has been installed.
2792 AC_MSG_CHECKING(for iconv_open())
2794 LIBS="$LIBS -liconv"
2799 ], [iconv_open("fr", "to");],
2800 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2806 ], [iconv_open("fr", "to");],
2807 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2811 AC_MSG_CHECKING(for nl_langinfo(CODESET))
2813 #ifdef HAVE_LANGINFO_H
2814 # include <langinfo.h>
2816 ], [char *cs = nl_langinfo(CODESET);],
2817 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2820 dnl Need various functions for floating point support. Only enable
2821 dnl floating point when they are all present.
2822 AC_CHECK_LIB(m, strtod)
2823 AC_MSG_CHECKING([for strtod() and other floating point functions])
2829 # include <stdlib.h>
2830 # include <stddef.h>
2832 ], [char *s; double d;
2833 d = strtod("1.1", &s);
2838 d = pow(1.11, 2.22);
2844 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FLOAT_FUNCS),
2847 dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2848 dnl when -lacl works, also try to use -lattr (required for Debian).
2849 AC_MSG_CHECKING(--disable-acl argument)
2851 [ --disable-acl Don't check for ACL support.],
2852 , [enable_acl="yes"])
2853 if test "$enable_acl" = "yes"; then
2855 AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2856 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2857 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2859 AC_MSG_CHECKING(for POSIX ACL support)
2861 #include <sys/types.h>
2862 #ifdef HAVE_SYS_ACL_H
2863 # include <sys/acl.h>
2865 acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2866 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2868 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2871 AC_MSG_CHECKING(for Solaris ACL support)
2873 #ifdef HAVE_SYS_ACL_H
2874 # include <sys/acl.h>
2875 #endif], [acl("foo", GETACLCNT, 0, NULL);
2877 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2880 AC_MSG_CHECKING(for AIX ACL support)
2883 # include <stdlib.h>
2884 # include <stddef.h>
2886 #ifdef HAVE_SYS_ACL_H
2887 # include <sys/acl.h>
2889 #ifdef HAVE_SYS_ACCESS_H
2890 # include <sys/access.h>
2894 #include <sys/stat.h>
2897 struct acl *aclent;], [aclsize = sizeof(struct acl);
2898 aclent = (void *)malloc(aclsize);
2899 statacl("foo", STX_NORMAL, aclent, aclsize);
2901 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2907 AC_MSG_CHECKING(--disable-gpm argument)
2909 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2912 if test "$enable_gpm" = "yes"; then
2914 dnl Checking if gpm support can be compiled
2915 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2916 [olibs="$LIBS" ; LIBS="-lgpm"]
2919 #include <linux/keyboard.h>],
2920 [Gpm_GetLibVersion(NULL);],
2921 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2922 dnl FEAT_MOUSE_GPM if mouse support is included
2923 [vi_cv_have_gpm=yes],
2924 [vi_cv_have_gpm=no])
2927 if test $vi_cv_have_gpm = yes; then
2935 AC_MSG_CHECKING(--disable-sysmouse argument)
2936 AC_ARG_ENABLE(sysmouse,
2937 [ --disable-sysmouse Don't use sysmouse (mouse in *BSD console).], ,
2938 [enable_sysmouse="yes"])
2940 if test "$enable_sysmouse" = "yes"; then
2942 dnl Checking if sysmouse support can be compiled
2943 dnl Configure defines HAVE_SYSMOUSE, if it is defined feature.h
2944 dnl defines FEAT_SYSMOUSE if mouse support is included
2945 AC_CACHE_CHECK([for sysmouse], vi_cv_have_sysmouse,
2947 [#include <sys/consio.h>
2949 #include <sys/fbio.h>],
2950 [struct mouse_info mouse;
2951 mouse.operation = MOUSE_MODE;
2952 mouse.operation = MOUSE_SHOW;
2953 mouse.u.mode.mode = 0;
2954 mouse.u.mode.signal = SIGUSR2;],
2955 [vi_cv_have_sysmouse=yes],
2956 [vi_cv_have_sysmouse=no])
2958 if test $vi_cv_have_sysmouse = yes; then
2959 AC_DEFINE(HAVE_SYSMOUSE)
2965 dnl make sure the FD_CLOEXEC flag for fcntl()'s F_SETFD command is known
2966 AC_MSG_CHECKING(for FD_CLOEXEC)
2971 [ int flag = FD_CLOEXEC;],
2972 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_FD_CLOEXEC),
2973 AC_MSG_RESULT(not usable))
2975 dnl rename needs to be checked separately to work on Nextstep with cc
2976 AC_MSG_CHECKING(for rename)
2977 AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2978 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2981 dnl sysctl() may exist but not the arguments we use
2982 AC_MSG_CHECKING(for sysctl)
2984 [#include <sys/types.h>
2985 #include <sys/sysctl.h>],
2990 mib[1] = HW_USERMEM;
2992 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2994 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2995 AC_MSG_RESULT(not usable))
2997 dnl sysinfo() may exist but not be Linux compatible
2998 AC_MSG_CHECKING(for sysinfo)
3000 [#include <sys/types.h>
3001 #include <sys/sysinfo.h>],
3002 [ struct sysinfo sinfo;
3005 (void)sysinfo(&sinfo);
3008 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
3009 AC_MSG_RESULT(not usable))
3011 dnl struct sysinfo may have the mem_unit field or not
3012 AC_MSG_CHECKING(for sysinfo.mem_unit)
3014 [#include <sys/types.h>
3015 #include <sys/sysinfo.h>],
3016 [ struct sysinfo sinfo;
3019 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO_MEM_UNIT),
3022 dnl sysconf() may exist but not support what we want to use
3023 AC_MSG_CHECKING(for sysconf)
3025 [#include <unistd.h>],
3026 [ (void)sysconf(_SC_PAGESIZE);
3027 (void)sysconf(_SC_PHYS_PAGES);
3029 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
3030 AC_MSG_RESULT(not usable))
3032 dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
3033 dnl be printed with "%d", and avoids a warning for cross-compiling.
3035 AC_MSG_CHECKING(size of int)
3036 AC_CACHE_VAL(ac_cv_sizeof_int,
3040 # include <stdlib.h>
3041 # include <stddef.h>
3045 FILE *f=fopen("conftestval", "w");
3047 fprintf(f, "%d\n", (int)sizeof(int));
3050 ac_cv_sizeof_int=`cat conftestval`,
3052 AC_MSG_ERROR(failed to compile test program))])
3053 AC_MSG_RESULT($ac_cv_sizeof_int)
3054 AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
3056 dnl Check for memmove() before bcopy(), makes memmove() be used when both are
3057 dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
3060 #include "confdefs.h"
3061 #ifdef HAVE_STRING_H
3062 # include <string.h>
3065 # include <stdlib.h>
3066 # include <stddef.h>
3070 strcpy(buf, "abcdefghi");
3071 mch_memmove(buf, buf + 2, 3);
3072 if (strncmp(buf, "ababcf", 6))
3074 strcpy(buf, "abcdefghi");
3075 mch_memmove(buf + 2, buf, 3);
3076 if (strncmp(buf, "cdedef", 6))
3078 exit(0); /* libc version works properly. */
3081 AC_CACHE_CHECK([whether memmove handles overlaps],[vim_cv_memmove_handles_overlap],
3083 AC_RUN_IFELSE([[#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog]],
3085 vim_cv_memmove_handles_overlap=yes
3087 vim_cv_memmove_handles_overlap=no
3089 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memmove_handles_overlap')
3093 if test "x$vim_cv_memmove_handles_overlap" = "xyes" ; then
3094 AC_DEFINE(USEMEMMOVE)
3096 AC_CACHE_CHECK([whether bcopy handles overlaps],[vim_cv_bcopy_handles_overlap],
3098 AC_RUN_IFELSE([[#define mch_bcopy(s,d,l) bcopy(d,s,l) $bcopy_test_prog]],
3100 vim_cv_bcopy_handles_overlap=yes
3102 vim_cv_bcopy_handles_overlap=no
3104 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_bcopy_handles_overlap')
3108 if test "x$vim_cv_bcopy_handles_overlap" = "xyes" ; then
3111 AC_CACHE_CHECK([whether memcpy handles overlaps],[vim_cv_memcpy_handles_overlap],
3113 AC_RUN_IFELSE([[#define mch_memcpy(s,d,l) memcpy(d,s,l) $bcopy_test_prog]],
3115 vim_cv_memcpy_handles_overlap=yes
3117 vim_cv_memcpy_handles_overlap=no
3119 AC_MSG_ERROR(cross-compiling: please set 'vim_cv_memcpy_handles_overlap')
3123 if test "x$vim_cv_memcpy_handles_overlap" = "xyes" ; then
3124 AC_DEFINE(USEMEMCPY)
3130 dnl Check for multibyte locale functions
3131 dnl Find out if _Xsetlocale() is supported by libX11.
3132 dnl Check if X_LOCALE should be defined.
3134 if test "$enable_multibyte" = "yes"; then
3136 ldflags_save=$LDFLAGS
3137 if test "x$x_includes" != "xNONE" ; then
3138 CFLAGS="$CFLAGS -I$x_includes"
3139 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
3140 AC_MSG_CHECKING(whether X_LOCALE needed)
3141 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
3142 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
3143 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
3147 LDFLAGS=$ldflags_save
3150 dnl Link with xpg4, it is said to make Korean locale working
3151 AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
3153 dnl Check how we can run ctags. Default to "ctags" when nothing works.
3154 dnl --version for Exuberant ctags (preferred)
3155 dnl Add --fields=+S to get function signatures for omni completion.
3156 dnl -t for typedefs (many ctags have this)
3157 dnl -s for static functions (Elvis ctags only?)
3158 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
3159 dnl -i+m to test for older Exuberant ctags
3160 AC_MSG_CHECKING(how to create tags)
3161 test -f tags && mv tags tags.save
3162 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
3163 TAGPRG="ctags -I INIT+ --fields=+S"
3166 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
3167 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
3168 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
3169 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
3170 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
3171 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
3172 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
3174 test -f tags.save && mv tags.save tags
3175 AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
3177 dnl Check how we can run man with a section number
3178 AC_MSG_CHECKING(how to run man with a section nr)
3180 (eval MANPAGER=cat PAGER=cat man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
3181 AC_MSG_RESULT($MANDEF)
3182 if test "$MANDEF" = "man -s"; then
3186 dnl Check if gettext() is working and if it needs -lintl
3187 AC_MSG_CHECKING(--disable-nls argument)
3189 [ --disable-nls Don't support NLS (gettext()).], ,
3192 if test "$enable_nls" = "yes"; then
3195 INSTALL_LANGS=install-languages
3196 AC_SUBST(INSTALL_LANGS)
3197 INSTALL_TOOL_LANGS=install-tool-languages
3198 AC_SUBST(INSTALL_TOOL_LANGS)
3200 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
3201 AC_MSG_CHECKING([for NLS])
3202 if test -f po/Makefile; then
3204 if test -n "$MSGFMT"; then
3206 [#include <libintl.h>],
3208 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
3212 [#include <libintl.h>],
3214 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
3215 AC_MSG_RESULT([gettext() doesn't work]);
3218 AC_MSG_RESULT([msgfmt not found - disabled]);
3220 if test $have_gettext = "yes"; then
3221 AC_DEFINE(HAVE_GETTEXT)
3224 dnl this was added in GNU gettext 0.10.36
3225 AC_CHECK_FUNCS(bind_textdomain_codeset)
3226 dnl _nl_msg_cat_cntr is required for GNU gettext
3227 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
3229 [#include <libintl.h>
3230 extern int _nl_msg_cat_cntr;],
3231 [++_nl_msg_cat_cntr;],
3232 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
3233 AC_MSG_RESULT([no]))
3236 AC_MSG_RESULT([no "po/Makefile" - disabled]);
3242 dnl Check for dynamic linking loader
3243 AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
3244 if test x${DLL} = xdlfcn.h; then
3245 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
3246 AC_MSG_CHECKING([for dlopen()])
3248 extern void* dlopen();
3252 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3254 AC_MSG_CHECKING([for dlopen() in -ldl])
3258 extern void* dlopen();
3262 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3265 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3267 AC_MSG_CHECKING([for dlsym()])
3269 extern void* dlsym();
3273 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3275 AC_MSG_CHECKING([for dlsym() in -ldl])
3279 extern void* dlsym();
3283 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3286 elif test x${DLL} = xdl.h; then
3287 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3288 AC_MSG_CHECKING([for shl_load()])
3290 extern void* shl_load();
3294 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3296 AC_MSG_CHECKING([for shl_load() in -ldld])
3300 extern void* shl_load();
3304 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3308 AC_CHECK_HEADERS(setjmp.h)
3310 if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3311 dnl -ldl must come after DynaLoader.a
3312 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3313 LIBS=`echo $LIBS | sed s/-ldl//`
3314 PERL_LIBS="$PERL_LIBS -ldl"
3318 if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3319 && test "x$GUITYPE" != "xCARBONGUI"; then
3320 AC_MSG_CHECKING(whether we need -framework Carbon)
3321 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3322 if test "x$enable_multibyte" = "xyes" || test "x$features" = "xbig" \
3323 || test "x$features" = "xhuge"; then
3324 LIBS="$LIBS -framework Carbon"
3330 if test "x$MACARCH" = "xboth"; then
3331 LDFLAGS="$LDFLAGS -isysroot $DEVELOPER_DIR/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc"
3334 dnl gcc 3.1 changed the meaning of -MM. The only solution appears to be to
3335 dnl use "-isystem" instead of "-I" for all non-Vim include dirs.
3336 dnl But only when making dependencies, cproto and lint don't take "-isystem".
3337 dnl Mac gcc returns "powerpc-apple-darwin8-gcc-4.0.1 (GCC)...", need to allow
3338 dnl the number before the version number.
3339 DEPEND_CFLAGS_FILTER=
3340 if test "$GCC" = yes; then
3341 AC_MSG_CHECKING(for GCC 3 or later)
3342 gccmajor=`echo "$gccversion" | sed -e 's/^\([[1-9]]\)\..*$/\1/g'`
3343 if test "$gccmajor" -gt "2"; then
3344 DEPEND_CFLAGS_FILTER="| sed 's+-I */+-isystem /+g'"
3349 dnl -D_FORTIFY_SOURCE=2 crashes Vim on strcpy(buf, "000") when buf is
3350 dnl declared as char x[1] but actually longer. Introduced in gcc 4.0.
3351 dnl Also remove duplicate _FORTIFY_SOURCE arguments.
3352 AC_MSG_CHECKING(whether we need -D_FORTIFY_SOURCE=1)
3353 if test "$gccmajor" -gt "3"; then
3354 CFLAGS=`echo "$CFLAGS" | sed -e 's/-Wp,-D_FORTIFY_SOURCE=.//g' -e 's/-D_FORTIFY_SOURCE=.//g' -e 's/$/ -D_FORTIFY_SOURCE=1/'`
3360 AC_SUBST(DEPEND_CFLAGS_FILTER)
3362 dnl write output files
3363 AC_OUTPUT(auto/config.mk:config.mk.in)
3365 dnl vim: set sw=2 tw=78 fo+=l: