PR 10400
[platform/upstream/binutils.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
193     # If libiconv is part of the build tree, then try using it over
194     # any system iconv.
195     if test -d ../libiconv; then
196       am_save_LIBS="$LIBS"
197       am_save_CPPFLAGS="$CPPFLAGS"
198       LIBS="$LIBS $BUILD_LIBICONV_LIBDIR -liconv"
199       CPPFLAGS="$CPPFLAGS $BUILD_LIBICONV_INCLUDE"
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_use_build_libiconv=yes
206         am_cv_lib_iconv=yes
207         am_cv_func_iconv=yes)
208       LIBS="$am_save_LIBS"
209       CPPFLAGS="$am_save_CPPFLAGS"
210     fi
211
212     # Next, try to find iconv in libc.
213     if test "$am_cv_func_iconv" != yes; then
214       AC_TRY_LINK([#include <stdlib.h>
215 #include <iconv.h>],
216         [iconv_t cd = iconv_open("","");
217          iconv(cd,NULL,NULL,NULL,NULL);
218          iconv_close(cd);],
219         am_cv_func_iconv=yes)
220     fi
221
222     # If iconv was not in libc, try -liconv.  In this case, arrange to
223     # look in the libiconv prefix, if it was specified by the user.
224     if test "$am_cv_func_iconv" != yes; then
225       am_save_CPPFLAGS="$CPPFLAGS"
226       am_save_LIBS="$LIBS"
227       if test -n "$LIBICONV_INCLUDE"; then
228         CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
229         LIBS="$LIBS $LIBICONV_LIBDIR"
230       fi
231       LIBS="$LIBS -liconv"
232       AC_TRY_LINK([#include <stdlib.h>
233 #include <iconv.h>],
234         [iconv_t cd = iconv_open("","");
235          iconv(cd,NULL,NULL,NULL,NULL);
236          iconv_close(cd);],
237         am_cv_lib_iconv=yes
238         am_cv_func_iconv=yes)
239       LIBS="$am_save_LIBS"
240       CPPFLAGS="$am_save_CPPFLAGS"
241     fi
242   ])
243
244   # Set the various flags based on the cache variables.  We can't rely
245   # on the flags to remain set from the above code, due to caching.
246   LIBICONV=
247   if test "$am_cv_lib_iconv" = yes; then
248     LIBICONV="-liconv"
249   else
250     LIBICONV_LIBDIR=
251     LIBICONV_INCLUDE=
252   fi
253   if test "$am_cv_use_build_libiconv" = yes; then
254     LIBICONV_LIBDIR="$BUILD_LIBICONV_LIBDIR"
255     LIBICONV_INCLUDE="$BUILD_LIBICONV_INCLUDE"
256   fi
257   CPPFLAGS="$CPPFLAGS $LIBICONV_INCLUDE"
258   LIBS="$LIBS $LIBICONV_LIBDIR $LIBICONV"
259
260   if test "$am_cv_func_iconv" = yes; then
261     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
262     AC_MSG_CHECKING([for iconv declaration])
263     AC_CACHE_VAL(am_cv_proto_iconv, [
264       AC_TRY_COMPILE([
265 #include <stdlib.h>
266 #include <iconv.h>
267 extern
268 #ifdef __cplusplus
269 "C"
270 #endif
271 #if defined(__STDC__) || defined(__cplusplus)
272 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
273 #else
274 size_t iconv();
275 #endif
276 ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
277       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);"])
278     am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
279     AC_MSG_RESULT([$]{ac_t:-
280          }[$]am_cv_proto_iconv)
281     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
282       [Define as const if the declaration of iconv() needs const.])
283   fi
284 ])
285
286 dnl written by Guido Draheim <guidod@gmx.de>, original by Alexandre Oliva 
287 dnl Version 1.3 (2001/03/02)
288 dnl source http://www.gnu.org/software/ac-archive/Miscellaneous/ac_define_dir.html
289
290 AC_DEFUN([AC_DEFINE_DIR], [
291   test "x$prefix" = xNONE && prefix="$ac_default_prefix"
292   test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
293   ac_define_dir=`eval echo [$]$2`
294   ac_define_dir=`eval echo [$]ac_define_dir`
295   ifelse($3, ,
296     AC_DEFINE_UNQUOTED($1, "$ac_define_dir"),
297     AC_DEFINE_UNQUOTED($1, "$ac_define_dir", $3))
298 ])
299
300 dnl See whether we need a declaration for a function.
301 dnl The result is highly dependent on the INCLUDES passed in, so make sure
302 dnl to use a different cache variable name in this macro if it is invoked
303 dnl in a different context somewhere else.
304 dnl gcc_AC_CHECK_DECL(SYMBOL,
305 dnl     [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, INCLUDES]]])
306 AC_DEFUN([gcc_AC_CHECK_DECL],
307 [AC_MSG_CHECKING([whether $1 is declared])
308 AC_CACHE_VAL(gcc_cv_have_decl_$1,
309 [AC_TRY_COMPILE([$4],
310 [#ifndef $1
311 char *(*pfn) = (char *(*)) $1 ;
312 #endif], eval "gcc_cv_have_decl_$1=yes", eval "gcc_cv_have_decl_$1=no")])
313 if eval "test \"`echo '$gcc_cv_have_decl_'$1`\" = yes"; then
314   AC_MSG_RESULT(yes) ; ifelse([$2], , :, [$2])
315 else
316   AC_MSG_RESULT(no) ; ifelse([$3], , :, [$3])
317 fi
318 ])dnl
319
320 dnl Check multiple functions to see whether each needs a declaration.
321 dnl Arrange to define HAVE_DECL_<FUNCTION> to 0 or 1 as appropriate.
322 dnl gcc_AC_CHECK_DECLS(SYMBOLS,
323 dnl     [ACTION-IF-NEEDED [, ACTION-IF-NOT-NEEDED [, INCLUDES]]])
324 AC_DEFUN([gcc_AC_CHECK_DECLS],
325 [for ac_func in $1
326 do
327 changequote(, )dnl
328   ac_tr_decl=HAVE_DECL_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
329 changequote([, ])dnl
330 gcc_AC_CHECK_DECL($ac_func,
331   [AC_DEFINE_UNQUOTED($ac_tr_decl, 1) $2],
332   [AC_DEFINE_UNQUOTED($ac_tr_decl, 0) $3],
333 dnl It is possible that the include files passed in here are local headers
334 dnl which supply a backup declaration for the relevant prototype based on
335 dnl the definition of (or lack of) the HAVE_DECL_ macro.  If so, this test
336 dnl will always return success.  E.g. see libiberty.h's handling of
337 dnl `basename'.  To avoid this, we define the relevant HAVE_DECL_ macro to
338 dnl 1 so that any local headers used do not provide their own prototype
339 dnl during this test.
340 #undef $ac_tr_decl
341 #define $ac_tr_decl 1
342   $4
343 )
344 done
345 dnl Automatically generate config.h entries via autoheader.
346 if test x = y ; then
347   patsubst(translit([$1], [a-z], [A-Z]), [\w+],
348     [AC_DEFINE([HAVE_DECL_\&], 1,
349       [Define to 1 if we found this declaration otherwise define to 0.])])dnl
350 fi
351 ])
352
353 dnl Find the location of the private Tcl headers
354 dnl When Tcl is installed, this is TCL_INCLUDE_SPEC/tcl-private/generic
355 dnl When Tcl is in the build tree, this is not needed.
356 dnl
357 dnl Note: you must use first use SC_LOAD_TCLCONFIG!
358 AC_DEFUN([CY_AC_TCL_PRIVATE_HEADERS], [
359   AC_MSG_CHECKING([for Tcl private headers])
360   private_dir=""
361   dir=`echo ${TCL_INCLUDE_SPEC}/tcl-private/generic | sed -e s/-I//`
362   if test -f ${dir}/tclInt.h ; then
363     private_dir=${dir}
364   fi
365
366   if test x"${private_dir}" = x; then
367     AC_ERROR(could not find private Tcl headers)
368   else
369     TCL_PRIVATE_INCLUDE="-I${private_dir}"
370     AC_MSG_RESULT(${private_dir})
371   fi
372 ])
373
374 dnl Find the location of the private Tk headers
375 dnl When Tk is installed, this is TK_INCLUDE_SPEC/tk-private/generic
376 dnl When Tk is in the build tree, this not needed.
377 dnl
378 dnl Note: you must first use SC_LOAD_TKCONFIG
379 AC_DEFUN([CY_AC_TK_PRIVATE_HEADERS], [
380   AC_MSG_CHECKING([for Tk private headers])
381   private_dir=""
382   dir=`echo ${TK_INCLUDE_SPEC}/tk-private/generic | sed -e s/-I//`
383   if test -f ${dir}/tkInt.h; then
384     private_dir=${dir}
385   fi
386
387   if test x"${private_dir}" = x; then
388     AC_ERROR(could not find Tk private headers)
389   else
390     TK_PRIVATE_INCLUDE="-I${private_dir}"
391     AC_MSG_RESULT(${private_dir})
392   fi
393 ])
394
395 dnl GDB_AC_WITH_DIR([VARIABLE], [ARG-NAME], [HELP], [DEFAULT])
396 dnl Add a new --with option that defines a directory.
397 dnl The result is stored in VARIABLE.  AC_DEFINE_DIR is called
398 dnl on this variable, as is AC_SUBST.
399 dnl ARG-NAME is the base name of the argument (without "--with").
400 dnl HELP is the help text to use.
401 dnl If the user's choice is relative to the prefix, then the
402 dnl result is relocatable, then this will define the C macro
403 dnl VARIABLE_RELOCATABLE to 1; otherwise it is defined as 0.
404 dnl DEFAULT is the default value, which is used if the user
405 dnl does not specify the argument.
406 AC_DEFUN([GDB_AC_WITH_DIR], [
407   AC_ARG_WITH([$2], AS_HELP_STRING([--with-][$2][=PATH], [$3]), [
408     [$1]=$withval], [[$1]=[$4]])
409   AC_DEFINE_DIR([$1], [$1], [$3])
410   AC_SUBST([$1])
411   if test "x$exec_prefix" = xNONE || test "x$exec_prefix" = 'x${prefix}'; then
412      if test "x$prefix" = xNONE; then
413         test_prefix=/usr/local
414      else
415         test_prefix=$prefix
416      fi
417   else
418      test_prefix=$exec_prefix
419   fi
420   value=0
421   case ${ac_define_dir} in
422      "${test_prefix}"|"${test_prefix}/"*|\
423         '${exec_prefix}'|'${exec_prefix}/'*)
424      value=1
425      ;;
426   esac
427   AC_DEFINE_UNQUOTED([$1]_RELOCATABLE, $value, [Define if the $2 directory should be relocated when GDB is moved.])
428   ])