Spell my name properly in the last entry :-).
[deliverable/binutils-gdb.git] / gdb / acinclude.m4
1 dnl written by Rob Savoye <rob@cygnus.com> for Cygnus Support
2 dnl major rewriting for Tcl 7.5 by Don Libes <libes@nist.gov>
3
4 dnl gdb/configure.in uses BFD_NEED_DECLARATION, so get its definition.
5 sinclude(../bfd/bfd.m4)
6
7 dnl This gets the standard macros
8 sinclude(../config/acinclude.m4)
9
10 dnl This gets autoconf bugfixes
11 sinclude(../config/override.m4)
12
13 sinclude(../config/gettext-sister.m4)
14
15 dnl For AC_LIB_HAVE_LINKFLAGS.
16 sinclude(../config/lib-ld.m4)
17 sinclude(../config/lib-prefix.m4)
18 sinclude(../config/lib-link.m4)
19
20 dnl For ACX_PKGVERSION and ACX_BUGURL.
21 sinclude(../config/acx.m4)
22
23 dnl for TCL definitions
24 sinclude(../config/tcl.m4)
25
26 dnl For dependency tracking macros.
27 sinclude([../config/depstand.m4])
28
29 dnl For AM_LC_MESSAGES
30 sinclude([../config/lcmessage.m4])
31
32 dnl For AM_LANGINFO_CODESET.
33 sinclude([../config/codeset.m4])
34
35 #
36 # Sometimes the native compiler is a bogus stub for gcc or /usr/ucb/cc. This
37 # makes configure think it's cross compiling. If --target wasn't used, then
38 # we can't configure, so something is wrong. We don't use the cache
39 # here cause if somebody fixes their compiler install, we want this to work.
40 AC_DEFUN([CY_AC_C_WORKS],
41 [# If we cannot compile and link a trivial program, we can't expect anything to work
42 AC_MSG_CHECKING(whether the compiler ($CC) actually works)
43 AC_TRY_COMPILE(, [/* don't need anything here */],
44 c_compiles=yes, c_compiles=no)
45
46 AC_TRY_LINK(, [/* don't need anything here */],
47 c_links=yes, c_links=no)
48
49 if test x"${c_compiles}" = x"no" ; then
50 AC_MSG_ERROR(the native compiler is broken and won't compile.)
51 fi
52
53 if test x"${c_links}" = x"no" ; then
54 AC_MSG_ERROR(the native compiler is broken and won't link.)
55 fi
56 AC_MSG_RESULT(yes)
57 ])
58
59 ## ----------------------------------------- ##
60 ## ANSIfy the C compiler whenever possible. ##
61 ## From Franc,ois Pinard ##
62 ## ----------------------------------------- ##
63
64 # Copyright (C) 1996, 1997, 1999, 2000, 2001, 2008, 2009
65 Free Software Foundation, Inc.
66
67 # This program is free software; you can redistribute it and/or modify
68 # it under the terms of the GNU General Public License as published by
69 # the Free Software Foundation; either version 2, or (at your option)
70 # any later version.
71
72 # This program is distributed in the hope that it will be useful,
73 # but WITHOUT ANY WARRANTY; without even the implied warranty of
74 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
75 # GNU General Public License for more details.
76
77 # You should have received a copy of the GNU General Public License
78 # along with this program; if not, write to the Free Software
79 # Foundation, Inc., 51 Franklin Street, Fifth Floor,
80 # Boston, MA 02110-1301, USA.
81
82 # serial 1
83
84 # @defmac AC_PROG_CC_STDC
85 # @maindex PROG_CC_STDC
86 # @ovindex CC
87 # If the C compiler in not in ANSI C mode by default, try to add an option
88 # to output variable @code{CC} to make it so. This macro tries various
89 # options that select ANSI C on some system or another. It considers the
90 # compiler to be in ANSI C mode if it handles function prototypes correctly.
91 #
92 # If you use this macro, you should check after calling it whether the C
93 # compiler has been set to accept ANSI C; if not, the shell variable
94 # @code{am_cv_prog_cc_stdc} is set to @samp{no}. If you wrote your source
95 # code in ANSI C, you can make an un-ANSIfied copy of it by using the
96 # program @code{ansi2knr}, which comes with Ghostscript.
97 # @end defmac
98
99 AC_DEFUN([AM_PROG_CC_STDC],
100 [AC_REQUIRE([AC_PROG_CC])
101 AC_BEFORE([$0], [AC_C_INLINE])
102 AC_BEFORE([$0], [AC_C_CONST])
103 dnl Force this before AC_PROG_CPP. Some cpp's, eg on HPUX, require
104 dnl a magic option to avoid problems with ANSI preprocessor commands
105 dnl like #elif.
106 dnl FIXME: can't do this because then AC_AIX won't work due to a
107 dnl circular dependency.
108 dnl AC_BEFORE([$0], [AC_PROG_CPP])
109 AC_MSG_CHECKING([for ${CC-cc} option to accept ANSI C])
110 AC_CACHE_VAL(am_cv_prog_cc_stdc,
111 [am_cv_prog_cc_stdc=no
112 ac_save_CC="$CC"
113 # Don't try gcc -ansi; that turns off useful extensions and
114 # breaks some systems' header files.
115 # AIX -qlanglvl=ansi
116 # Ultrix and OSF/1 -std1
117 # HP-UX 10.20 and later -Ae
118 # HP-UX older versions -Aa -D_HPUX_SOURCE
119 # SVR4 -Xc -D__EXTENSIONS__
120 for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
121 do
122 CC="$ac_save_CC $ac_arg"
123 AC_TRY_COMPILE(
124 [#include <stdarg.h>
125 #include <stdio.h>
126 #include <sys/types.h>
127 #include <sys/stat.h>
128 /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
129 struct buf { int x; };
130 FILE * (*rcsopen) (struct buf *, struct stat *, int);
131 static char *e (p, i)
132 char **p;
133 int i;
134 {
135 return p[i];
136 }
137 static char *f (char * (*g) (char **, int), char **p, ...)
138 {
139 char *s;
140 va_list v;
141 va_start (v,p);
142 s = g (p, va_arg (v,int));
143 va_end (v);
144 return s;
145 }
146 int test (int i, double x);
147 struct s1 {int (*f) (int a);};
148 struct s2 {int (*f) (double a);};
149 int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
150 int argc;
151 char **argv;
152 ], [
153 return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
154 ],
155 [am_cv_prog_cc_stdc="$ac_arg"; break])
156 done
157 CC="$ac_save_CC"
158 ])
159 if test -z "$am_cv_prog_cc_stdc"; then
160 AC_MSG_RESULT([none needed])
161 else
162 AC_MSG_RESULT([$am_cv_prog_cc_stdc])
163 fi
164 case "x$am_cv_prog_cc_stdc" in
165 x|xno) ;;
166 *) CC="$CC $am_cv_prog_cc_stdc" ;;
167 esac
168 ])
169
170 dnl From Bruno Haible.
171
172 AC_DEFUN([AM_ICONV],
173 [
174 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
175 dnl those with the standalone portable GNU libiconv installed).
176
177 AC_ARG_WITH([libiconv-prefix],
178 AS_HELP_STRING([--with-libiconv-prefix=DIR], [search for libiconv in DIR/include and DIR/lib]), [
179 for dir in `echo "$withval" | tr : ' '`; do
180 if test -d $dir/include; then LIBICONV_INCLUDE="-I$dir/include"; fi
181 if test -d $dir/lib; then LIBICONV_LIBDIR="-L$dir/lib"; fi
182 done
183 ])
184
185 BUILD_LIBICONV_LIBDIR="-L../libiconv/lib/.libs -L../libiconv/lib/_libs"
186 BUILD_LIBICONV_INCLUDE="-I../libiconv/include"
187
188 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
189 am_cv_func_iconv="no, consider installing GNU libiconv"
190 am_cv_lib_iconv=no
191 am_cv_use_build_libiconv=no
192 # First, try to find iconv in libc.
193 AC_TRY_LINK([#include <stdlib.h>
194 #include <iconv.h>],
195 [iconv_t cd = iconv_open("","");
196 iconv(cd,NULL,NULL,NULL,NULL);
197 iconv_close(cd);],
198 am_cv_func_iconv=yes)
199
200 # If iconv was not in libc, try -liconv. In this case, arrange to
201 # look in the libiconv prefix, if it was specified by the user.
202 if test "$am_cv_func_iconv" != yes; then
203 am_save_CPPFLAGS="$CPPFLAGS"
204 am_save_LIBS="$LIBS"
205 if test -n "$LIBICONV_INCLUDE"; then
206 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
207 LIBS="$LIBS $LIBICONV_LIBDIR"
208 fi
209 LIBS="$LIBS -liconv"
210 AC_TRY_LINK([#include <stdlib.h>
211 #include <iconv.h>],
212 [iconv_t cd = iconv_open("","");
213 iconv(cd,NULL,NULL,NULL,NULL);
214 iconv_close(cd);],
215 am_cv_lib_iconv=yes
216 am_cv_func_iconv=yes)
217 LIBS="$am_save_LIBS"
218 CPPFLAGS="$am_save_CPPFLAGS"
219 fi
220
221 # If that didn't work, try to find libiconv in the build tree.
222 if test "$am_cv_func_iconv" != yes && test -d ../libiconv; then
223 am_save_LIBS="$LIBS"
224 am_save_CPPFLAGS="$CPPFLAGS"
225 LIBS="$LIBS $BUILD_LIBICONV_LIBDIR -liconv"
226 CPPFLAGS="$CPPFLAGS $BUILD_LIBICONV_INCLUDE"
227 AC_TRY_LINK([#include <stdlib.h>
228 #include <iconv.h>],
229 [iconv_t cd = iconv_open("","");
230 iconv(cd,NULL,NULL,NULL,NULL);
231 iconv_close(cd);],
232 am_cv_use_build_libiconv=yes
233 am_cv_lib_iconv=yes
234 am_cv_func_iconv=yes)
235 LIBS="$am_save_LIBS"
236 CPPFLAGS="$am_save_CPPFLAGS"
237 fi
238 ])
239
240 # Set the various flags based on the cache variables. We can't rely
241 # on the flags to remain set from the above code, due to caching.
242 LIBICONV=
243 if test "$am_cv_lib_iconv" = yes; then
244 LIBICONV="-liconv"
245 else
246 LIBICONV_LIBDIR=
247 LIBICONV_INCLUDE=
248 fi
249 if test "$am_cv_use_build_libiconv" = yes; then
250 LIBICONV_LIBDIR="$BUILD_LIBICONV_LIBDIR"
251 LIBICONV_INCLUDE="$BUILD_LIBICONV_INCLUDE"
252 fi
253 CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
254 LIBS="$LIBS $LIBICONV_LIBDIR $LIBICONV"
255
256 if test "$am_cv_func_iconv" = yes; then
257 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
258 AC_MSG_CHECKING([for iconv declaration])
259 AC_CACHE_VAL(am_cv_proto_iconv, [
260 AC_TRY_COMPILE([
261 #include <stdlib.h>
262 #include <iconv.h>
263 extern
264 #ifdef __cplusplus
265 "C"
266 #endif
267 #if defined(__STDC__) || defined(__cplusplus)
268 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
269 #else
270 size_t iconv();
271 #endif
272 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
273 am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
274 am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
275 AC_MSG_RESULT([$]{ac_t:-
276 }[$]am_cv_proto_iconv)
277 AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
278 [Define as const if the declaration of iconv() needs const.])
279 fi
280 ])
281
282 dnl written by Guido Draheim <guidod@gmx.de>, original by Alexandre Oliva
283 dnl Version 1.3 (2001/03/02)
284 dnl source http://www.gnu.org/software/ac-archive/Miscellaneous/ac_define_dir.html
285
286 AC_DEFUN([AC_DEFINE_DIR], [
287 test "x$prefix" = xNONE && prefix="$ac_default_prefix"
288 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
289 ac_define_dir=`eval echo [$]$2`
290 ac_define_dir=`eval echo [$]ac_define_dir`
291 ifelse($3, ,
292 AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
293 AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
294 ])
295
296 dnl See whether we need a declaration for a function.
297 dnl The result is highly dependent on the INCLUDES passed in, so make sure
298 dnl to use a different cache variable name in this macro if it is invoked
299 dnl in a different context somewhere else.
300 dnl gcc_AC_CHECK_DECL(SYMBOL,
301 dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
302 AC_DEFUN([gcc_AC_CHECK_DECL],
303 [AC_MSG_CHECKING([whether $1 is declared])
304 AC_CACHE_VAL(gcc_cv_have_decl_$1,
305 [AC_TRY_COMPILE([$4],
306 [#ifndef $1
307 char *(*pfn) = (char *(*)) $1 ;
308 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
309 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
310 AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
311 else
312 AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
313 fi
314 ])dnl
315
316 dnl Check multiple functions to see whether each needs a declaration.
317 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
318 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
319 dnl [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
320 AC_DEFUN([gcc_AC_CHECK_DECLS],
321 [for ac_func in $1
322 do
323 changequote(, )dnl
324 ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
325 changequote([, ])dnl
326 gcc_AC_CHECK_DECL($ac_func,
327 [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
328 [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
329 dnl It is possible that the include files passed in here are local headers
330 dnl which supply a backup declaration for the relevant prototype based on
331 dnl the definition of (or lack of) the HAVE_DECL_ macro. If so, this test
332 dnl will always return success. E.g. see libiberty.h's handling of
333 dnl `basename'. To avoid this, we define the relevant HAVE_DECL_ macro to
334 dnl 1 so that any local headers used do not provide their own prototype
335 dnl during this test.
336 #undef $ac_tr_decl
337 #define $ac_tr_decl 1
338 $4
339 )
340 done
341 dnl Automatically generate config.h entries via autoheader.
342 if test x = y ; then
343 patsubst(translit([$1], [a-z], [A-Z]), [\w+],
344 [AC_DEFINE([HAVE_DECL_\&], 1,
345 [Define to 1 if we found this declaration otherwise define to 0.])])dnl
346 fi
347 ])
348
349 dnl Find the location of the private Tcl headers
350 dnl When Tcl is installed, this is TCL_INCLUDE_SPEC/tcl-private/generic
351 dnl When Tcl is in the build tree, this is not needed.
352 dnl
353 dnl Note: you must use first use SC_LOAD_TCLCONFIG!
354 AC_DEFUN([CY_AC_TCL_PRIVATE_HEADERS], [
355 AC_MSG_CHECKING([for Tcl private headers])
356 private_dir=""
357 dir=`echo ${TCL_INCLUDE_SPEC}/tcl-private/generic | sed -e s/-I//`
358 if test -f ${dir}/tclInt.h ; then
359 private_dir=${dir}
360 fi
361
362 if test x"${private_dir}" = x; then
363 AC_ERROR(could not find private Tcl headers)
364 else
365 TCL_PRIVATE_INCLUDE="-I${private_dir}"
366 AC_MSG_RESULT(${private_dir})
367 fi
368 ])
369
370 dnl Find the location of the private Tk headers
371 dnl When Tk is installed, this is TK_INCLUDE_SPEC/tk-private/generic
372 dnl When Tk is in the build tree, this not needed.
373 dnl
374 dnl Note: you must first use SC_LOAD_TKCONFIG
375 AC_DEFUN([CY_AC_TK_PRIVATE_HEADERS], [
376 AC_MSG_CHECKING([for Tk private headers])
377 private_dir=""
378 dir=`echo ${TK_INCLUDE_SPEC}/tk-private/generic | sed -e s/-I//`
379 if test -f ${dir}/tkInt.h; then
380 private_dir=${dir}
381 fi
382
383 if test x"${private_dir}" = x; then
384 AC_ERROR(could not find Tk private headers)
385 else
386 TK_PRIVATE_INCLUDE="-I${private_dir}"
387 AC_MSG_RESULT(${private_dir})
388 fi
389 ])
390
391 dnl GDB_AC_WITH_DIR([VARIABLE], [ARG-NAME], [HELP], [DEFAULT])
392 dnl Add a new --with option that defines a directory.
393 dnl The result is stored in VARIABLE. AC_DEFINE_DIR is called
394 dnl on this variable, as is AC_SUBST.
395 dnl ARG-NAME is the base name of the argument (without "--with").
396 dnl HELP is the help text to use.
397 dnl If the user's choice is relative to the prefix, then the
398 dnl result is relocatable, then this will define the C macro
399 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
400 dnl DEFAULT is the default value, which is used if the user
401 dnl does not specify the argument.
402 AC_DEFUN([GDB_AC_WITH_DIR], [
403 AC_ARG_WITH([$2], AS_HELP_STRING([--with-][$2][=PATH], [$3]), [
404 [$1]=$withval], [[$1]=[$4]])
405 AC_DEFINE_DIR([$1], [$1], [$3])
406 AC_SUBST([$1])
407 if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
408 if test "x$prefix" = xNONE; then
409 test_prefix=/usr/local
410 else
411 test_prefix=$prefix
412 fi
413 else
414 test_prefix=$exec_prefix
415 fi
416 value=0
417 case ${ac_define_dir} in
418 "${test_prefix}"|"${test_prefix}/"*|\
419 '${exec_prefix}'|'${exec_prefix}/'*)
420 value=1
421 ;;
422 esac
423 AC_DEFINE_UNQUOTED([$1]_RELOCATABLE, $value, [Define if the $2 directory should be relocated when GDB is moved.])
424 ])
This page took 0.03832 seconds and 4 git commands to generate.