blob: 16bbf1328c230334e9e5be22347e79ff8e93f285 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001dnl configure.in: autoconf script for Vim
2
3dnl Process this file with autoconf 2.12 or 2.13 to produce "configure".
4dnl Should also work with autoconf 2.54 and later.
5
6AC_INIT(vim.h)
7AC_CONFIG_HEADER(auto/config.h:config.h.in)
8
9dnl Being able to run configure means the system is Unix (compatible).
10AC_DEFINE(UNIX)
11AC_PROG_MAKE_SET
12
13dnl Checks for programs.
14AC_PROG_CC dnl required by almost everything
15AC_PROG_CPP dnl required by header file checks
16AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP
17AC_ISC_POSIX dnl required by AC_C_CROSS
18AC_PROG_AWK dnl required for "make html" in ../doc
19
20dnl Don't strip if we don't have it
21AC_CHECK_PROG(STRIP, strip, strip, :)
22
Bram Moolenaar325b7a22004-07-05 15:58:32 +000023dnl Check for extension of executables
Bram Moolenaar071d4272004-06-13 20:20:40 +000024AC_EXEEXT
25
26dnl Set default value for CFLAGS if none is defined or it's empty
27if test -z "$CFLAGS"; then
28 CFLAGS="-O"
29 test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
30fi
31if test "$GCC" = yes; then
32 gccversion=`"$CC" --version | sed -e '2,$d;s/^[[^0-9]]*\([[0-9]]\.[[0-9.]]*\).*$/\1/g'`
33 if test "$gccversion" = "3.0.1" -o "$gccversion" = "3.0.2"; then
34 echo 'GCC 3.0.x has a bug in the optimizer, disabling "-O#"'
35 CFLAGS=`echo "$CFLAGS" | sed 's/-O[[23456789]]/-O/'`
36 else
37 if test "$gccversion" = "3.1" -o "$gccversion" = "3.2" -o "$gccversion" = "3.2.1" && `echo "$CFLAGS" | grep -v fno-strength-reduce >/dev/null`; then
38 echo 'GCC 3.1 and 3.2 have a bug in the optimizer, adding "-fno-strength-reduce"'
39 CFLAGS="$CFLAGS -fno-strength-reduce"
40 fi
41 fi
42fi
43
44dnl If configure thinks we are cross compiling, there is probably something
45dnl wrong with the CC or CFLAGS settings, give an understandable error message
46if test "$cross_compiling" = yes; then
47 AC_MSG_ERROR([cannot compile a simple program, check CC and CFLAGS
48 (cross compiling doesn't work)])
49fi
50
51dnl gcc-cpp has the wonderful -MM option to produce nicer dependencies
52test "$GCC" = yes && CPP_MM=M; AC_SUBST(CPP_MM)
53
54if test -f ./toolcheck; then
55 AC_CHECKING(for buggy tools)
56 sh ./toolcheck 1>&AC_FD_MSG
57fi
58
59OS_EXTRA_SRC=""; OS_EXTRA_OBJ=""
60
61dnl Check for BeOS, which needs an extra source file
62AC_MSG_CHECKING(for BeOS)
63case `uname` in
64 BeOS) OS_EXTRA_SRC=os_beos.c; OS_EXTRA_OBJ=objects/os_beos.o
65 BEOS=yes; AC_MSG_RESULT(yes);;
66 *) BEOS=no; AC_MSG_RESULT(no);;
67esac
68
69dnl If QNX is found, assume we don't want to use Xphoton
70dnl unless it was specifically asked for (--with-x)
71AC_MSG_CHECKING(for QNX)
72case `uname` in
73 QNX) OS_EXTRA_SRC=os_qnx.c; OS_EXTRA_OBJ=objects/os_qnx.o
74 test -z "$with_x" && with_x=no
75 QNX=yes; AC_MSG_RESULT(yes);;
76 *) QNX=no; AC_MSG_RESULT(no);;
77esac
78
79dnl Check for Darwin and MacOS X
80dnl We do a check for MacOS X in the very beginning because there
81dnl are a lot of other things we need to change besides GUI stuff
82DEFAULT_VIMNAME=vim
83AC_MSG_CHECKING([for Darwin (Mac OS X)])
84if test "`(uname) 2>/dev/null`" = Darwin; then
85 AC_MSG_RESULT(yes)
86
87 AC_MSG_CHECKING(--disable-darwin argument)
88 AC_ARG_ENABLE(darwin,
89 [ --disable-darwin Disable Darwin (Mac OS X) support.],
90 , [enable_darwin="yes"])
91 if test "$enable_darwin" = "yes"; then
92 AC_MSG_RESULT(no)
93 AC_MSG_CHECKING(if Darwin files are there)
94 if test -f os_macosx.c; then
95 AC_MSG_RESULT(yes)
96 else
97 AC_MSG_RESULT([no, Darwin support disabled])
98 enable_darwin=no
99 fi
100 else
101 AC_MSG_RESULT([yes, Darwin support excluded])
102 fi
103
104 if test "$enable_darwin" = "yes"; then
105 MACOSX=yes
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000106 OS_EXTRA_SCR="os_macosx.c os_mac_conv.c";
107 OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000108 CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -I/Developer/Headers/FlatCarbon -no-cpp-precomp"
109
110 dnl If Carbon is found, assume we don't want X11
111 dnl unless it was specifically asked for (--with-x)
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000112 dnl or Motif, Athena or GTK GUI is used.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000113 AC_CHECK_HEADER(Carbon/Carbon.h, CARBON=yes)
114 if test "x$CARBON" = "xyes"; then
Bram Moolenaarab79bcb2004-07-18 21:34:53 +0000115 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116 with_x=no
117 DEFAULT_VIMNAME=Vim
118 fi
119 fi
120 fi
121else
122 AC_MSG_RESULT(no)
123fi
124
125AC_SUBST(OS_EXTRA_SRC)
126AC_SUBST(OS_EXTRA_OBJ)
127
128dnl Add /usr/local/lib to $LDFLAGS and /usr/local/include to CFLAGS.
129dnl Only when the directory exists and it wasn't there yet.
130dnl For gcc don't do this when it is already in the default search path.
131have_local_include=''
132have_local_lib=''
133if test "$GCC" = yes; then
134 echo 'void f(){}' > conftest.c
135 dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler)
136 have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep '/usr/local/include'`
137 have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep '/usr/local/lib'`
138 rm -f conftest.c conftest.o
139fi
140if test -z "$have_local_lib" -a -d /usr/local/lib; then
141 tt=`echo "$LDFLAGS" | sed -e 's+-L/usr/local/lib ++g' -e 's+-L/usr/local/lib$++g'`
142 if test "$tt" = "$LDFLAGS"; then
143 LDFLAGS="$LDFLAGS -L/usr/local/lib"
144 fi
145fi
146if test -z "$have_local_include" -a -d /usr/local/include; then
147 tt=`echo "$CPPFLAGS" | sed -e 's+-I/usr/local/include ++g' -e 's+-I/usr/local/include$++g'`
148 if test "$tt" = "$CPPFLAGS"; then
149 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
150 fi
151fi
152
153AC_MSG_CHECKING(--with-vim-name argument)
154AC_ARG_WITH(vim-name, [ --with-vim-name=NAME what to call the Vim executable],
155 VIMNAME="$withval"; AC_MSG_RESULT($VIMNAME),
156 VIMNAME="$DEFAULT_VIMNAME"; AC_MSG_RESULT(Defaulting to $VIMNAME))
157AC_SUBST(VIMNAME)
158AC_MSG_CHECKING(--with-ex-name argument)
159AC_ARG_WITH(ex-name, [ --with-ex-name=NAME what to call the Ex executable],
160 EXNAME="$withval"; AC_MSG_RESULT($EXNAME),
161 EXNAME="ex"; AC_MSG_RESULT(Defaulting to ex))
162AC_SUBST(EXNAME)
163AC_MSG_CHECKING(--with-view-name argument)
164AC_ARG_WITH(view-name, [ --with-view-name=NAME what to call the View executable],
165 VIEWNAME="$withval"; AC_MSG_RESULT($VIEWNAME),
166 VIEWNAME="view"; AC_MSG_RESULT(Defaulting to view))
167AC_SUBST(VIEWNAME)
168
169AC_MSG_CHECKING(--with-global-runtime argument)
170AC_ARG_WITH(global-runtime, [ --with-global-runtime=DIR global runtime directory in 'runtimepath'],
171 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(RUNTIME_GLOBAL, "$withval"),
172 AC_MSG_RESULT(no))
173
174AC_MSG_CHECKING(--with-modified-by argument)
175AC_ARG_WITH(modified-by, [ --with-modified-by=NAME name of who modified a release version],
176 AC_MSG_RESULT($withval); AC_DEFINE_UNQUOTED(MODIFIED_BY, "$withval"),
177 AC_MSG_RESULT(no))
178
179dnl Check for EBCDIC stolen from the LYNX port to OS390 Unix
180AC_MSG_CHECKING(if character set is EBCDIC)
181AC_TRY_COMPILE([ ],
182[ /* TryCompile function for CharSet.
183 Treat any failure as ASCII for compatibility with existing art.
184 Use compile-time rather than run-time tests for cross-compiler
185 tolerance. */
186#if '0'!=240
187make an error "Character set is not EBCDIC"
188#endif ],
189[ # TryCompile action if true
190cf_cv_ebcdic=yes ],
191[ # TryCompile action if false
192cf_cv_ebcdic=no])
193# end of TryCompile ])
194# end of CacheVal CvEbcdic
195AC_MSG_RESULT($cf_cv_ebcdic)
196case "$cf_cv_ebcdic" in #(vi
197 yes) AC_DEFINE(EBCDIC)
198 line_break='"\\n"'
199 ;;
200 *) line_break='"\\012"';;
201esac
202AC_SUBST(line_break)
203
204if test "$cf_cv_ebcdic" = "yes"; then
205dnl If we have EBCDIC we most likley have OS390 Unix, let's test it!
206AC_MSG_CHECKING(for OS/390 Unix)
207case `uname` in
208 OS/390) OS390Unix="yes";
209 dnl If using cc the environment variable _CC_CCMODE must be
210 dnl set to "1", so that some compiler extensions are enabled.
211 dnl If using c89 the environment variable is named _CC_C89MODE.
212 dnl Note: compile with c89 never tested.
213 if test "$CC" = "cc"; then
214 ccm="$_CC_CCMODE"
215 ccn="CC"
216 else
217 if test "$CC" = "c89"; then
218 ccm="$_CC_C89MODE"
219 ccn="C89"
220 else
221 ccm=1
222 fi
223 fi
224 if test "$ccm" != "1"; then
225 echo ""
226 echo "------------------------------------------"
227 echo " On OS/390 Unix, the environment variable"
228 echo " __CC_${ccn}MODE must be set to \"1\"!"
229 echo " Do:"
230 echo " export _CC_${ccn}MODE=1"
231 echo " and then call configure again."
232 echo "------------------------------------------"
233 exit 1
234 fi
235 CFLAGS="$CFLAGS -D_ALL_SOURCE"; LDFLAGS="$LDFLAGS -Wl,EDIT=NO"
236 AC_MSG_RESULT(yes)
237 ;;
238 *) OS390Unix="no";
239 AC_MSG_RESULT(no)
240 ;;
241esac
242fi
243
244
245dnl Check user requested features.
246
247AC_MSG_CHECKING(--with-features argument)
248AC_ARG_WITH(features, [ --with-features=TYPE tiny, small, normal, big or huge (default: normal)],
249 features="$withval"; AC_MSG_RESULT($features),
250 features="normal"; AC_MSG_RESULT(Defaulting to normal))
251
252dovimdiff=""
253dogvimdiff=""
254case "$features" in
255 tiny) AC_DEFINE(FEAT_TINY) ;;
256 small) AC_DEFINE(FEAT_SMALL) ;;
257 normal) AC_DEFINE(FEAT_NORMAL) dovimdiff="installvimdiff";
258 dogvimdiff="installgvimdiff" ;;
259 big) AC_DEFINE(FEAT_BIG) dovimdiff="installvimdiff";
260 dogvimdiff="installgvimdiff" ;;
261 huge) AC_DEFINE(FEAT_HUGE) dovimdiff="installvimdiff";
262 dogvimdiff="installgvimdiff" ;;
263 *) AC_MSG_RESULT([Sorry, $features is not supported]) ;;
264esac
265
266AC_SUBST(dovimdiff)
267AC_SUBST(dogvimdiff)
268
269AC_MSG_CHECKING(--with-compiledby argument)
270AC_ARG_WITH(compiledby, [ --with-compiledby=NAME name to show in :version message],
271 compiledby="$withval"; AC_MSG_RESULT($withval),
272 compiledby=""; AC_MSG_RESULT(no))
273AC_SUBST(compiledby)
274
275AC_MSG_CHECKING(--disable-xsmp argument)
276AC_ARG_ENABLE(xsmp,
277 [ --disable-xsmp Disable XSMP session management],
278 , enable_xsmp="yes")
279
280if test "$enable_xsmp" = "yes"; then
281 AC_MSG_RESULT(no)
282 AC_MSG_CHECKING(--disable-xsmp-interact argument)
283 AC_ARG_ENABLE(xsmp-interact,
284 [ --disable-xsmp-interact Disable XSMP interaction],
285 , enable_xsmp_interact="yes")
286 if test "$enable_xsmp_interact" = "yes"; then
287 AC_MSG_RESULT(no)
288 AC_DEFINE(USE_XSMP_INTERACT)
289 else
290 AC_MSG_RESULT(yes)
291 fi
292else
293 AC_MSG_RESULT(yes)
294fi
295
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000296dnl Check for MzScheme feature.
297AC_MSG_CHECKING(--enable-mzschemeinterp argument)
298AC_ARG_ENABLE(mzschemeinterp,
299 [ --enable-mzschemeinterp Include MzScheme interpreter.], ,
300 [enable_mzschemeinterp="no"])
301AC_MSG_RESULT($enable_mzschemeinterp)
302
303if test "$enable_mzschemeinterp" = "yes"; then
304 dnl -- find the mzscheme executable
305 AC_SUBST(vi_cv_path_mzscheme)
306
307 AC_MSG_CHECKING(--with-plthome argument)
308 AC_ARG_WITH(plthome,
309 [ --with-plthome=PLTHOME Use PLTHOME.],
310 with_plthome="$withval"; AC_MSG_RESULT($with_plthome),
311 with_plthome="";AC_MSG_RESULT("no"))
312
313 if test "X$with_plthome" != "X"; then
314 vi_cv_path_mzscheme_pfx="$with_plthome"
315 else
316 AC_MSG_CHECKING(PLTHOME environment var)
317 if test "X$PLTHOME" != "X"; then
318 AC_MSG_RESULT("$PLTHOME")
319 vi_cv_path_mzscheme_pfx="$PLTHOME"
320 else
321 AC_MSG_RESULT("not set")
322 dnl -- try to find MzScheme executable
323 AC_PATH_PROG(vi_cv_path_mzscheme, mzscheme)
324
325 dnl resolve symbolic link, the executable is often elsewhere and there
326 dnl are no links for the include files.
327 if test "X$vi_cv_path_mzscheme" != "X"; then
328 lsout=`ls -l $vi_cv_path_mzscheme`
329 if echo "$lsout" | grep -e '->' >/dev/null 2>/dev/null; then
330 vi_cv_path_mzscheme=`echo "$lsout" | sed 's/.*-> \(.*\)/\1/'`
331 fi
332 fi
333
334 if test "X$vi_cv_path_mzscheme" != "X"; then
335 dnl -- find where MzScheme thinks it was installed
336 AC_CACHE_CHECK(MzScheme install prefix,vi_cv_path_mzscheme_pfx,
337 [ vi_cv_path_mzscheme_pfx=`
338 ${vi_cv_path_mzscheme} -evm \
339 "(display (simplify-path \
340 (build-path (call-with-values \
341 (lambda () (split-path (find-system-path (quote exec-file)))) \
342 (lambda (base name must-be-dir?) base)) (quote up))))"` ])
343 dnl Remove a trailing slash.
344 vi_cv_path_mzscheme_pfx=`echo "$vi_cv_path_mzscheme_pfx" | sed 's+/$++'`
345 fi
346 fi
347 fi
348
349 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
350 AC_MSG_CHECKING(if scheme.h can be found in $vi_cv_path_mzscheme_pfx/include)
351 if test -f $vi_cv_path_mzscheme_pfx/include/scheme.h; then
352 AC_MSG_RESULT("yes")
353 else
354 AC_MSG_RESULT("no")
355 vi_cv_path_mzscheme_pfx=
356 fi
357 fi
358
359 if test "X$vi_cv_path_mzscheme_pfx" != "X"; then
360 if test -f "${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a"; then
361 MZSCHEME_LIBS="${vi_cv_path_mzscheme_pfx}/lib/libmzgc.a ${vi_cv_path_mzscheme_pfx}/lib/libmzscheme.a"
362 else
363 MZSCHEME_LIBS="-L${vi_cv_path_mzscheme_pfx}/lib -lmzgc -lmzscheme"
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000364 if test "$GCC" = yes; then
365 dnl Make Vim remember the path to the library. For when it's not in
366 dnl $LD_LIBRARY_PATH.
367 MZSCHEME_LIBS="$MZSCHEME_LIBS -Wl,-rpath -Wl,${vi_cv_path_mzscheme_pfx}/lib"
Bram Moolenaar21cf8232004-07-16 20:18:37 +0000368 elif test "`(uname) 2>/dev/null`" = SunOS &&
369 uname -r | grep '^5' >/dev/null; then
370 MZSCHEME_LIBS="$MZSCHEME_LIBS -R ${vi_cv_path_mzscheme_pfx}/lib"
Bram Moolenaar2df6dcc2004-07-12 15:53:54 +0000371 fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +0000372 fi
373 MZSCHEME_CFLAGS="-I${vi_cv_path_mzscheme_pfx}/include \
374 -DMZSCHEME_COLLECTS='\"${vi_cv_path_mzscheme_pfx}/collects\"'"
375 MZSCHEME_SRC="if_mzsch.c"
376 MZSCHEME_OBJ="objects/if_mzsch.o"
377 MZSCHEME_PRO="if_mzsch.pro"
378 AC_DEFINE(FEAT_MZSCHEME)
379 fi
380 AC_SUBST(MZSCHEME_SRC)
381 AC_SUBST(MZSCHEME_OBJ)
382 AC_SUBST(MZSCHEME_PRO)
383 AC_SUBST(MZSCHEME_LIBS)
384 AC_SUBST(MZSCHEME_CFLAGS)
385fi
386
387
Bram Moolenaar071d4272004-06-13 20:20:40 +0000388AC_MSG_CHECKING(--enable-perlinterp argument)
389AC_ARG_ENABLE(perlinterp,
390 [ --enable-perlinterp Include Perl interpreter.], ,
391 [enable_perlinterp="no"])
392AC_MSG_RESULT($enable_perlinterp)
393if test "$enable_perlinterp" = "yes"; then
394 AC_SUBST(vi_cv_path_perl)
395 AC_PATH_PROG(vi_cv_path_perl, perl)
396 if test "X$vi_cv_path_perl" != "X"; then
397 AC_MSG_CHECKING(Perl version)
398 if $vi_cv_path_perl -e 'require 5.003_01' >/dev/null 2>/dev/null; then
399 eval `$vi_cv_path_perl -V:usethreads`
400 if test "X$usethreads" = "XUNKNOWN" -o "X$usethreads" = "Xundef"; then
401 badthreads=no
402 else
403 if $vi_cv_path_perl -e 'require 5.6.0' >/dev/null 2>/dev/null; then
404 eval `$vi_cv_path_perl -V:use5005threads`
405 if test "X$use5005threads" = "XUNKNOWN" -o "X$use5005threads" = "Xundef"; then
406 badthreads=no
407 else
408 badthreads=yes
409 AC_MSG_RESULT(>>> Perl > 5.6 with 5.5 threads cannot be used <<<)
410 fi
411 else
412 badthreads=yes
413 AC_MSG_RESULT(>>> Perl 5.5 with threads cannot be used <<<)
414 fi
415 fi
416 if test $badthreads = no; then
417 AC_MSG_RESULT(OK)
418 eval `$vi_cv_path_perl -V:shrpenv`
419 if test "X$shrpenv" = "XUNKNOWN"; then # pre 5.003_04
420 shrpenv=""
421 fi
422 vi_cv_perllib=`$vi_cv_path_perl -MConfig -e 'print $Config{privlibexp}'`
423 AC_SUBST(vi_cv_perllib)
424 dnl Remove "-fno-something", it breaks using cproto.
425 perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \
426 -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'`
427 dnl Remove "-lc", it breaks on FreeBSD when using "-pthread".
428 perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \
429 sed -e '/Warning/d' -e '/Note (probably harmless)/d' \
430 -e 's/-bE:perl.exp//' -e 's/-lc //'`
431 dnl Don't add perl lib to $LIBS: if it's not in LD_LIBRARY_PATH
432 dnl a test in configure may fail because of that.
433 perlldflags=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed \
434 -e 'ccdlflags' | sed -e 's/-bE:perl.exp//'`
435
436 dnl check that compiling a simple program still works with the flags
437 dnl added for Perl.
438 AC_MSG_CHECKING([if compile and link flags for Perl are sane])
439 cflags_save=$CFLAGS
440 libs_save=$LIBS
441 ldflags_save=$LDFLAGS
442 CFLAGS="$CFLAGS $perlcppflags"
443 LIBS="$LIBS $perllibs"
444 LDFLAGS="$perlldflags $LDFLAGS"
445 AC_TRY_LINK(,[ ],
446 AC_MSG_RESULT(yes); perl_ok=yes,
447 AC_MSG_RESULT(no: PERL DISABLED); perl_ok=no)
448 CFLAGS=$cflags_save
449 LIBS=$libs_save
450 LDFLAGS=$ldflags_save
451 if test $perl_ok = yes; then
452 if test "X$perlcppflags" != "X"; then
453 PERL_CFLAGS="$perlcppflags"
454 fi
455 if test "X$perlldflags" != "X"; then
456 LDFLAGS="$perlldflags $LDFLAGS"
457 fi
458 PERL_LIBS=$perllibs
459 PERL_SRC="auto/if_perl.c if_perlsfio.c"
460 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o"
461 PERL_PRO="if_perl.pro if_perlsfio.pro"
462 AC_DEFINE(FEAT_PERL)
463 fi
464 fi
465 else
466 AC_MSG_RESULT(>>> too old; need Perl version 5.003_01 or later <<<)
467 fi
468 fi
469
470 if test "x$MACOSX" = "xyes"; then
471 dnl Mac OS X 10.2 or 10.3
472 dir=/System/Library/Perl
473 darwindir=$dir/darwin
474 if test -d $darwindir; then
475 PERL=/usr/bin/perl
476 else
477 dnl Mac OS X 10.3
478 dir=/System/Library/Perl/5.8.1
479 darwindir=$dir/darwin-thread-multi-2level
480 if test -d $darwindir; then
481 PERL=/usr/bin/perl
482 fi
483 fi
484 if test -n "$PERL"; then
485 PERL_DIR="$dir"
486 PERL_CFLAGS="-DFEAT_PERL -I$darwindir/CORE"
487 PERL_OBJ="objects/if_perl.o objects/if_perlsfio.o $darwindir/auto/DynaLoader/DynaLoader.a"
488 PERL_LIBS="-L$darwindir/CORE -lperl"
489 fi
490 fi
491fi
492AC_SUBST(shrpenv)
493AC_SUBST(PERL_SRC)
494AC_SUBST(PERL_OBJ)
495AC_SUBST(PERL_PRO)
496AC_SUBST(PERL_CFLAGS)
497AC_SUBST(PERL_LIBS)
498
499AC_MSG_CHECKING(--enable-pythoninterp argument)
500AC_ARG_ENABLE(pythoninterp,
501 [ --enable-pythoninterp Include Python interpreter.], ,
502 [enable_pythoninterp="no"])
503AC_MSG_RESULT($enable_pythoninterp)
504if test "$enable_pythoninterp" = "yes"; then
505 dnl -- find the python executable
506 AC_PATH_PROG(vi_cv_path_python, python)
507 if test "X$vi_cv_path_python" != "X"; then
508
509 dnl -- get its version number
510 AC_CACHE_CHECK(Python version,vi_cv_var_python_version,
511 [[vi_cv_var_python_version=`
512 ${vi_cv_path_python} -c 'import sys; print sys.version[:3]'`
513 ]])
514
515 dnl -- it must be at least version 1.4
516 AC_MSG_CHECKING(Python is 1.4 or better)
517 if ${vi_cv_path_python} -c \
518 "import sys; sys.exit(${vi_cv_var_python_version} < 1.4)"
519 then
520 AC_MSG_RESULT(yep)
521
522 dnl -- find where python thinks it was installed
523 AC_CACHE_CHECK(Python's install prefix,vi_cv_path_python_pfx,
524 [ vi_cv_path_python_pfx=`
525 ${vi_cv_path_python} -c \
526 "import sys; print sys.prefix"` ])
527
528 dnl -- and where it thinks it runs
529 AC_CACHE_CHECK(Python's execution prefix,vi_cv_path_python_epfx,
530 [ vi_cv_path_python_epfx=`
531 ${vi_cv_path_python} -c \
532 "import sys; print sys.exec_prefix"` ])
533
534 dnl -- python's internal library path
535
536 AC_CACHE_VAL(vi_cv_path_pythonpath,
537 [ vi_cv_path_pythonpath=`
538 unset PYTHONPATH;
539 ${vi_cv_path_python} -c \
540 "import sys, string; print string.join(sys.path,':')"` ])
541
542 dnl -- where the Python implementation library archives are
543
544 AC_ARG_WITH(python-config-dir,
545 [ --with-python-config-dir=PATH Python's config directory],
546 [ vi_cv_path_python_conf="${withval}" ] )
547
548 AC_CACHE_CHECK(Python's configuration directory,vi_cv_path_python_conf,
549 [
550 vi_cv_path_python_conf=
551 for path in "${vi_cv_path_python_pfx}" "${vi_cv_path_python_epfx}"; do
552 for subdir in lib share; do
553 d="${path}/${subdir}/python${vi_cv_var_python_version}/config"
554 if test -d "$d" && test -f "$d/config.c"; then
555 vi_cv_path_python_conf="$d"
556 fi
557 done
558 done
559 ])
560
561 PYTHON_CONFDIR="${vi_cv_path_python_conf}"
562
563 if test "X$PYTHON_CONFDIR" = "X"; then
564 AC_MSG_RESULT([can't find it!])
565 else
566
567 dnl -- we need to examine Python's config/Makefile too
568 dnl see what the interpreter is built from
569 AC_CACHE_VAL(vi_cv_path_python_plibs,
570 [
571 tmp_mkf="/tmp/Makefile-conf$$"
572 cat ${PYTHON_CONFDIR}/Makefile - <<'eof' >${tmp_mkf}
573__:
574 @echo "python_MODLIBS='$(MODLIBS)'"
575 @echo "python_LIBS='$(LIBS)'"
576 @echo "python_SYSLIBS='$(SYSLIBS)'"
577 @echo "python_LINKFORSHARED='$(LINKFORSHARED)'"
578eof
579 dnl -- delete the lines from make about Entering/Leaving directory
580 eval "`cd ${PYTHON_CONFDIR} && make -f ${tmp_mkf} __ | sed '/ directory /d'`"
581 rm -f ${tmp_mkf}
582 if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \
583 "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then
584 vi_cv_path_python_plibs="-framework Python"
585 else
586 if test "${vi_cv_var_python_version}" = "1.4"; then
587 vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a"
588 else
589 vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}"
590 fi
591 vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_MODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}"
592 dnl remove -ltermcap, it can conflict with an earlier -lncurses
593 vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//`
594 fi
595 ])
596
597 PYTHON_LIBS="${vi_cv_path_python_plibs}"
598 if test "${vi_cv_path_python_pfx}" = "${vi_cv_path_python_epfx}"; then
599 PYTHON_CFLAGS="-I${vi_cv_path_python_pfx}/include/python${vi_cv_var_python_version}"
600 else
601 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}"
602 fi
603 PYTHON_SRC="if_python.c"
604 dnl For Mac OSX 10.2 config.o is included in the Python library.
605 if test "x$MACOSX" = "xyes"; then
606 PYTHON_OBJ="objects/if_python.o"
607 else
608 PYTHON_OBJ="objects/if_python.o objects/py_config.o"
609 fi
610 if test "${vi_cv_var_python_version}" = "1.4"; then
611 PYTHON_OBJ="$PYTHON_OBJ objects/py_getpath.o"
612 fi
613 PYTHON_GETPATH_CFLAGS="-DPYTHONPATH='\"${vi_cv_path_pythonpath}\"' -DPREFIX='\"${vi_cv_path_python_pfx}\"' -DEXEC_PREFIX='\"${vi_cv_path_python_epfx}\"'"
614
615 dnl On FreeBSD linking with "-pthread" is required to use threads.
616 dnl _THREAD_SAFE must be used for compiling then.
617 dnl The "-pthread" is added to $LIBS, so that the following check for
618 dnl sigaltstack() will look in libc_r (it's there in libc!).
619 dnl Otherwise, when using GCC, try adding -pthread to $CFLAGS. GCC
620 dnl will then define target-specific defines, e.g., -D_REENTRANT.
621 dnl Don't do this for Mac OSX, -pthread will generate a warning.
622 AC_MSG_CHECKING([if -pthread should be used])
623 threadsafe_flag=
624 thread_lib=
625 if test "x$MACOSX" != "xyes"; then
626 test "$GCC" = yes && threadsafe_flag="-pthread"
627 if test "`(uname) 2>/dev/null`" = FreeBSD; then
628 threadsafe_flag="-D_THREAD_SAFE"
629 thread_lib="-pthread"
630 fi
631 fi
632 libs_save_old=$LIBS
633 if test -n "$threadsafe_flag"; then
634 cflags_save=$CFLAGS
635 CFLAGS="$CFLAGS $threadsafe_flag"
636 LIBS="$LIBS $thread_lib"
637 AC_TRY_LINK(,[ ],
638 AC_MSG_RESULT(yes); PYTHON_CFLAGS="$PYTHON_CFLAGS $threadsafe_flag",
639 AC_MSG_RESULT(no); LIBS=$libs_save_old
640 )
641 CFLAGS=$cflags_save
642 else
643 AC_MSG_RESULT(no)
644 fi
645
646 dnl check that compiling a simple program still works with the flags
647 dnl added for Python.
648 AC_MSG_CHECKING([if compile and link flags for Python are sane])
649 cflags_save=$CFLAGS
650 libs_save=$LIBS
651 CFLAGS="$CFLAGS $PYTHON_CFLAGS"
652 LIBS="$LIBS $PYTHON_LIBS"
653 AC_TRY_LINK(,[ ],
654 AC_MSG_RESULT(yes); python_ok=yes,
655 AC_MSG_RESULT(no: PYTHON DISABLED); python_ok=no)
656 CFLAGS=$cflags_save
657 LIBS=$libs_save
658 if test $python_ok = yes; then
659 AC_DEFINE(FEAT_PYTHON)
660 else
661 LIBS=$libs_save_old
662 PYTHON_SRC=
663 PYTHON_OBJ=
664 PYTHON_LIBS=
665 PYTHON_CFLAGS=
666 fi
667
668 fi
669 else
670 AC_MSG_RESULT(too old)
671 fi
672 fi
673fi
674AC_SUBST(PYTHON_CONFDIR)
675AC_SUBST(PYTHON_LIBS)
676AC_SUBST(PYTHON_GETPATH_CFLAGS)
677AC_SUBST(PYTHON_CFLAGS)
678AC_SUBST(PYTHON_SRC)
679AC_SUBST(PYTHON_OBJ)
680
681AC_MSG_CHECKING(--enable-tclinterp argument)
682AC_ARG_ENABLE(tclinterp,
683 [ --enable-tclinterp Include Tcl interpreter.], ,
684 [enable_tclinterp="no"])
685AC_MSG_RESULT($enable_tclinterp)
686
687if test "$enable_tclinterp" = "yes"; then
688
689 dnl on FreeBSD tclsh is a silly script, look for tclsh8.0 or tclsh8.2
690 AC_MSG_CHECKING(--with-tclsh argument)
691 AC_ARG_WITH(tclsh, [ --with-tclsh=PATH which tclsh to use (default: tclsh8.0)],
692 tclsh_name="$withval"; AC_MSG_RESULT($tclsh_name),
693 tclsh_name="tclsh8.0"; AC_MSG_RESULT(no))
694 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
695 AC_SUBST(vi_cv_path_tcl)
696
697 dnl when no specific version specified, also try 8.2
698 if test "X$vi_cv_path_tcl" = "X" -a $tclsh_name = "tclsh8.0"; then
699 tclsh_name="tclsh8.2"
700 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
701 fi
702 dnl still didn't find it, try without version number
703 if test "X$vi_cv_path_tcl" = "X"; then
704 tclsh_name="tclsh"
705 AC_PATH_PROG(vi_cv_path_tcl, $tclsh_name)
706 fi
707 if test "X$vi_cv_path_tcl" != "X"; then
708 AC_MSG_CHECKING(Tcl version)
709 if echo 'exit [[expr [info tclversion] < 8.0]]' | $vi_cv_path_tcl - ; then
710 tclver=`echo 'puts [[info tclversion]]' | $vi_cv_path_tcl -`
711 AC_MSG_RESULT($tclver - OK);
712 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 -`
713
714 AC_MSG_CHECKING(for location of Tcl include)
715 if test "x$MACOSX" != "xyes"; then
Bram Moolenaar47136d72004-10-12 20:02:24 +0000716 tclinc="$tclloc/include $tclloc/include/tcl $tclloc/include/tcl$tclver /usr/local/include /usr/include"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000717 else
718 dnl For Mac OS X 10.3, use the OS-provided framework location
719 tclinc="/System/Library/Frameworks/Tcl.framework/Headers"
720 fi
721 for try in $tclinc; do
722 if test -f "$try/tcl.h"; then
723 AC_MSG_RESULT($try/tcl.h)
724 TCL_INC=$try
725 break
726 fi
727 done
728 if test -z "$TCL_INC"; then
729 AC_MSG_RESULT(<not found>)
730 SKIP_TCL=YES
731 fi
732 if test -z "$SKIP_TCL"; then
733 AC_MSG_CHECKING(for location of tclConfig.sh script)
734 if test "x$MACOSX" != "xyes"; then
735 tclcnf=`echo $tclinc | sed s/include/lib/g`
736 else
737 dnl For Mac OS X 10.3, use the OS-provided framework location
738 tclcnf="/System/Library/Frameworks/Tcl.framework"
739 fi
740 for try in $tclcnf; do
741 if test -f $try/tclConfig.sh; then
742 AC_MSG_RESULT($try/tclConfig.sh)
743 . $try/tclConfig.sh
744 dnl use eval, because tcl 8.2 includes ${TCL_DBGX}
745 TCL_LIBS=`eval echo "$TCL_LIB_SPEC $TCL_LIBS"`
746 dnl Use $TCL_DEFS for -D_THREAD_SAFE et al. But only use the
747 dnl "-D_ABC" items.
748 TCL_DEFS=`echo $TCL_DEFS | tr ' ' '\012' | sed -e '/^-[[^D]]/d' -e '/-D[[^_]]/d' -e 's/-D_/ -D_/' | tr -d '\012'`
749 break
750 fi
751 done
752 if test -z "$TCL_LIBS"; then
753 AC_MSG_RESULT(<not found>)
754 AC_MSG_CHECKING(for Tcl library by myself)
755 tcllib=`echo $tclinc | sed s/include/lib/g`
756 for ext in .so .a ; do
757 for ver in "" $tclver ; do
758 for try in $tcllib ; do
759 trylib=tcl$ver$ext
760 if test -f $try/lib$trylib ; then
761 AC_MSG_RESULT($try/lib$trylib)
762 TCL_LIBS="-L$try -ltcl$ver -ldl -lm"
763 if test "`(uname) 2>/dev/null`" = SunOS &&
764 uname -r | grep '^5' >/dev/null; then
765 TCL_LIBS="$TCL_LIBS -R $try"
766 fi
767 break 3
768 fi
769 done
770 done
771 done
772 if test -z "$TCL_LIBS"; then
773 AC_MSG_RESULT(<not found>)
774 SKIP_TCL=YES
775 fi
776 fi
777 if test -z "$SKIP_TCL"; then
778 AC_DEFINE(FEAT_TCL)
779 TCL_SRC=if_tcl.c
780 TCL_OBJ=objects/if_tcl.o
781 TCL_PRO=if_tcl.pro
782 TCL_CFLAGS="-I$TCL_INC $TCL_DEFS"
783 fi
784 fi
785 else
786 AC_MSG_RESULT(too old; need Tcl version 8.0 or later)
787 fi
788 fi
789fi
790AC_SUBST(TCL_SRC)
791AC_SUBST(TCL_OBJ)
792AC_SUBST(TCL_PRO)
793AC_SUBST(TCL_CFLAGS)
794AC_SUBST(TCL_LIBS)
795
796AC_MSG_CHECKING(--enable-rubyinterp argument)
797AC_ARG_ENABLE(rubyinterp,
798 [ --enable-rubyinterp Include Ruby interpreter.], ,
799 [enable_rubyinterp="no"])
800AC_MSG_RESULT($enable_rubyinterp)
801if test "$enable_rubyinterp" = "yes"; then
802 AC_SUBST(vi_cv_path_ruby)
803 AC_PATH_PROG(vi_cv_path_ruby, ruby)
804 if test "X$vi_cv_path_ruby" != "X"; then
805 AC_MSG_CHECKING(Ruby version)
806 if $vi_cv_path_ruby -e 'VERSION >= "1.6.0" or exit 1' >/dev/null 2>/dev/null; then
807 AC_MSG_RESULT(OK)
808 AC_MSG_CHECKING(Ruby header files)
809 rubyhdrdir=`$vi_cv_path_ruby -r mkmf -e 'print Config::CONFIG[["archdir"]] || $hdrdir' 2>/dev/null`
810 if test "X$rubyhdrdir" != "X"; then
811 AC_MSG_RESULT($rubyhdrdir)
812 RUBY_CFLAGS="-I$rubyhdrdir"
813 rubylibs=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LIBS"]]'`
814 if test "X$rubylibs" != "X"; then
815 RUBY_LIBS="$rubylibs"
816 fi
817 librubyarg=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["LIBRUBYARG"]])'`
818 if test -f "$rubyhdrdir/$librubyarg"; then
819 librubyarg="$rubyhdrdir/$librubyarg"
820 else
821 rubylibdir=`$vi_cv_path_ruby -r rbconfig -e 'print Config.expand(Config::CONFIG[["libdir"]])'`
822 if test -f "$rubylibdir/$librubyarg"; then
823 librubyarg="$rubylibdir/$librubyarg"
824 elif test "$librubyarg" = "libruby.a"; then
825 dnl required on Mac OS 10.3 where libruby.a doesn't exist
826 librubyarg="-lruby"
827 else
828 librubyarg=`$vi_cv_path_ruby -r rbconfig -e "print '$librubyarg'.gsub(/-L\./, %'-L#{Config.expand(Config::CONFIG[\"libdir\"])}')"`
829 fi
830 fi
831
832 if test "X$librubyarg" != "X"; then
833 RUBY_LIBS="$librubyarg $RUBY_LIBS"
834 fi
835 rubyldflags=`$vi_cv_path_ruby -r rbconfig -e 'print Config::CONFIG[["LDFLAGS"]]'`
836 if test "X$rubyldflags" != "X"; then
837 LDFLAGS="$rubyldflags $LDFLAGS"
838 fi
839 RUBY_SRC="if_ruby.c"
840 RUBY_OBJ="objects/if_ruby.o"
841 RUBY_PRO="if_ruby.pro"
842 AC_DEFINE(FEAT_RUBY)
843 else
844 AC_MSG_RESULT(not found, disabling Ruby)
845 fi
846 else
847 AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later)
848 fi
849 fi
850fi
851AC_SUBST(RUBY_SRC)
852AC_SUBST(RUBY_OBJ)
853AC_SUBST(RUBY_PRO)
854AC_SUBST(RUBY_CFLAGS)
855AC_SUBST(RUBY_LIBS)
856
857AC_MSG_CHECKING(--enable-cscope argument)
858AC_ARG_ENABLE(cscope,
859 [ --enable-cscope Include cscope interface.], ,
860 [enable_cscope="no"])
861AC_MSG_RESULT($enable_cscope)
862if test "$enable_cscope" = "yes"; then
863 AC_DEFINE(FEAT_CSCOPE)
864fi
865
866AC_MSG_CHECKING(--enable-workshop argument)
867AC_ARG_ENABLE(workshop,
868 [ --enable-workshop Include Sun Visual Workshop support.], ,
869 [enable_workshop="no"])
870AC_MSG_RESULT($enable_workshop)
871if test "$enable_workshop" = "yes"; then
872 AC_DEFINE(FEAT_SUN_WORKSHOP)
873 WORKSHOP_SRC="workshop.c integration.c"
874 AC_SUBST(WORKSHOP_SRC)
875 WORKSHOP_OBJ="objects/workshop.o objects/integration.o"
876 AC_SUBST(WORKSHOP_OBJ)
877 if test "${enable_gui-xxx}" = xxx; then
878 enable_gui=motif
879 fi
880fi
881
882AC_MSG_CHECKING(--disable-netbeans argument)
883AC_ARG_ENABLE(netbeans,
884 [ --disable-netbeans Disable NetBeans integration support.],
885 , [enable_netbeans="yes"])
886if test "$enable_netbeans" = "yes"; then
887 AC_MSG_RESULT(no)
888 dnl On Solaris we need the socket and nsl library.
889 AC_CHECK_LIB(socket, socket)
890 AC_CHECK_LIB(nsl, gethostbyname)
891 AC_MSG_CHECKING(whether compiling netbeans integration is possible)
892 AC_TRY_LINK([
893#include <stdio.h>
894#include <stdlib.h>
895#include <stdarg.h>
896#include <fcntl.h>
897#include <netdb.h>
898#include <netinet/in.h>
899#include <errno.h>
900#include <sys/types.h>
901#include <sys/socket.h>
902 /* Check bitfields */
903 struct nbbuf {
904 unsigned int initDone:1;
905 ushort signmaplen;
906 };
907 ], [
908 /* Check creating a socket. */
909 struct sockaddr_in server;
910 (void)socket(AF_INET, SOCK_STREAM, 0);
911 (void)htons(100);
912 (void)gethostbyname("microsoft.com");
913 if (errno == ECONNREFUSED)
914 (void)connect(1, (struct sockaddr *)&server, sizeof(server));
915 ],
916 AC_MSG_RESULT(yes),
917 AC_MSG_RESULT(no); enable_netbeans="no")
918else
919 AC_MSG_RESULT(yes)
920fi
921if test "$enable_netbeans" = "yes"; then
922 AC_DEFINE(FEAT_NETBEANS_INTG)
923 NETBEANS_SRC="netbeans.c"
924 AC_SUBST(NETBEANS_SRC)
925 NETBEANS_OBJ="objects/netbeans.o"
926 AC_SUBST(NETBEANS_OBJ)
927fi
928
929AC_MSG_CHECKING(--enable-sniff argument)
930AC_ARG_ENABLE(sniff,
931 [ --enable-sniff Include Sniff interface.], ,
932 [enable_sniff="no"])
933AC_MSG_RESULT($enable_sniff)
934if test "$enable_sniff" = "yes"; then
935 AC_DEFINE(FEAT_SNIFF)
936 SNIFF_SRC="if_sniff.c"
937 AC_SUBST(SNIFF_SRC)
938 SNIFF_OBJ="objects/if_sniff.o"
939 AC_SUBST(SNIFF_OBJ)
940fi
941
942AC_MSG_CHECKING(--enable-multibyte argument)
943AC_ARG_ENABLE(multibyte,
944 [ --enable-multibyte Include multibyte editing support.], ,
945 [enable_multibyte="no"])
946AC_MSG_RESULT($enable_multibyte)
947if test "$enable_multibyte" = "yes"; then
948 AC_DEFINE(FEAT_MBYTE)
949fi
950
951AC_MSG_CHECKING(--enable-hangulinput argument)
952AC_ARG_ENABLE(hangulinput,
953 [ --enable-hangulinput Include Hangul input support.], ,
954 [enable_hangulinput="no"])
955AC_MSG_RESULT($enable_hangulinput)
956
957AC_MSG_CHECKING(--enable-xim argument)
958AC_ARG_ENABLE(xim,
959 [ --enable-xim Include XIM input support.],
960 AC_MSG_RESULT($enable_xim),
961 [enable_xim="auto"; AC_MSG_RESULT(defaulting to auto)])
962dnl defining FEAT_XIM is delayed, so that it can be disabled for older GTK
963
964AC_MSG_CHECKING(--enable-fontset argument)
965AC_ARG_ENABLE(fontset,
966 [ --enable-fontset Include X fontset output support.], ,
967 [enable_fontset="no"])
968AC_MSG_RESULT($enable_fontset)
969dnl defining FEAT_XFONTSET is delayed, so that it can be disabled for no GUI
970
971test -z "$with_x" && with_x=yes
972test "${enable_gui-yes}" != no -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && with_x=yes
973if test "$with_x" = no; then
974 AC_MSG_RESULT(defaulting to: don't HAVE_X11)
975else
976 dnl Do this check early, so that its failure can override user requests.
977
978 AC_PATH_PROG(xmkmfpath, xmkmf)
979
980 AC_PATH_XTRA
981
982 dnl On OS390Unix the X libraries are DLLs. To use them the code must
983 dnl be compiled with a special option.
984 dnl Also add SM, ICE and Xmu to X_EXTRA_LIBS.
985 if test "$OS390Unix" = "yes"; then
986 CFLAGS="$CFLAGS -W c,dll"
987 LDFLAGS="$LDFLAGS -W l,dll"
988 X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE -lXmu"
989 fi
990
991 dnl On my HPUX system the X include dir is found, but the lib dir not.
992 dnl This is a desparate try to fix this.
993
994 if test -d "$x_includes" && test ! -d "$x_libraries"; then
995 x_libraries=`echo "$x_includes" | sed s/include/lib/`
996 AC_MSG_RESULT(Corrected X libraries to $x_libraries)
997 X_LIBS="$X_LIBS -L$x_libraries"
998 if test "`(uname) 2>/dev/null`" = SunOS &&
999 uname -r | grep '^5' >/dev/null; then
1000 X_LIBS="$X_LIBS -R $x_libraries"
1001 fi
1002 fi
1003
1004 if test -d "$x_libraries" && test ! -d "$x_includes"; then
1005 x_includes=`echo "$x_libraries" | sed s/lib/include/`
1006 AC_MSG_RESULT(Corrected X includes to $x_includes)
1007 X_CFLAGS="$X_CFLAGS -I$x_includes"
1008 fi
1009
1010 dnl Remove "-I/usr/include " from X_CFLAGS, should not be needed.
1011 X_CFLAGS="`echo $X_CFLAGS\ | sed 's%-I/usr/include %%'`"
1012 dnl Remove "-L/usr/lib " from X_LIBS, should not be needed.
1013 X_LIBS="`echo $X_LIBS\ | sed 's%-L/usr/lib %%'`"
1014 dnl Same for "-R/usr/lib ".
1015 X_LIBS="`echo $X_LIBS\ | sed -e 's%-R/usr/lib %%' -e 's%-R /usr/lib %%'`"
1016
1017
1018 dnl Check if the X11 header files are correctly installed. On some systems
1019 dnl Xlib.h includes files that don't exist
1020 AC_MSG_CHECKING(if X11 header files can be found)
1021 cflags_save=$CFLAGS
1022 CFLAGS="$CFLAGS $X_CFLAGS"
1023 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1024 AC_MSG_RESULT(yes),
1025 AC_MSG_RESULT(no); no_x=yes)
1026 CFLAGS=$cflags_save
1027
1028 if test "${no_x-no}" = yes; then
1029 with_x=no
1030 else
1031 AC_DEFINE(HAVE_X11)
1032 X_LIB="-lXt -lX11";
1033 AC_SUBST(X_LIB)
1034
1035 ac_save_LDFLAGS="$LDFLAGS"
1036 LDFLAGS="-L$x_libraries $LDFLAGS"
1037
1038 dnl Check for -lXdmcp (needed on SunOS 4.1.4)
1039 dnl For HP-UX 10.20 it must be before -lSM -lICE
1040 AC_CHECK_LIB(Xdmcp, _XdmcpAuthDoIt, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lXdmcp"],,
1041 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS -lXdmcp])
1042
1043 dnl Some systems need -lnsl -lsocket when testing for ICE.
1044 dnl The check above doesn't do this, try here (again). Also needed to get
1045 dnl them after Xdmcp. link.sh will remove them when not needed.
1046 dnl Check for other function than above to avoid the cached value
1047 AC_CHECK_LIB(ICE, IceOpenConnection,
1048 [X_EXTRA_LIBS="$X_EXTRA_LIBS -lSM -lICE"],, [$X_EXTRA_LIBS])
1049
1050 dnl Check for -lXpm (needed for some versions of Motif)
1051 LDFLAGS="$X_LIBS $ac_save_LDFLAGS"
1052 AC_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [X_PRE_LIBS="$X_PRE_LIBS -lXpm"],,
1053 [-lXt $X_PRE_LIBS -lXpm -lX11 $X_EXTRA_LIBS])
1054
1055 dnl Check that the X11 header files don't use implicit declarations
1056 AC_MSG_CHECKING(if X11 header files implicitly declare return values)
1057 cflags_save=$CFLAGS
1058 CFLAGS="$CFLAGS $X_CFLAGS -Werror"
1059 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1060 AC_MSG_RESULT(no),
1061 CFLAGS="$CFLAGS -Wno-implicit-int"
1062 AC_TRY_COMPILE([#include <X11/Xlib.h>], ,
1063 AC_MSG_RESULT(yes); cflags_save="$cflags_save -Wno-implicit-int",
1064 AC_MSG_RESULT(test failed)
1065 )
1066 )
1067 CFLAGS=$cflags_save
1068
1069 LDFLAGS="$ac_save_LDFLAGS"
1070
1071 fi
1072fi
1073
1074test "x$with_x" = xno -a "x$BEOS" != "xyes" -a "x$MACOSX" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
1075
1076AC_MSG_CHECKING(--enable-gui argument)
1077AC_ARG_ENABLE(gui,
Bram Moolenaar843ee412004-06-30 16:16:41 +00001078 [ --enable-gui[=OPTS] X11 GUI [default=auto] [OPTS=auto/no/gtk/gtk2/gnome/gnome2/kde/motif/athena/neXtaw/beos/photon/carbon]], , enable_gui="auto")
Bram Moolenaar071d4272004-06-13 20:20:40 +00001079
1080dnl Canonicalize the --enable-gui= argument so that it can be easily compared.
1081dnl Do not use character classes for portability with old tools.
1082enable_gui_canon=`echo "_$enable_gui" | \
1083 sed 's/[[ _+-]]//g;y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
1084
1085dnl Skip everything by default.
1086SKIP_GTK=YES
1087SKIP_GTK2=YES
1088SKIP_GNOME=YES
Bram Moolenaar592e0a22004-07-03 16:05:59 +00001089SKIP_KDE=YES
Bram Moolenaar071d4272004-06-13 20:20:40 +00001090SKIP_MOTIF=YES
1091SKIP_ATHENA=YES
1092SKIP_NEXTAW=YES
1093SKIP_PHOTON=YES
1094SKIP_BEOS=YES
1095SKIP_CARBON=YES
1096GUITYPE=NONE
1097
1098if test "x$BEOS" = "xyes"; then
1099 SKIP_BEOS=
1100 case "$enable_gui_canon" in
1101 no) AC_MSG_RESULT(no GUI support)
1102 SKIP_BEOS=YES ;;
1103 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1104 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1105 beos) AC_MSG_RESULT(BeOS GUI support) ;;
1106 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1107 SKIP_BEOS=YES ;;
1108 esac
1109
1110elif test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
1111 SKIP_PHOTON=
1112 case "$enable_gui_canon" in
1113 no) AC_MSG_RESULT(no GUI support)
1114 SKIP_PHOTON=YES ;;
1115 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1116 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1117 photon) AC_MSG_RESULT(Photon GUI support) ;;
1118 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1119 SKIP_PHOTON=YES ;;
1120 esac
1121
1122elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1123 SKIP_CARBON=
1124 case "$enable_gui_canon" in
1125 no) AC_MSG_RESULT(no GUI support)
1126 SKIP_CARBON=YES ;;
1127 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1128 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1129 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1130 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1131 SKIP_CARBON=YES ;;
1132 esac
1133
1134else
1135
Bram Moolenaar071d4272004-06-13 20:20:40 +00001136 case "$enable_gui_canon" in
1137 no|none) AC_MSG_RESULT(no GUI support) ;;
1138 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1139 SKIP_GTK=
1140 SKIP_GTK2=
1141 SKIP_GNOME=
1142 SKIP_MOTIF=
1143 SKIP_ATHENA=
1144 SKIP_NEXTAW=
1145 SKIP_CARBON=;;
Bram Moolenaar843ee412004-06-30 16:16:41 +00001146 kde|Kde|KDE) AC_MSG_RESULT(KDE 2.x or 3.x GUI support)
1147 SKIP_KDE=;;
Bram Moolenaar071d4272004-06-13 20:20:40 +00001148 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1149 SKIP_GTK=;;
1150 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1151 SKIP_GTK=
1152 SKIP_GTK2=;;
1153 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1154 SKIP_GNOME=
1155 SKIP_GTK=;;
1156 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1157 SKIP_GNOME=
1158 SKIP_GTK=
1159 SKIP_GTK2=;;
1160 motif) AC_MSG_RESULT(Motif GUI support)
1161 SKIP_MOTIF=;;
1162 athena) AC_MSG_RESULT(Athena GUI support)
1163 SKIP_ATHENA=;;
1164 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1165 SKIP_NEXTAW=;;
1166 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1167 esac
1168
1169fi
1170
Bram Moolenaar843ee412004-06-30 16:16:41 +00001171if test "x$SKIP_KDE" != "xYES" -a "$enable_gui_canon" != "kde"; then
1172 AC_MSG_CHECKING(whether or not to look for KDE)
1173 AC_ARG_ENABLE(kde-check,
1174 [ --enable-kde-check If auto-select GUI, check for KDE [default=no]],
1175 ,enable_kde_check="no")
1176 AC_MSG_RESULT($enable_kde_check);
1177 if test "x$enable_kde_check" = "xno"; then
1178 SKIP_KDE=YES
1179 fi
1180fi
1181
Bram Moolenaar071d4272004-06-13 20:20:40 +00001182if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1183 AC_MSG_CHECKING(whether or not to look for GTK)
1184 AC_ARG_ENABLE(gtk-check,
1185 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1186 , enable_gtk_check="yes")
1187 AC_MSG_RESULT($enable_gtk_check)
1188 if test "x$enable_gtk_check" = "xno"; then
1189 SKIP_GTK=YES
1190 SKIP_GNOME=YES
1191 fi
1192fi
1193
1194if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1195 -a "$enable_gui_canon" != "gnome2"; then
1196 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1197 AC_ARG_ENABLE(gtk2-check,
1198 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1199 , enable_gtk2_check="yes")
1200 AC_MSG_RESULT($enable_gtk2_check)
1201 if test "x$enable_gtk2_check" = "xno"; then
1202 SKIP_GTK2=YES
1203 fi
1204fi
1205
1206if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1207 -a "$enable_gui_canon" != "gnome2"; then
1208 AC_MSG_CHECKING(whether or not to look for GNOME)
1209 AC_ARG_ENABLE(gnome-check,
1210 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1211 , enable_gnome_check="no")
1212 AC_MSG_RESULT($enable_gnome_check)
1213 if test "x$enable_gnome_check" = "xno"; then
1214 SKIP_GNOME=YES
1215 fi
1216fi
1217
1218if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1219 AC_MSG_CHECKING(whether or not to look for Motif)
1220 AC_ARG_ENABLE(motif-check,
1221 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1222 , enable_motif_check="yes")
1223 AC_MSG_RESULT($enable_motif_check)
1224 if test "x$enable_motif_check" = "xno"; then
1225 SKIP_MOTIF=YES
1226 fi
1227fi
1228
1229if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1230 AC_MSG_CHECKING(whether or not to look for Athena)
1231 AC_ARG_ENABLE(athena-check,
1232 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1233 , enable_athena_check="yes")
1234 AC_MSG_RESULT($enable_athena_check)
1235 if test "x$enable_athena_check" = "xno"; then
1236 SKIP_ATHENA=YES
1237 fi
1238fi
1239
1240if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1241 AC_MSG_CHECKING(whether or not to look for neXtaw)
1242 AC_ARG_ENABLE(nextaw-check,
1243 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1244 , enable_nextaw_check="yes")
1245 AC_MSG_RESULT($enable_nextaw_check);
1246 if test "x$enable_nextaw_check" = "xno"; then
1247 SKIP_NEXTAW=YES
1248 fi
1249fi
1250
1251if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1252 AC_MSG_CHECKING(whether or not to look for Carbon)
1253 AC_ARG_ENABLE(carbon-check,
1254 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1255 , enable_carbon_check="yes")
1256 AC_MSG_RESULT($enable_carbon_check);
1257 if test "x$enable_carbon_check" = "xno"; then
1258 SKIP_CARBON=YES
1259 fi
1260fi
1261
Bram Moolenaar843ee412004-06-30 16:16:41 +00001262dnl ---------------------------------------------------------------------------
1263dnl we use the kde-config script included in KDE since 2.x to check which
1264dnl version of KDE, we'll use. We'll use additional args in configure to
1265dnl obtain the QT directory (includes and libs) as qt does not give any
1266dnl config script ! (shame on the trolls ! ;p)
1267dnl ---------------------------------------------------------------------------
1268
1269if test -z "$SKIP_KDE"; then
1270dnl ------------------
1271dnl now, take care of QT
1272dnl -----------------
1273AC_ARG_WITH(qt-dir,
1274 [ --with-qt-dir=DIR Specify prefix of QT files],
1275 [
1276 ROOTQT="$withval"
1277 MOC="$withval"/bin/moc
1278 QT_INCLUDES="$withval"/include
1279 QT_LIBS="$withval"/lib
1280 ])
1281
1282if test "x$ROOTQT" = "x"; then
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001283 if test -z "$QTDIR"; then
1284 dnl Find the Qt directory by looking for the "moc" program.
1285 dnl It's better than nothing.
1286 AC_PATH_PROG(MOC, moc, no)
1287 if test "x$MOC" = "xno"; then
1288 AC_MSG_ERROR(could not find Qt directory)
1289 else
1290 ROOTQT=`echo $MOC | sed 's+/bin/moc++'`
1291 fi
1292 else
1293 ROOTQT="$QTDIR"
1294 fi
Bram Moolenaar843ee412004-06-30 16:16:41 +00001295fi
1296MOC="$ROOTQT"/bin/moc
1297QT_INCLUDES="$ROOTQT"/include
1298QT_LIBS="$ROOTQT"/lib
1299
1300AC_ARG_WITH(qt-includes,
1301 [ --with-qt-includes=DIR Specify location of Qt headers],
1302 [QT_INCLUDES="$withval"]
1303 )
1304
1305AC_ARG_WITH(qt-libraries,
1306 [ --with-qt-libs=DIR Specify location of Qt libraries],
1307 [QT_LIBS="$withval"]
1308 )
1309
1310if test "x$QT_LIBS" = "x" ; then
1311 QT_LIBS="$ROOTQT"/lib
1312fi
1313if test "x$QT_INCLUDES" = "x" ; then
1314 QT_INCLUDES="$ROOTQT"/include
1315fi
1316dnl we should get QT's version from here and compare with what kde-config
1317dnl says
1318
1319AC_MSG_CHECKING(whether or not to use a KDE Toolbar in KVim)
1320AC_ARG_ENABLE(kde-toolbar,
1321 [ --enable-kde-toolbar if KDE GUI is selected, enable a KDE-look toolbar [default=no]],
1322 , enable_kde_toolbar="no")
1323if test "x$enable_kde_toolbar" != "xno"; then
1324 AC_DEFINE(FEAT_KDETOOLBAR)
1325fi
1326AC_MSG_RESULT($enable_kde_toolbar);
1327fi
1328
1329dnl -------------------
1330dnl so, first, look up at the kde-config script
1331dnl ------------------
1332
1333if test -z "$SKIP_KDE"; then
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001334AC_DEFUN([AC_FIND_FILE],
1335[
1336 $3=NO
1337 for i in $2;
1338 do
1339 for j in $1;
1340 do
1341 echo "configure: __oline__: $i/$j" >&AC_FD_CC
1342 if test -r "$i/$j"; then
1343 echo "taking that" >&AC_FD_CC
1344 $3=$i
1345 break 2
1346 fi
1347 done
1348 done
1349])
1350
Bram Moolenaar843ee412004-06-30 16:16:41 +00001351AC_DEFUN(AM_PATH_KDE,
1352[
1353 if test "X$KDE_CONFIG" != "X"; then
1354 min_kde_version=ifelse([$1], ,2.0,[$1])
1355 AC_MSG_CHECKING(for KDE version >= $min_kde_version)
1356 no_kde=""
1357 if test "$KDE_CONFIG" = "no" ; then
1358 no_kde=yes
1359 else
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001360 KDE_PREFIX=`$KDE_CONFIG --prefix`
Bram Moolenaar843ee412004-06-30 16:16:41 +00001361 if test "x$KDE_LIBS" = "x"; then
1362 KDE_LIBS="$KDE_PREFIX/lib"
1363 fi
1364 if test "x$KDE_INCLUDES" = "x"; then
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001365 KDE_INCLUDES="$KDE_PREFIX/include"
1366 if test -d "$KDE_INCLUDES/kde"; then
1367 KDE_INCLUDES="$KDE_INCLUDES/kde"
1368 fi
Bram Moolenaar843ee412004-06-30 16:16:41 +00001369 fi
1370 kde_major_version=`$KDE_CONFIG --version | grep KDE | \
1371sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'`
1372 kde_minor_version=`$KDE_CONFIG --version | grep KDE | \
1373sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'`
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001374
Bram Moolenaar843ee412004-06-30 16:16:41 +00001375 qt_major_version=`$KDE_CONFIG --version | grep Qt | sed -e \
1376's/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'`
1377 qt_minor_version=`$KDE_CONFIG --version | grep Qt | sed -e \
1378's/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'`
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001379
Bram Moolenaar843ee412004-06-30 16:16:41 +00001380 dnl maybe in a near future we'll get these ones : QT_PREFIX, QT_LIBS,
1381 dnl QT_INCLUDES
1382 dnl but for now we need configure options to get them ...
1383 if test "x$enable-kdetest" = "xyes" ; then
1384 ac_save_LIBS="$LIBS"
1385 LIBS="$LIBS $KDE_LIBS"
1386
1387 dnl fake test
1388 AC_TRY_RUN([
1389#include <stdio.h>
1390int
1391main()
1392{ return 0; }
1393 ],, no_kde=yes,[echo $ac_n "cross compiling KDE ? ? how can i remove that ? :)"])
1394 LIBS="$ac_save_LIBS"
1395 fi
1396 fi
1397 if test "x$no_kde" = x ; then
1398 AC_MSG_RESULT(found KDE $kde_major_version.$kde_minor_version)
1399 ifelse([$2], , :, [$2])
1400 else
1401 AC_MSG_RESULT(no)
1402 KDE_LIBS=""
1403 ifelse([$3], , :, [$3])
1404 fi
1405else
1406 AC_MSG_RESULT(no)
1407 KDE_LIBS=""
1408 ifelse([$3], , :, [$3])
1409fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001410
Bram Moolenaar843ee412004-06-30 16:16:41 +00001411AC_SUBST(KDE_LIBS)
1412AC_SUBST(KDE_INCLUDES)
1413AC_SUBST(KDE_PREFIX)
1414])
1415
1416dnl Check all the KDE stuff
1417AC_MSG_CHECKING(--disable-rpath argument)
1418AC_ARG_ENABLE(rpath,
1419 [ --disable-rpath Disable rpath.],
1420 , enable_rpath="yes")
1421if test "$enable_rpath" = "yes"; then
1422 AC_MSG_RESULT(no)
1423else
1424 AC_MSG_RESULT(yes)
1425fi
1426
1427AC_MSG_CHECKING(--with-kde-prefix argument)
1428AC_ARG_WITH(kde-prefix,[ --with-kde-prefix=PFX Prefix where KDE is installed (optional)],kde_config_prefix="$withval";
1429AC_MSG_RESULT($kde_config_prefix), kde_config_prefix="";AC_MSG_RESULT(no))
1430
1431AC_ARG_WITH(kde-includes,
1432 [ --with-kde-includes=DIR Specify location of KDE headers],
1433 [KDE_INCLUDES="$withval"]
1434 )
1435
1436AC_ARG_WITH(kde-libraries,
1437 [ --with-kde-libs=DIR Specify location of KDE libraries],
1438 [KDE_LIBS="$withval"]
1439 )
1440
1441AC_MSG_CHECKING(--disable-kdetest argument)
1442AC_ARG_ENABLE(kdetest,
1443 [ --disable-kdetest Do not try to compile and run a test KDE program],
1444 enable_kdetest=yes)
1445
1446if test "x$enable_kdetest" = "xyes" ; then
1447 AC_MSG_RESULT(kde test enabled)
1448else
1449 AC_MSG_RESULT(kde test disabled)
1450fi
1451
1452if test "x$kde_config_prefix" != "x" ; then
Bram Moolenaar843ee412004-06-30 16:16:41 +00001453 KDE_CONFIG=$kde_config_prefix/bin/kde-config
1454fi
1455
1456if test "X$KDE_CONFIG" = "X"; then
1457 AC_PATH_PROG(KDE_CONFIG, kde-config, no)
1458else
1459 AC_MSG_RESULT(Using KDE configuration program $KDE_CONFIG)
1460fi
1461
1462if test "X$KDE_CONFIG" != "X" ; then
1463 AM_PATH_KDE(2.0.0,
1464 [GUI_LIB_LOC="-L$KDE_LIBS -lkdeui -lkdecore -lDCOP"
1465 GUI_INC_LOC="-I$KDE_INCLUDES"
1466 KDEDIR="$KDE_PREFIX"], )
1467 if test "x$KDE_PREFIX" != "x"; then
1468 AC_MSG_CHECKING(for QT version $qt_major_version.x)
1469 if test "x$ROOTQT" != "x" ; then
1470 GUI_INC_LOC="-I$QT_INCLUDES $GUI_INC_LOC"
1471 if test $qt_major_version -lt 2; then
1472 AC_MSG_ERROR(Your QT version is prior to 2.0; KDE 2.x and 3.x require at least QT 2)
1473 fi
1474 dnl hack for FreeBSD
1475 if test "`(uname) 2>/dev/null`" = "FreeBSD"; then
1476 CFLAGS="$CFLAGS -D_THREAD_SAFE"
1477 CXXFLAGS="$CXXFLAGS -D_THREAD_SAFE"
1478 GUI_LIB_LOC="$GUI_LIB_LOC -pthread"
1479 LIBS="$LIBS -pthread"
1480 fi
1481
1482 dnl check the version
1483 if test "x$enable_rpath" = "xyes"; then
1484 if test $qt_major_version = 2; then
1485 GUI_LIB_LOC="-L$KDE_LIBS -lkfile -L$QT_LIBS -lqt $GUI_LIB_LOC \
1486-Wl,--rpath -Wl,$KDE_LIBS -Wl,--rpath -Wl,$QT_LIBS"
1487 else
1488 GUI_LIB_LOC="-L$KDE_LIBS -lkio -L$QT_LIBS -lqt-mt $GUI_LIB_LOC \
1489-Wl,--rpath -Wl,$KDE_LIBS -Wl,--rpath -Wl,$QT_LIBS"
1490 fi
1491 else
1492 if test $qt_major_version = 2; then
1493 GUI_LIB_LOC="-L$KDE_LIBS -lkfile -L$QT_LIBS -lqt $GUI_LIB_LOC"
1494 else
1495 GUI_LIB_LOC="-L$KDE_LIBS -lkio -L$QT_LIBS -lqt-mt $GUI_LIB_LOC"
1496 fi
1497 fi
1498
1499 dnl Remove "-I/usr/include " from GUI_*
1500 GUI_INC_LOC="`echo $GUI_INC_LOC\ | sed 's%-I/usr/include %%'`"
1501dnl GUI_LIB_LOC="`echo $GUI_LIB_LOC\ | sed 's% -L/usr/lib%%'`"
1502
1503 AC_MSG_RESULT(found $qt_major_version.$qt_minor_version in $ROOTQT)
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001504
1505 dnl now check the results ...
1506 dnl find the Qt's headers ?
1507 AC_FIND_FILE(qstyle.h,$QT_INCLUDES,qt_incdir)
1508 if test "x$qt_incdir" = "xNO"; then
1509 AC_MSG_ERROR(Could not find Qt headers in $QT_INCLUDES)
1510 fi
1511 AC_FIND_FILE(kapplication.h,$KDE_INCLUDES,kde_incdir)
1512 if test "x$kde_incdir" = "xNO"; then
1513 AC_MSG_ERROR(Could not find KDE headers in $KDE_INCLUDES)
1514 fi
1515
1516 AC_LANG_SAVE
1517 AC_LANG_CPLUSPLUS
1518 ac_save_LIBS="$LIBS"
1519 LIBS="$GUI_LIB_LOC"
1520 ac_save_CXXFLAGS="$CXXFLAGS"
1521 CXXFLAGS="$CXXFLAGS $GUI_INC_LOC"
1522 AC_MSG_CHECKING(whether Qt libraries are usable)
1523 AC_TRY_LINK(
1524 [#include <qapplication.h>],
1525 [
1526 int argc;
1527 char** argv;
1528 QApplication app(argc, argv);]
1529 ,AC_MSG_RESULT(yes),AC_MSG_RESULT(no);AC_MSG_ERROR(Qt fails to link a simple application, check your installation and settings))
1530
1531 AC_MSG_CHECKING(whether KDE libraries are usable)
1532 AC_TRY_LINK(
1533 [#include <kapplication.h>],
1534 [
1535 int argc;
1536 char** argv;
1537 KApplication app(argc, argv);]
1538 ,AC_MSG_RESULT(yes),AC_MSG_RESULT(no);AC_MSG_ERROR(KDE fails to link a simple application, check your installation and settings))
1539
1540 LIBS="$ac_save_LIBS"
1541 CXXFLAGS="$ac_save_CXXFLAGS"
1542 AC_LANG_RESTORE
1543
1544
Bram Moolenaar843ee412004-06-30 16:16:41 +00001545 SKIP_GTK=YES
1546 SKIP_ATHENA=YES
1547 SKIP_MOTIF=YES
1548 GUITYPE=KDE
1549 AC_SUBST(KDE_PREFIX)
1550 AC_SUBST(QT_LIBS)
1551 AC_SUBST(QT_INCLUDES)
1552 AC_SUBST(ROOTQT)
1553 AC_SUBST(MOC)
1554 AC_DEFINE(FEAT_GUI_KDE)
1555 else
1556 AC_MSG_ERROR(Detected QT version mismatched)
1557 fi
1558 else
1559 AC_MSG_ERROR(Could not find KDE installation prefix)
1560 fi
1561fi
1562fi
1563
Bram Moolenaar071d4272004-06-13 20:20:40 +00001564if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1565 AC_MSG_CHECKING(for Carbon GUI)
1566 dnl already did this
1567 AC_MSG_RESULT(yes);
1568 GUITYPE=CARBONGUI
1569 dnl skip everything else
1570 SKIP_GTK=YES;
1571 SKIP_GTK2=YES;
1572 SKIP_GNOME=YES;
1573 SKIP_MOTIF=YES;
1574 SKIP_ATHENA=YES;
1575 SKIP_NEXTAW=YES;
1576 SKIP_PHOTON=YES;
1577 SKIP_BEOS=YES;
1578 SKIP_CARBON=YES
1579fi
1580
Bram Moolenaar071d4272004-06-13 20:20:40 +00001581dnl
1582dnl Get the cflags and libraries from the gtk-config script
1583dnl
1584
1585dnl define an autoconf function to check for a specified version of GTK, and
1586dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1587dnl
1588dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001589dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
Bram Moolenaar071d4272004-06-13 20:20:40 +00001590dnl
1591AC_DEFUN(AM_PATH_GTK,
1592[
1593 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1594 {
1595 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1596 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1597 no_gtk=""
1598 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1599 && $PKG_CONFIG --exists gtk+-2.0; then
1600 {
1601 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1602 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1603 dnl something like that.
1604 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001605 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
Bram Moolenaar071d4272004-06-13 20:20:40 +00001606 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1607 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1608 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1609 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1610 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1611 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1612 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1613 }
1614 elif test "X$GTK_CONFIG" != "Xno"; then
1615 {
1616 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001617 GTK_LIBDIR=
Bram Moolenaar071d4272004-06-13 20:20:40 +00001618 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1619 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1620 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1621 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1622 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1623 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1624 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1625 }
1626 else
1627 no_gtk=yes
1628 fi
1629
1630 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1631 {
1632 ac_save_CFLAGS="$CFLAGS"
1633 ac_save_LIBS="$LIBS"
1634 CFLAGS="$CFLAGS $GTK_CFLAGS"
1635 LIBS="$LIBS $GTK_LIBS"
1636
1637 dnl
1638 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1639 dnl checks the results of gtk-config to some extent
1640 dnl
1641 rm -f conf.gtktest
1642 AC_TRY_RUN([
1643#include <gtk/gtk.h>
1644#include <stdio.h>
1645
1646int
1647main ()
1648{
1649int major, minor, micro;
1650char *tmp_version;
1651
1652system ("touch conf.gtktest");
1653
1654/* HP/UX 9 (%@#!) writes to sscanf strings */
1655tmp_version = g_strdup("$min_gtk_version");
1656if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
1657 printf("%s, bad version string\n", "$min_gtk_version");
1658 exit(1);
1659 }
1660
1661if ((gtk_major_version > major) ||
1662 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1663 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1664 (gtk_micro_version >= micro)))
1665{
1666 return 0;
1667}
1668return 1;
1669}
1670],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1671 CFLAGS="$ac_save_CFLAGS"
1672 LIBS="$ac_save_LIBS"
1673 }
1674 fi
1675 if test "x$no_gtk" = x ; then
1676 if test "x$enable_gtktest" = "xyes"; then
1677 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1678 else
1679 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1680 fi
1681 ifelse([$2], , :, [$2])
1682 else
1683 {
1684 AC_MSG_RESULT(no)
1685 GTK_CFLAGS=""
1686 GTK_LIBS=""
1687 ifelse([$3], , :, [$3])
1688 }
1689 fi
1690 }
1691 else
1692 GTK_CFLAGS=""
1693 GTK_LIBS=""
1694 ifelse([$3], , :, [$3])
1695 fi
1696 AC_SUBST(GTK_CFLAGS)
1697 AC_SUBST(GTK_LIBS)
1698 rm -f conf.gtktest
1699])
1700
1701dnl ---------------------------------------------------------------------------
1702dnl gnome
1703dnl ---------------------------------------------------------------------------
1704AC_DEFUN([GNOME_INIT_HOOK],
1705[
1706 AC_SUBST(GNOME_LIBS)
1707 AC_SUBST(GNOME_LIBDIR)
1708 AC_SUBST(GNOME_INCLUDEDIR)
1709
1710 AC_ARG_WITH(gnome-includes,
1711 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1712 [CFLAGS="$CFLAGS -I$withval"]
1713 )
1714
1715 AC_ARG_WITH(gnome-libs,
1716 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1717 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1718 )
1719
1720 AC_ARG_WITH(gnome,
1721 [ --with-gnome Specify prefix for GNOME files],
1722 if test x$withval = xyes; then
1723 want_gnome=yes
1724 ifelse([$1], [], :, [$1])
1725 else
1726 if test "x$withval" = xno; then
1727 want_gnome=no
1728 else
1729 want_gnome=yes
1730 LDFLAGS="$LDFLAGS -L$withval/lib"
1731 CFLAGS="$CFLAGS -I$withval/include"
1732 gnome_prefix=$withval/lib
1733 fi
1734 fi,
1735 want_gnome=yes)
1736
1737 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1738 {
1739 AC_MSG_CHECKING(for libgnomeui-2.0)
1740 if $PKG_CONFIG --exists libgnomeui-2.0; then
1741 AC_MSG_RESULT(yes)
1742 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1743 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1744 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1745 $1
1746 else
1747 AC_MSG_RESULT(not found)
1748 if test "x$2" = xfail; then
1749 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1750 fi
1751 fi
1752 }
1753 elif test "x$want_gnome" = xyes; then
1754 {
1755 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1756 if test "$GNOME_CONFIG" = "no"; then
1757 no_gnome_config="yes"
1758 else
1759 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1760 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1761 AC_MSG_RESULT(yes)
1762 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1763 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1764 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1765 $1
1766 else
1767 AC_MSG_RESULT(no)
1768 no_gnome_config="yes"
1769 fi
1770 fi
1771
1772 if test x$exec_prefix = xNONE; then
1773 if test x$prefix = xNONE; then
1774 gnome_prefix=$ac_default_prefix/lib
1775 else
1776 gnome_prefix=$prefix/lib
1777 fi
1778 else
1779 gnome_prefix=`eval echo \`echo $libdir\``
1780 fi
1781
1782 if test "$no_gnome_config" = "yes"; then
1783 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1784 if test -f $gnome_prefix/gnomeConf.sh; then
1785 AC_MSG_RESULT(found)
1786 echo "loading gnome configuration from" \
1787 "$gnome_prefix/gnomeConf.sh"
1788 . $gnome_prefix/gnomeConf.sh
1789 $1
1790 else
1791 AC_MSG_RESULT(not found)
1792 if test x$2 = xfail; then
1793 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1794 fi
1795 fi
1796 fi
1797 }
1798 fi
1799])
1800
1801AC_DEFUN([GNOME_INIT],[
1802 GNOME_INIT_HOOK([],fail)
1803])
1804
1805
1806dnl ---------------------------------------------------------------------------
1807dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1808dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1809dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1810dnl ---------------------------------------------------------------------------
1811if test -z "$SKIP_GTK"; then
1812
1813 AC_MSG_CHECKING(--with-gtk-prefix argument)
1814 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1815 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1816 gtk_config_prefix=""; AC_MSG_RESULT(no))
1817
1818 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1819 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1820 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1821 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1822
1823 AC_MSG_CHECKING(--disable-gtktest argument)
1824 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1825 , enable_gtktest=yes)
1826 if test "x$enable_gtktest" = "xyes" ; then
1827 AC_MSG_RESULT(gtk test enabled)
1828 else
1829 AC_MSG_RESULT(gtk test disabled)
1830 fi
1831
1832 if test "x$gtk_config_prefix" != "x" ; then
1833 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1834 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1835 fi
1836 if test "x$gtk_config_exec_prefix" != "x" ; then
1837 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1838 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1839 fi
1840 if test "X$GTK_CONFIG" = "X"; then
1841 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1842 if test "X$GTK_CONFIG" = "Xno"; then
1843 dnl Some distributions call it gtk12-config, annoying!
1844 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1845 GTK_CONFIG="$GTK12_CONFIG"
1846 fi
1847 else
1848 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1849 fi
1850 if test "X$PKG_CONFIG" = "X"; then
1851 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1852 fi
1853
1854 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1855 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1856 dnl problems (bold fonts, --remote doesn't work).
1857 if test "X$SKIP_GTK2" != "XYES"; then
1858 AM_PATH_GTK(2.2.0,
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001859 [GUI_LIB_LOC="$GTK_LIBDIR"
1860 GTK_LIBNAME="$GTK_LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00001861 GUI_INC_LOC="$GTK_CFLAGS"], )
1862 if test "x$GTK_CFLAGS" != "x"; then
1863 SKIP_ATHENA=YES
1864 SKIP_NEXTAW=YES
1865 SKIP_MOTIF=YES
1866 GUITYPE=GTK
1867 AC_SUBST(GTK_LIBNAME)
1868 fi
1869 fi
1870
1871 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1872 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1873 dnl were test versions.
1874 if test "x$GUITYPE" != "xGTK"; then
1875 SKIP_GTK2=YES
1876 AM_PATH_GTK(1.1.16,
1877 [GTK_LIBNAME="$GTK_LIBS"
1878 GUI_INC_LOC="$GTK_CFLAGS"], )
1879 if test "x$GTK_CFLAGS" != "x"; then
1880 SKIP_ATHENA=YES
1881 SKIP_NEXTAW=YES
1882 SKIP_MOTIF=YES
1883 GUITYPE=GTK
1884 AC_SUBST(GTK_LIBNAME)
1885 fi
1886 fi
1887 fi
1888 dnl Give a warning if GTK is older than 1.2.3
1889 if test "x$GUITYPE" = "xGTK"; then
1890 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1891 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1892 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1893 else
1894 {
1895 if test "0$gtk_major_version" -ge 2; then
1896 AC_DEFINE(HAVE_GTK2)
1897 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1898 || test "0$gtk_minor_version" -ge 2 \
1899 || test "0$gtk_major_version" -gt 2; then
1900 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1901 fi
1902 fi
1903 dnl
1904 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1905 dnl
1906 if test -z "$SKIP_GNOME"; then
1907 {
1908 GNOME_INIT_HOOK([have_gnome=yes])
1909 if test x$have_gnome = xyes ; then
1910 AC_DEFINE(FEAT_GUI_GNOME)
1911 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1912 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1913 fi
1914 }
1915 fi
1916 }
1917 fi
1918 fi
1919fi
1920
1921dnl Check for Motif include files location.
1922dnl The LAST one found is used, this makes the highest version to be used,
1923dnl e.g. when Motif1.2 and Motif2.0 are both present.
1924
1925if test -z "$SKIP_MOTIF"; then
1926 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"
1927 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1928 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1929
1930 AC_MSG_CHECKING(for location of Motif GUI includes)
1931 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1932 GUI_INC_LOC=
1933 for try in $gui_includes; do
1934 if test -f "$try/Xm/Xm.h"; then
1935 GUI_INC_LOC=$try
1936 fi
1937 done
1938 if test -n "$GUI_INC_LOC"; then
1939 if test "$GUI_INC_LOC" = /usr/include; then
1940 GUI_INC_LOC=
1941 AC_MSG_RESULT(in default path)
1942 else
1943 AC_MSG_RESULT($GUI_INC_LOC)
1944 fi
1945 else
1946 AC_MSG_RESULT(<not found>)
1947 SKIP_MOTIF=YES
1948 fi
1949fi
1950
1951dnl Check for Motif library files location. In the same order as the include
1952dnl files, to avoid a mixup if several versions are present
1953
1954if test -z "$SKIP_MOTIF"; then
1955 AC_MSG_CHECKING(--with-motif-lib argument)
1956 AC_ARG_WITH(motif-lib,
1957 [ --with-motif-lib=STRING Library for Motif ],
1958 [ MOTIF_LIBNAME="${withval}" ] )
1959
1960 if test -n "$MOTIF_LIBNAME"; then
1961 AC_MSG_RESULT($MOTIF_LIBNAME)
1962 GUI_LIB_LOC=
1963 else
1964 AC_MSG_RESULT(no)
1965
1966 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1967 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1968
1969 AC_MSG_CHECKING(for location of Motif GUI libs)
1970 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"
1971 GUI_LIB_LOC=
1972 for try in $gui_libs; do
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001973 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
Bram Moolenaar071d4272004-06-13 20:20:40 +00001974 if test -f "$libtry"; then
1975 GUI_LIB_LOC=$try
1976 fi
1977 done
1978 done
1979 if test -n "$GUI_LIB_LOC"; then
1980 dnl Remove /usr/lib, it causes trouble on some systems
1981 if test "$GUI_LIB_LOC" = /usr/lib; then
1982 GUI_LIB_LOC=
1983 AC_MSG_RESULT(in default path)
1984 else
1985 if test -n "$GUI_LIB_LOC"; then
1986 AC_MSG_RESULT($GUI_LIB_LOC)
1987 if test "`(uname) 2>/dev/null`" = SunOS &&
1988 uname -r | grep '^5' >/dev/null; then
1989 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1990 fi
1991 fi
1992 fi
1993 MOTIF_LIBNAME=-lXm
1994 else
1995 AC_MSG_RESULT(<not found>)
1996 SKIP_MOTIF=YES
1997 fi
1998 fi
1999fi
2000
2001if test -z "$SKIP_MOTIF"; then
2002 SKIP_ATHENA=YES
2003 SKIP_NEXTAW=YES
2004 GUITYPE=MOTIF
2005 AC_SUBST(MOTIF_LIBNAME)
2006fi
2007
2008dnl Check if the Athena files can be found
2009
2010GUI_X_LIBS=
2011
2012if test -z "$SKIP_ATHENA"; then
2013 AC_MSG_CHECKING(if Athena header files can be found)
2014 cflags_save=$CFLAGS
2015 CFLAGS="$CFLAGS $X_CFLAGS"
2016 AC_TRY_COMPILE([
2017#include <X11/Intrinsic.h>
2018#include <X11/Xaw/Paned.h>], ,
2019 AC_MSG_RESULT(yes),
2020 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
2021 CFLAGS=$cflags_save
2022fi
2023
2024if test -z "$SKIP_ATHENA"; then
2025 GUITYPE=ATHENA
2026fi
2027
2028if test -z "$SKIP_NEXTAW"; then
2029 AC_MSG_CHECKING(if neXtaw header files can be found)
2030 cflags_save=$CFLAGS
2031 CFLAGS="$CFLAGS $X_CFLAGS"
2032 AC_TRY_COMPILE([
2033#include <X11/Intrinsic.h>
2034#include <X11/neXtaw/Paned.h>], ,
2035 AC_MSG_RESULT(yes),
2036 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
2037 CFLAGS=$cflags_save
2038fi
2039
2040if test -z "$SKIP_NEXTAW"; then
2041 GUITYPE=NEXTAW
2042fi
2043
2044if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2045 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
2046 dnl Avoid adding it when it twice
2047 if test -n "$GUI_INC_LOC"; then
2048 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
2049 fi
2050 if test -n "$GUI_LIB_LOC"; then
2051 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
2052 fi
2053
2054 dnl Check for -lXext and then for -lXmu
2055 ldflags_save=$LDFLAGS
2056 LDFLAGS="$X_LIBS $LDFLAGS"
2057 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
2058 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2059 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
2060 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
2061 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2062 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
2063 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2064 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
2065 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2066 if test -z "$SKIP_MOTIF"; then
2067 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
2068 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2069 fi
2070 LDFLAGS=$ldflags_save
2071
2072 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
2073 AC_MSG_CHECKING(for extra X11 defines)
2074 NARROW_PROTO=
2075 rm -fr conftestdir
2076 if mkdir conftestdir; then
2077 cd conftestdir
2078 cat > Imakefile <<'EOF'
2079acfindx:
2080 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2081EOF
2082 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2083 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2084 fi
2085 cd ..
2086 rm -fr conftestdir
2087 fi
2088 if test -z "$NARROW_PROTO"; then
2089 AC_MSG_RESULT(no)
2090 else
2091 AC_MSG_RESULT($NARROW_PROTO)
2092 fi
2093 AC_SUBST(NARROW_PROTO)
2094fi
2095
2096dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2097dnl use the X11 include path
2098if test "$enable_xsmp" = "yes"; then
2099 cppflags_save=$CPPFLAGS
2100 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2101 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2102 CPPFLAGS=$cppflags_save
2103fi
2104
2105
2106if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2107 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2108 cppflags_save=$CPPFLAGS
2109 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2110 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2111
2112 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2113 if test ! "$enable_xim" = "no"; then
2114 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2115 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2116 AC_MSG_RESULT(yes),
2117 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2118 fi
2119 CPPFLAGS=$cppflags_save
2120
2121 dnl automatically enable XIM when hangul input isn't enabled
2122 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2123 -a "x$GUITYPE" != "xNONE" ; then
2124 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2125 enable_xim="yes"
2126 fi
2127fi
2128
2129if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2130 cppflags_save=$CPPFLAGS
2131 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2132 AC_CHECK_HEADERS(X11/Xmu/Editres.h)
2133 CPPFLAGS=$cppflags_save
2134fi
2135
2136dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2137if test -z "$SKIP_MOTIF"; then
2138 cppflags_save=$CPPFLAGS
2139 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2140 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h)
2141 CPPFLAGS=$cppflags_save
2142fi
2143
2144if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2145 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2146 enable_xim="no"
2147fi
2148if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2149 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2150 enable_fontset="no"
2151fi
2152if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2153 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2154 enable_fontset="no"
2155fi
Bram Moolenaar81695252004-12-29 20:58:21 +00002156if test "x$GUITYPE:$enable_fontset" = "xKDE:yes"; then
2157 AC_MSG_RESULT(KDE GUI selected; fontset has been disabled)
2158 enable_fontset="no"
2159fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002160
2161dnl There is no test for the BeOS GUI, if it's selected it's used
2162if test -z "$SKIP_BEOS"; then
2163 GUITYPE=BEOSGUI
2164fi
2165
2166if test -z "$SKIP_PHOTON"; then
2167 GUITYPE=PHOTONGUI
2168fi
2169
2170AC_SUBST(GUI_INC_LOC)
2171AC_SUBST(GUI_LIB_LOC)
2172AC_SUBST(GUITYPE)
2173AC_SUBST(GUI_X_LIBS)
2174
2175if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2176 AC_MSG_ERROR([cannot use workshop without Motif])
2177fi
2178
2179dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2180if test "$enable_xim" = "yes"; then
2181 AC_DEFINE(FEAT_XIM)
2182fi
2183if test "$enable_fontset" = "yes"; then
2184 AC_DEFINE(FEAT_XFONTSET)
2185fi
2186
2187
2188dnl ---------------------------------------------------------------------------
2189dnl end of GUI-checking
2190dnl ---------------------------------------------------------------------------
2191
2192
2193dnl Only really enable hangul input when GUI and XFONTSET are available
2194if test "$enable_hangulinput" = "yes"; then
2195 if test "x$GUITYPE" = "xNONE"; then
2196 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2197 enable_hangulinput=no
2198 else
2199 AC_DEFINE(FEAT_HANGULIN)
2200 HANGULIN_SRC=hangulin.c
2201 AC_SUBST(HANGULIN_SRC)
2202 HANGULIN_OBJ=objects/hangulin.o
2203 AC_SUBST(HANGULIN_OBJ)
2204 fi
2205fi
2206
2207dnl Checks for libraries and include files.
2208
2209AC_MSG_CHECKING(quality of toupper)
2210AC_TRY_RUN([#include <ctype.h>
2211main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }],
2212 AC_DEFINE(BROKEN_TOUPPER) AC_MSG_RESULT(bad),
2213 AC_MSG_RESULT(good), AC_MSG_ERROR(failed to compile test program))
2214
2215AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2216AC_TRY_COMPILE(, [printf("(" __DATE__ " " __TIME__ ")");],
2217 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2218 AC_MSG_RESULT(no))
2219
2220dnl Checks for header files.
2221AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2222dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2223if test "$HAS_ELF" = 1; then
2224 AC_CHECK_LIB(elf, main)
2225fi
2226
2227AC_HEADER_DIRENT
2228
2229dnl check for standard headers, we don't use this in Vim but other stuff
2230dnl in autoconf needs it
2231AC_HEADER_STDC
2232AC_HEADER_SYS_WAIT
2233
2234dnl If sys/wait.h is not found it might still exist but not be POSIX
2235dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2236if test $ac_cv_header_sys_wait_h = no; then
2237 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2238 AC_TRY_COMPILE([#include <sys/wait.h>],
2239 [union wait xx, yy; xx = yy],
2240 AC_MSG_RESULT(yes)
2241 AC_DEFINE(HAVE_SYS_WAIT_H)
2242 AC_DEFINE(HAVE_UNION_WAIT),
2243 AC_MSG_RESULT(no))
2244fi
2245
2246AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2247 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \
2248 iconv.h langinfo.h unistd.h stropts.h errno.h \
2249 sys/resource.h sys/systeminfo.h locale.h \
2250 sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
2251 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2252 libgen.h util/debug.h util/msg18n.h frame.h pthread_np.h \
2253 sys/acl.h sys/access.h sys/sysctl.h sys/sysinfo.h wchar.h)
2254
2255dnl On Mac OS X strings.h exists but produces a warning message :-(
2256if test "x$MACOSX" != "xyes"; then
2257 AC_CHECK_HEADERS(strings.h)
2258fi
2259
2260dnl Check if strings.h and string.h can both be included when defined.
2261AC_MSG_CHECKING([if strings.h can be included after string.h])
2262cppflags_save=$CPPFLAGS
2263CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2264AC_TRY_COMPILE([
2265#if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2266# define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2267 /* but don't do it on AIX 5.1 (Uribarri) */
2268#endif
2269#ifdef HAVE_XM_XM_H
2270# include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2271#endif
2272#ifdef HAVE_STRING_H
2273# include <string.h>
2274#endif
2275#if defined(HAVE_STRINGS_H)
2276# include <strings.h>
2277#endif
2278 ], [int i; i = 0;],
2279 AC_MSG_RESULT(yes),
2280 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2281 AC_MSG_RESULT(no))
2282CPPFLAGS=$cppflags_save
2283
2284dnl Checks for typedefs, structures, and compiler characteristics.
2285AC_PROG_GCC_TRADITIONAL
2286AC_C_CONST
2287AC_TYPE_MODE_T
2288AC_TYPE_OFF_T
2289AC_TYPE_PID_T
2290AC_TYPE_SIZE_T
2291AC_TYPE_UID_T
2292AC_HEADER_TIME
2293AC_CHECK_TYPE(ino_t, long)
2294AC_CHECK_TYPE(dev_t, unsigned)
2295
2296AC_MSG_CHECKING(for rlim_t)
2297if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2298 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2299else
2300 AC_EGREP_CPP(dnl
2301changequote(<<,>>)dnl
2302<<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2303changequote([,]),
2304 [
2305#include <sys/types.h>
2306#if STDC_HEADERS
2307#include <stdlib.h>
2308#include <stddef.h>
2309#endif
2310#ifdef HAVE_SYS_RESOURCE_H
2311#include <sys/resource.h>
2312#endif
2313 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2314 AC_MSG_RESULT($ac_cv_type_rlim_t)
2315fi
2316if test $ac_cv_type_rlim_t = no; then
2317 cat >> confdefs.h <<\EOF
2318#define rlim_t unsigned long
2319EOF
2320fi
2321
2322AC_MSG_CHECKING(for stack_t)
2323if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2324 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2325else
2326 AC_EGREP_CPP(stack_t,
2327 [
2328#include <sys/types.h>
2329#if STDC_HEADERS
2330#include <stdlib.h>
2331#include <stddef.h>
2332#endif
2333#include <signal.h>
2334 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2335 AC_MSG_RESULT($ac_cv_type_stack_t)
2336fi
2337if test $ac_cv_type_stack_t = no; then
2338 cat >> confdefs.h <<\EOF
2339#define stack_t struct sigaltstack
2340EOF
2341fi
2342
2343dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2344AC_MSG_CHECKING(whether stack_t has an ss_base field)
2345AC_TRY_COMPILE([
2346#include <sys/types.h>
2347#if STDC_HEADERS
2348#include <stdlib.h>
2349#include <stddef.h>
2350#endif
2351#include <signal.h>
2352#include "confdefs.h"
2353 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2354 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2355 AC_MSG_RESULT(no))
2356
2357olibs="$LIBS"
2358AC_MSG_CHECKING(--with-tlib argument)
2359AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2360if test -n "$with_tlib"; then
2361 AC_MSG_RESULT($with_tlib)
2362 LIBS="$LIBS -l$with_tlib"
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002363 AC_MSG_CHECKING(for linking with $with_tlib library)
2364 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2365 dnl Need to check for tgetent() below.
2366 olibs="$LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002367else
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002368 AC_MSG_RESULT([empty: automatic terminal library selection])
Bram Moolenaar071d4272004-06-13 20:20:40 +00002369 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2370 dnl curses, because curses is much slower.
2371 dnl Newer versions of ncurses are preferred over anything.
2372 dnl Older versions of ncurses have bugs, get a new one!
2373 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2374 case "`uname -s 2>/dev/null`" in
2375 OSF1) tlibs="ncurses curses termlib termcap";;
2376 *) tlibs="ncurses termlib termcap curses";;
2377 esac
2378 for libname in $tlibs; do
2379 AC_CHECK_LIB(${libname}, tgetent,,)
2380 if test "x$olibs" != "x$LIBS"; then
2381 dnl It's possible that a library is found but it doesn't work
2382 dnl e.g., shared library that cannot be found
2383 dnl compile and run a test program to be sure
2384 AC_TRY_RUN([
2385#ifdef HAVE_TERMCAP_H
2386# include <termcap.h>
2387#endif
2388main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2389 res="OK", res="FAIL", res="FAIL")
2390 if test "$res" = "OK"; then
2391 break
2392 fi
2393 AC_MSG_RESULT($libname library is not usable)
2394 LIBS="$olibs"
2395 fi
2396 done
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002397 if test "x$olibs" = "x$LIBS"; then
2398 AC_MSG_RESULT(no terminal library found)
2399 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002400fi
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002401
2402if test "x$olibs" = "x$LIBS"; then
2403 AC_MSG_CHECKING([for tgetent()])
2404 AC_TRY_LINK([],
2405 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2406 AC_MSG_RESULT(yes),
2407 AC_MSG_ERROR([NOT FOUND!
2408 You need to install a terminal library; for example ncurses.
2409 Or specify the name of the library with --with-tlib.]))
2410fi
2411
2412AC_MSG_CHECKING(whether we talk terminfo)
2413AC_TRY_RUN([
Bram Moolenaar071d4272004-06-13 20:20:40 +00002414#ifdef HAVE_TERMCAP_H
2415# include <termcap.h>
2416#endif
2417main()
2418{char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }],
2419 AC_MSG_RESULT([no -- we are in termcap land]),
2420 AC_MSG_RESULT([yes -- terminfo spoken here]); AC_DEFINE(TERMINFO),
2421 AC_MSG_ERROR(failed to compile test program.))
Bram Moolenaar071d4272004-06-13 20:20:40 +00002422
2423if test "x$olibs" != "x$LIBS"; then
2424 AC_MSG_CHECKING(what tgetent() returns for an unknown terminal)
2425 AC_TRY_RUN([
2426#ifdef HAVE_TERMCAP_H
2427# include <termcap.h>
2428#endif
2429main()
2430{char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }],
2431 AC_MSG_RESULT(zero); AC_DEFINE(TGETENT_ZERO_ERR, 0),
2432 AC_MSG_RESULT(non-zero),
2433 AC_MSG_ERROR(failed to compile test program.))
2434fi
2435
2436AC_MSG_CHECKING(whether termcap.h contains ospeed)
2437AC_TRY_LINK([
2438#ifdef HAVE_TERMCAP_H
2439# include <termcap.h>
2440#endif
2441 ], [ospeed = 20000],
2442 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2443 [AC_MSG_RESULT(no)
2444 AC_MSG_CHECKING(whether ospeed can be extern)
2445 AC_TRY_LINK([
2446#ifdef HAVE_TERMCAP_H
2447# include <termcap.h>
2448#endif
2449extern short ospeed;
2450 ], [ospeed = 20000],
2451 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2452 AC_MSG_RESULT(no))]
2453 )
2454
2455AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2456AC_TRY_LINK([
2457#ifdef HAVE_TERMCAP_H
2458# include <termcap.h>
2459#endif
2460 ], [if (UP == 0 && BC == 0) PC = 1],
2461 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2462 [AC_MSG_RESULT(no)
2463 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2464 AC_TRY_LINK([
2465#ifdef HAVE_TERMCAP_H
2466# include <termcap.h>
2467#endif
2468extern char *UP, *BC, PC;
2469 ], [if (UP == 0 && BC == 0) PC = 1],
2470 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2471 AC_MSG_RESULT(no))]
2472 )
2473
2474AC_MSG_CHECKING(whether tputs() uses outfuntype)
2475AC_TRY_COMPILE([
2476#ifdef HAVE_TERMCAP_H
2477# include <termcap.h>
2478#endif
2479 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2480 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2481 AC_MSG_RESULT(no))
2482
2483dnl On some SCO machines sys/select redefines struct timeval
2484AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2485AC_TRY_COMPILE([
2486#include <sys/types.h>
2487#include <sys/time.h>
2488#include <sys/select.h>], ,
2489 AC_MSG_RESULT(yes)
2490 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2491 AC_MSG_RESULT(no))
2492
2493dnl AC_DECL_SYS_SIGLIST
2494
2495dnl Checks for pty.c (copied from screen) ==========================
2496AC_MSG_CHECKING(for /dev/ptc)
2497if test -r /dev/ptc; then
2498 AC_DEFINE(HAVE_DEV_PTC)
2499 AC_MSG_RESULT(yes)
2500else
2501 AC_MSG_RESULT(no)
2502fi
2503
2504AC_MSG_CHECKING(for SVR4 ptys)
2505if test -c /dev/ptmx ; then
2506 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2507 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2508 AC_MSG_RESULT(no))
2509else
2510 AC_MSG_RESULT(no)
2511fi
2512
2513AC_MSG_CHECKING(for ptyranges)
2514if test -d /dev/ptym ; then
2515 pdir='/dev/ptym'
2516else
2517 pdir='/dev'
2518fi
2519dnl SCO uses ptyp%d
2520AC_EGREP_CPP(yes,
2521[#ifdef M_UNIX
2522 yes;
2523#endif
2524 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2525dnl if test -c /dev/ptyp19; then
2526dnl ptys=`echo /dev/ptyp??`
2527dnl else
2528dnl ptys=`echo $pdir/pty??`
2529dnl fi
2530if test "$ptys" != "$pdir/pty??" ; then
2531 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2532 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2533 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2534 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2535 AC_MSG_RESULT([$p0 / $p1])
2536else
2537 AC_MSG_RESULT([don't know])
2538fi
2539
2540dnl **** pty mode/group handling ****
2541dnl
2542dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2543AC_MSG_CHECKING(default tty permissions/group)
2544rm -f conftest_grp
2545AC_TRY_RUN([
2546#include <sys/types.h>
2547#include <sys/stat.h>
2548#include <stdio.h>
2549main()
2550{
2551 struct stat sb;
2552 char *x,*ttyname();
2553 int om, m;
2554 FILE *fp;
2555
2556 if (!(x = ttyname(0))) exit(1);
2557 if (stat(x, &sb)) exit(1);
2558 om = sb.st_mode;
2559 if (om & 002) exit(0);
2560 m = system("mesg y");
2561 if (m == -1 || m == 127) exit(1);
2562 if (stat(x, &sb)) exit(1);
2563 m = sb.st_mode;
2564 if (chmod(x, om)) exit(1);
2565 if (m & 002) exit(0);
2566 if (sb.st_gid == getgid()) exit(1);
2567 if (!(fp=fopen("conftest_grp", "w")))
2568 exit(1);
2569 fprintf(fp, "%d\n", sb.st_gid);
2570 fclose(fp);
2571 exit(0);
2572}
2573],[
2574 if test -f conftest_grp; then
2575 ptygrp=`cat conftest_grp`
2576 AC_MSG_RESULT([pty mode: 0620, group: $ptygrp])
2577 AC_DEFINE(PTYMODE, 0620)
2578 AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
2579 else
2580 AC_MSG_RESULT([ptys are world accessable])
2581 fi
2582],
2583 AC_MSG_RESULT([can't determine - assume ptys are world accessable]),
2584 AC_MSG_ERROR(failed to compile test program))
2585rm -f conftest_grp
2586
2587dnl Checks for library functions. ===================================
2588
2589AC_TYPE_SIGNAL
2590
2591dnl find out what to use at the end of a signal function
2592if test $ac_cv_type_signal = void; then
2593 AC_DEFINE(SIGRETURN, [return])
2594else
2595 AC_DEFINE(SIGRETURN, [return 0])
2596fi
2597
2598dnl check if struct sigcontext is defined (used for SGI only)
2599AC_MSG_CHECKING(for struct sigcontext)
2600AC_TRY_COMPILE([
2601#include <signal.h>
2602test_sig()
2603{
2604 struct sigcontext *scont;
2605 scont = (struct sigcontext *)0;
2606 return 1;
2607} ], ,
2608 AC_MSG_RESULT(yes)
2609 AC_DEFINE(HAVE_SIGCONTEXT),
2610 AC_MSG_RESULT(no))
2611
2612dnl tricky stuff: try to find out if getcwd() is implemented with
2613dnl system("sh -c pwd")
2614AC_MSG_CHECKING(getcwd implementation)
2615AC_TRY_RUN([
2616char *dagger[] = { "IFS=pwd", 0 };
2617main()
2618{
2619 char buffer[500];
2620 extern char **environ;
2621 environ = dagger;
2622 return getcwd(buffer, 500) ? 0 : 1;
2623}],
2624 AC_MSG_RESULT(it is usable),
2625 AC_MSG_RESULT(it stinks)
2626 AC_DEFINE(BAD_GETCWD),
2627 AC_MSG_ERROR(failed to compile test program))
2628
2629dnl Check for functions in one big call, to reduce the size of configure
2630AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2631 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2632 memset nanosleep opendir putenv qsort readlink select setenv \
2633 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2634 sigvec snprintf strcasecmp strerror strftime stricmp strncasecmp \
2635 strnicmp strpbrk strtol tgetent towlower towupper usleep utime utimes)
2636
2637dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2638AC_MSG_CHECKING(for st_blksize)
2639AC_TRY_COMPILE(
2640[#include <sys/types.h>
2641#include <sys/stat.h>],
2642[ struct stat st;
2643 int n;
2644
2645 stat("/", &st);
2646 n = (int)st.st_blksize;],
2647 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2648 AC_MSG_RESULT(no))
2649
2650AC_MSG_CHECKING(whether stat() ignores a trailing slash)
2651AC_TRY_RUN(
2652[#include <sys/types.h>
2653#include <sys/stat.h>
2654main() {struct stat st; exit(stat("configure/", &st) != 0); }],
2655 AC_MSG_RESULT(yes); AC_DEFINE(STAT_IGNORES_SLASH),
2656 AC_MSG_RESULT(no), AC_MSG_ERROR(failed to compile test program))
2657
2658dnl Link with iconv for charset translation, if not found without library.
2659dnl check for iconv() requires including iconv.h
2660dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2661dnl has been installed.
2662AC_MSG_CHECKING(for iconv_open())
2663save_LIBS="$LIBS"
2664LIBS="$LIBS -liconv"
2665AC_TRY_LINK([
2666#ifdef HAVE_ICONV_H
2667# include <iconv.h>
2668#endif
2669 ], [iconv_open("fr", "to");],
2670 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2671 LIBS="$save_LIBS"
2672 AC_TRY_LINK([
2673#ifdef HAVE_ICONV_H
2674# include <iconv.h>
2675#endif
2676 ], [iconv_open("fr", "to");],
2677 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2678 AC_MSG_RESULT(no)))
2679
2680
2681AC_MSG_CHECKING(for nl_langinfo(CODESET))
2682AC_TRY_LINK([
2683#ifdef HAVE_LANGINFO_H
2684# include <langinfo.h>
2685#endif
2686], [char *cs = nl_langinfo(CODESET);],
2687 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2688 AC_MSG_RESULT(no))
2689
2690dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2691dnl when -lacl works, also try to use -lattr (required for Debian).
2692AC_MSG_CHECKING(--disable-acl argument)
2693AC_ARG_ENABLE(acl,
2694 [ --disable-acl Don't check for ACL support.],
2695 , [enable_acl="yes"])
2696if test "$enable_acl" = "yes"; then
2697AC_MSG_RESULT(no)
2698AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2699 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2700 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2701
2702AC_MSG_CHECKING(for POSIX ACL support)
2703AC_TRY_LINK([
2704#include <sys/types.h>
2705#ifdef HAVE_SYS_ACL_H
2706# include <sys/acl.h>
2707#endif
2708acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2709 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2710 acl_free(acl);],
2711 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2712 AC_MSG_RESULT(no))
2713
2714AC_MSG_CHECKING(for Solaris ACL support)
2715AC_TRY_LINK([
2716#ifdef HAVE_SYS_ACL_H
2717# include <sys/acl.h>
2718#endif], [acl("foo", GETACLCNT, 0, NULL);
2719 ],
2720 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2721 AC_MSG_RESULT(no))
2722
2723AC_MSG_CHECKING(for AIX ACL support)
2724AC_TRY_LINK([
2725#ifdef HAVE_SYS_ACL_H
2726# include <sys/acl.h>
2727#endif
2728#ifdef HAVE_SYS_ACCESS_H
2729# include <sys/access.h>
2730#endif
2731#define _ALL_SOURCE
2732
2733#include <sys/stat.h>
2734
2735int aclsize;
2736struct acl *aclent;], [aclsize = sizeof(struct acl);
2737 aclent = (void *)malloc(aclsize);
2738 statacl("foo", STX_NORMAL, aclent, aclsize);
2739 ],
2740 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2741 AC_MSG_RESULT(no))
2742else
2743 AC_MSG_RESULT(yes)
2744fi
2745
2746AC_MSG_CHECKING(--disable-gpm argument)
2747AC_ARG_ENABLE(gpm,
2748 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2749 [enable_gpm="yes"])
2750
2751if test "$enable_gpm" = "yes"; then
2752 AC_MSG_RESULT(no)
2753 dnl Checking if gpm support can be compiled
2754 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2755 [olibs="$LIBS" ; LIBS="-lgpm"]
2756 AC_TRY_LINK(
2757 [#include <gpm.h>
2758 #include <linux/keyboard.h>],
2759 [Gpm_GetLibVersion(NULL);],
2760 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2761 dnl FEAT_MOUSE_GPM if mouse support is included
2762 [vi_cv_have_gpm=yes],
2763 [vi_cv_have_gpm=no])
2764 [LIBS="$olibs"]
2765 )
2766 if test $vi_cv_have_gpm = yes; then
2767 LIBS="$LIBS -lgpm"
2768 AC_DEFINE(HAVE_GPM)
2769 fi
2770else
2771 AC_MSG_RESULT(yes)
2772fi
2773
2774AC_MSG_CHECKING(for vsnprintf())
2775AC_TRY_RUN([
2776#include <stdio.h>
2777#include <stdarg.h>
2778 /* Check use of vsnprintf() */
2779 void warn(char *fmt, ...);
2780 void warn(char *fmt, ...)
2781 {
2782 va_list ap; char buf[20];
2783 va_start(ap, fmt);
2784 vsnprintf(buf, 20, fmt, ap);
2785 va_end(ap);
2786 }
2787 main()
2788 {
2789 warn("testing %s\n", "a very long string that won't fit");
2790 exit(0);
2791 }
2792 ],
2793 AC_DEFINE(HAVE_VSNPRINTF) AC_MSG_RESULT(yes),
2794 AC_MSG_RESULT(no),
2795 AC_MSG_ERROR(failed to compile test program))
2796
2797
2798dnl rename needs to be checked separately to work on Nextstep with cc
2799AC_MSG_CHECKING(for rename)
2800AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2801 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2802 AC_MSG_RESULT(no))
2803
2804dnl sysctl() may exist but not the arguments we use
2805AC_MSG_CHECKING(for sysctl)
2806AC_TRY_COMPILE(
2807[#include <sys/types.h>
2808#include <sys/sysctl.h>],
2809[ int mib[2], r;
2810 size_t len;
2811
2812 mib[0] = CTL_HW;
2813 mib[1] = HW_USERMEM;
2814 len = sizeof(r);
2815 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2816 ],
2817 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2818 AC_MSG_RESULT(not usable))
2819
2820dnl sysinfo() may exist but not be Linux compatible
2821AC_MSG_CHECKING(for sysinfo)
2822AC_TRY_COMPILE(
2823[#include <sys/types.h>
2824#include <sys/sysinfo.h>],
2825[ struct sysinfo sinfo;
2826 int t;
2827
2828 (void)sysinfo(&sinfo);
2829 t = sinfo.totalram;
2830 ],
2831 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2832 AC_MSG_RESULT(not usable))
2833
2834dnl sysconf() may exist but not support what we want to use
2835AC_MSG_CHECKING(for sysconf)
2836AC_TRY_COMPILE(
2837[#include <unistd.h>],
2838[ (void)sysconf(_SC_PAGESIZE);
2839 (void)sysconf(_SC_PHYS_PAGES);
2840 ],
2841 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2842 AC_MSG_RESULT(not usable))
2843
2844dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2845dnl be printed with "%d", and avoids a warning for cross-compiling.
2846
2847AC_MSG_CHECKING(size of int)
2848AC_CACHE_VAL(ac_cv_sizeof_int,
2849 [AC_TRY_RUN([#include <stdio.h>
2850 main()
2851 {
2852 FILE *f=fopen("conftestval", "w");
2853 if (!f) exit(1);
2854 fprintf(f, "%d\n", (int)sizeof(int));
2855 exit(0);
2856 }],
2857 ac_cv_sizeof_int=`cat conftestval`,
2858 ac_cv_sizeof_int=0,
2859 AC_MSG_ERROR(failed to compile test program))])
2860AC_MSG_RESULT($ac_cv_sizeof_int)
2861AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2862
2863AC_MSG_CHECKING(whether memmove/bcopy/memcpy handle overlaps)
2864[bcopy_test_prog='
2865main() {
2866 char buf[10];
2867 strcpy(buf, "abcdefghi");
2868 mch_memmove(buf, buf + 2, 3);
2869 if (strncmp(buf, "ababcf", 6))
2870 exit(1);
2871 strcpy(buf, "abcdefghi");
2872 mch_memmove(buf + 2, buf, 3);
2873 if (strncmp(buf, "cdedef", 6))
2874 exit(1);
2875 exit(0); /* libc version works properly. */
2876}']
2877
2878dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2879dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2880
2881AC_TRY_RUN([#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog],
2882 AC_DEFINE(USEMEMMOVE) AC_MSG_RESULT(memmove does),
2883 AC_TRY_RUN([#define mch_memmove(s,d,l) bcopy(d,s,l) $bcopy_test_prog],
2884 AC_DEFINE(USEBCOPY) AC_MSG_RESULT(bcopy does),
2885 AC_TRY_RUN([#define mch_memmove(s,d,l) memcpy(d,s,l) $bcopy_test_prog],
2886 AC_DEFINE(USEMEMCPY) AC_MSG_RESULT(memcpy does), AC_MSG_RESULT(no),
2887 AC_MSG_ERROR(failed to compile test program)),
2888 AC_MSG_ERROR(failed to compile test program)),
2889 AC_MSG_ERROR(failed to compile test program))
2890
2891dnl Check for multibyte locale functions
2892dnl Find out if _Xsetlocale() is supported by libX11.
2893dnl Check if X_LOCALE should be defined.
2894
2895if test "$enable_multibyte" = "yes"; then
2896 cflags_save=$CFLAGS
2897 ldflags_save=$LDFLAGS
2898 if test -n "$x_includes" ; then
2899 CFLAGS="$CFLAGS -I$x_includes"
2900 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
2901 AC_MSG_CHECKING(whether X_LOCALE needed)
2902 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
2903 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
2904 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
2905 AC_MSG_RESULT(no))
2906 fi
2907 CFLAGS=$cflags_save
2908 LDFLAGS=$ldflags_save
2909fi
2910
2911dnl Link with xpg4, it is said to make Korean locale working
2912AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
2913
2914dnl Check how we can run ctags
2915dnl --version for Exuberant ctags (preferred)
2916dnl -t for typedefs (many ctags have this)
2917dnl -s for static functions (Elvis ctags only?)
2918dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
2919dnl -i+m to test for older Exuberant ctags
2920AC_MSG_CHECKING(how to create tags)
2921test -f tags && mv tags tags.save
2922if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
2923 TAGPRG="ctags"
2924else
2925 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
2926 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
2927 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
2928 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
2929 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
2930 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
2931 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
2932fi
2933test -f tags.save && mv tags.save tags
2934AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
2935
2936dnl Check how we can run man with a section number
2937AC_MSG_CHECKING(how to run man with a section nr)
2938MANDEF="man"
2939(eval man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
2940AC_MSG_RESULT($MANDEF)
2941if test "$MANDEF" = "man -s"; then
2942 AC_DEFINE(USEMAN_S)
2943fi
2944
2945dnl Check if gettext() is working and if it needs -lintl
2946AC_MSG_CHECKING(--disable-nls argument)
2947AC_ARG_ENABLE(nls,
2948 [ --disable-nls Don't support NLS (gettext()).], ,
2949 [enable_nls="yes"])
2950
2951if test "$enable_nls" = "yes"; then
2952 AC_MSG_RESULT(no)
2953 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
2954 AC_MSG_CHECKING([for NLS])
2955 if test -f po/Makefile; then
2956 have_gettext="no"
2957 if test -n "$MSGFMT"; then
2958 AC_TRY_LINK(
2959 [#include <libintl.h>],
2960 [gettext("Test");],
2961 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
2962 olibs=$LIBS
2963 LIBS="$LIBS -lintl"
2964 AC_TRY_LINK(
2965 [#include <libintl.h>],
2966 [gettext("Test");],
2967 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
2968 AC_MSG_RESULT([gettext() doesn't work]);
2969 LIBS=$olibs))
2970 else
2971 AC_MSG_RESULT([msgfmt not found - disabled]);
2972 fi
2973 if test $have_gettext = "yes"; then
2974 AC_DEFINE(HAVE_GETTEXT)
2975 MAKEMO=yes
2976 AC_SUBST(MAKEMO)
2977 dnl this was added in GNU gettext 0.10.36
2978 AC_CHECK_FUNCS(bind_textdomain_codeset)
2979 dnl _nl_msg_cat_cntr is required for GNU gettext
2980 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
2981 AC_TRY_LINK(
2982 [#include <libintl.h>
2983 extern int _nl_msg_cat_cntr;],
2984 [++_nl_msg_cat_cntr;],
2985 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
2986 AC_MSG_RESULT([no]))
2987 fi
2988 else
2989 AC_MSG_RESULT([no "po/Makefile" - disabled]);
2990 fi
2991else
2992 AC_MSG_RESULT(yes)
2993fi
2994
2995dnl Check for dynamic linking loader
2996AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
2997if test x${DLL} = xdlfcn.h; then
2998 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
2999 AC_MSG_CHECKING([for dlopen()])
3000 AC_TRY_LINK(,[
3001 extern void* dlopen();
3002 dlopen();
3003 ],
3004 AC_MSG_RESULT(yes);
3005 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3006 AC_MSG_RESULT(no);
3007 AC_MSG_CHECKING([for dlopen() in -ldl])
3008 olibs=$LIBS
3009 LIBS="$LIBS -ldl"
3010 AC_TRY_LINK(,[
3011 extern void* dlopen();
3012 dlopen();
3013 ],
3014 AC_MSG_RESULT(yes);
3015 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
3016 AC_MSG_RESULT(no);
3017 LIBS=$olibs))
3018 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3019 dnl ick :-)
3020 AC_MSG_CHECKING([for dlsym()])
3021 AC_TRY_LINK(,[
3022 extern void* dlsym();
3023 dlsym();
3024 ],
3025 AC_MSG_RESULT(yes);
3026 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3027 AC_MSG_RESULT(no);
3028 AC_MSG_CHECKING([for dlsym() in -ldl])
3029 olibs=$LIBS
3030 LIBS="$LIBS -ldl"
3031 AC_TRY_LINK(,[
3032 extern void* dlsym();
3033 dlsym();
3034 ],
3035 AC_MSG_RESULT(yes);
3036 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3037 AC_MSG_RESULT(no);
3038 LIBS=$olibs))
3039elif test x${DLL} = xdl.h; then
3040 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3041 AC_MSG_CHECKING([for shl_load()])
3042 AC_TRY_LINK(,[
3043 extern void* shl_load();
3044 shl_load();
3045 ],
3046 AC_MSG_RESULT(yes);
3047 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3048 AC_MSG_RESULT(no);
3049 AC_MSG_CHECKING([for shl_load() in -ldld])
3050 olibs=$LIBS
3051 LIBS="$LIBS -ldld"
3052 AC_TRY_LINK(,[
3053 extern void* shl_load();
3054 shl_load();
3055 ],
3056 AC_MSG_RESULT(yes);
3057 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3058 AC_MSG_RESULT(no);
3059 LIBS=$olibs))
3060fi
3061AC_CHECK_HEADERS(setjmp.h)
3062
3063if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3064 dnl -ldl must come after DynaLoader.a
3065 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3066 LIBS=`echo $LIBS | sed s/-ldl//`
3067 PERL_LIBS="$PERL_LIBS -ldl"
3068 fi
3069fi
3070
3071if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3072 && test "x$GUITYPE" != "xCARBONGUI"; then
3073 AC_MSG_CHECKING(whether we need -framework Carbon)
3074 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3075 if test "x$enable_multibyte" = "xyes" || test "x$features" == "xbig" \
3076 || test "x$features" = "xhuge"; then
3077 LIBS="$LIBS -framework Carbon"
3078 AC_MSG_RESULT(yes)
3079 else
3080 AC_MSG_RESULT(no)
3081 fi
3082fi
3083
3084
3085dnl write output files
3086AC_OUTPUT(auto/config.mk:config.mk.in)
3087
3088dnl vim: set sw=2 tw=78 fo+=l: