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