forked from mirrors/tftp-hpa-google
autoconf: modernize and modularize
Use my modular m4 library used for other things as well; update autoconf macros to 2.71 standard. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
33051a296c
commit
fefaa2cc5c
35 changed files with 680 additions and 461 deletions
9
autoconf/m4/pa_add_cflags.m4
Normal file
9
autoconf/m4/pa_add_cflags.m4
Normal file
|
@ -0,0 +1,9 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_ADD_CFLAGS(variable, flag [,actual_flag [,success [,failure]]]])
|
||||
dnl
|
||||
dnl Attempt to add the given option to xFLAGS, if it doesn't break
|
||||
dnl compilation. If the option to be tested is different than the
|
||||
dnl option that should actually be added, add the option to be
|
||||
dnl actually added as a second argument.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_ADD_CFLAGS], [PA_ADD_FLAGS(CFLAGS, [$1], [$2], [$3], [$4])])
|
39
autoconf/m4/pa_add_flags.m4
Normal file
39
autoconf/m4/pa_add_flags.m4
Normal file
|
@ -0,0 +1,39 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_ADD_FLAGS(flagvar, flags)
|
||||
dnl
|
||||
dnl Add [flags] to the variable [flagvar] if and only if it is accepted
|
||||
dnl by all languages affected by [flagvar], if those languages have
|
||||
dnl been previously seen in the script.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_ADD_FLAGS],
|
||||
[
|
||||
AS_VAR_PUSHDEF([old], [_$0_$1_orig])
|
||||
AS_VAR_PUSHDEF([ok], [_$0_$1_ok])
|
||||
AS_VAR_PUSHDEF([flags], [$1])
|
||||
|
||||
AS_VAR_COPY([old], [flags])
|
||||
AS_VAR_SET([flags], ["$flags $2"])
|
||||
AS_VAR_SET([ok], [yes])
|
||||
|
||||
PA_LANG_FOREACH(PA_FLAGS_LANGLIST($1),
|
||||
[AS_VAR_IF([ok], [yes],
|
||||
[AC_MSG_CHECKING([if $]_AC_CC[ accepts $2])
|
||||
PA_BUILD_IFELSE([],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AS_VAR_SET([ok], [no])])])
|
||||
])
|
||||
|
||||
AS_VAR_IF([ok], [yes],
|
||||
[m4_ifnblank([$3],[AS_VAR_SET([flags], ["$old $3"])])
|
||||
m4_foreach_w([_pa_add_flags_flag], [m4_ifblank([$3],[$2],[$3])],
|
||||
[AC_DEFINE(PA_SYM([$1_]_pa_add_flags_flag), 1,
|
||||
[Define to 1 if compiled with the ]_pa_add_flags_flag[ compiler flag])])
|
||||
$4],
|
||||
[AS_VAR_SET([flags], ["$old"])
|
||||
$5])
|
||||
|
||||
AS_VAR_POPDEF([flags])
|
||||
AS_VAR_POPDEF([ok])
|
||||
AS_VAR_POPDEF([old])
|
||||
])
|
13
autoconf/m4/pa_add_headers.m4
Normal file
13
autoconf/m4/pa_add_headers.m4
Normal file
|
@ -0,0 +1,13 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_ADD_HEADERS(headers...)
|
||||
dnl
|
||||
dnl Call AC_CHECK_HEADERS(), and add to ac_includes_default if found
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([_PA_ADD_HEADER],
|
||||
[AC_CHECK_HEADERS([$1],[ac_includes_default="$ac_includes_default
|
||||
#include <$1>"
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([PA_ADD_HEADERS],
|
||||
[m4_map_args_w([$1],[_PA_ADD_HEADER(],[)])])
|
27
autoconf/m4/pa_add_langflags.m4
Normal file
27
autoconf/m4/pa_add_langflags.m4
Normal file
|
@ -0,0 +1,27 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_ADD_LANGFLAGS(flag...)
|
||||
dnl
|
||||
dnl Attempt to add the option in the given list to each compiler flags
|
||||
dnl (CFLAGS, CXXFLAGS, ...), if it doesn't break compilation.
|
||||
dnl --------------------------------------------------------------------------
|
||||
m4_defun([_PA_LANGFLAG_VAR],
|
||||
[m4_case([$1],
|
||||
[C], [CFLAGS],
|
||||
[C++], [CXXFLAGS],
|
||||
[Fortran 77], [FFLAGS],
|
||||
[Fortran], [FCFLAGS],
|
||||
[Erlang], [ERLCFLAGS],
|
||||
[Objective C], [OBJCFLAGS],
|
||||
[Objective C++], [OBJCXXFLAGS],
|
||||
[Go], [GOFLAGS],
|
||||
[m4_fatal([PA_ADD_LANGFLAGS: Unknown language: $1])])])
|
||||
|
||||
AC_DEFUN([PA_ADD_LANGFLAGS],
|
||||
[m4_pushdef([_pa_langflags],m4_dquote($1))dnl
|
||||
m4_set_foreach(_PA_LANG_SEEN_SET,[_pa_lang],dnl
|
||||
[_pa_flag_found=no
|
||||
m4_foreach_w([_pa_flag], _pa_langflags,
|
||||
[AS_IF([test $_pa_flag_found = no],
|
||||
[PA_ADD_FLAGS(_PA_LANGFLAG_VAR(_pa_lang),_pa_flag,[],[_pa_flag_found=yes])])
|
||||
])])
|
||||
m4_popdef([_pa_langflags])])
|
19
autoconf/m4/pa_arg_bool.m4
Normal file
19
autoconf/m4/pa_arg_bool.m4
Normal file
|
@ -0,0 +1,19 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_ARG_BOOL(option,helptext,default,enabled_action,disabled_action)
|
||||
dnl
|
||||
dnl The last three arguments are optional; default can be yes or no.
|
||||
dnl
|
||||
dnl Simpler-to-use versions of AC_ARG_ENABLED, that include the
|
||||
dnl test for $enableval and the AS_HELP_STRING definition. This is only
|
||||
dnl to be used for boolean options.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_ARG_BOOL],
|
||||
[m4_pushdef([pa_default],m4_default(m4_normalize([$3]),[no]))
|
||||
m4_pushdef([pa_option],m4_case(pa_default,[yes],[disable],[enable]))
|
||||
AC_ARG_ENABLE([$1],
|
||||
[AS_HELP_STRING([--]m4_defn([pa_option])[-$1],[$2])],
|
||||
[pa_arg_bool_enableval="$enableval"],
|
||||
[pa_arg_bool_enableval="]m4_defn([pa_default])["])
|
||||
m4_popdef([pa_option], [pa_default])
|
||||
AS_IF([test x"$pa_arg_bool_enableval" != xno], [$4], [$5])
|
||||
])
|
4
autoconf/m4/pa_arg_disabled.m4
Normal file
4
autoconf/m4/pa_arg_disabled.m4
Normal file
|
@ -0,0 +1,4 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_ARG_DISABLED(option,helptext,disabled_action,enabled_action)
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_ARG_DISABLED],[PA_ARG_BOOL([$1],[$2],yes,[$4],[$3])])
|
4
autoconf/m4/pa_arg_enabled.m4
Normal file
4
autoconf/m4/pa_arg_enabled.m4
Normal file
|
@ -0,0 +1,4 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_ARG_ENABLED(option,helptext,enabled_action,disabled_action)
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_ARG_ENABLED],[PA_ARG_BOOL([$1],[$2],no,[$3],[$4])])
|
16
autoconf/m4/pa_build_ifelse.m4
Normal file
16
autoconf/m4/pa_build_ifelse.m4
Normal file
|
@ -0,0 +1,16 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_BUILD_IFELSE(input [,success [,failure]])
|
||||
dnl
|
||||
dnl Same as AC_LINK_IFELSE for languages where linking is applicable,
|
||||
dnl otherwise AC_COMPILE_IFELSE.
|
||||
dnl
|
||||
dnl If the first argument is empty, use _AC_LANG_IO_PROGRAM.
|
||||
dnl --------------------------------------------------------------------------
|
||||
m4_defun([_PA_BUILD_IFELSE],
|
||||
[m4_case(_AC_LANG,
|
||||
[Erlang], [AC_COMPILE_IFELSE($@)],
|
||||
[AC_LINK_IFELSE($@)])])
|
||||
|
||||
AC_DEFUN([PA_BUILD_IFELSE],
|
||||
[_PA_BUILD_IFELSE([m4_ifblank([$1],[AC_LANG_SOURCE(_AC_LANG_IO_PROGRAM)],
|
||||
[$1])],[$2],[$3])])
|
32
autoconf/m4/pa_c_typeof.m4
Normal file
32
autoconf/m4/pa_c_typeof.m4
Normal file
|
@ -0,0 +1,32 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_C_TYPEOF
|
||||
dnl
|
||||
dnl Find if typeof() exists, or an equivalent (__typeof__, decltype,
|
||||
dnl __decltype__)
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_C_TYPEOF],
|
||||
[AC_CACHE_CHECK([if $CC supports typeof], [pa_cv_typeof],
|
||||
[pa_cv_typeof=no
|
||||
for pa_typeof_try in typeof __typeof __typeof__ decltype __decltype __decltype__ _Decltype
|
||||
do
|
||||
AS_IF([test $pa_cv_typeof = no],
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||
AC_INCLUDES_DEFAULT
|
||||
int testme(int x);
|
||||
int testme(int x)
|
||||
{
|
||||
$pa_typeof_try(x) y = x*x;
|
||||
return y;
|
||||
}
|
||||
])],
|
||||
[pa_cv_typeof=$pa_typeof_try])])
|
||||
done
|
||||
])
|
||||
AS_IF([test $pa_cv_typeof = no],
|
||||
[],
|
||||
[AC_DEFINE([HAVE_TYPEOF], 1,
|
||||
[Define to 1 if you have some version of the typeof operator.])
|
||||
AS_IF([test $pa_cv_typeof = typeof],
|
||||
[],
|
||||
[AC_DEFINE_UNQUOTED([typeof], [$pa_cv_typeof],
|
||||
[Define if your typeof operator is not named `typeof'.])])])])
|
26
autoconf/m4/pa_check_bad_stdc_inline.m4
Normal file
26
autoconf/m4/pa_check_bad_stdc_inline.m4
Normal file
|
@ -0,0 +1,26 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_CHECK_BAD_STDC_INLINE
|
||||
dnl
|
||||
dnl Some versions of gcc seem to apply -Wmissing-prototypes to C99
|
||||
dnl inline functions, which means we need to use GNU inline syntax
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_CHECK_BAD_STDC_INLINE],
|
||||
[AC_MSG_CHECKING([if $CC supports C99 external inlines])
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
|
||||
AC_INCLUDES_DEFAULT
|
||||
|
||||
/* Don't mistake GNU inlines for c99 */
|
||||
#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
|
||||
# error "Using gnu inline standard"
|
||||
#endif
|
||||
|
||||
inline int foo(int x)
|
||||
{
|
||||
return x+1;
|
||||
}
|
||||
])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_DEFINE([HAVE_STDC_INLINE], 1,
|
||||
[Define to 1 if your compiler supports C99 extern inline])],
|
||||
[AC_MSG_RESULT([no])
|
||||
PA_ADD_CFLAGS([-fgnu89-inline])])])
|
17
autoconf/m4/pa_check_inttypes_h_sane.m4
Normal file
17
autoconf/m4/pa_check_inttypes_h_sane.m4
Normal file
|
@ -0,0 +1,17 @@
|
|||
dnl ------------------------------------------------------------------------
|
||||
dnl PA_CHECK_INTTYPES_H_SANE
|
||||
dnl
|
||||
dnl At least some versions of AIX 4 have <inttypes.h> macros which are
|
||||
dnl completely broken. Try to detect those.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_CHECK_INTTYPES_H_SANE],
|
||||
[AC_CHECK_HEADERS_ONCE(inttypes.h)
|
||||
AS_IF([test "x$ac_cv_header_inttypes_h" = xyes],[
|
||||
AC_MSG_CHECKING([if inttypes.h is sane])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
|
||||
[uintmax_t max = UINTMAX_C(0);
|
||||
printf("%"PRIuMAX"\n", max);])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(INTTYPES_H_IS_SANE, 1,
|
||||
[Define if the macros in <inttypes.h> are usable])],
|
||||
[AC_MSG_RESULT([no (AIX, eh?)])])])])
|
41
autoconf/m4/pa_cross_compile.m4
Normal file
41
autoconf/m4/pa_cross_compile.m4
Normal file
|
@ -0,0 +1,41 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_CROSS_COMPILE
|
||||
dnl
|
||||
dnl Get the canonical name for the build and host (runtime) systems;
|
||||
dnl then figure out if this is cross-compilation. Specifically, this
|
||||
dnl disables invoking WINE on non-Windows systems which are configured
|
||||
dnl to run WINE automatically.
|
||||
dnl
|
||||
dnl Use PA_CROSS_COMPILE_TOOL if the target system (output of a code-
|
||||
dnl generation tool) is applicable.
|
||||
dnl
|
||||
dnl This doesn't explicitly print any messages as that is automatically
|
||||
dnl done elsewhere.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN_ONCE([PA_CROSS_COMPILE],
|
||||
[
|
||||
AC_BEFORE([$0], [AC_LANG_COMPILER])
|
||||
AC_BEFORE([$0], [AC_LANG])
|
||||
AC_BEFORE([$0], [AC_PROG_CC])
|
||||
AC_BEFORE([$0], [AC_PROG_CPP])
|
||||
AC_BEFORE([$0], [AC_PROG_CXX])
|
||||
AC_BEFORE([$0], [AC_PROG_CXXCPP])
|
||||
AC_BEFORE([$0], [AC_PROG_OBJC])
|
||||
AC_BEFORE([$0], [AC_PROG_OBJCPP])
|
||||
AC_BEFORE([$0], [AC_PROG_OBJCXX])
|
||||
AC_BEFORE([$0], [AC_PROG_OBJCXXCPP])
|
||||
AC_BEFORE([$0], [AC_PROG_F77])
|
||||
AC_BEFORE([$0], [AC_PROG_FC])
|
||||
AC_BEFORE([$0], [AC_PROG_GO])
|
||||
|
||||
# Disable WINE
|
||||
WINELOADER=/dev/null
|
||||
export WINELOADER
|
||||
WINESERVER=/dev/null
|
||||
export WINESERVER
|
||||
WINEPREFIX=/dev/null
|
||||
export WINEPREFIX
|
||||
|
||||
AC_CANONICAL_BUILD
|
||||
AC_CANONICAL_HOST
|
||||
])
|
19
autoconf/m4/pa_flags_langlist.m4
Normal file
19
autoconf/m4/pa_flags_langlist.m4
Normal file
|
@ -0,0 +1,19 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_FLAGS_LANGLIST(flagvar)
|
||||
dnl
|
||||
dnl Return a list of languages affected by the variable flagvar.
|
||||
dnl If flagvar is unknown, assume it affects the current language.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_FLAGS_LANGLIST],
|
||||
[m4_dquote(m4_case([$1],
|
||||
[CPPFLAGS], [[C],[C++],[Objective C],[Objective C++]],
|
||||
[CFLAGS], [[C]],
|
||||
[CXXFLAGS], [[C++]],
|
||||
[FFLAGS], [[Fortran 77]],
|
||||
[FCFLAGS], [[Fortran]],
|
||||
[ERLCFLAGS], [[Erlang]],
|
||||
[OBJCFLAGS], [[Objective C]],
|
||||
[OBJCXXFLAGS], [[Objective C++]],
|
||||
[GOFLAGS], [[Go]],
|
||||
[LDFLAGS], [[C],[C++],[Fortran 77],[Fortran],[Objective C],[Objective C++],[Go]],
|
||||
m4_dquote(_AC_LANG)))])
|
26
autoconf/m4/pa_have_tcpwrappers.m4
Normal file
26
autoconf/m4/pa_have_tcpwrappers.m4
Normal file
|
@ -0,0 +1,26 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_HAVE_TCPWRAPPERS
|
||||
dnl
|
||||
dnl Do we have the tcpwrappers -lwrap? This can't be done using AC_CHECK_LIBS
|
||||
dnl due to the need to provide "allow_severity" and "deny_severity" variables
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_HAVE_TCPWRAPPERS],
|
||||
[AC_CHECK_LIB([wrap], [main])
|
||||
AC_MSG_CHECKING([for tcpwrappers])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <tcpd.h>
|
||||
int allow_severity = 0;
|
||||
int deny_severity = 0;
|
||||
]],
|
||||
[[
|
||||
hosts_ctl("sample_daemon", STRING_UNKNOWN, STRING_UNKNOWN, STRING_UNKNOWN);
|
||||
]])],
|
||||
[
|
||||
AC_DEFINE(HAVE_TCPWRAPPERS, 1,
|
||||
[Define if we have tcpwrappers (-lwrap) and <tcpd.h>.])
|
||||
AC_MSG_RESULT([yes])
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT([no])
|
||||
])])
|
15
autoconf/m4/pa_lang_foreach.m4
Normal file
15
autoconf/m4/pa_lang_foreach.m4
Normal file
|
@ -0,0 +1,15 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_LANG_FOREACH(subset, body)
|
||||
dnl
|
||||
dnl Expand [body] for each language encountered in the configure script also
|
||||
dnl present in [subset], or all if [subset] is empty
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([_PA_LANG_DO],dnl
|
||||
[AC_LANG([$2])dnl
|
||||
$1])
|
||||
|
||||
AC_DEFUN([PA_LANG_FOREACH],dnl
|
||||
[m4_pushdef([_pa_lang_foreach_current],[_AC_LANG])dnl
|
||||
m4_map_args([m4_curry([_PA_LANG_DO],[$2])],m4_unquote(PA_LANG_SEEN_LIST($1)))dnl
|
||||
AC_LANG(_pa_lang_foreach_current)dnl
|
||||
m4_popdef([_pa_lang_foreach_current])])
|
20
autoconf/m4/pa_lang_seen_list.m4
Normal file
20
autoconf/m4/pa_lang_seen_list.m4
Normal file
|
@ -0,0 +1,20 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_LANG_SEEN_LIST(subset)
|
||||
dnl
|
||||
dnl List of the language lang has been used in the configuration
|
||||
dnl script so far, possibly subset by [subset].
|
||||
dnl
|
||||
dnl This relies on overriding _AC_LANG_SET(from, to),
|
||||
dnl the internal implementation of _AC_LANG.
|
||||
dnl --------------------------------------------------------------------------
|
||||
m4_ifndef([_PA_LANG_SET],
|
||||
[m4_rename([_AC_LANG_SET], [_PA_LANG_SET])dnl
|
||||
m4_defun([_AC_LANG_SET], [m4_set_add([_PA_LANG_SEEN_SET],[$2])dnl
|
||||
_PA_LANG_SET($@)])])
|
||||
|
||||
AC_DEFUN([PA_LANG_SEEN_LIST],
|
||||
[m4_set_delete([_pa_lang_seen_subset])dnl
|
||||
m4_pushdef([_pa_lang_seen_subset_list],m4_ifnblank([$1],[$1],m4_dquote(m4_set_list([_PA_LANG_SEEN_SET]))))dnl
|
||||
m4_set_add_all([_pa_lang_seen_subset],_pa_lang_seen_subset_list)dnl
|
||||
m4_cdr(m4_set_intersection([_pa_lang_seen_subset],[_PA_LANG_SEEN_SET]))dnl
|
||||
m4_popdef([_pa_lang_seen_subset_list])])
|
13
autoconf/m4/pa_option_debug.m4
Normal file
13
autoconf/m4/pa_option_debug.m4
Normal file
|
@ -0,0 +1,13 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_OPTION_DEBUG(with_debug, without_debug)
|
||||
dnl
|
||||
dnl Set debug flags and optimization flags depending on if
|
||||
dnl --enable-debug is set or not. Some flags are set regardless...
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_OPTION_DEBUG],
|
||||
[PA_ARG_DISABLED([gdb], [disable gdb debug extensions],
|
||||
[PA_ADD_LANGFLAGS([-g3])], [PA_ADD_LANGFLAGS([-ggdb3 -g3])])
|
||||
PA_ARG_ENABLED([debug], [optimize for debugging],
|
||||
[PA_ADD_LANGFLAGS([-Og -O0])
|
||||
$1],
|
||||
[$2])])
|
8
autoconf/m4/pa_option_profiling.m4
Normal file
8
autoconf/m4/pa_option_profiling.m4
Normal file
|
@ -0,0 +1,8 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_OPTION_PROFILING(with_profiling, without_profiling)
|
||||
dnl
|
||||
dnl Try to enable profiling if --enable-profiling is set.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_OPTION_PROFILING],
|
||||
[PA_ARG_ENABLED([profiling], [compile with profiling (-pg option)],
|
||||
[PA_ADD_LANGFLAGS([-pg])])])
|
13
autoconf/m4/pa_prog_cc.m4
Normal file
13
autoconf/m4/pa_prog_cc.m4
Normal file
|
@ -0,0 +1,13 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_PROG_CC()
|
||||
dnl
|
||||
dnl Similar to AC_PROG_CC, but add a prototype for main() to
|
||||
dnl AC_INCLUDES_DEFAULT to avoid -Werror from breaking compilation.
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_PROG_CC],
|
||||
[AC_PROG_CC
|
||||
AS_IF([test x$ac_cv_prog != xno],
|
||||
[ac_includes_default="$ac_includes_default
|
||||
#ifndef __cplusplus
|
||||
extern int main(void);
|
||||
#endif"])])
|
22
autoconf/m4/pa_search_libs_and_add.m4
Normal file
22
autoconf/m4/pa_search_libs_and_add.m4
Normal file
|
@ -0,0 +1,22 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_SEARCH_LIBS_AND_ADD
|
||||
dnl
|
||||
dnl PA_SEARCH_LIBS_AND_ADD(function, libraries [,function to add])
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_SEARCH_LIBS_AND_ADD],
|
||||
[
|
||||
AH_TEMPLATE(AS_TR_CPP(HAVE_$1), [Define if $1 function was found])
|
||||
AC_SEARCH_LIBS($1, $2,
|
||||
[
|
||||
AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1))
|
||||
pa_add_$1=false;
|
||||
],
|
||||
[
|
||||
XTRA=true;
|
||||
if test $# -eq 3; then
|
||||
AC_LIBOBJ($3)
|
||||
else
|
||||
AC_LIBOBJ($1)
|
||||
fi
|
||||
pa_add_$1=true;
|
||||
])])
|
25
autoconf/m4/pa_sigsetjmp.m4
Normal file
25
autoconf/m4/pa_sigsetjmp.m4
Normal file
|
@ -0,0 +1,25 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_SIGSETJMP
|
||||
dnl
|
||||
dnl Do we have sigsetjmp/siglongjmp? (AC_CHECK_FUNCS doesn't seem to work
|
||||
dnl for these particular functions.)
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_SIGSETJMP],
|
||||
[AC_MSG_CHECKING([for sigsetjmp])
|
||||
AC_LINK_IFELSE([AC_LANG_SOURCE(
|
||||
[
|
||||
AC_INCLUDES_DEFAULT
|
||||
#include <setjmp.h>
|
||||
|
||||
int main(void) {
|
||||
sigjmp_buf buf;
|
||||
if (sigsetjmp(buf,1))
|
||||
return 0;
|
||||
siglongjmp(buf,2);
|
||||
return 1;
|
||||
}
|
||||
])],
|
||||
[AC_MSG_RESULT([yes])
|
||||
AC_DEFINE([HAVE_SIGSETJMP], 1,
|
||||
[Define to 1 if your system has sigsetjmp/siglongjmp])],
|
||||
[AC_MSG_RESULT([no])])])
|
11
autoconf/m4/pa_sym.m4
Normal file
11
autoconf/m4/pa_sym.m4
Normal file
|
@ -0,0 +1,11 @@
|
|||
dnl --------------------------------------------------------------------------
|
||||
dnl PA_SYM(prefix, string)
|
||||
dnl
|
||||
dnl Convert a (semi-) arbitrary string to a CPP symbol
|
||||
dnl Compact underscores and convert non-C characters to underscore,
|
||||
dnl except + which is converted to X (so C++ -> CXX).
|
||||
dnl --------------------------------------------------------------------------
|
||||
AC_DEFUN([PA_SYM],
|
||||
[m4_bpatsubsts(m4_quote(m4_toupper([$*])),
|
||||
[,],[],[\+],[X],[[^ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]+],[_],dnl
|
||||
[^._?\(.*\)_.$],[[\1]])])
|
Loading…
Add table
Add a link
Reference in a new issue