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