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