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