update copyright notices in various GDB files.
[external/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 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   ])