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