blob: c3176df880f6600139008bfd1f07e6ee49da05cc [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
Bram Moolenaar071d4272004-06-13 20:20:40 +00001094SKIP_CARBON=YES
1095GUITYPE=NONE
1096
Bram Moolenaarb11160e2005-01-04 21:31:43 +00001097if test "x$QNX" = "xyes" -a "x$with_x" = "xno" ; then
Bram Moolenaar071d4272004-06-13 20:20:40 +00001098 SKIP_PHOTON=
1099 case "$enable_gui_canon" in
1100 no) AC_MSG_RESULT(no GUI support)
1101 SKIP_PHOTON=YES ;;
1102 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1103 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1104 photon) AC_MSG_RESULT(Photon GUI support) ;;
1105 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1106 SKIP_PHOTON=YES ;;
1107 esac
1108
1109elif test "x$MACOSX" = "xyes" -a "x$with_x" = "xno" ; then
1110 SKIP_CARBON=
1111 case "$enable_gui_canon" in
1112 no) AC_MSG_RESULT(no GUI support)
1113 SKIP_CARBON=YES ;;
1114 yes|"") AC_MSG_RESULT(yes - automatic GUI support) ;;
1115 auto) AC_MSG_RESULT(auto - automatic GUI support) ;;
1116 carbon) AC_MSG_RESULT(Carbon GUI support) ;;
1117 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported])
1118 SKIP_CARBON=YES ;;
1119 esac
1120
1121else
1122
Bram Moolenaar071d4272004-06-13 20:20:40 +00001123 case "$enable_gui_canon" in
1124 no|none) AC_MSG_RESULT(no GUI support) ;;
1125 yes|""|auto) AC_MSG_RESULT(yes/auto - automatic GUI support)
1126 SKIP_GTK=
1127 SKIP_GTK2=
1128 SKIP_GNOME=
1129 SKIP_MOTIF=
1130 SKIP_ATHENA=
1131 SKIP_NEXTAW=
1132 SKIP_CARBON=;;
Bram Moolenaar843ee412004-06-30 16:16:41 +00001133 kde|Kde|KDE) AC_MSG_RESULT(KDE 2.x or 3.x GUI support)
1134 SKIP_KDE=;;
Bram Moolenaar071d4272004-06-13 20:20:40 +00001135 gtk) AC_MSG_RESULT(GTK+ 1.x GUI support)
1136 SKIP_GTK=;;
1137 gtk2) AC_MSG_RESULT(GTK+ 2.x GUI support)
1138 SKIP_GTK=
1139 SKIP_GTK2=;;
1140 gnome) AC_MSG_RESULT(GNOME 1.x GUI support)
1141 SKIP_GNOME=
1142 SKIP_GTK=;;
1143 gnome2) AC_MSG_RESULT(GNOME 2.x GUI support)
1144 SKIP_GNOME=
1145 SKIP_GTK=
1146 SKIP_GTK2=;;
1147 motif) AC_MSG_RESULT(Motif GUI support)
1148 SKIP_MOTIF=;;
1149 athena) AC_MSG_RESULT(Athena GUI support)
1150 SKIP_ATHENA=;;
1151 nextaw) AC_MSG_RESULT(neXtaw GUI support)
1152 SKIP_NEXTAW=;;
1153 *) AC_MSG_RESULT([Sorry, $enable_gui GUI is not supported]) ;;
1154 esac
1155
1156fi
1157
Bram Moolenaar843ee412004-06-30 16:16:41 +00001158if test "x$SKIP_KDE" != "xYES" -a "$enable_gui_canon" != "kde"; then
1159 AC_MSG_CHECKING(whether or not to look for KDE)
1160 AC_ARG_ENABLE(kde-check,
1161 [ --enable-kde-check If auto-select GUI, check for KDE [default=no]],
1162 ,enable_kde_check="no")
1163 AC_MSG_RESULT($enable_kde_check);
1164 if test "x$enable_kde_check" = "xno"; then
1165 SKIP_KDE=YES
1166 fi
1167fi
1168
Bram Moolenaar071d4272004-06-13 20:20:40 +00001169if test "x$SKIP_GTK" != "xYES" -a "$enable_gui_canon" != "gtk" -a "$enable_gui_canon" != "gtk2"; then
1170 AC_MSG_CHECKING(whether or not to look for GTK)
1171 AC_ARG_ENABLE(gtk-check,
1172 [ --enable-gtk-check If auto-select GUI, check for GTK [default=yes]],
1173 , enable_gtk_check="yes")
1174 AC_MSG_RESULT($enable_gtk_check)
1175 if test "x$enable_gtk_check" = "xno"; then
1176 SKIP_GTK=YES
1177 SKIP_GNOME=YES
1178 fi
1179fi
1180
1181if test "x$SKIP_GTK2" != "xYES" -a "$enable_gui_canon" != "gtk2" \
1182 -a "$enable_gui_canon" != "gnome2"; then
1183 AC_MSG_CHECKING(whether or not to look for GTK+ 2)
1184 AC_ARG_ENABLE(gtk2-check,
1185 [ --enable-gtk2-check If GTK GUI, check for GTK+ 2 [default=yes]],
1186 , enable_gtk2_check="yes")
1187 AC_MSG_RESULT($enable_gtk2_check)
1188 if test "x$enable_gtk2_check" = "xno"; then
1189 SKIP_GTK2=YES
1190 fi
1191fi
1192
1193if test "x$SKIP_GNOME" != "xYES" -a "$enable_gui_canon" != "gnome" \
1194 -a "$enable_gui_canon" != "gnome2"; then
1195 AC_MSG_CHECKING(whether or not to look for GNOME)
1196 AC_ARG_ENABLE(gnome-check,
1197 [ --enable-gnome-check If GTK GUI, check for GNOME [default=no]],
1198 , enable_gnome_check="no")
1199 AC_MSG_RESULT($enable_gnome_check)
1200 if test "x$enable_gnome_check" = "xno"; then
1201 SKIP_GNOME=YES
1202 fi
1203fi
1204
1205if test "x$SKIP_MOTIF" != "xYES" -a "$enable_gui_canon" != "motif"; then
1206 AC_MSG_CHECKING(whether or not to look for Motif)
1207 AC_ARG_ENABLE(motif-check,
1208 [ --enable-motif-check If auto-select GUI, check for Motif [default=yes]],
1209 , enable_motif_check="yes")
1210 AC_MSG_RESULT($enable_motif_check)
1211 if test "x$enable_motif_check" = "xno"; then
1212 SKIP_MOTIF=YES
1213 fi
1214fi
1215
1216if test "x$SKIP_ATHENA" != "xYES" -a "$enable_gui_canon" != "athena"; then
1217 AC_MSG_CHECKING(whether or not to look for Athena)
1218 AC_ARG_ENABLE(athena-check,
1219 [ --enable-athena-check If auto-select GUI, check for Athena [default=yes]],
1220 , enable_athena_check="yes")
1221 AC_MSG_RESULT($enable_athena_check)
1222 if test "x$enable_athena_check" = "xno"; then
1223 SKIP_ATHENA=YES
1224 fi
1225fi
1226
1227if test "x$SKIP_NEXTAW" != "xYES" -a "$enable_gui_canon" != "nextaw"; then
1228 AC_MSG_CHECKING(whether or not to look for neXtaw)
1229 AC_ARG_ENABLE(nextaw-check,
1230 [ --enable-nextaw-check If auto-select GUI, check for neXtaw [default=yes]],
1231 , enable_nextaw_check="yes")
1232 AC_MSG_RESULT($enable_nextaw_check);
1233 if test "x$enable_nextaw_check" = "xno"; then
1234 SKIP_NEXTAW=YES
1235 fi
1236fi
1237
1238if test "x$SKIP_CARBON" != "xYES" -a "$enable_gui_canon" != "carbon"; then
1239 AC_MSG_CHECKING(whether or not to look for Carbon)
1240 AC_ARG_ENABLE(carbon-check,
1241 [ --enable-carbon-check If auto-select GUI, check for Carbon [default=yes]],
1242 , enable_carbon_check="yes")
1243 AC_MSG_RESULT($enable_carbon_check);
1244 if test "x$enable_carbon_check" = "xno"; then
1245 SKIP_CARBON=YES
1246 fi
1247fi
1248
Bram Moolenaar843ee412004-06-30 16:16:41 +00001249dnl ---------------------------------------------------------------------------
1250dnl we use the kde-config script included in KDE since 2.x to check which
1251dnl version of KDE, we'll use. We'll use additional args in configure to
1252dnl obtain the QT directory (includes and libs) as qt does not give any
1253dnl config script ! (shame on the trolls ! ;p)
1254dnl ---------------------------------------------------------------------------
1255
1256if test -z "$SKIP_KDE"; then
1257dnl ------------------
1258dnl now, take care of QT
1259dnl -----------------
1260AC_ARG_WITH(qt-dir,
1261 [ --with-qt-dir=DIR Specify prefix of QT files],
1262 [
1263 ROOTQT="$withval"
1264 MOC="$withval"/bin/moc
1265 QT_INCLUDES="$withval"/include
1266 QT_LIBS="$withval"/lib
1267 ])
1268
1269if test "x$ROOTQT" = "x"; then
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001270 if test -z "$QTDIR"; then
1271 dnl Find the Qt directory by looking for the "moc" program.
1272 dnl It's better than nothing.
1273 AC_PATH_PROG(MOC, moc, no)
1274 if test "x$MOC" = "xno"; then
1275 AC_MSG_ERROR(could not find Qt directory)
1276 else
1277 ROOTQT=`echo $MOC | sed 's+/bin/moc++'`
1278 fi
1279 else
1280 ROOTQT="$QTDIR"
1281 fi
Bram Moolenaar843ee412004-06-30 16:16:41 +00001282fi
1283MOC="$ROOTQT"/bin/moc
1284QT_INCLUDES="$ROOTQT"/include
1285QT_LIBS="$ROOTQT"/lib
1286
1287AC_ARG_WITH(qt-includes,
1288 [ --with-qt-includes=DIR Specify location of Qt headers],
1289 [QT_INCLUDES="$withval"]
1290 )
1291
1292AC_ARG_WITH(qt-libraries,
1293 [ --with-qt-libs=DIR Specify location of Qt libraries],
1294 [QT_LIBS="$withval"]
1295 )
1296
1297if test "x$QT_LIBS" = "x" ; then
1298 QT_LIBS="$ROOTQT"/lib
1299fi
1300if test "x$QT_INCLUDES" = "x" ; then
1301 QT_INCLUDES="$ROOTQT"/include
1302fi
1303dnl we should get QT's version from here and compare with what kde-config
1304dnl says
1305
1306AC_MSG_CHECKING(whether or not to use a KDE Toolbar in KVim)
1307AC_ARG_ENABLE(kde-toolbar,
1308 [ --enable-kde-toolbar if KDE GUI is selected, enable a KDE-look toolbar [default=no]],
1309 , enable_kde_toolbar="no")
1310if test "x$enable_kde_toolbar" != "xno"; then
1311 AC_DEFINE(FEAT_KDETOOLBAR)
1312fi
1313AC_MSG_RESULT($enable_kde_toolbar);
1314fi
1315
1316dnl -------------------
1317dnl so, first, look up at the kde-config script
1318dnl ------------------
1319
1320if test -z "$SKIP_KDE"; then
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001321AC_DEFUN([AC_FIND_FILE],
1322[
1323 $3=NO
1324 for i in $2;
1325 do
1326 for j in $1;
1327 do
1328 echo "configure: __oline__: $i/$j" >&AC_FD_CC
1329 if test -r "$i/$j"; then
1330 echo "taking that" >&AC_FD_CC
1331 $3=$i
1332 break 2
1333 fi
1334 done
1335 done
1336])
1337
Bram Moolenaar843ee412004-06-30 16:16:41 +00001338AC_DEFUN(AM_PATH_KDE,
1339[
1340 if test "X$KDE_CONFIG" != "X"; then
1341 min_kde_version=ifelse([$1], ,2.0,[$1])
1342 AC_MSG_CHECKING(for KDE version >= $min_kde_version)
1343 no_kde=""
1344 if test "$KDE_CONFIG" = "no" ; then
1345 no_kde=yes
1346 else
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001347 KDE_PREFIX=`$KDE_CONFIG --prefix`
Bram Moolenaar843ee412004-06-30 16:16:41 +00001348 if test "x$KDE_LIBS" = "x"; then
1349 KDE_LIBS="$KDE_PREFIX/lib"
1350 fi
1351 if test "x$KDE_INCLUDES" = "x"; then
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001352 KDE_INCLUDES="$KDE_PREFIX/include"
1353 if test -d "$KDE_INCLUDES/kde"; then
1354 KDE_INCLUDES="$KDE_INCLUDES/kde"
1355 fi
Bram Moolenaar843ee412004-06-30 16:16:41 +00001356 fi
1357 kde_major_version=`$KDE_CONFIG --version | grep KDE | \
1358sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'`
1359 kde_minor_version=`$KDE_CONFIG --version | grep KDE | \
1360sed 's/KDE:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'`
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001361
Bram Moolenaar843ee412004-06-30 16:16:41 +00001362 qt_major_version=`$KDE_CONFIG --version | grep Qt | sed -e \
1363's/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\1/'`
1364 qt_minor_version=`$KDE_CONFIG --version | grep Qt | sed -e \
1365's/Qt:\ //' | sed 's/\([[0-9]]*\).\([[0-9]]*.*\)/\2/'`
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001366
Bram Moolenaar843ee412004-06-30 16:16:41 +00001367 dnl maybe in a near future we'll get these ones : QT_PREFIX, QT_LIBS,
1368 dnl QT_INCLUDES
1369 dnl but for now we need configure options to get them ...
1370 if test "x$enable-kdetest" = "xyes" ; then
1371 ac_save_LIBS="$LIBS"
1372 LIBS="$LIBS $KDE_LIBS"
1373
1374 dnl fake test
1375 AC_TRY_RUN([
1376#include <stdio.h>
1377int
1378main()
1379{ return 0; }
1380 ],, no_kde=yes,[echo $ac_n "cross compiling KDE ? ? how can i remove that ? :)"])
1381 LIBS="$ac_save_LIBS"
1382 fi
1383 fi
1384 if test "x$no_kde" = x ; then
1385 AC_MSG_RESULT(found KDE $kde_major_version.$kde_minor_version)
1386 ifelse([$2], , :, [$2])
1387 else
1388 AC_MSG_RESULT(no)
1389 KDE_LIBS=""
1390 ifelse([$3], , :, [$3])
1391 fi
1392else
1393 AC_MSG_RESULT(no)
1394 KDE_LIBS=""
1395 ifelse([$3], , :, [$3])
1396fi
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001397
Bram Moolenaar843ee412004-06-30 16:16:41 +00001398AC_SUBST(KDE_LIBS)
1399AC_SUBST(KDE_INCLUDES)
1400AC_SUBST(KDE_PREFIX)
1401])
1402
1403dnl Check all the KDE stuff
1404AC_MSG_CHECKING(--disable-rpath argument)
1405AC_ARG_ENABLE(rpath,
1406 [ --disable-rpath Disable rpath.],
1407 , enable_rpath="yes")
1408if test "$enable_rpath" = "yes"; then
1409 AC_MSG_RESULT(no)
1410else
1411 AC_MSG_RESULT(yes)
1412fi
1413
1414AC_MSG_CHECKING(--with-kde-prefix argument)
1415AC_ARG_WITH(kde-prefix,[ --with-kde-prefix=PFX Prefix where KDE is installed (optional)],kde_config_prefix="$withval";
1416AC_MSG_RESULT($kde_config_prefix), kde_config_prefix="";AC_MSG_RESULT(no))
1417
1418AC_ARG_WITH(kde-includes,
1419 [ --with-kde-includes=DIR Specify location of KDE headers],
1420 [KDE_INCLUDES="$withval"]
1421 )
1422
1423AC_ARG_WITH(kde-libraries,
1424 [ --with-kde-libs=DIR Specify location of KDE libraries],
1425 [KDE_LIBS="$withval"]
1426 )
1427
1428AC_MSG_CHECKING(--disable-kdetest argument)
1429AC_ARG_ENABLE(kdetest,
1430 [ --disable-kdetest Do not try to compile and run a test KDE program],
1431 enable_kdetest=yes)
1432
1433if test "x$enable_kdetest" = "xyes" ; then
1434 AC_MSG_RESULT(kde test enabled)
1435else
1436 AC_MSG_RESULT(kde test disabled)
1437fi
1438
1439if test "x$kde_config_prefix" != "x" ; then
Bram Moolenaar843ee412004-06-30 16:16:41 +00001440 KDE_CONFIG=$kde_config_prefix/bin/kde-config
1441fi
1442
1443if test "X$KDE_CONFIG" = "X"; then
1444 AC_PATH_PROG(KDE_CONFIG, kde-config, no)
1445else
1446 AC_MSG_RESULT(Using KDE configuration program $KDE_CONFIG)
1447fi
1448
1449if test "X$KDE_CONFIG" != "X" ; then
1450 AM_PATH_KDE(2.0.0,
1451 [GUI_LIB_LOC="-L$KDE_LIBS -lkdeui -lkdecore -lDCOP"
1452 GUI_INC_LOC="-I$KDE_INCLUDES"
1453 KDEDIR="$KDE_PREFIX"], )
1454 if test "x$KDE_PREFIX" != "x"; then
1455 AC_MSG_CHECKING(for QT version $qt_major_version.x)
1456 if test "x$ROOTQT" != "x" ; then
1457 GUI_INC_LOC="-I$QT_INCLUDES $GUI_INC_LOC"
1458 if test $qt_major_version -lt 2; then
1459 AC_MSG_ERROR(Your QT version is prior to 2.0; KDE 2.x and 3.x require at least QT 2)
1460 fi
1461 dnl hack for FreeBSD
1462 if test "`(uname) 2>/dev/null`" = "FreeBSD"; then
1463 CFLAGS="$CFLAGS -D_THREAD_SAFE"
1464 CXXFLAGS="$CXXFLAGS -D_THREAD_SAFE"
1465 GUI_LIB_LOC="$GUI_LIB_LOC -pthread"
1466 LIBS="$LIBS -pthread"
1467 fi
1468
1469 dnl check the version
1470 if test "x$enable_rpath" = "xyes"; then
1471 if test $qt_major_version = 2; then
1472 GUI_LIB_LOC="-L$KDE_LIBS -lkfile -L$QT_LIBS -lqt $GUI_LIB_LOC \
1473-Wl,--rpath -Wl,$KDE_LIBS -Wl,--rpath -Wl,$QT_LIBS"
1474 else
1475 GUI_LIB_LOC="-L$KDE_LIBS -lkio -L$QT_LIBS -lqt-mt $GUI_LIB_LOC \
1476-Wl,--rpath -Wl,$KDE_LIBS -Wl,--rpath -Wl,$QT_LIBS"
1477 fi
1478 else
1479 if test $qt_major_version = 2; then
1480 GUI_LIB_LOC="-L$KDE_LIBS -lkfile -L$QT_LIBS -lqt $GUI_LIB_LOC"
1481 else
1482 GUI_LIB_LOC="-L$KDE_LIBS -lkio -L$QT_LIBS -lqt-mt $GUI_LIB_LOC"
1483 fi
1484 fi
1485
1486 dnl Remove "-I/usr/include " from GUI_*
1487 GUI_INC_LOC="`echo $GUI_INC_LOC\ | sed 's%-I/usr/include %%'`"
1488dnl GUI_LIB_LOC="`echo $GUI_LIB_LOC\ | sed 's% -L/usr/lib%%'`"
1489
1490 AC_MSG_RESULT(found $qt_major_version.$qt_minor_version in $ROOTQT)
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001491
1492 dnl now check the results ...
1493 dnl find the Qt's headers ?
1494 AC_FIND_FILE(qstyle.h,$QT_INCLUDES,qt_incdir)
1495 if test "x$qt_incdir" = "xNO"; then
1496 AC_MSG_ERROR(Could not find Qt headers in $QT_INCLUDES)
1497 fi
1498 AC_FIND_FILE(kapplication.h,$KDE_INCLUDES,kde_incdir)
1499 if test "x$kde_incdir" = "xNO"; then
1500 AC_MSG_ERROR(Could not find KDE headers in $KDE_INCLUDES)
1501 fi
1502
1503 AC_LANG_SAVE
1504 AC_LANG_CPLUSPLUS
1505 ac_save_LIBS="$LIBS"
1506 LIBS="$GUI_LIB_LOC"
1507 ac_save_CXXFLAGS="$CXXFLAGS"
1508 CXXFLAGS="$CXXFLAGS $GUI_INC_LOC"
1509 AC_MSG_CHECKING(whether Qt libraries are usable)
1510 AC_TRY_LINK(
1511 [#include <qapplication.h>],
1512 [
1513 int argc;
1514 char** argv;
1515 QApplication app(argc, argv);]
1516 ,AC_MSG_RESULT(yes),AC_MSG_RESULT(no);AC_MSG_ERROR(Qt fails to link a simple application, check your installation and settings))
1517
1518 AC_MSG_CHECKING(whether KDE libraries are usable)
1519 AC_TRY_LINK(
1520 [#include <kapplication.h>],
1521 [
1522 int argc;
1523 char** argv;
1524 KApplication app(argc, argv);]
1525 ,AC_MSG_RESULT(yes),AC_MSG_RESULT(no);AC_MSG_ERROR(KDE fails to link a simple application, check your installation and settings))
1526
1527 LIBS="$ac_save_LIBS"
1528 CXXFLAGS="$ac_save_CXXFLAGS"
1529 AC_LANG_RESTORE
1530
1531
Bram Moolenaar843ee412004-06-30 16:16:41 +00001532 SKIP_GTK=YES
1533 SKIP_ATHENA=YES
1534 SKIP_MOTIF=YES
1535 GUITYPE=KDE
1536 AC_SUBST(KDE_PREFIX)
1537 AC_SUBST(QT_LIBS)
1538 AC_SUBST(QT_INCLUDES)
1539 AC_SUBST(ROOTQT)
1540 AC_SUBST(MOC)
1541 AC_DEFINE(FEAT_GUI_KDE)
1542 else
1543 AC_MSG_ERROR(Detected QT version mismatched)
1544 fi
1545 else
1546 AC_MSG_ERROR(Could not find KDE installation prefix)
1547 fi
1548fi
1549fi
1550
Bram Moolenaar071d4272004-06-13 20:20:40 +00001551if test "x$MACOSX" = "xyes" -a -z "$SKIP_CARBON" -a "x$CARBON" = "xyes"; then
1552 AC_MSG_CHECKING(for Carbon GUI)
1553 dnl already did this
1554 AC_MSG_RESULT(yes);
1555 GUITYPE=CARBONGUI
1556 dnl skip everything else
1557 SKIP_GTK=YES;
1558 SKIP_GTK2=YES;
1559 SKIP_GNOME=YES;
1560 SKIP_MOTIF=YES;
1561 SKIP_ATHENA=YES;
1562 SKIP_NEXTAW=YES;
1563 SKIP_PHOTON=YES;
Bram Moolenaar071d4272004-06-13 20:20:40 +00001564 SKIP_CARBON=YES
1565fi
1566
Bram Moolenaar071d4272004-06-13 20:20:40 +00001567dnl
1568dnl Get the cflags and libraries from the gtk-config script
1569dnl
1570
1571dnl define an autoconf function to check for a specified version of GTK, and
1572dnl try to compile/link a GTK program. this gets used once for GTK 1.1.16.
1573dnl
1574dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001575dnl Test for GTK, and define GTK_CFLAGS, GTK_LIBDIR and GTK_LIBS
Bram Moolenaar071d4272004-06-13 20:20:40 +00001576dnl
1577AC_DEFUN(AM_PATH_GTK,
1578[
1579 if test "X$GTK_CONFIG" != "Xno" -o "X$PKG_CONFIG" != "Xno"; then
1580 {
1581 min_gtk_version=ifelse([$1], ,0.99.7,$1)
1582 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
1583 no_gtk=""
1584 if (test "X$SKIP_GTK2" != "XYES" -a "X$PKG_CONFIG" != "Xno") \
1585 && $PKG_CONFIG --exists gtk+-2.0; then
1586 {
1587 dnl We should be using PKG_CHECK_MODULES() instead of this hack.
1588 dnl But I guess the dependency on pkgconfig.m4 is not wanted or
1589 dnl something like that.
1590 GTK_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001591 GTK_LIBDIR=`$PKG_CONFIG --libs-only-L gtk+-2.0`
Bram Moolenaar071d4272004-06-13 20:20:40 +00001592 GTK_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
1593 gtk_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1594 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1595 gtk_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1596 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1597 gtk_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
1598 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1599 }
1600 elif test "X$GTK_CONFIG" != "Xno"; then
1601 {
1602 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001603 GTK_LIBDIR=
Bram Moolenaar071d4272004-06-13 20:20:40 +00001604 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
1605 gtk_major_version=`$GTK_CONFIG $gtk_config_args --version | \
1606 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
1607 gtk_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
1608 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
1609 gtk_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
1610 sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
1611 }
1612 else
1613 no_gtk=yes
1614 fi
1615
1616 if test "x$enable_gtktest" = "xyes" -a "x$no_gtk" = "x"; then
1617 {
1618 ac_save_CFLAGS="$CFLAGS"
1619 ac_save_LIBS="$LIBS"
1620 CFLAGS="$CFLAGS $GTK_CFLAGS"
1621 LIBS="$LIBS $GTK_LIBS"
1622
1623 dnl
1624 dnl Now check if the installed GTK is sufficiently new. (Also sanity
1625 dnl checks the results of gtk-config to some extent
1626 dnl
1627 rm -f conf.gtktest
1628 AC_TRY_RUN([
1629#include <gtk/gtk.h>
1630#include <stdio.h>
1631
1632int
1633main ()
1634{
1635int major, minor, micro;
1636char *tmp_version;
1637
1638system ("touch conf.gtktest");
1639
1640/* HP/UX 9 (%@#!) writes to sscanf strings */
1641tmp_version = g_strdup("$min_gtk_version");
1642if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
1643 printf("%s, bad version string\n", "$min_gtk_version");
1644 exit(1);
1645 }
1646
1647if ((gtk_major_version > major) ||
1648 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
1649 ((gtk_major_version == major) && (gtk_minor_version == minor) &&
1650 (gtk_micro_version >= micro)))
1651{
1652 return 0;
1653}
1654return 1;
1655}
1656],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
1657 CFLAGS="$ac_save_CFLAGS"
1658 LIBS="$ac_save_LIBS"
1659 }
1660 fi
1661 if test "x$no_gtk" = x ; then
1662 if test "x$enable_gtktest" = "xyes"; then
1663 AC_MSG_RESULT(yes; found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1664 else
1665 AC_MSG_RESULT(found version $gtk_major_version.$gtk_minor_version.$gtk_micro_version)
1666 fi
1667 ifelse([$2], , :, [$2])
1668 else
1669 {
1670 AC_MSG_RESULT(no)
1671 GTK_CFLAGS=""
1672 GTK_LIBS=""
1673 ifelse([$3], , :, [$3])
1674 }
1675 fi
1676 }
1677 else
1678 GTK_CFLAGS=""
1679 GTK_LIBS=""
1680 ifelse([$3], , :, [$3])
1681 fi
1682 AC_SUBST(GTK_CFLAGS)
1683 AC_SUBST(GTK_LIBS)
1684 rm -f conf.gtktest
1685])
1686
1687dnl ---------------------------------------------------------------------------
1688dnl gnome
1689dnl ---------------------------------------------------------------------------
1690AC_DEFUN([GNOME_INIT_HOOK],
1691[
1692 AC_SUBST(GNOME_LIBS)
1693 AC_SUBST(GNOME_LIBDIR)
1694 AC_SUBST(GNOME_INCLUDEDIR)
1695
1696 AC_ARG_WITH(gnome-includes,
1697 [ --with-gnome-includes=DIR Specify location of GNOME headers],
1698 [CFLAGS="$CFLAGS -I$withval"]
1699 )
1700
1701 AC_ARG_WITH(gnome-libs,
1702 [ --with-gnome-libs=DIR Specify location of GNOME libs],
1703 [LDFLAGS="$LDFLAGS -L$withval" gnome_prefix=$withval]
1704 )
1705
1706 AC_ARG_WITH(gnome,
1707 [ --with-gnome Specify prefix for GNOME files],
1708 if test x$withval = xyes; then
1709 want_gnome=yes
1710 ifelse([$1], [], :, [$1])
1711 else
1712 if test "x$withval" = xno; then
1713 want_gnome=no
1714 else
1715 want_gnome=yes
1716 LDFLAGS="$LDFLAGS -L$withval/lib"
1717 CFLAGS="$CFLAGS -I$withval/include"
1718 gnome_prefix=$withval/lib
1719 fi
1720 fi,
1721 want_gnome=yes)
1722
1723 if test "x$want_gnome" = xyes -a "0$gtk_major_version" -ge 2; then
1724 {
1725 AC_MSG_CHECKING(for libgnomeui-2.0)
1726 if $PKG_CONFIG --exists libgnomeui-2.0; then
1727 AC_MSG_RESULT(yes)
1728 GNOME_LIBS=`$PKG_CONFIG --libs-only-l libgnomeui-2.0`
1729 GNOME_LIBDIR=`$PKG_CONFIG --libs-only-L libgnomeui-2.0`
1730 GNOME_INCLUDEDIR=`$PKG_CONFIG --cflags libgnomeui-2.0`
1731 $1
1732 else
1733 AC_MSG_RESULT(not found)
1734 if test "x$2" = xfail; then
1735 AC_MSG_ERROR(Could not find libgnomeui-2.0 via pkg-config)
1736 fi
1737 fi
1738 }
1739 elif test "x$want_gnome" = xyes; then
1740 {
1741 AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
1742 if test "$GNOME_CONFIG" = "no"; then
1743 no_gnome_config="yes"
1744 else
1745 AC_MSG_CHECKING(if $GNOME_CONFIG works)
1746 if $GNOME_CONFIG --libs-only-l gnome >/dev/null 2>&1; then
1747 AC_MSG_RESULT(yes)
1748 GNOME_LIBS="`$GNOME_CONFIG --libs-only-l gnome gnomeui`"
1749 GNOME_LIBDIR="`$GNOME_CONFIG --libs-only-L gnorba gnomeui`"
1750 GNOME_INCLUDEDIR="`$GNOME_CONFIG --cflags gnorba gnomeui`"
1751 $1
1752 else
1753 AC_MSG_RESULT(no)
1754 no_gnome_config="yes"
1755 fi
1756 fi
1757
1758 if test x$exec_prefix = xNONE; then
1759 if test x$prefix = xNONE; then
1760 gnome_prefix=$ac_default_prefix/lib
1761 else
1762 gnome_prefix=$prefix/lib
1763 fi
1764 else
1765 gnome_prefix=`eval echo \`echo $libdir\``
1766 fi
1767
1768 if test "$no_gnome_config" = "yes"; then
1769 AC_MSG_CHECKING(for gnomeConf.sh file in $gnome_prefix)
1770 if test -f $gnome_prefix/gnomeConf.sh; then
1771 AC_MSG_RESULT(found)
1772 echo "loading gnome configuration from" \
1773 "$gnome_prefix/gnomeConf.sh"
1774 . $gnome_prefix/gnomeConf.sh
1775 $1
1776 else
1777 AC_MSG_RESULT(not found)
1778 if test x$2 = xfail; then
1779 AC_MSG_ERROR(Could not find the gnomeConf.sh file that is generated by gnome-libs install)
1780 fi
1781 fi
1782 fi
1783 }
1784 fi
1785])
1786
1787AC_DEFUN([GNOME_INIT],[
1788 GNOME_INIT_HOOK([],fail)
1789])
1790
1791
1792dnl ---------------------------------------------------------------------------
1793dnl Check for GTK. First checks for gtk-config, cause it needs that to get the
1794dnl correct compiler flags. Then checks for GTK 1.1.16. If that fails, then
1795dnl it checks for 1.0.6. If both fail, then continue on for Motif as before...
1796dnl ---------------------------------------------------------------------------
1797if test -z "$SKIP_GTK"; then
1798
1799 AC_MSG_CHECKING(--with-gtk-prefix argument)
1800 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
1801 gtk_config_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1802 gtk_config_prefix=""; AC_MSG_RESULT(no))
1803
1804 AC_MSG_CHECKING(--with-gtk-exec-prefix argument)
1805 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
1806 gtk_config_exec_prefix="$withval"; AC_MSG_RESULT($gtk_config_prefix),
1807 gtk_config_exec_prefix=""; AC_MSG_RESULT(no))
1808
1809 AC_MSG_CHECKING(--disable-gtktest argument)
1810 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
1811 , enable_gtktest=yes)
1812 if test "x$enable_gtktest" = "xyes" ; then
1813 AC_MSG_RESULT(gtk test enabled)
1814 else
1815 AC_MSG_RESULT(gtk test disabled)
1816 fi
1817
1818 if test "x$gtk_config_prefix" != "x" ; then
1819 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
1820 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
1821 fi
1822 if test "x$gtk_config_exec_prefix" != "x" ; then
1823 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
1824 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
1825 fi
1826 if test "X$GTK_CONFIG" = "X"; then
1827 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
1828 if test "X$GTK_CONFIG" = "Xno"; then
1829 dnl Some distributions call it gtk12-config, annoying!
1830 AC_PATH_PROG(GTK12_CONFIG, gtk12-config, no)
1831 GTK_CONFIG="$GTK12_CONFIG"
1832 fi
1833 else
1834 AC_MSG_RESULT(Using GTK configuration program $GTK_CONFIG)
1835 fi
1836 if test "X$PKG_CONFIG" = "X"; then
1837 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1838 fi
1839
1840 if test "x$GTK_CONFIG:$PKG_CONFIG" != "xno:no"; then
1841 dnl First try finding version 2.2.0 or later. The 2.0.x series has
1842 dnl problems (bold fonts, --remote doesn't work).
1843 if test "X$SKIP_GTK2" != "XYES"; then
1844 AM_PATH_GTK(2.2.0,
Bram Moolenaar7b0294c2004-10-11 10:16:09 +00001845 [GUI_LIB_LOC="$GTK_LIBDIR"
1846 GTK_LIBNAME="$GTK_LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00001847 GUI_INC_LOC="$GTK_CFLAGS"], )
1848 if test "x$GTK_CFLAGS" != "x"; then
1849 SKIP_ATHENA=YES
1850 SKIP_NEXTAW=YES
1851 SKIP_MOTIF=YES
1852 GUITYPE=GTK
1853 AC_SUBST(GTK_LIBNAME)
1854 fi
1855 fi
1856
1857 dnl If there is no 2.2.0 or later try the 1.x.x series. We require at
1858 dnl least GTK 1.1.16. 1.0.6 doesn't work. 1.1.1 to 1.1.15
1859 dnl were test versions.
1860 if test "x$GUITYPE" != "xGTK"; then
1861 SKIP_GTK2=YES
1862 AM_PATH_GTK(1.1.16,
1863 [GTK_LIBNAME="$GTK_LIBS"
1864 GUI_INC_LOC="$GTK_CFLAGS"], )
1865 if test "x$GTK_CFLAGS" != "x"; then
1866 SKIP_ATHENA=YES
1867 SKIP_NEXTAW=YES
1868 SKIP_MOTIF=YES
1869 GUITYPE=GTK
1870 AC_SUBST(GTK_LIBNAME)
1871 fi
1872 fi
1873 fi
1874 dnl Give a warning if GTK is older than 1.2.3
1875 if test "x$GUITYPE" = "xGTK"; then
1876 if test "$gtk_major_version" = 1 -a "0$gtk_minor_version" -lt 2 \
1877 -o "$gtk_major_version" = 1 -a "$gtk_minor_version" = 2 -a "0$gtk_micro_version" -lt 3; then
1878 AC_MSG_RESULT(this GTK version is old; version 1.2.3 or later is recommended)
1879 else
1880 {
1881 if test "0$gtk_major_version" -ge 2; then
1882 AC_DEFINE(HAVE_GTK2)
1883 if test "$gtk_minor_version" = 1 -a "0$gtk_micro_version" -ge 1 \
1884 || test "0$gtk_minor_version" -ge 2 \
1885 || test "0$gtk_major_version" -gt 2; then
1886 AC_DEFINE(HAVE_GTK_MULTIHEAD)
1887 fi
1888 fi
1889 dnl
1890 dnl if GTK exists, and it's not the 1.0.x series, then check for GNOME.
1891 dnl
1892 if test -z "$SKIP_GNOME"; then
1893 {
1894 GNOME_INIT_HOOK([have_gnome=yes])
1895 if test x$have_gnome = xyes ; then
1896 AC_DEFINE(FEAT_GUI_GNOME)
1897 GUI_INC_LOC="$GUI_INC_LOC $GNOME_INCLUDEDIR"
1898 GTK_LIBNAME="$GTK_LIBNAME $GNOME_LIBDIR $GNOME_LIBS"
1899 fi
1900 }
1901 fi
1902 }
1903 fi
1904 fi
1905fi
1906
1907dnl Check for Motif include files location.
1908dnl The LAST one found is used, this makes the highest version to be used,
1909dnl e.g. when Motif1.2 and Motif2.0 are both present.
1910
1911if test -z "$SKIP_MOTIF"; then
1912 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"
1913 dnl Remove "-I" from before $GUI_INC_LOC if it's there
1914 GUI_INC_LOC="`echo $GUI_INC_LOC|sed 's%-I%%g'`"
1915
1916 AC_MSG_CHECKING(for location of Motif GUI includes)
1917 gui_includes="`echo $x_includes|sed 's%/[^/][^/]*$%%'` `echo "$gui_XXX" | sed s/XXX/include/g` $GUI_INC_LOC"
1918 GUI_INC_LOC=
1919 for try in $gui_includes; do
1920 if test -f "$try/Xm/Xm.h"; then
1921 GUI_INC_LOC=$try
1922 fi
1923 done
1924 if test -n "$GUI_INC_LOC"; then
1925 if test "$GUI_INC_LOC" = /usr/include; then
1926 GUI_INC_LOC=
1927 AC_MSG_RESULT(in default path)
1928 else
1929 AC_MSG_RESULT($GUI_INC_LOC)
1930 fi
1931 else
1932 AC_MSG_RESULT(<not found>)
1933 SKIP_MOTIF=YES
1934 fi
1935fi
1936
1937dnl Check for Motif library files location. In the same order as the include
1938dnl files, to avoid a mixup if several versions are present
1939
1940if test -z "$SKIP_MOTIF"; then
1941 AC_MSG_CHECKING(--with-motif-lib argument)
1942 AC_ARG_WITH(motif-lib,
1943 [ --with-motif-lib=STRING Library for Motif ],
1944 [ MOTIF_LIBNAME="${withval}" ] )
1945
1946 if test -n "$MOTIF_LIBNAME"; then
1947 AC_MSG_RESULT($MOTIF_LIBNAME)
1948 GUI_LIB_LOC=
1949 else
1950 AC_MSG_RESULT(no)
1951
1952 dnl Remove "-L" from before $GUI_LIB_LOC if it's there
1953 GUI_LIB_LOC="`echo $GUI_LIB_LOC|sed 's%-L%%g'`"
1954
1955 AC_MSG_CHECKING(for location of Motif GUI libs)
1956 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"
1957 GUI_LIB_LOC=
1958 for try in $gui_libs; do
Bram Moolenaar325b7a22004-07-05 15:58:32 +00001959 for libtry in "$try"/libXm.a "$try"/libXm.so* "$try"/libXm.sl "$try"/libXm.dylib; do
Bram Moolenaar071d4272004-06-13 20:20:40 +00001960 if test -f "$libtry"; then
1961 GUI_LIB_LOC=$try
1962 fi
1963 done
1964 done
1965 if test -n "$GUI_LIB_LOC"; then
1966 dnl Remove /usr/lib, it causes trouble on some systems
1967 if test "$GUI_LIB_LOC" = /usr/lib; then
1968 GUI_LIB_LOC=
1969 AC_MSG_RESULT(in default path)
1970 else
1971 if test -n "$GUI_LIB_LOC"; then
1972 AC_MSG_RESULT($GUI_LIB_LOC)
1973 if test "`(uname) 2>/dev/null`" = SunOS &&
1974 uname -r | grep '^5' >/dev/null; then
1975 GUI_LIB_LOC="$GUI_LIB_LOC -R $GUI_LIB_LOC"
1976 fi
1977 fi
1978 fi
1979 MOTIF_LIBNAME=-lXm
1980 else
1981 AC_MSG_RESULT(<not found>)
1982 SKIP_MOTIF=YES
1983 fi
1984 fi
1985fi
1986
1987if test -z "$SKIP_MOTIF"; then
1988 SKIP_ATHENA=YES
1989 SKIP_NEXTAW=YES
1990 GUITYPE=MOTIF
1991 AC_SUBST(MOTIF_LIBNAME)
1992fi
1993
1994dnl Check if the Athena files can be found
1995
1996GUI_X_LIBS=
1997
1998if test -z "$SKIP_ATHENA"; then
1999 AC_MSG_CHECKING(if Athena header files can be found)
2000 cflags_save=$CFLAGS
2001 CFLAGS="$CFLAGS $X_CFLAGS"
2002 AC_TRY_COMPILE([
2003#include <X11/Intrinsic.h>
2004#include <X11/Xaw/Paned.h>], ,
2005 AC_MSG_RESULT(yes),
2006 AC_MSG_RESULT(no); SKIP_ATHENA=YES )
2007 CFLAGS=$cflags_save
2008fi
2009
2010if test -z "$SKIP_ATHENA"; then
2011 GUITYPE=ATHENA
2012fi
2013
2014if test -z "$SKIP_NEXTAW"; then
2015 AC_MSG_CHECKING(if neXtaw header files can be found)
2016 cflags_save=$CFLAGS
2017 CFLAGS="$CFLAGS $X_CFLAGS"
2018 AC_TRY_COMPILE([
2019#include <X11/Intrinsic.h>
2020#include <X11/neXtaw/Paned.h>], ,
2021 AC_MSG_RESULT(yes),
2022 AC_MSG_RESULT(no); SKIP_NEXTAW=YES )
2023 CFLAGS=$cflags_save
2024fi
2025
2026if test -z "$SKIP_NEXTAW"; then
2027 GUITYPE=NEXTAW
2028fi
2029
2030if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2031 dnl Prepend -I and -L to $GUI_INC_LOC and $GUI_LIB_LOC if not empty
2032 dnl Avoid adding it when it twice
2033 if test -n "$GUI_INC_LOC"; then
2034 GUI_INC_LOC=-I"`echo $GUI_INC_LOC|sed 's%-I%%'`"
2035 fi
2036 if test -n "$GUI_LIB_LOC"; then
2037 GUI_LIB_LOC=-L"`echo $GUI_LIB_LOC|sed 's%-L%%'`"
2038 fi
2039
2040 dnl Check for -lXext and then for -lXmu
2041 ldflags_save=$LDFLAGS
2042 LDFLAGS="$X_LIBS $LDFLAGS"
2043 AC_CHECK_LIB(Xext, XShapeQueryExtension, [GUI_X_LIBS="-lXext"],,
2044 [-lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2045 dnl For Solaris we need -lw and -ldl before linking with -lXmu works.
2046 AC_CHECK_LIB(w, wslen, [X_EXTRA_LIBS="$X_EXTRA_LIBS -lw"],,
2047 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2048 AC_CHECK_LIB(dl, dlsym, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldl"],,
2049 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2050 AC_CHECK_LIB(Xmu, XmuCreateStippledPixmap, [GUI_X_LIBS="-lXmu $GUI_X_LIBS"],,
2051 [$GUI_X_LIBS -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2052 if test -z "$SKIP_MOTIF"; then
2053 AC_CHECK_LIB(Xp, XpEndJob, [GUI_X_LIBS="-lXp $GUI_X_LIBS"],,
2054 [$GUI_X_LIBS -lXm -lXt $X_PRE_LIBS -lX11 $X_EXTRA_LIBS])
2055 fi
2056 LDFLAGS=$ldflags_save
2057
2058 dnl Execute xmkmf to figure out if -DNARROWPROTO is needed.
2059 AC_MSG_CHECKING(for extra X11 defines)
2060 NARROW_PROTO=
2061 rm -fr conftestdir
2062 if mkdir conftestdir; then
2063 cd conftestdir
2064 cat > Imakefile <<'EOF'
2065acfindx:
2066 @echo 'NARROW_PROTO="${PROTO_DEFINES}"'
2067EOF
2068 if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
2069 eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
2070 fi
2071 cd ..
2072 rm -fr conftestdir
2073 fi
2074 if test -z "$NARROW_PROTO"; then
2075 AC_MSG_RESULT(no)
2076 else
2077 AC_MSG_RESULT($NARROW_PROTO)
2078 fi
2079 AC_SUBST(NARROW_PROTO)
2080fi
2081
2082dnl Look for XSMP support - but don't necessarily restrict it to X11 GUIs
2083dnl use the X11 include path
2084if test "$enable_xsmp" = "yes"; then
2085 cppflags_save=$CPPFLAGS
2086 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2087 AC_CHECK_HEADERS(X11/SM/SMlib.h)
2088 CPPFLAGS=$cppflags_save
2089fi
2090
2091
2092if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF" -o -z "$SKIP_GTK"; then
2093 dnl Check for X11/xpm.h and X11/Sunkeysym.h with the GUI include path
2094 cppflags_save=$CPPFLAGS
2095 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2096 AC_CHECK_HEADERS(X11/xpm.h X11/Sunkeysym.h)
2097
2098 dnl automatically disable XIM when XIMtext isn't in X11/Xlib.h
2099 if test ! "$enable_xim" = "no"; then
2100 AC_MSG_CHECKING(for XIMText in X11/Xlib.h)
2101 AC_EGREP_CPP(XIMText, [#include <X11/Xlib.h>],
2102 AC_MSG_RESULT(yes),
2103 AC_MSG_RESULT(no; xim has been disabled); enable_xim = "no")
2104 fi
2105 CPPFLAGS=$cppflags_save
2106
2107 dnl automatically enable XIM when hangul input isn't enabled
2108 if test "$enable_xim" = "auto" -a "$enable_hangulinput" != "yes" \
2109 -a "x$GUITYPE" != "xNONE" ; then
2110 AC_MSG_RESULT(X GUI selected; xim has been enabled)
2111 enable_xim="yes"
2112 fi
2113fi
2114
2115if test -z "$SKIP_ATHENA" -o -z "$SKIP_NEXTAW" -o -z "$SKIP_MOTIF"; then
2116 cppflags_save=$CPPFLAGS
2117 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2118 AC_CHECK_HEADERS(X11/Xmu/Editres.h)
2119 CPPFLAGS=$cppflags_save
2120fi
2121
2122dnl Only use the Xm directory when compiling Motif, don't use it for Athena
2123if test -z "$SKIP_MOTIF"; then
2124 cppflags_save=$CPPFLAGS
2125 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2126 AC_CHECK_HEADERS(Xm/Xm.h Xm/XpmP.h)
2127 CPPFLAGS=$cppflags_save
2128fi
2129
2130if test "x$GUITYPE" = "xNONE" -a "$enable_xim" = "yes"; then
2131 AC_MSG_RESULT(no GUI selected; xim has been disabled)
2132 enable_xim="no"
2133fi
2134if test "x$GUITYPE" = "xNONE" -a "$enable_fontset" = "yes"; then
2135 AC_MSG_RESULT(no GUI selected; fontset has been disabled)
2136 enable_fontset="no"
2137fi
2138if test "x$GUITYPE:$enable_fontset" = "xGTK:yes" -a "0$gtk_major_version" -ge 2; then
2139 AC_MSG_RESULT(GTK+ 2 GUI selected; fontset has been disabled)
2140 enable_fontset="no"
2141fi
Bram Moolenaar81695252004-12-29 20:58:21 +00002142if test "x$GUITYPE:$enable_fontset" = "xKDE:yes"; then
2143 AC_MSG_RESULT(KDE GUI selected; fontset has been disabled)
2144 enable_fontset="no"
2145fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002146
Bram Moolenaar071d4272004-06-13 20:20:40 +00002147if test -z "$SKIP_PHOTON"; then
2148 GUITYPE=PHOTONGUI
2149fi
2150
2151AC_SUBST(GUI_INC_LOC)
2152AC_SUBST(GUI_LIB_LOC)
2153AC_SUBST(GUITYPE)
2154AC_SUBST(GUI_X_LIBS)
2155
2156if test "$enable_workshop" = "yes" -a -n "$SKIP_MOTIF"; then
2157 AC_MSG_ERROR([cannot use workshop without Motif])
2158fi
2159
2160dnl defining FEAT_XIM and FEAT_XFONTSET is delayed, so that they can be disabled
2161if test "$enable_xim" = "yes"; then
2162 AC_DEFINE(FEAT_XIM)
2163fi
2164if test "$enable_fontset" = "yes"; then
2165 AC_DEFINE(FEAT_XFONTSET)
2166fi
2167
2168
2169dnl ---------------------------------------------------------------------------
2170dnl end of GUI-checking
2171dnl ---------------------------------------------------------------------------
2172
2173
2174dnl Only really enable hangul input when GUI and XFONTSET are available
2175if test "$enable_hangulinput" = "yes"; then
2176 if test "x$GUITYPE" = "xNONE"; then
2177 AC_MSG_RESULT(no GUI selected; hangul input has been disabled)
2178 enable_hangulinput=no
2179 else
2180 AC_DEFINE(FEAT_HANGULIN)
2181 HANGULIN_SRC=hangulin.c
2182 AC_SUBST(HANGULIN_SRC)
2183 HANGULIN_OBJ=objects/hangulin.o
2184 AC_SUBST(HANGULIN_OBJ)
2185 fi
2186fi
2187
2188dnl Checks for libraries and include files.
2189
2190AC_MSG_CHECKING(quality of toupper)
2191AC_TRY_RUN([#include <ctype.h>
2192main() { exit(toupper('A') == 'A' && tolower('z') == 'z'); }],
2193 AC_DEFINE(BROKEN_TOUPPER) AC_MSG_RESULT(bad),
2194 AC_MSG_RESULT(good), AC_MSG_ERROR(failed to compile test program))
2195
2196AC_MSG_CHECKING(whether __DATE__ and __TIME__ work)
2197AC_TRY_COMPILE(, [printf("(" __DATE__ " " __TIME__ ")");],
2198 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_DATE_TIME),
2199 AC_MSG_RESULT(no))
2200
2201dnl Checks for header files.
2202AC_CHECK_HEADER(elf.h, HAS_ELF=1)
2203dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
2204if test "$HAS_ELF" = 1; then
2205 AC_CHECK_LIB(elf, main)
2206fi
2207
2208AC_HEADER_DIRENT
2209
2210dnl check for standard headers, we don't use this in Vim but other stuff
2211dnl in autoconf needs it
2212AC_HEADER_STDC
2213AC_HEADER_SYS_WAIT
2214
2215dnl If sys/wait.h is not found it might still exist but not be POSIX
2216dnl compliant. In that case we define HAVE_UNION_WAIT (for NeXT)
2217if test $ac_cv_header_sys_wait_h = no; then
2218 AC_MSG_CHECKING([for sys/wait.h that defines union wait])
2219 AC_TRY_COMPILE([#include <sys/wait.h>],
2220 [union wait xx, yy; xx = yy],
2221 AC_MSG_RESULT(yes)
2222 AC_DEFINE(HAVE_SYS_WAIT_H)
2223 AC_DEFINE(HAVE_UNION_WAIT),
2224 AC_MSG_RESULT(no))
2225fi
2226
2227AC_CHECK_HEADERS(stdarg.h stdlib.h string.h sys/select.h sys/utsname.h \
2228 termcap.h fcntl.h sgtty.h sys/ioctl.h sys/time.h termio.h \
2229 iconv.h langinfo.h unistd.h stropts.h errno.h \
2230 sys/resource.h sys/systeminfo.h locale.h \
2231 sys/stream.h sys/ptem.h termios.h libc.h sys/statfs.h \
2232 poll.h sys/poll.h pwd.h utime.h sys/param.h libintl.h \
2233 libgen.h util/debug.h util/msg18n.h frame.h pthread_np.h \
2234 sys/acl.h sys/access.h sys/sysctl.h sys/sysinfo.h wchar.h)
2235
2236dnl On Mac OS X strings.h exists but produces a warning message :-(
2237if test "x$MACOSX" != "xyes"; then
2238 AC_CHECK_HEADERS(strings.h)
2239fi
2240
2241dnl Check if strings.h and string.h can both be included when defined.
2242AC_MSG_CHECKING([if strings.h can be included after string.h])
2243cppflags_save=$CPPFLAGS
2244CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2245AC_TRY_COMPILE([
2246#if defined(_AIX) && !defined(_AIX51) && !defined(_NO_PROTO)
2247# define _NO_PROTO /* like in os_unix.h, causes conflict for AIX (Winn) */
2248 /* but don't do it on AIX 5.1 (Uribarri) */
2249#endif
2250#ifdef HAVE_XM_XM_H
2251# include <Xm/Xm.h> /* This breaks it for HP-UX 11 (Squassabia) */
2252#endif
2253#ifdef HAVE_STRING_H
2254# include <string.h>
2255#endif
2256#if defined(HAVE_STRINGS_H)
2257# include <strings.h>
2258#endif
2259 ], [int i; i = 0;],
2260 AC_MSG_RESULT(yes),
2261 AC_DEFINE(NO_STRINGS_WITH_STRING_H)
2262 AC_MSG_RESULT(no))
2263CPPFLAGS=$cppflags_save
2264
2265dnl Checks for typedefs, structures, and compiler characteristics.
2266AC_PROG_GCC_TRADITIONAL
2267AC_C_CONST
2268AC_TYPE_MODE_T
2269AC_TYPE_OFF_T
2270AC_TYPE_PID_T
2271AC_TYPE_SIZE_T
2272AC_TYPE_UID_T
2273AC_HEADER_TIME
2274AC_CHECK_TYPE(ino_t, long)
2275AC_CHECK_TYPE(dev_t, unsigned)
2276
2277AC_MSG_CHECKING(for rlim_t)
2278if eval "test \"`echo '$''{'ac_cv_type_rlim_t'+set}'`\" = set"; then
2279 AC_MSG_RESULT([(cached) $ac_cv_type_rlim_t])
2280else
2281 AC_EGREP_CPP(dnl
2282changequote(<<,>>)dnl
2283<<(^|[^a-zA-Z_0-9])rlim_t[^a-zA-Z_0-9]>>dnl
2284changequote([,]),
2285 [
2286#include <sys/types.h>
2287#if STDC_HEADERS
2288#include <stdlib.h>
2289#include <stddef.h>
2290#endif
2291#ifdef HAVE_SYS_RESOURCE_H
2292#include <sys/resource.h>
2293#endif
2294 ], ac_cv_type_rlim_t=yes, ac_cv_type_rlim_t=no)
2295 AC_MSG_RESULT($ac_cv_type_rlim_t)
2296fi
2297if test $ac_cv_type_rlim_t = no; then
2298 cat >> confdefs.h <<\EOF
2299#define rlim_t unsigned long
2300EOF
2301fi
2302
2303AC_MSG_CHECKING(for stack_t)
2304if eval "test \"`echo '$''{'ac_cv_type_stack_t'+set}'`\" = set"; then
2305 AC_MSG_RESULT([(cached) $ac_cv_type_stack_t])
2306else
2307 AC_EGREP_CPP(stack_t,
2308 [
2309#include <sys/types.h>
2310#if STDC_HEADERS
2311#include <stdlib.h>
2312#include <stddef.h>
2313#endif
2314#include <signal.h>
2315 ], ac_cv_type_stack_t=yes, ac_cv_type_stack_t=no)
2316 AC_MSG_RESULT($ac_cv_type_stack_t)
2317fi
2318if test $ac_cv_type_stack_t = no; then
2319 cat >> confdefs.h <<\EOF
2320#define stack_t struct sigaltstack
2321EOF
2322fi
2323
2324dnl BSDI uses ss_base while others use ss_sp for the stack pointer.
2325AC_MSG_CHECKING(whether stack_t has an ss_base field)
2326AC_TRY_COMPILE([
2327#include <sys/types.h>
2328#if STDC_HEADERS
2329#include <stdlib.h>
2330#include <stddef.h>
2331#endif
2332#include <signal.h>
2333#include "confdefs.h"
2334 ], [stack_t sigstk; sigstk.ss_base = 0; ],
2335 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SS_BASE),
2336 AC_MSG_RESULT(no))
2337
2338olibs="$LIBS"
2339AC_MSG_CHECKING(--with-tlib argument)
2340AC_ARG_WITH(tlib, [ --with-tlib=library terminal library to be used ],)
2341if test -n "$with_tlib"; then
2342 AC_MSG_RESULT($with_tlib)
2343 LIBS="$LIBS -l$with_tlib"
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002344 AC_MSG_CHECKING(for linking with $with_tlib library)
2345 AC_TRY_LINK([], [], AC_MSG_RESULT(OK), AC_MSG_ERROR(FAILED))
2346 dnl Need to check for tgetent() below.
2347 olibs="$LIBS"
Bram Moolenaar071d4272004-06-13 20:20:40 +00002348else
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002349 AC_MSG_RESULT([empty: automatic terminal library selection])
Bram Moolenaar071d4272004-06-13 20:20:40 +00002350 dnl On HP-UX 10.10 termcap or termlib should be used instead of
2351 dnl curses, because curses is much slower.
2352 dnl Newer versions of ncurses are preferred over anything.
2353 dnl Older versions of ncurses have bugs, get a new one!
2354 dnl Digital Unix (OSF1) should use curses (Ronald Schild).
2355 case "`uname -s 2>/dev/null`" in
2356 OSF1) tlibs="ncurses curses termlib termcap";;
2357 *) tlibs="ncurses termlib termcap curses";;
2358 esac
2359 for libname in $tlibs; do
2360 AC_CHECK_LIB(${libname}, tgetent,,)
2361 if test "x$olibs" != "x$LIBS"; then
2362 dnl It's possible that a library is found but it doesn't work
2363 dnl e.g., shared library that cannot be found
2364 dnl compile and run a test program to be sure
2365 AC_TRY_RUN([
2366#ifdef HAVE_TERMCAP_H
2367# include <termcap.h>
2368#endif
2369main() {char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(0); }],
2370 res="OK", res="FAIL", res="FAIL")
2371 if test "$res" = "OK"; then
2372 break
2373 fi
2374 AC_MSG_RESULT($libname library is not usable)
2375 LIBS="$olibs"
2376 fi
2377 done
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002378 if test "x$olibs" = "x$LIBS"; then
2379 AC_MSG_RESULT(no terminal library found)
2380 fi
Bram Moolenaar071d4272004-06-13 20:20:40 +00002381fi
Bram Moolenaar1cd871b2004-12-19 22:46:22 +00002382
2383if test "x$olibs" = "x$LIBS"; then
2384 AC_MSG_CHECKING([for tgetent()])
2385 AC_TRY_LINK([],
2386 [char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist");],
2387 AC_MSG_RESULT(yes),
2388 AC_MSG_ERROR([NOT FOUND!
2389 You need to install a terminal library; for example ncurses.
2390 Or specify the name of the library with --with-tlib.]))
2391fi
2392
2393AC_MSG_CHECKING(whether we talk terminfo)
2394AC_TRY_RUN([
Bram Moolenaar071d4272004-06-13 20:20:40 +00002395#ifdef HAVE_TERMCAP_H
2396# include <termcap.h>
2397#endif
2398main()
2399{char *s; s=(char *)tgoto("%p1%d", 0, 1); exit(!strcmp(s==0 ? "" : s, "1")); }],
2400 AC_MSG_RESULT([no -- we are in termcap land]),
2401 AC_MSG_RESULT([yes -- terminfo spoken here]); AC_DEFINE(TERMINFO),
2402 AC_MSG_ERROR(failed to compile test program.))
Bram Moolenaar071d4272004-06-13 20:20:40 +00002403
2404if test "x$olibs" != "x$LIBS"; then
2405 AC_MSG_CHECKING(what tgetent() returns for an unknown terminal)
2406 AC_TRY_RUN([
2407#ifdef HAVE_TERMCAP_H
2408# include <termcap.h>
2409#endif
2410main()
2411{char s[10000]; int res = tgetent(s, "thisterminaldoesnotexist"); exit(res != 0); }],
2412 AC_MSG_RESULT(zero); AC_DEFINE(TGETENT_ZERO_ERR, 0),
2413 AC_MSG_RESULT(non-zero),
2414 AC_MSG_ERROR(failed to compile test program.))
2415fi
2416
2417AC_MSG_CHECKING(whether termcap.h contains ospeed)
2418AC_TRY_LINK([
2419#ifdef HAVE_TERMCAP_H
2420# include <termcap.h>
2421#endif
2422 ], [ospeed = 20000],
2423 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OSPEED),
2424 [AC_MSG_RESULT(no)
2425 AC_MSG_CHECKING(whether ospeed can be extern)
2426 AC_TRY_LINK([
2427#ifdef HAVE_TERMCAP_H
2428# include <termcap.h>
2429#endif
2430extern short ospeed;
2431 ], [ospeed = 20000],
2432 AC_MSG_RESULT(yes); AC_DEFINE(OSPEED_EXTERN),
2433 AC_MSG_RESULT(no))]
2434 )
2435
2436AC_MSG_CHECKING([whether termcap.h contains UP, BC and PC])
2437AC_TRY_LINK([
2438#ifdef HAVE_TERMCAP_H
2439# include <termcap.h>
2440#endif
2441 ], [if (UP == 0 && BC == 0) PC = 1],
2442 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_UP_BC_PC),
2443 [AC_MSG_RESULT(no)
2444 AC_MSG_CHECKING([whether UP, BC and PC can be extern])
2445 AC_TRY_LINK([
2446#ifdef HAVE_TERMCAP_H
2447# include <termcap.h>
2448#endif
2449extern char *UP, *BC, PC;
2450 ], [if (UP == 0 && BC == 0) PC = 1],
2451 AC_MSG_RESULT(yes); AC_DEFINE(UP_BC_PC_EXTERN),
2452 AC_MSG_RESULT(no))]
2453 )
2454
2455AC_MSG_CHECKING(whether tputs() uses outfuntype)
2456AC_TRY_COMPILE([
2457#ifdef HAVE_TERMCAP_H
2458# include <termcap.h>
2459#endif
2460 ], [extern int xx(); tputs("test", 1, (outfuntype)xx)],
2461 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_OUTFUNTYPE),
2462 AC_MSG_RESULT(no))
2463
2464dnl On some SCO machines sys/select redefines struct timeval
2465AC_MSG_CHECKING([whether sys/select.h and sys/time.h may both be included])
2466AC_TRY_COMPILE([
2467#include <sys/types.h>
2468#include <sys/time.h>
2469#include <sys/select.h>], ,
2470 AC_MSG_RESULT(yes)
2471 AC_DEFINE(SYS_SELECT_WITH_SYS_TIME),
2472 AC_MSG_RESULT(no))
2473
2474dnl AC_DECL_SYS_SIGLIST
2475
2476dnl Checks for pty.c (copied from screen) ==========================
2477AC_MSG_CHECKING(for /dev/ptc)
2478if test -r /dev/ptc; then
2479 AC_DEFINE(HAVE_DEV_PTC)
2480 AC_MSG_RESULT(yes)
2481else
2482 AC_MSG_RESULT(no)
2483fi
2484
2485AC_MSG_CHECKING(for SVR4 ptys)
2486if test -c /dev/ptmx ; then
2487 AC_TRY_LINK([], [ptsname(0);grantpt(0);unlockpt(0);],
2488 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SVR4_PTYS),
2489 AC_MSG_RESULT(no))
2490else
2491 AC_MSG_RESULT(no)
2492fi
2493
2494AC_MSG_CHECKING(for ptyranges)
2495if test -d /dev/ptym ; then
2496 pdir='/dev/ptym'
2497else
2498 pdir='/dev'
2499fi
2500dnl SCO uses ptyp%d
2501AC_EGREP_CPP(yes,
2502[#ifdef M_UNIX
2503 yes;
2504#endif
2505 ], ptys=`echo /dev/ptyp??`, ptys=`echo $pdir/pty??`)
2506dnl if test -c /dev/ptyp19; then
2507dnl ptys=`echo /dev/ptyp??`
2508dnl else
2509dnl ptys=`echo $pdir/pty??`
2510dnl fi
2511if test "$ptys" != "$pdir/pty??" ; then
2512 p0=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\).$/\1/g' | sort -u | tr -d '\012'`
2513 p1=`echo $ptys | tr ' ' '\012' | sed -e 's/^.*\(.\)$/\1/g' | sort -u | tr -d '\012'`
2514 AC_DEFINE_UNQUOTED(PTYRANGE0,"$p0")
2515 AC_DEFINE_UNQUOTED(PTYRANGE1,"$p1")
2516 AC_MSG_RESULT([$p0 / $p1])
2517else
2518 AC_MSG_RESULT([don't know])
2519fi
2520
2521dnl **** pty mode/group handling ****
2522dnl
2523dnl support provided by Luke Mewburn <lm@rmit.edu.au>, 931222
2524AC_MSG_CHECKING(default tty permissions/group)
2525rm -f conftest_grp
2526AC_TRY_RUN([
2527#include <sys/types.h>
2528#include <sys/stat.h>
2529#include <stdio.h>
2530main()
2531{
2532 struct stat sb;
2533 char *x,*ttyname();
2534 int om, m;
2535 FILE *fp;
2536
2537 if (!(x = ttyname(0))) exit(1);
2538 if (stat(x, &sb)) exit(1);
2539 om = sb.st_mode;
2540 if (om & 002) exit(0);
2541 m = system("mesg y");
2542 if (m == -1 || m == 127) exit(1);
2543 if (stat(x, &sb)) exit(1);
2544 m = sb.st_mode;
2545 if (chmod(x, om)) exit(1);
2546 if (m & 002) exit(0);
2547 if (sb.st_gid == getgid()) exit(1);
2548 if (!(fp=fopen("conftest_grp", "w")))
2549 exit(1);
2550 fprintf(fp, "%d\n", sb.st_gid);
2551 fclose(fp);
2552 exit(0);
2553}
2554],[
2555 if test -f conftest_grp; then
2556 ptygrp=`cat conftest_grp`
2557 AC_MSG_RESULT([pty mode: 0620, group: $ptygrp])
2558 AC_DEFINE(PTYMODE, 0620)
2559 AC_DEFINE_UNQUOTED(PTYGROUP,$ptygrp)
2560 else
2561 AC_MSG_RESULT([ptys are world accessable])
2562 fi
2563],
2564 AC_MSG_RESULT([can't determine - assume ptys are world accessable]),
2565 AC_MSG_ERROR(failed to compile test program))
2566rm -f conftest_grp
2567
2568dnl Checks for library functions. ===================================
2569
2570AC_TYPE_SIGNAL
2571
2572dnl find out what to use at the end of a signal function
2573if test $ac_cv_type_signal = void; then
2574 AC_DEFINE(SIGRETURN, [return])
2575else
2576 AC_DEFINE(SIGRETURN, [return 0])
2577fi
2578
2579dnl check if struct sigcontext is defined (used for SGI only)
2580AC_MSG_CHECKING(for struct sigcontext)
2581AC_TRY_COMPILE([
2582#include <signal.h>
2583test_sig()
2584{
2585 struct sigcontext *scont;
2586 scont = (struct sigcontext *)0;
2587 return 1;
2588} ], ,
2589 AC_MSG_RESULT(yes)
2590 AC_DEFINE(HAVE_SIGCONTEXT),
2591 AC_MSG_RESULT(no))
2592
2593dnl tricky stuff: try to find out if getcwd() is implemented with
2594dnl system("sh -c pwd")
2595AC_MSG_CHECKING(getcwd implementation)
2596AC_TRY_RUN([
2597char *dagger[] = { "IFS=pwd", 0 };
2598main()
2599{
2600 char buffer[500];
2601 extern char **environ;
2602 environ = dagger;
2603 return getcwd(buffer, 500) ? 0 : 1;
2604}],
2605 AC_MSG_RESULT(it is usable),
2606 AC_MSG_RESULT(it stinks)
2607 AC_DEFINE(BAD_GETCWD),
2608 AC_MSG_ERROR(failed to compile test program))
2609
2610dnl Check for functions in one big call, to reduce the size of configure
2611AC_CHECK_FUNCS(bcmp fchdir fchown fseeko fsync ftello getcwd getpseudotty \
2612 getpwnam getpwuid getrlimit gettimeofday getwd lstat memcmp \
2613 memset nanosleep opendir putenv qsort readlink select setenv \
2614 setpgid setsid sigaltstack sigstack sigset sigsetjmp sigaction \
2615 sigvec snprintf strcasecmp strerror strftime stricmp strncasecmp \
2616 strnicmp strpbrk strtol tgetent towlower towupper usleep utime utimes)
2617
2618dnl fstatfs() can take 2 to 4 arguments, try to use st_blksize if possible
2619AC_MSG_CHECKING(for st_blksize)
2620AC_TRY_COMPILE(
2621[#include <sys/types.h>
2622#include <sys/stat.h>],
2623[ struct stat st;
2624 int n;
2625
2626 stat("/", &st);
2627 n = (int)st.st_blksize;],
2628 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ST_BLKSIZE),
2629 AC_MSG_RESULT(no))
2630
2631AC_MSG_CHECKING(whether stat() ignores a trailing slash)
2632AC_TRY_RUN(
2633[#include <sys/types.h>
2634#include <sys/stat.h>
2635main() {struct stat st; exit(stat("configure/", &st) != 0); }],
2636 AC_MSG_RESULT(yes); AC_DEFINE(STAT_IGNORES_SLASH),
2637 AC_MSG_RESULT(no), AC_MSG_ERROR(failed to compile test program))
2638
2639dnl Link with iconv for charset translation, if not found without library.
2640dnl check for iconv() requires including iconv.h
2641dnl Add "-liconv" when possible; Solaris has iconv but use GNU iconv when it
2642dnl has been installed.
2643AC_MSG_CHECKING(for iconv_open())
2644save_LIBS="$LIBS"
2645LIBS="$LIBS -liconv"
2646AC_TRY_LINK([
2647#ifdef HAVE_ICONV_H
2648# include <iconv.h>
2649#endif
2650 ], [iconv_open("fr", "to");],
2651 AC_MSG_RESULT(yes; with -liconv); AC_DEFINE(HAVE_ICONV),
2652 LIBS="$save_LIBS"
2653 AC_TRY_LINK([
2654#ifdef HAVE_ICONV_H
2655# include <iconv.h>
2656#endif
2657 ], [iconv_open("fr", "to");],
2658 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ICONV),
2659 AC_MSG_RESULT(no)))
2660
2661
2662AC_MSG_CHECKING(for nl_langinfo(CODESET))
2663AC_TRY_LINK([
2664#ifdef HAVE_LANGINFO_H
2665# include <langinfo.h>
2666#endif
2667], [char *cs = nl_langinfo(CODESET);],
2668 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_NL_LANGINFO_CODESET),
2669 AC_MSG_RESULT(no))
2670
2671dnl Link with -lposix1e for ACL stuff; if not found, try -lacl for SGI
2672dnl when -lacl works, also try to use -lattr (required for Debian).
2673AC_MSG_CHECKING(--disable-acl argument)
2674AC_ARG_ENABLE(acl,
2675 [ --disable-acl Don't check for ACL support.],
2676 , [enable_acl="yes"])
2677if test "$enable_acl" = "yes"; then
2678AC_MSG_RESULT(no)
2679AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
2680 AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
2681 AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
2682
2683AC_MSG_CHECKING(for POSIX ACL support)
2684AC_TRY_LINK([
2685#include <sys/types.h>
2686#ifdef HAVE_SYS_ACL_H
2687# include <sys/acl.h>
2688#endif
2689acl_t acl;], [acl = acl_get_file("foo", ACL_TYPE_ACCESS);
2690 acl_set_file("foo", ACL_TYPE_ACCESS, acl);
2691 acl_free(acl);],
2692 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_POSIX_ACL),
2693 AC_MSG_RESULT(no))
2694
2695AC_MSG_CHECKING(for Solaris ACL support)
2696AC_TRY_LINK([
2697#ifdef HAVE_SYS_ACL_H
2698# include <sys/acl.h>
2699#endif], [acl("foo", GETACLCNT, 0, NULL);
2700 ],
2701 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SOLARIS_ACL),
2702 AC_MSG_RESULT(no))
2703
2704AC_MSG_CHECKING(for AIX ACL support)
2705AC_TRY_LINK([
2706#ifdef HAVE_SYS_ACL_H
2707# include <sys/acl.h>
2708#endif
2709#ifdef HAVE_SYS_ACCESS_H
2710# include <sys/access.h>
2711#endif
2712#define _ALL_SOURCE
2713
2714#include <sys/stat.h>
2715
2716int aclsize;
2717struct acl *aclent;], [aclsize = sizeof(struct acl);
2718 aclent = (void *)malloc(aclsize);
2719 statacl("foo", STX_NORMAL, aclent, aclsize);
2720 ],
2721 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_AIX_ACL),
2722 AC_MSG_RESULT(no))
2723else
2724 AC_MSG_RESULT(yes)
2725fi
2726
2727AC_MSG_CHECKING(--disable-gpm argument)
2728AC_ARG_ENABLE(gpm,
2729 [ --disable-gpm Don't use gpm (Linux mouse daemon).], ,
2730 [enable_gpm="yes"])
2731
2732if test "$enable_gpm" = "yes"; then
2733 AC_MSG_RESULT(no)
2734 dnl Checking if gpm support can be compiled
2735 AC_CACHE_CHECK([for gpm], vi_cv_have_gpm,
2736 [olibs="$LIBS" ; LIBS="-lgpm"]
2737 AC_TRY_LINK(
2738 [#include <gpm.h>
2739 #include <linux/keyboard.h>],
2740 [Gpm_GetLibVersion(NULL);],
2741 dnl Configure defines HAVE_GPM, if it is defined feature.h defines
2742 dnl FEAT_MOUSE_GPM if mouse support is included
2743 [vi_cv_have_gpm=yes],
2744 [vi_cv_have_gpm=no])
2745 [LIBS="$olibs"]
2746 )
2747 if test $vi_cv_have_gpm = yes; then
2748 LIBS="$LIBS -lgpm"
2749 AC_DEFINE(HAVE_GPM)
2750 fi
2751else
2752 AC_MSG_RESULT(yes)
2753fi
2754
2755AC_MSG_CHECKING(for vsnprintf())
2756AC_TRY_RUN([
2757#include <stdio.h>
2758#include <stdarg.h>
2759 /* Check use of vsnprintf() */
2760 void warn(char *fmt, ...);
2761 void warn(char *fmt, ...)
2762 {
2763 va_list ap; char buf[20];
2764 va_start(ap, fmt);
2765 vsnprintf(buf, 20, fmt, ap);
2766 va_end(ap);
2767 }
2768 main()
2769 {
2770 warn("testing %s\n", "a very long string that won't fit");
2771 exit(0);
2772 }
2773 ],
2774 AC_DEFINE(HAVE_VSNPRINTF) AC_MSG_RESULT(yes),
2775 AC_MSG_RESULT(no),
2776 AC_MSG_ERROR(failed to compile test program))
2777
2778
2779dnl rename needs to be checked separately to work on Nextstep with cc
2780AC_MSG_CHECKING(for rename)
2781AC_TRY_LINK([#include <stdio.h>], [rename("this", "that")],
2782 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_RENAME),
2783 AC_MSG_RESULT(no))
2784
2785dnl sysctl() may exist but not the arguments we use
2786AC_MSG_CHECKING(for sysctl)
2787AC_TRY_COMPILE(
2788[#include <sys/types.h>
2789#include <sys/sysctl.h>],
2790[ int mib[2], r;
2791 size_t len;
2792
2793 mib[0] = CTL_HW;
2794 mib[1] = HW_USERMEM;
2795 len = sizeof(r);
2796 (void)sysctl(mib, 2, &r, &len, (void *)0, (size_t)0);
2797 ],
2798 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCTL),
2799 AC_MSG_RESULT(not usable))
2800
2801dnl sysinfo() may exist but not be Linux compatible
2802AC_MSG_CHECKING(for sysinfo)
2803AC_TRY_COMPILE(
2804[#include <sys/types.h>
2805#include <sys/sysinfo.h>],
2806[ struct sysinfo sinfo;
2807 int t;
2808
2809 (void)sysinfo(&sinfo);
2810 t = sinfo.totalram;
2811 ],
2812 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSINFO),
2813 AC_MSG_RESULT(not usable))
2814
2815dnl sysconf() may exist but not support what we want to use
2816AC_MSG_CHECKING(for sysconf)
2817AC_TRY_COMPILE(
2818[#include <unistd.h>],
2819[ (void)sysconf(_SC_PAGESIZE);
2820 (void)sysconf(_SC_PHYS_PAGES);
2821 ],
2822 AC_MSG_RESULT(yes); AC_DEFINE(HAVE_SYSCONF),
2823 AC_MSG_RESULT(not usable))
2824
2825dnl Our own version of AC_CHECK_SIZEOF(int); fixes a bug when sizeof() can't
2826dnl be printed with "%d", and avoids a warning for cross-compiling.
2827
2828AC_MSG_CHECKING(size of int)
2829AC_CACHE_VAL(ac_cv_sizeof_int,
2830 [AC_TRY_RUN([#include <stdio.h>
2831 main()
2832 {
2833 FILE *f=fopen("conftestval", "w");
2834 if (!f) exit(1);
2835 fprintf(f, "%d\n", (int)sizeof(int));
2836 exit(0);
2837 }],
2838 ac_cv_sizeof_int=`cat conftestval`,
2839 ac_cv_sizeof_int=0,
2840 AC_MSG_ERROR(failed to compile test program))])
2841AC_MSG_RESULT($ac_cv_sizeof_int)
2842AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
2843
2844AC_MSG_CHECKING(whether memmove/bcopy/memcpy handle overlaps)
2845[bcopy_test_prog='
2846main() {
2847 char buf[10];
2848 strcpy(buf, "abcdefghi");
2849 mch_memmove(buf, buf + 2, 3);
2850 if (strncmp(buf, "ababcf", 6))
2851 exit(1);
2852 strcpy(buf, "abcdefghi");
2853 mch_memmove(buf + 2, buf, 3);
2854 if (strncmp(buf, "cdedef", 6))
2855 exit(1);
2856 exit(0); /* libc version works properly. */
2857}']
2858
2859dnl Check for memmove() before bcopy(), makes memmove() be used when both are
2860dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5.
2861
2862AC_TRY_RUN([#define mch_memmove(s,d,l) memmove(d,s,l) $bcopy_test_prog],
2863 AC_DEFINE(USEMEMMOVE) AC_MSG_RESULT(memmove does),
2864 AC_TRY_RUN([#define mch_memmove(s,d,l) bcopy(d,s,l) $bcopy_test_prog],
2865 AC_DEFINE(USEBCOPY) AC_MSG_RESULT(bcopy does),
2866 AC_TRY_RUN([#define mch_memmove(s,d,l) memcpy(d,s,l) $bcopy_test_prog],
2867 AC_DEFINE(USEMEMCPY) AC_MSG_RESULT(memcpy does), AC_MSG_RESULT(no),
2868 AC_MSG_ERROR(failed to compile test program)),
2869 AC_MSG_ERROR(failed to compile test program)),
2870 AC_MSG_ERROR(failed to compile test program))
2871
2872dnl Check for multibyte locale functions
2873dnl Find out if _Xsetlocale() is supported by libX11.
2874dnl Check if X_LOCALE should be defined.
2875
2876if test "$enable_multibyte" = "yes"; then
2877 cflags_save=$CFLAGS
2878 ldflags_save=$LDFLAGS
2879 if test -n "$x_includes" ; then
2880 CFLAGS="$CFLAGS -I$x_includes"
2881 LDFLAGS="$X_LIBS $LDFLAGS -lX11"
2882 AC_MSG_CHECKING(whether X_LOCALE needed)
2883 AC_TRY_COMPILE([#include <X11/Xlocale.h>],,
2884 AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes)
2885 AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)),
2886 AC_MSG_RESULT(no))
2887 fi
2888 CFLAGS=$cflags_save
2889 LDFLAGS=$ldflags_save
2890fi
2891
2892dnl Link with xpg4, it is said to make Korean locale working
2893AC_CHECK_LIB(xpg4, _xpg4_setrunelocale, [LIBS="$LIBS -lxpg4"],,)
2894
2895dnl Check how we can run ctags
2896dnl --version for Exuberant ctags (preferred)
2897dnl -t for typedefs (many ctags have this)
2898dnl -s for static functions (Elvis ctags only?)
2899dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
2900dnl -i+m to test for older Exuberant ctags
2901AC_MSG_CHECKING(how to create tags)
2902test -f tags && mv tags tags.save
2903if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
2904 TAGPRG="ctags"
2905else
2906 (eval etags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
2907 (eval etags -c /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
2908 (eval ctags /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags"
2909 (eval ctags -t /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -t"
2910 (eval ctags -ts /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -ts"
2911 (eval ctags -tvs /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -tvs"
2912 (eval ctags -i+m /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="ctags -i+m"
2913fi
2914test -f tags.save && mv tags.save tags
2915AC_MSG_RESULT($TAGPRG) AC_SUBST(TAGPRG)
2916
2917dnl Check how we can run man with a section number
2918AC_MSG_CHECKING(how to run man with a section nr)
2919MANDEF="man"
2920(eval man -s 2 read) < /dev/null > /dev/null 2>&AC_FD_CC && MANDEF="man -s"
2921AC_MSG_RESULT($MANDEF)
2922if test "$MANDEF" = "man -s"; then
2923 AC_DEFINE(USEMAN_S)
2924fi
2925
2926dnl Check if gettext() is working and if it needs -lintl
2927AC_MSG_CHECKING(--disable-nls argument)
2928AC_ARG_ENABLE(nls,
2929 [ --disable-nls Don't support NLS (gettext()).], ,
2930 [enable_nls="yes"])
2931
2932if test "$enable_nls" = "yes"; then
2933 AC_MSG_RESULT(no)
2934 AC_CHECK_PROG(MSGFMT, msgfmt, msgfmt, )
2935 AC_MSG_CHECKING([for NLS])
2936 if test -f po/Makefile; then
2937 have_gettext="no"
2938 if test -n "$MSGFMT"; then
2939 AC_TRY_LINK(
2940 [#include <libintl.h>],
2941 [gettext("Test");],
2942 AC_MSG_RESULT([gettext() works]); have_gettext="yes",
2943 olibs=$LIBS
2944 LIBS="$LIBS -lintl"
2945 AC_TRY_LINK(
2946 [#include <libintl.h>],
2947 [gettext("Test");],
2948 AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes",
2949 AC_MSG_RESULT([gettext() doesn't work]);
2950 LIBS=$olibs))
2951 else
2952 AC_MSG_RESULT([msgfmt not found - disabled]);
2953 fi
2954 if test $have_gettext = "yes"; then
2955 AC_DEFINE(HAVE_GETTEXT)
2956 MAKEMO=yes
2957 AC_SUBST(MAKEMO)
2958 dnl this was added in GNU gettext 0.10.36
2959 AC_CHECK_FUNCS(bind_textdomain_codeset)
2960 dnl _nl_msg_cat_cntr is required for GNU gettext
2961 AC_MSG_CHECKING([for _nl_msg_cat_cntr])
2962 AC_TRY_LINK(
2963 [#include <libintl.h>
2964 extern int _nl_msg_cat_cntr;],
2965 [++_nl_msg_cat_cntr;],
2966 AC_MSG_RESULT([yes]); AC_DEFINE(HAVE_NL_MSG_CAT_CNTR),
2967 AC_MSG_RESULT([no]))
2968 fi
2969 else
2970 AC_MSG_RESULT([no "po/Makefile" - disabled]);
2971 fi
2972else
2973 AC_MSG_RESULT(yes)
2974fi
2975
2976dnl Check for dynamic linking loader
2977AC_CHECK_HEADER(dlfcn.h, DLL=dlfcn.h, [AC_CHECK_HEADER(dl.h, DLL=dl.h)])
2978if test x${DLL} = xdlfcn.h; then
2979 AC_DEFINE(HAVE_DLFCN_H, 1, [ Define if we have dlfcn.h. ])
2980 AC_MSG_CHECKING([for dlopen()])
2981 AC_TRY_LINK(,[
2982 extern void* dlopen();
2983 dlopen();
2984 ],
2985 AC_MSG_RESULT(yes);
2986 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
2987 AC_MSG_RESULT(no);
2988 AC_MSG_CHECKING([for dlopen() in -ldl])
2989 olibs=$LIBS
2990 LIBS="$LIBS -ldl"
2991 AC_TRY_LINK(,[
2992 extern void* dlopen();
2993 dlopen();
2994 ],
2995 AC_MSG_RESULT(yes);
2996 AC_DEFINE(HAVE_DLOPEN, 1, [ Define if we have dlopen() ]),
2997 AC_MSG_RESULT(no);
2998 LIBS=$olibs))
2999 dnl ReliantUNIX has dlopen() in libc but everything else in libdl
3000 dnl ick :-)
3001 AC_MSG_CHECKING([for dlsym()])
3002 AC_TRY_LINK(,[
3003 extern void* dlsym();
3004 dlsym();
3005 ],
3006 AC_MSG_RESULT(yes);
3007 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3008 AC_MSG_RESULT(no);
3009 AC_MSG_CHECKING([for dlsym() in -ldl])
3010 olibs=$LIBS
3011 LIBS="$LIBS -ldl"
3012 AC_TRY_LINK(,[
3013 extern void* dlsym();
3014 dlsym();
3015 ],
3016 AC_MSG_RESULT(yes);
3017 AC_DEFINE(HAVE_DLSYM, 1, [ Define if we have dlsym() ]),
3018 AC_MSG_RESULT(no);
3019 LIBS=$olibs))
3020elif test x${DLL} = xdl.h; then
3021 AC_DEFINE(HAVE_DL_H, 1, [ Define if we have dl.h. ])
3022 AC_MSG_CHECKING([for shl_load()])
3023 AC_TRY_LINK(,[
3024 extern void* shl_load();
3025 shl_load();
3026 ],
3027 AC_MSG_RESULT(yes);
3028 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3029 AC_MSG_RESULT(no);
3030 AC_MSG_CHECKING([for shl_load() in -ldld])
3031 olibs=$LIBS
3032 LIBS="$LIBS -ldld"
3033 AC_TRY_LINK(,[
3034 extern void* shl_load();
3035 shl_load();
3036 ],
3037 AC_MSG_RESULT(yes);
3038 AC_DEFINE(HAVE_SHL_LOAD, 1, [ Define if we have shl_load() ]),
3039 AC_MSG_RESULT(no);
3040 LIBS=$olibs))
3041fi
3042AC_CHECK_HEADERS(setjmp.h)
3043
3044if test "x$MACOSX" = "xyes" -a -n "$PERL"; then
3045 dnl -ldl must come after DynaLoader.a
3046 if echo $LIBS | grep -e '-ldl' >/dev/null; then
3047 LIBS=`echo $LIBS | sed s/-ldl//`
3048 PERL_LIBS="$PERL_LIBS -ldl"
3049 fi
3050fi
3051
3052if test "x$MACOSX" = "xyes" && test "x$CARBON" = "xyes" \
3053 && test "x$GUITYPE" != "xCARBONGUI"; then
3054 AC_MSG_CHECKING(whether we need -framework Carbon)
3055 dnl check for MACOSX without Carbon GUI, but with FEAT_MBYTE
3056 if test "x$enable_multibyte" = "xyes" || test "x$features" == "xbig" \
3057 || test "x$features" = "xhuge"; then
3058 LIBS="$LIBS -framework Carbon"
3059 AC_MSG_RESULT(yes)
3060 else
3061 AC_MSG_RESULT(no)
3062 fi
3063fi
3064
3065
3066dnl write output files
3067AC_OUTPUT(auto/config.mk:config.mk.in)
3068
3069dnl vim: set sw=2 tw=78 fo+=l: