Blame m4/mhd_sys_extentions.m4

Packit 875988
# SYNOPSIS
Packit 875988
#
Packit 875988
#   MHD_SYS_EXT([VAR-ADD-CPPFLAGS])
Packit 875988
#
Packit 875988
# DESCRIPTION
Packit 875988
#
Packit 875988
#   This macro checks system headers and add defines that enable maximum
Packit 875988
#   number of exposed system interfaces. Macro verifies that added defines
Packit 875988
#   will not break basic headers, some defines are also checked against
Packit 875988
#   real recognition by headers.
Packit 875988
#   If VAR-ADD-CPPFLAGS is specified, defines will be added to this variable
Packit 875988
#   in form suitable for CPPFLAGS. Otherwise defines will be added to
Packit 875988
#   configuration header (usually 'config.h').
Packit 875988
#
Packit 875988
#   Example usage:
Packit 875988
#
Packit 875988
#     MHD_SYS_EXT
Packit 875988
#
Packit 875988
#   or
Packit 875988
#
Packit 875988
#     MHD_SYS_EXT([CPPFLAGS])
Packit 875988
#
Packit 875988
#   Macro is not enforced to be called before AC_COMPILE_IFELSE, but it
Packit 875988
#   advisable to call macro before any compile and header tests since
Packit 875988
#   additional defines can change results of those tests.
Packit 875988
#
Packit 875988
#   Defined in command line macros are always honored and cache variables
Packit 875988
#   used in all checks so if any test will not work correctly on some
Packit 875988
#   platform, user may simply fix it by giving correct defines in CPPFLAGS
Packit 875988
#   or by giving cache variable in configure parameters, for example:
Packit 875988
#
Packit 875988
#     ./configure CPPFLAGS='-D_XOPEN_SOURCE=1 -D_XOPEN_SOURCE_EXTENDED'
Packit 875988
#
Packit 875988
#   or
Packit 875988
#
Packit 875988
#     ./configure mhd_cv_define__xopen_source_sevenh_works=no
Packit 875988
#
Packit 875988
#   This simplify building from source on exotic platforms as patching
Packit 875988
#   of configure.ac is not required to change results of tests.
Packit 875988
#
Packit 875988
# LICENSE
Packit 875988
#
Packit 875988
#   Copyright (c) 2016, 2017 Karlson2k (Evgeny Grin) <k2k@narod.ru>
Packit 875988
#
Packit 875988
#   Copying and distribution of this file, with or without modification, are
Packit 875988
#   permitted in any medium without royalty provided the copyright notice
Packit 875988
#   and this notice are preserved. This file is offered as-is, without any
Packit 875988
#   warranty.
Packit 875988
Packit 875988
#serial 2
Packit 875988
Packit 875988
AC_DEFUN([MHD_SYS_EXT],[dnl
Packit 875988
  AC_PREREQ([2.64])dnl for AS_VAR_IF, AS_VAR_SET_IF, m4_ifnblank
Packit 875988
  AC_LANG_PUSH([C])dnl Use C language for simplicity
Packit 875988
  mhd_mse_sys_ext_defines=""
Packit 875988
  mhd_mse_sys_ext_flags=""
Packit 875988
Packit 875988
  dnl Check platform-specific extensions.
Packit 875988
  dnl Use compiler-based test for determinig target.
Packit 875988
Packit 875988
  dnl Always add _GNU_SOURCE if headers allow.
Packit 875988
  MHD_CHECK_DEF_AND_ACCEPT([[_GNU_SOURCE]], [],
Packit 875988
    [[${mhd_mse_sys_ext_defines}]], [mhd_cv_macro_add__gnu_source="no"],
Packit 875988
    [mhd_cv_macro_add__gnu_source="yes"],
Packit 875988
    [mhd_cv_macro_add__gnu_source="no"]
Packit 875988
  )
Packit 875988
  AS_VAR_IF([mhd_cv_macro_add__gnu_source], ["yes"],
Packit 875988
    [
Packit 875988
      _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[_GNU_SOURCE]])
Packit 875988
    ]
Packit 875988
  )
Packit 875988
Packit 875988
  dnl __BSD_VISIBLE is actually a small hack for FreeBSD.
Packit 875988
  dnl Funny that it's used in some Android versions too.
Packit 875988
  AC_CACHE_CHECK([[whether to try __BSD_VISIBLE macro]],
Packit 875988
    [[mhd_cv_macro_try___bsd_visible]], [dnl
Packit 875988
    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Packit 875988
/* Warning: test with inverted logic! */
Packit 875988
#ifdef __FreeBSD__
Packit 875988
#error Target FreeBSD
Packit 875988
choke me now;
Packit 875988
#endif /* __FreeBSD__ */
Packit 875988
Packit 875988
#ifdef __ANDROID__
Packit 875988
#include <android/api-level.h>
Packit 875988
#ifndef __ANDROID_API_O__
Packit 875988
#error Target is Android NDK before R14
Packit 875988
choke me now;
Packit 875988
#endif /* ! __ANDROID_API_O__ */
Packit 875988
#endif /* __ANDROID__ */
Packit 875988
        ]],[])],
Packit 875988
      [[mhd_cv_macro_try___bsd_visible="no"]],
Packit 875988
      [[mhd_cv_macro_try___bsd_visible="yes"]]
Packit 875988
    )
Packit 875988
  ])
Packit 875988
  AS_VAR_IF([[mhd_cv_macro_try___bsd_visible]], [["yes"]],
Packit 875988
  [dnl
Packit 875988
    AC_CACHE_CHECK([[whether __BSD_VISIBLE is already defined]],
Packit 875988
      [[mhd_cv_macro___bsd_visible_defined]], [dnl
Packit 875988
      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Packit 875988
${mhd_mse_sys_ext_defines}
Packit 875988
/* Warning: test with inverted logic! */
Packit 875988
#ifdef __BSD_VISIBLE
Packit 875988
#error __BSD_VISIBLE is defined
Packit 875988
choke me now;
Packit 875988
#endif
Packit 875988
          ]],[])
Packit 875988
      ],
Packit 875988
        [[mhd_cv_macro___bsd_visible_defined="no"]],
Packit 875988
        [[mhd_cv_macro___bsd_visible_defined="yes"]]
Packit 875988
      )
Packit 875988
    ])
Packit 875988
    AS_VAR_IF([[mhd_cv_macro___bsd_visible_defined]], [["yes"]], [[:]],
Packit 875988
    [dnl
Packit 875988
      MHD_CHECK_ACCEPT_DEFINE(
Packit 875988
        [[__BSD_VISIBLE]], [], [[${mhd_mse_sys_ext_defines}]],
Packit 875988
        [
Packit 875988
          _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[__BSD_VISIBLE]])
Packit 875988
        ]
Packit 875988
      )dnl
Packit 875988
    ])
Packit 875988
  ])
Packit 875988
Packit 875988
Packit 875988
  dnl _DARWIN_C_SOURCE enables additional functionality on Darwin.
Packit 875988
  MHD_CHECK_DEFINED_MSG([[__APPLE__]], [[${mhd_mse_sys_ext_defines}]],
Packit 875988
    [[whether to try _DARWIN_C_SOURCE macro]],
Packit 875988
  [dnl
Packit 875988
    MHD_CHECK_DEF_AND_ACCEPT(
Packit 875988
      [[_DARWIN_C_SOURCE]], [], [[${mhd_mse_sys_ext_defines}]], [],
Packit 875988
      [
Packit 875988
        _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[_DARWIN_C_SOURCE]])
Packit 875988
      ]
Packit 875988
    )dnl
Packit 875988
  ])
Packit 875988
Packit 875988
  dnl __EXTENSIONS__ unlocks almost all interfaces on Solaris.
Packit 875988
  MHD_CHECK_DEFINED_MSG([[__sun]], [[${mhd_mse_sys_ext_defines}]],
Packit 875988
    [[whether to try __EXTENSIONS__ macro]],
Packit 875988
  [dnl
Packit 875988
    MHD_CHECK_DEF_AND_ACCEPT(
Packit 875988
      [[__EXTENSIONS__]], [], [[${mhd_mse_sys_ext_defines}]], [],
Packit 875988
      [
Packit 875988
        _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[__EXTENSIONS__]])
Packit 875988
      ]
Packit 875988
    )dnl
Packit 875988
  ])
Packit 875988
Packit 875988
  dnl _NETBSD_SOURCE switch on almost all headers definitions on NetBSD.
Packit 875988
  MHD_CHECK_DEFINED_MSG([[__NetBSD__]], [[${mhd_mse_sys_ext_defines}]],
Packit 875988
    [[whether to try _NETBSD_SOURCE macro]],
Packit 875988
  [dnl
Packit 875988
    MHD_CHECK_DEF_AND_ACCEPT(
Packit 875988
      [[_NETBSD_SOURCE]], [], [[${mhd_mse_sys_ext_defines}]], [],
Packit 875988
      [
Packit 875988
        _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[_NETBSD_SOURCE]])
Packit 875988
      ]
Packit 875988
    )dnl
Packit 875988
  ])
Packit 875988
Packit 875988
  dnl _BSD_SOURCE currently used only on OpenBSD to unhide functions.
Packit 875988
  MHD_CHECK_DEFINED_MSG([[__OpenBSD__]], [[${mhd_mse_sys_ext_defines}]],
Packit 875988
    [[whether to try _BSD_SOURCE macro]],
Packit 875988
  [dnl
Packit 875988
    MHD_CHECK_DEF_AND_ACCEPT(
Packit 875988
      [[_BSD_SOURCE]], [], [[${mhd_mse_sys_ext_defines}]], [],
Packit 875988
      [
Packit 875988
        _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[_BSD_SOURCE]])
Packit 875988
      ]
Packit 875988
    )dnl
Packit 875988
  ])
Packit 875988
Packit 875988
  dnl _TANDEM_SOURCE unhides most functions on NonStop OS
Packit 875988
  dnl (which comes from Tandem Computers decades ago).
Packit 875988
  MHD_CHECK_DEFINED_MSG([[__TANDEM]], [[${mhd_mse_sys_ext_defines}]],
Packit 875988
    [[whether to try _TANDEM_SOURCE macro]],
Packit 875988
  [dnl
Packit 875988
    MHD_CHECK_DEF_AND_ACCEPT(
Packit 875988
      [[_TANDEM_SOURCE]], [], [[${mhd_mse_sys_ext_defines}]], [],
Packit 875988
      [
Packit 875988
        _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[_TANDEM_SOURCE]])
Packit 875988
      ]
Packit 875988
    )dnl
Packit 875988
  ])
Packit 875988
Packit 875988
  dnl _ALL_SOURCE makes visible POSIX and non-POSIX symbols
Packit 875988
  dnl on z/OS, AIX and Interix.
Packit 875988
  AC_CACHE_CHECK([[whether to try _ALL_SOURCE macro]],
Packit 875988
    [[mhd_cv_macro_try__all_source]], [dnl
Packit 875988
    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
Packit 875988
#if !defined(__TOS_MVS__) && !defined (__INTERIX)
Packit 875988
#error Target is not z/OS, AIX or Interix
Packit 875988
choke me now;
Packit 875988
#endif
Packit 875988
        ]],[])],
Packit 875988
      [[mhd_cv_macro_try__all_source="yes"]],
Packit 875988
      [[mhd_cv_macro_try__all_source="no"]]
Packit 875988
    )
Packit 875988
  ])
Packit 875988
  AS_VAR_IF([[mhd_cv_macro_try__all_source]], [["yes"]],
Packit 875988
  [dnl
Packit 875988
    MHD_CHECK_DEF_AND_ACCEPT(
Packit 875988
      [[_ALL_SOURCE]], [], [[${mhd_mse_sys_ext_defines}]], [],
Packit 875988
      [
Packit 875988
        _MHD_SYS_EXT_VAR_ADD_FLAG([[mhd_mse_sys_ext_defines]], [[mhd_mse_sys_ext_flags]], [[_ALL_SOURCE]])
Packit 875988
      ]
Packit 875988
    )dnl
Packit 875988
  ])
Packit 875988
Packit 875988
  mhd_mse_xopen_features=""
Packit 875988
  mhd_mse_xopen_defines=""
Packit 875988
  mhd_mse_xopen_flags=""
Packit 875988
Packit 875988
  AC_CACHE_CHECK([[whether _XOPEN_SOURCE is already defined]],
Packit 875988
    [[mhd_cv_macro__xopen_source_defined]], [
Packit 875988
      _MHD_CHECK_DEFINED([[_XOPEN_SOURCE]], [[${mhd_mse_sys_ext_defines}]],
Packit 875988
        [[mhd_cv_macro__xopen_source_defined="yes"]],
Packit 875988
        [[mhd_cv_macro__xopen_source_defined="no"]]
Packit 875988
      )
Packit 875988
    ]
Packit 875988
  )
Packit 875988
  AS_VAR_IF([[mhd_cv_macro__xopen_source_defined]], [["no"]],
Packit 875988
    [
Packit 875988
      dnl Some platforms (namely: Solaris) use '==' checks instead of '>='
Packit 875988
      dnl for _XOPEN_SOURCE, resulting that unknown for platform values are
Packit 875988
      dnl interpreted as oldest and platform expose reduced number of
Packit 875988
      dnl interfaces. Next checks will ensure that platform recognise
Packit 875988
      dnl requested mode instead of blindly define high number that can
Packit 875988
      dnl be simply ignored by platform.
Packit 875988
      _MHD_CHECK_POSIX2008([[mhd_mse_xopen_defines]],
Packit 875988
        [[mhd_mse_xopen_flags]],
Packit 875988
        [[${mhd_mse_sys_ext_defines}]],
Packit 875988
        [mhd_mse_xopen_features="${mhd_cv_headers_posix2008}"],
Packit 875988
        [
Packit 875988
          _MHD_CHECK_POSIX2001([[mhd_mse_xopen_defines]],
Packit 875988
            [[mhd_mse_xopen_flags]],
Packit 875988
             [[${mhd_mse_sys_ext_defines}]],
Packit 875988
            [mhd_mse_xopen_features="${mhd_cv_headers_posix2001}"],
Packit 875988
            [
Packit 875988
              _MHD_CHECK_SUSV2([[mhd_mse_xopen_defines]],
Packit 875988
                [[mhd_mse_xopen_flags]],
Packit 875988
                [[${mhd_mse_sys_ext_defines}]],
Packit 875988
                [mhd_mse_xopen_features="${mhd_cv_headers_susv2}"],
Packit 875988
                [mhd_mse_xopen_features="${mhd_cv_headers_susv2}"]
Packit 875988
              )
Packit 875988
            ]
Packit 875988
          )
Packit 875988
        ]
Packit 875988
      )
Packit 875988
    ]
Packit 875988
  )
Packit 875988
Packit 875988
  AS_IF([[test "x${mhd_cv_macro__xopen_source_defined}" = "xno" && \
Packit 875988
          test "x${mhd_cv_macro__xopen_source_def_fiveh}" = "xno" || \
Packit 875988
          test "x${mhd_mse_xopen_features}" = "xnot available" ]],
Packit 875988
    [
Packit 875988
      _MHD_XOPEN_VAR_ADD([mhd_mse_xopen_defines], [mhd_mse_xopen_flags], [${mhd_mse_sys_ext_defines}])
Packit 875988
    ]
Packit 875988
  )
Packit 875988
Packit 875988
  mhd_mse_sys_features_src="
Packit 875988
#ifdef __APPLE__
Packit 875988
#include <sys/socket.h>
Packit 875988
#else
Packit 875988
#error No useful system features.
Packit 875988
choke me now;
Packit 875988
#endif
Packit 875988
Packit 875988
int main()
Packit 875988
{
Packit 875988
#ifdef __APPLE__
Packit 875988
#ifndef sendfile
Packit 875988
  (void) sendfile;
Packit 875988
#endif
Packit 875988
#endif
Packit 875988
  return 0;
Packit 875988
}
Packit 875988
"
Packit 875988
  AC_CACHE_CHECK([[for useful system-specific features]],
Packit 875988
    [[mhd_cv_headers_useful_features_present]], [dnl
Packit 875988
    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
Packit 875988
${mhd_mse_sys_ext_defines}
Packit 875988
${mhd_mse_sys_features_src}
Packit 875988
      ]])],
Packit 875988
      [[mhd_cv_headers_useful_features_present="yes"]],
Packit 875988
      [[mhd_cv_headers_useful_features_present="no"]]
Packit 875988
    )dnl
Packit 875988
  ])
Packit 875988
  AS_VAR_IF([[mhd_cv_headers_useful_features_present]], [["yes"]],
Packit 875988
    [
Packit 875988
      AS_IF([[test "x${mhd_mse_xopen_flags}" = "x"]], [[:]],
Packit 875988
        [
Packit 875988
          AC_CACHE_CHECK([[whether useful system-specific features works with ${mhd_mse_xopen_flags}]],
Packit 875988
            [[mhd_cv_headers_useful_features_works_xopen]], [dnl
Packit 875988
            AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
Packit 875988
${mhd_mse_sys_ext_defines}
Packit 875988
${mhd_mse_xopen_defines}
Packit 875988
${mhd_mse_sys_features_src}
Packit 875988
              ]])],
Packit 875988
              [[mhd_cv_headers_useful_features_works_xopen="yes"]],
Packit 875988
              [[mhd_cv_headers_useful_features_works_xopen="no"]]
Packit 875988
            )dnl
Packit 875988
          ])dnl
Packit 875988
        ]
Packit 875988
      )dnl
Packit 875988
    ]
Packit 875988
  )
Packit 875988
Packit 875988
Packit 875988
  AS_IF([[test "x${mhd_cv_headers_useful_features_present}" = "xyes" && \
Packit 875988
          test "x${mhd_cv_headers_useful_features_works_xopen}" = "xno" && \
Packit 875988
          test "x${mhd_mse_xopen_flags}" != "x"]],
Packit 875988
    [
Packit 875988
      _MHD_VAR_CONTAIN([[mhd_mse_xopen_features]], [[, activated by _XOPEN_SOURCE]],
Packit 875988
        [
Packit 875988
          AC_MSG_WARN([[_XOPEN_SOURCE macro is required to activate all headers symbols, however some useful system-specific features does not work with _XOPEN_SOURCE. ]dnl
Packit 875988
          [_XOPEN_SOURCE macro will not be used.]])
Packit 875988
        ]
Packit 875988
      )
Packit 875988
      AS_UNSET([[mhd_mse_xopen_defines]])
Packit 875988
      AS_UNSET([[mhd_mse_xopen_flags]])
Packit 875988
      AS_UNSET([[mhd_mse_xopen_values]])
Packit 875988
    ]
Packit 875988
  )
Packit 875988
Packit 875988
  dnl Discard temporal source variables
Packit 875988
  AS_UNSET([[mhd_mse_sys_features_src]])
Packit 875988
  AS_UNSET([[mhd_mse_xopen_defines]])
Packit 875988
  AS_UNSET([[mhd_mse_sys_ext_defines]])
Packit 875988
Packit 875988
  dnl Determined all required defines.
Packit 875988
  AC_MSG_CHECKING([[for final set of defined symbols]])
Packit 875988
  m4_ifblank([$1], [dnl
Packit 875988
    AH_TEMPLATE([[_XOPEN_SOURCE]], [Define to maximum value supported by system headers])dnl
Packit 875988
    AH_TEMPLATE([[_XOPEN_SOURCE_EXTENDED]], [Define to 1 if _XOPEN_SOURCE is defined to value less than 500 ]dnl
Packit 875988
      [and system headers requre this symbol])dnl
Packit 875988
    AH_TEMPLATE([[_XOPEN_VERSION]], [Define to maximum value supported by system headers if _XOPEN_SOURCE ]dnl
Packit 875988
      [is defined to value less than 500 and headers do not support _XOPEN_SOURCE_EXTENDED])dnl
Packit 875988
    AH_TEMPLATE([[_GNU_SOURCE]], [Define to 1 to enable GNU-related header features])dnl
Packit 875988
    AH_TEMPLATE([[__BSD_VISIBLE]], [Define to 1 if it is required by headers to expose additional symbols])dnl
Packit 875988
    AH_TEMPLATE([[_DARWIN_C_SOURCE]], [Define to 1 if it is required by headers to expose additional symbols])dnl
Packit 875988
    AH_TEMPLATE([[__EXTENSIONS__]], [Define to 1 if it is required by headers to expose additional symbols])dnl
Packit 875988
    AH_TEMPLATE([[_NETBSD_SOURCE]], [Define to 1 if it is required by headers to expose additional symbols])dnl
Packit 875988
    AH_TEMPLATE([[_BSD_SOURCE]], [Define to 1 if it is required by headers to expose additional symbols])dnl
Packit 875988
    AH_TEMPLATE([[_TANDEM_SOURCE]], [Define to 1 if it is required by headers to expose additional symbols])dnl
Packit 875988
    AH_TEMPLATE([[_ALL_SOURCE]], [Define to 1 if it is required by headers to expose additional symbols])dnl
Packit 875988
  ])
Packit 875988
  for mhd_mse_Flag in ${mhd_mse_sys_ext_flags} ${mhd_mse_xopen_flags}
Packit 875988
  do
Packit 875988
    m4_ifnblank([$1], [dnl
Packit 875988
      AS_VAR_APPEND([$1],[[" -D$mhd_mse_Flag"]])
Packit 875988
    ], [dnl
Packit 875988
      AS_CASE([[$mhd_mse_Flag]], [[*=*]],
Packit 875988
      [dnl
Packit 875988
        AC_DEFINE_UNQUOTED([[`echo $mhd_mse_Flag | cut -f 1 -d =`]],
Packit 875988
          [[`echo $mhd_mse_Flag | cut -f 2 -d = -s`]])
Packit 875988
      ], [dnl
Packit 875988
        AC_DEFINE_UNQUOTED([[$mhd_mse_Flag]])
Packit 875988
      ])
Packit 875988
    ])
Packit 875988
  done
Packit 875988
  AS_UNSET([[mhd_mse_Flag]])
Packit 875988
  dnl Trim whitespaces
Packit 875988
  mhd_mse_result=`echo ${mhd_mse_sys_ext_flags} ${mhd_mse_xopen_flags}`
Packit 875988
  AC_MSG_RESULT([[${mhd_mse_result}]])
Packit 875988
  AS_UNSET([[mhd_mse_result]])
Packit 875988
  AS_UNSET([[mhd_mse_xopen_flags]])
Packit 875988
  AS_UNSET([[mhd_mse_sys_ext_flags]])
Packit 875988
  AC_LANG_POP([C])
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_SYS_EXT_VAR_ADD_FLAG(DEFINES_VAR, FLAGS_VAR,
Packit 875988
#                           FLAG, [FLAG-VALUE = 1])
Packit 875988
#
Packit 875988
# Internal macro, only to be used from MHD_SYS_EXT, _MHD_XOPEN_VAR_ADD
Packit 875988
Packit 875988
m4_define([_MHD_SYS_EXT_VAR_ADD_FLAG], [dnl
Packit 875988
  m4_ifnblank([$4],[dnl
Packit 875988
    ]m4_normalize([$1])[="[$]{]m4_normalize([$1])[}[#define ]m4_normalize($3) ]m4_normalize([$4])[
Packit 875988
"
Packit 875988
    AS_IF([test "x[$]{]m4_normalize([$2])[}" = "x"],
Packit 875988
      []m4_normalize([$2])[="]m4_normalize([$3])[=]m4_normalize([$4])["],
Packit 875988
      []m4_normalize([$2])[="[$]{]m4_normalize([$2])[} ]m4_normalize([$3])[=]m4_normalize([$4])["]
Packit 875988
    )dnl
Packit 875988
  ], [dnl
Packit 875988
    ]m4_normalize([$1])[="[$]{]m4_normalize([$1])[}[#define ]m4_normalize($3) 1
Packit 875988
"
Packit 875988
    AS_IF([test "x[$]{]m4_normalize([$2])[}" = "x"],
Packit 875988
      []m4_normalize([$2])[="]m4_normalize([$3])["],
Packit 875988
      []m4_normalize([$2])[="[$]{]m4_normalize([$2])[} ]m4_normalize([$3])["]
Packit 875988
    )dnl
Packit 875988
  ])dnl
Packit 875988
])
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_VAR_IF(VAR, VALUE, [IF-EQ], [IF-NOT-EQ])
Packit 875988
#
Packit 875988
# Same as AS_VAR_IF, except that it expands to nothing if
Packit 875988
# both IF-EQ and IF-NOT-EQ are empty.
Packit 875988
Packit 875988
m4_define([_MHD_VAR_IF],[dnl
Packit 875988
m4_ifnblank([$3$4],[dnl
Packit 875988
AS_VAR_IF([$1],[$2],[$3],[$4])])])
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_STRING_CONTAIN(VAR, MATCH, [IF-MATCH], [IF-NOT-MATCH])
Packit 875988
#
Packit 875988
Packit 875988
AC_DEFUN([_MHD_VAR_CONTAIN],[dnl
Packit 875988
AC_REQUIRE([AC_PROG_FGREP])dnl
Packit 875988
AS_IF([[`echo "${]$1[}" | $FGREP ']$2[' >/dev/null 2>&1`]], [$3], [$4])
Packit 875988
])
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_STRING_CONTAIN_BRE(VAR, BRE, [IF-MATCH], [IF-NOT-MATCH])
Packit 875988
#
Packit 875988
Packit 875988
AC_DEFUN([_MHD_VAR_CONTAIN_BRE],[dnl
Packit 875988
AC_REQUIRE([AC_PROG_GREP])dnl
Packit 875988
AS_IF([[`echo "${]$1[}" | $GREP ']$2[' >/dev/null 2>&1`]], [$3], [$4])
Packit 875988
])
Packit 875988
Packit 875988
# SYNOPSIS
Packit 875988
#
Packit 875988
# _MHD_CHECK_POSIX2008(DEFINES_VAR, FLAGS_VAR,
Packit 875988
#                      [EXT_DEFINES],
Packit 875988
#                      [ACTION-IF-AVAILABLE],
Packit 875988
#                      [ACTION-IF-NOT-AVAILABLE])
Packit 875988
#
Packit 875988
#
Packit 875988
AC_DEFUN([_MHD_CHECK_POSIX2008], [dnl
Packit 875988
  AC_CACHE_CHECK([headers for POSIX.1-2008/SUSv4 features],
Packit 875988
    [[mhd_cv_headers_posix2008]], [dnl
Packit 875988
      _MHD_CHECK_POSIX_FEATURES_SINGLE([
Packit 875988
_MHD_BASIC_INCLUDES
Packit 875988
[
Packit 875988
/* Check will be passed if ALL features are avalable 
Packit 875988
 * and failed if ANY feature is not avalable. */
Packit 875988
int main()
Packit 875988
{
Packit 875988
Packit 875988
#ifndef stpncpy
Packit 875988
  (void) stpncpy;
Packit 875988
#endif
Packit 875988
#ifndef strnlen
Packit 875988
  (void) strnlen;
Packit 875988
#endif
Packit 875988
Packit 875988
#if !defined(__NetBSD__) && !defined(__OpenBSD__)
Packit 875988
/* NetBSD and OpenBSD didn't implement wcsnlen() for some reason. */
Packit 875988
#ifndef wcsnlen
Packit 875988
  (void) wcsnlen;
Packit 875988
#endif
Packit 875988
#endif
Packit 875988
Packit 875988
#ifdef __CYGWIN__
Packit 875988
/* The only depend function on Cygwin, but missing on some other platforms */
Packit 875988
#ifndef strndup
Packit 875988
  (void) strndup;
Packit 875988
#endif
Packit 875988
#endif
Packit 875988
Packit 875988
#ifndef __sun
Packit 875988
/* illumos forget to uncomment some _XPG7 macros. */
Packit 875988
#ifndef renameat
Packit 875988
  (void) renameat;
Packit 875988
#endif
Packit 875988
Packit 875988
#ifndef getline
Packit 875988
  (void) getline;
Packit 875988
#endif
Packit 875988
#endif /* ! __sun */
Packit 875988
Packit 875988
/* gmtime_r() becomes mandatory only in POSIX.1-2008. */
Packit 875988
#ifndef gmtime_r
Packit 875988
  (void) gmtime_r;
Packit 875988
#endif
Packit 875988
Packit 875988
/* unsetenv() actually defined in POSIX.1-2001 so it
Packit 875988
 * must be present with _XOPEN_SOURCE == 700 too. */
Packit 875988
#ifndef unsetenv
Packit 875988
  (void) unsetenv;
Packit 875988
#endif
Packit 875988
Packit 875988
  return 0;
Packit 875988
}
Packit 875988
        ]],
Packit 875988
        [$3], [[700]],
Packit 875988
        [[mhd_cv_headers_posix2008]]dnl
Packit 875988
      )
Packit 875988
    ]
Packit 875988
  )
Packit 875988
  _MHD_VAR_CONTAIN_BRE([[mhd_cv_headers_posix2008]], [[^available]],
Packit 875988
    [
Packit 875988
      _MHD_VAR_CONTAIN([[mhd_cv_headers_posix2008]], [[does not work with _XOPEN_SOURCE]], [[:]],
Packit 875988
        [_MHD_SYS_EXT_VAR_ADD_FLAG([$1],[$2],[[_XOPEN_SOURCE]],[[700]])]
Packit 875988
      )
Packit 875988
      $4
Packit 875988
    ],
Packit 875988
    [$5]
Packit 875988
  )
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
# SYNOPSIS
Packit 875988
#
Packit 875988
# _MHD_CHECK_POSIX2001(DEFINES_VAR, FLAGS_VAR,
Packit 875988
#                      [EXT_DEFINES],
Packit 875988
#                      [ACTION-IF-AVAILABLE],
Packit 875988
#                      [ACTION-IF-NOT-AVAILABLE])
Packit 875988
#
Packit 875988
#
Packit 875988
AC_DEFUN([_MHD_CHECK_POSIX2001], [dnl
Packit 875988
  AC_CACHE_CHECK([headers for POSIX.1-2001/SUSv3 features],
Packit 875988
    [[mhd_cv_headers_posix2001]], [
Packit 875988
      _MHD_CHECK_POSIX_FEATURES_SINGLE([
Packit 875988
_MHD_BASIC_INCLUDES
Packit 875988
[
Packit 875988
/* Check will be passed if ALL features are available
Packit 875988
 * and failed if ANY feature is not available. */
Packit 875988
int main()
Packit 875988
{
Packit 875988
Packit 875988
#ifndef setenv
Packit 875988
  (void) setenv;
Packit 875988
#endif
Packit 875988
Packit 875988
#ifndef __NetBSD__
Packit 875988
#ifndef vsscanf
Packit 875988
  (void) vsscanf;
Packit 875988
#endif
Packit 875988
#endif
Packit 875988
Packit 875988
/* Availability of next features varies, but they all must be present
Packit 875988
 * on platform with support for _XOPEN_SOURCE = 600. */
Packit 875988
Packit 875988
/* vsnprintf() should be available with _XOPEN_SOURCE >= 500, but some platforms
Packit 875988
 * provide it only with _POSIX_C_SOURCE >= 200112 (autodefined when
Packit 875988
 * _XOPEN_SOURCE >= 600) where specification of vsnprintf() is aligned with
Packit 875988
 * ISO C99 while others platforms defined it with even earlier standards. */
Packit 875988
#ifndef vsnprintf
Packit 875988
  (void) vsnprintf;
Packit 875988
#endif
Packit 875988
Packit 875988
/* On platforms that prefer POSIX over X/Open, fseeko() is available
Packit 875988
 * with _POSIX_C_SOURCE >= 200112 (autodefined when _XOPEN_SOURCE >= 600).
Packit 875988
 * On other platforms it should be available with _XOPEN_SOURCE >= 500. */
Packit 875988
#ifndef fseeko
Packit 875988
  (void) fseeko;
Packit 875988
#endif
Packit 875988
Packit 875988
/* F_GETOWN must be defined with _XOPEN_SOURCE >= 600, but some platforms
Packit 875988
 * define it with _XOPEN_SOURCE >= 500. */
Packit 875988
#ifndef F_GETOWN
Packit 875988
#error F_GETOWN is not defined
Packit 875988
choke me now;
Packit 875988
#endif
Packit 875988
  return 0;
Packit 875988
}
Packit 875988
        ]],
Packit 875988
        [$3],[[600]],[[mhd_cv_headers_posix2001]]dnl
Packit 875988
      )
Packit 875988
    ]
Packit 875988
  )
Packit 875988
  _MHD_VAR_CONTAIN_BRE([[mhd_cv_headers_posix2001]], [[^available]],
Packit 875988
    [
Packit 875988
      _MHD_VAR_CONTAIN([[mhd_cv_headers_posix2001]], [[does not work with _XOPEN_SOURCE]], [[:]],
Packit 875988
        [_MHD_SYS_EXT_VAR_ADD_FLAG([$1],[$2],[[_XOPEN_SOURCE]],[[600]])]
Packit 875988
      )
Packit 875988
      $4
Packit 875988
    ],
Packit 875988
    [$5]
Packit 875988
  )
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
# SYNOPSIS
Packit 875988
#
Packit 875988
# _MHD_CHECK_SUSV2(DEFINES_VAR, FLAGS_VAR,
Packit 875988
#                  [EXT_DEFINES],
Packit 875988
#                  [ACTION-IF-AVAILABLE],
Packit 875988
#                  [ACTION-IF-NOT-AVAILABLE])
Packit 875988
#
Packit 875988
#
Packit 875988
AC_DEFUN([_MHD_CHECK_SUSV2], [dnl
Packit 875988
  AC_CACHE_CHECK([headers for SUSv2/XPG5 features],
Packit 875988
    [[mhd_cv_headers_susv2]], [
Packit 875988
      _MHD_CHECK_POSIX_FEATURES_SINGLE([
Packit 875988
_MHD_BASIC_INCLUDES
Packit 875988
[
Packit 875988
/* Check will be passed if ALL features are available
Packit 875988
 * and failed if ANY feature is not available. */
Packit 875988
int main()
Packit 875988
{
Packit 875988
/* It's not easy to write reliable test for _XOPEN_SOURCE = 500 as
Packit 875988
 * platforms not always precisely follow this standard and some
Packit 875988
 * functions are already deprecated in later standards. */
Packit 875988
Packit 875988
/* Availability of next features varies, but they all must be present
Packit 875988
 * on platform with correct support for _XOPEN_SOURCE = 500. */
Packit 875988
Packit 875988
/* Mandatory with _XOPEN_SOURCE >= 500 but as XSI extension available
Packit 875988
 * with much older standards. */
Packit 875988
#ifndef ftruncate
Packit 875988
  (void) ftruncate;
Packit 875988
#endif
Packit 875988
Packit 875988
/* Added with _XOPEN_SOURCE >= 500 but was available in some standards
Packit 875988
 * before. XSI extension. */
Packit 875988
#ifndef pread
Packit 875988
  (void) pread;
Packit 875988
#endif
Packit 875988
Packit 875988
#ifndef __APPLE__
Packit 875988
/* Actually comes from XPG4v2 and must be available
Packit 875988
 * with _XOPEN_SOURCE >= 500 as well. */
Packit 875988
#ifndef symlink
Packit 875988
  (void) symlink;
Packit 875988
#endif
Packit 875988
Packit 875988
/* Actually comes from XPG4v2 and must be available
Packit 875988
 * with _XOPEN_SOURCE >= 500 as well. XSI extension. */
Packit 875988
#ifndef strdup
Packit 875988
  (void) strdup;
Packit 875988
#endif
Packit 875988
#endif /* ! __APPLE__ */
Packit 875988
  return 0;
Packit 875988
}
Packit 875988
        ]],
Packit 875988
        [$3],[[500]],[[mhd_cv_headers_susv2]]dnl
Packit 875988
      )
Packit 875988
    ]
Packit 875988
  )
Packit 875988
  _MHD_VAR_CONTAIN_BRE([[mhd_cv_headers_susv2]], [[^available]],
Packit 875988
    [
Packit 875988
      _MHD_VAR_CONTAIN([[mhd_cv_headers_susv2]], [[does not work with _XOPEN_SOURCE]], [[:]],
Packit 875988
        [_MHD_SYS_EXT_VAR_ADD_FLAG([$1],[$2],[[_XOPEN_SOURCE]],[[500]])]
Packit 875988
      )
Packit 875988
      $4
Packit 875988
    ],
Packit 875988
    [$5]
Packit 875988
  )
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
# SYNOPSIS
Packit 875988
#
Packit 875988
# _MHD_CHECK_POSIX_FEATURES_SINGLE(FEATURES_TEST,
Packit 875988
#                                  EXT_DEFINES,
Packit 875988
#                                  _XOPEN_SOURCE-VALUE,
Packit 875988
#                                  VAR-RESULT)
Packit 875988
Packit 875988
AC_DEFUN([_MHD_CHECK_POSIX_FEATURES_SINGLE], [dnl
Packit 875988
  AS_VAR_PUSHDEF([avail_Var], [mhd_cpsxfs_tmp_features_available])dnl
Packit 875988
  AS_VAR_PUSHDEF([ext_Var], [mhd_cpsxfs_tmp_extentions_allowed])dnl
Packit 875988
  AS_VAR_PUSHDEF([xopen_Var], [mhd_cpsxfs_tmp_src_xopen_allowed])dnl
Packit 875988
  AS_VAR_PUSHDEF([dislb_Var], [mhd_cpsxfs_tmp_features_disableable])dnl
Packit 875988
  AS_UNSET([avail_Var])
Packit 875988
  AS_UNSET([ext_Var])
Packit 875988
  AS_UNSET([xopen_Var])
Packit 875988
  AS_UNSET([dislb_Var])
Packit 875988
  _MHD_CHECK_POSIX_FEATURES([$1], [$2], [$3], [avail_Var], [ext_Var], [xopen_Var], [dislb_Var])
Packit 875988
  AS_VAR_IF([avail_Var], ["yes"],
Packit 875988
    [
Packit 875988
      AS_VAR_IF([dislb_Var], ["yes"],
Packit 875988
        [
Packit 875988
          AS_VAR_IF([ext_Var], ["required"],
Packit 875988
            [
Packit 875988
              AS_VAR_IF([xopen_Var], ["allowed"],
Packit 875988
                [
Packit 875988
                  AS_VAR_SET(m4_normalize([$4]), ["available, activated by extension macro, works with _XOPEN_SOURCE=]m4_normalize([$3])["])
Packit 875988
                ],
Packit 875988
                [
Packit 875988
                  AS_VAR_SET(m4_normalize([$4]), ["available, activated by extension macro, does not work with _XOPEN_SOURCE=]m4_normalize([$3])["])
Packit 875988
                ]
Packit 875988
              )
Packit 875988
            ],
Packit 875988
            [
Packit 875988
              AS_VAR_IF([ext_Var], ["allowed"],
Packit 875988
                [
Packit 875988
                  AS_VAR_IF([xopen_Var], ["required"],
Packit 875988
                    [
Packit 875988
                      AS_VAR_SET(m4_normalize([$4]), ["available, activated by _XOPEN_SOURCE=]m4_normalize([$3])[, works with extension macro"])
Packit 875988
                    ],
Packit 875988
                    [
Packit 875988
                      AS_VAR_IF([xopen_Var], ["allowed"],
Packit 875988
                        [
Packit 875988
                          AS_VAR_SET(m4_normalize([$4]), ["available, works with _XOPEN_SOURCE=]m4_normalize([$3])[, works with extension macro"])
Packit 875988
                        ],
Packit 875988
                        [
Packit 875988
                          AS_VAR_SET(m4_normalize([$4]), ["available, works with extension macro, does not work with _XOPEN_SOURCE=]m4_normalize([$3])["])
Packit 875988
                        ]
Packit 875988
                      )
Packit 875988
                    ]
Packit 875988
                  )
Packit 875988
                ],
Packit 875988
                [
Packit 875988
                  AS_VAR_IF([xopen_Var], ["required"],
Packit 875988
                    [
Packit 875988
                      AS_VAR_SET(m4_normalize([$4]), ["available, activated by _XOPEN_SOURCE=]m4_normalize([$3])[, does not work with extension macro"])
Packit 875988
                    ],
Packit 875988
                    [
Packit 875988
                      AS_VAR_IF([xopen_Var], ["allowed"],
Packit 875988
                        [
Packit 875988
                          AS_VAR_SET(m4_normalize([$4]), ["available, works with _XOPEN_SOURCE=]m4_normalize([$3])[, does not work with extension macro"])
Packit 875988
                        ],
Packit 875988
                        [
Packit 875988
                          AS_VAR_SET(m4_normalize([$4]), ["available, does not work with _XOPEN_SOURCE=]m4_normalize([$3])[, does not work with extension macro"])
Packit 875988
                        ]
Packit 875988
                      )
Packit 875988
                    ]
Packit 875988
                  )
Packit 875988
                ]
Packit 875988
              )
Packit 875988
            ]
Packit 875988
          )
Packit 875988
        ],
Packit 875988
        [
Packit 875988
          AS_VAR_SET(m4_normalize([$4]), ["available, works always"])
Packit 875988
        ]
Packit 875988
      )
Packit 875988
    ],
Packit 875988
    [
Packit 875988
      AS_VAR_SET(m4_normalize([$4]), ["not available"])
Packit 875988
    ]
Packit 875988
  )
Packit 875988
  AS_UNSET([dislb_Var])
Packit 875988
  AS_UNSET([xopen_Var])
Packit 875988
  AS_UNSET([ext_Var])
Packit 875988
  AS_UNSET([avail_Var])
Packit 875988
  AS_VAR_POPDEF([dislb_Var])dnl
Packit 875988
  AS_VAR_POPDEF([xopen_Var])dnl
Packit 875988
  AS_VAR_POPDEF([ext_Var])dnl
Packit 875988
  AS_VAR_POPDEF([avail_Var])dnl
Packit 875988
])
Packit 875988
Packit 875988
# SYNOPSIS
Packit 875988
#
Packit 875988
# _MHD_CHECK_POSIX_FEATURES(FEATURES_TEST, EXT_DEFINES, _XOPEN_SOURCE-VALUE,
Packit 875988
#                           [VAR-FEATURES-AVAILABLE-YES_NO],
Packit 875988
#                           [VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED],
Packit 875988
#                           [VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED],
Packit 875988
#                           [VAR-FEATURES-DISABLEABLE-YES_NO])
Packit 875988
Packit 875988
AC_DEFUN([_MHD_CHECK_POSIX_FEATURES], [dnl
Packit 875988
  AS_VAR_PUSHDEF([src_Var], [mhd_cpsxf_tmp_src_variable])dnl
Packit 875988
  AS_VAR_PUSHDEF([defs_Var], [mhd_cpsxf_tmp_defs_variable])dnl
Packit 875988
  AS_VAR_SET([src_Var],["
Packit 875988
$1
Packit 875988
"])
Packit 875988
  dnl To reduce 'configure' size
Packit 875988
  AS_VAR_SET([defs_Var],["
Packit 875988
$2
Packit 875988
"])
Packit 875988
  dnl To reduce 'configure' size
Packit 875988
Packit 875988
  dnl Some platforms enable most features when no
Packit 875988
  dnl specific mode is requested by macro.
Packit 875988
  dnl Check whether features test works without _XOPEN_SOURCE and
Packit 875988
  dnl with disabled extensions (undefined most of
Packit 875988
  dnl predefined macros for specific requested mode).
Packit 875988
  AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
_MHD_UNDEF_ALL_EXT
Packit 875988
$src_Var
Packit 875988
    ])],
Packit 875988
    [dnl
Packit 875988
      _AS_ECHO_LOG([[Checked features work with undefined all extensions and without _XOPEN_SOURCE]])
Packit 875988
      AS_VAR_SET(m4_normalize([$4]),["yes"]) # VAR-FEATURES-AVAILABLE-YES_NO
Packit 875988
Packit 875988
      dnl Check whether features will work extensions
Packit 875988
      AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$defs_Var
Packit 875988
$src_Var
Packit 875988
        ])],
Packit 875988
        [dnl
Packit 875988
          _AS_ECHO_LOG([[Checked features work with extensions]])
Packit 875988
          AS_VAR_SET(m4_normalize([$5]),["allowed"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
          dnl Check whether features will work with _XOPEN_SOURCE
Packit 875988
          AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$defs_Var
Packit 875988
[#define _XOPEN_SOURCE ]]m4_normalize([$3])[
Packit 875988
$src_Var
Packit 875988
            ])],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features work with extensions and with _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              AS_VAR_SET(m4_normalize([$6]),["allowed"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
              dnl Check whether features could be disabled
Packit 875988
              dnl Request oldest POSIX mode and strict ANSI mode
Packit 875988
              AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
_MHD_UNDEF_ALL_EXT
Packit 875988
[#define _POSIX_C_SOURCE 1]
Packit 875988
[#define  _ANSI_SOURCE 1]
Packit 875988
$src_Var
Packit 875988
                ])],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features work with disabled extensions, with _POSIX_C_SOURCE=1 and _ANSI_SOURCE=1]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$7]),["no"]) # VAR-FEATURES-DISABLEABLE-YES_NO
Packit 875988
                ],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features DO NOT work with disabled extensions, with _POSIX_C_SOURCE=1 and _ANSI_SOURCE=1]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$7]),["yes"]) # VAR-FEATURES-DISABLEABLE-YES_NO
Packit 875988
                ]
Packit 875988
              )
Packit 875988
            ],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features DO NOT work with extensions and with _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              AS_VAR_SET(m4_normalize([$6]),["not allowed"])  # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
              AS_VAR_SET(m4_normalize([$7]),["yes"]) # VAR-FEATURES-DISABLEABLE-YES_NO
Packit 875988
            ]
Packit 875988
          )
Packit 875988
        ],
Packit 875988
        [dnl
Packit 875988
          _AS_ECHO_LOG([[Checked features DO NOT work with extensions]])
Packit 875988
          AS_VAR_SET(m4_normalize([$7]),["yes"]) # VAR-FEATURES-DISABLEABLE-YES_NO
Packit 875988
          dnl Check whether features work with _XOPEN_SOURCE
Packit 875988
          AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
[#define _XOPEN_SOURCE ]m4_normalize($3)
Packit 875988
$src_Var
Packit 875988
            ])],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features work with _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              dnl Check default state (without enabling/disabling)
Packit 875988
              AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$src_Var
Packit 875988
                ])],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features work by default]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$6]),["allowed"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features DO NOT by default]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$6]),["required"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ]
Packit 875988
              )
Packit 875988
              dnl Check whether features work with _XOPEN_SOURCE and extensions
Packit 875988
              AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$defs_Var
Packit 875988
[#define _XOPEN_SOURCE] ]m4_normalize([$3])[
Packit 875988
$src_Var
Packit 875988
                ])],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features work with _XOPEN_SOURCE and extensions]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$5]),["allowed"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features DO NOT work with _XOPEN_SOURCE and extensions]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$5]),["not allowed"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ]
Packit 875988
              )
Packit 875988
            ],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features DO NOT work with _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              AS_VAR_SET(m4_normalize([$5]),["not allowed"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
              AS_VAR_SET(m4_normalize([$6]),["not allowed"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
            ]
Packit 875988
          )
Packit 875988
        ]
Packit 875988
      )
Packit 875988
    ],
Packit 875988
    [dnl
Packit 875988
      _AS_ECHO_LOG([[Checked features DO NOT work with undefined all extensions and without _XOPEN_SOURCE]])
Packit 875988
      dnl Let's find the way to enable POSIX features
Packit 875988
      AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$defs_Var
Packit 875988
$src_Var
Packit 875988
        ])],
Packit 875988
        [dnl
Packit 875988
          _AS_ECHO_LOG([[Checked features work with extensions]])
Packit 875988
          AS_VAR_SET(m4_normalize([$4]),["yes"]) # VAR-FEATURES-AVAILABLE-YES_NO
Packit 875988
          AS_VAR_SET(m4_normalize([$7]),["yes"]) # VAR-FEATURES-DISABLEABLE-YES_NO
Packit 875988
          dnl Check default state (without enabling/disabling)
Packit 875988
          AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$src_Var
Packit 875988
            ])],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([[Checked features work by default]])
Packit 875988
              AS_VAR_SET(m4_normalize([$5]),["allowed"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
            ],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([[Checked features DO NOT by default]])
Packit 875988
              AS_VAR_SET(m4_normalize([$5]),["required"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
            ]
Packit 875988
          )
Packit 875988
          dnl Check whether features work with extensions and _XOPEN_SOURCE
Packit 875988
          AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$defs_Var
Packit 875988
[#define _XOPEN_SOURCE] ]m4_normalize([$3])[
Packit 875988
$src_Var
Packit 875988
            ])],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features work with extensions and _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              AS_VAR_SET(m4_normalize([$6]),["allowed"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
            ],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features DO NOT work with extensions and _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              AS_VAR_SET(m4_normalize([$6]),["not allowed"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
            ]
Packit 875988
          )
Packit 875988
        ],
Packit 875988
        [dnl
Packit 875988
          _AS_ECHO_LOG([[Checked features DO NOT work with extensions]])
Packit 875988
          dnl Check whether features work with _XOPEN_SOURCE
Packit 875988
          AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
[#define _XOPEN_SOURCE] ]m4_normalize([$3])[
Packit 875988
$src_Var
Packit 875988
            ])],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features work with _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              AS_VAR_SET(m4_normalize([$4]),["yes"]) # VAR-FEATURES-AVAILABLE-YES_NO
Packit 875988
              dnl Check default state (without enabling/disabling)
Packit 875988
              AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$src_Var
Packit 875988
                ])],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features work by default]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$6]),["allowed"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([[Checked features DO NOT by default]])
Packit 875988
                  AS_VAR_SET(m4_normalize([$6]),["required"]) # VAR-XOPEN-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ]
Packit 875988
              )
Packit 875988
              dnl Check whether features work with _XOPEN_SOURCE and extensions
Packit 875988
              AC_COMPILE_IFELSE([AC_LANG_SOURCE([
Packit 875988
$defs_Var
Packit 875988
[#define _XOPEN_SOURCE] ]m4_normalize([$3])[
Packit 875988
$src_Var
Packit 875988
                ])],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([Checked features work with _XOPEN_SOURCE=]m4_normalize([$3])[ and extensions])
Packit 875988
                  AS_VAR_SET(m4_normalize([$5]),["allowed"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ],
Packit 875988
                [dnl
Packit 875988
                  _AS_ECHO_LOG([Checked features DO NOT work with _XOPEN_SOURCE=]m4_normalize([$3])[ and extensions])
Packit 875988
                  AS_VAR_SET(m4_normalize([$5]),["not allowed"]) # VAR-EXTENSIONS-REQUIRED_NOT-ALLOWED_ALLOWED
Packit 875988
                ]
Packit 875988
              )
Packit 875988
            ],
Packit 875988
            [dnl
Packit 875988
              _AS_ECHO_LOG([Checked features DO NOT work with _XOPEN_SOURCE=]m4_normalize([$3])[])
Packit 875988
              AS_VAR_SET(m4_normalize([$4]),["no"]) # VAR-FEATURES-AVAILABLE-YES_NO
Packit 875988
            ]
Packit 875988
          )
Packit 875988
        ]
Packit 875988
      )
Packit 875988
    ]
Packit 875988
  )
Packit 875988
  AS_UNSET([defs_Var])
Packit 875988
  AS_UNSET([src_Var])
Packit 875988
  AS_VAR_POPDEF([defs_Var])dnl
Packit 875988
  AS_VAR_POPDEF([src_Var])dnl
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_HEADER_PRESENCE(headername.h)
Packit 875988
#
Packit 875988
# Check only by preprocessor whether header file is present.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_HEADER_PRESENCE], [dnl
Packit 875988
  AC_PREREQ([2.64])dnl for AS_VAR_PUSHDEF, AS_VAR_SET
Packit 875988
  AS_VAR_PUSHDEF([mhd_cache_Var],[mhd_cv_header_[]$1[]_present])dnl
Packit 875988
  AC_CACHE_CHECK([for presence of $1], [mhd_cache_Var], [dnl
Packit 875988
    dnl Hack autoconf to get pure result of only single header presence
Packit 875988
    cat > conftest.$ac_ext <<_ACEOF
Packit 875988
@%:@include <[]$1[]>
Packit 875988
_ACEOF
Packit 875988
    AC_PREPROC_IFELSE([],
Packit 875988
      [AS_VAR_SET([mhd_cache_Var],[["yes"]])],
Packit 875988
      [AS_VAR_SET([mhd_cache_Var],[["no"]])]
Packit 875988
    )
Packit 875988
    rm -f conftest.$ac_ext
Packit 875988
  ])
Packit 875988
  AS_VAR_POPDEF([mhd_cache_Var])dnl
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_HEADERS_PRESENCE(oneheader.h otherheader.h ...)
Packit 875988
#
Packit 875988
# Check each specified header in whitespace-separated list for presence.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_HEADERS_PRESENCE], [dnl
Packit 875988
  AC_PREREQ([2.60])dnl for m4_foreach_w
Packit 875988
  m4_foreach_w([mhd_chk_Header], [$1],
Packit 875988
    [MHD_CHECK_HEADER_PRESENCE(m4_defn([mhd_chk_Header]))]
Packit 875988
  )dnl
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_HEADERS_PRESENCE_COMPACT(oneheader.h otherheader.h ...)
Packit 875988
#
Packit 875988
# Same as MHD_CHECK_HEADERS_PRESENCE, but a bit slower and produce more compact 'configure'.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_HEADERS_PRESENCE_COMPACT], [dnl
Packit 875988
  for mhd_chk_Header in $1 ; do
Packit 875988
    MHD_CHECK_HEADER_PRESENCE([[${mhd_chk_Header}]])
Packit 875988
  done
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_BASIC_HEADERS_PRESENCE
Packit 875988
#
Packit 875988
# Check basic headers for presence.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_BASIC_HEADERS_PRESENCE], [dnl
Packit 875988
  MHD_CHECK_HEADERS_PRESENCE([stdio.h wchar.h stdlib.h string.h strings.h stdint.h fcntl.h sys/types.h time.h unistd.h])
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_SET_BASIC_INCLUDES
Packit 875988
#
Packit 875988
# Internal preparatory macro.
Packit 875988
Packit 875988
AC_DEFUN([_MHD_SET_BASIC_INCLUDES], [dnl
Packit 875988
  AC_REQUIRE([MHD_CHECK_BASIC_HEADERS_PRESENCE])dnl
Packit 875988
  AS_IF([[test -z "$mhd_basic_headers_includes"]], [dnl
Packit 875988
    AS_VAR_IF([mhd_cv_header_stdio_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="\
Packit 875988
#include <stdio.h>
Packit 875988
"     ]],[[mhd_basic_headers_includes=""]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_sys_types_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <sys/types.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_wchar_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <wchar.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_stdlib_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <stdlib.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_string_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <string.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_strings_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <strings.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_stdint_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <stdint.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_fcntl_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <fcntl.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_time_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <time.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
    AS_VAR_IF([mhd_cv_header_unistd_h_present], [["yes"]],
Packit 875988
      [[mhd_basic_headers_includes="${mhd_basic_headers_includes}\
Packit 875988
#include <unistd.h>
Packit 875988
"     ]]
Packit 875988
    )
Packit 875988
  ])dnl
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_BASIC_INCLUDES
Packit 875988
#
Packit 875988
# Internal macro. Output set of basic includes.
Packit 875988
Packit 875988
AC_DEFUN([_MHD_BASIC_INCLUDES], [AC_REQUIRE([_MHD_SET_BASIC_INCLUDES])dnl
Packit 875988
[ /* Start of MHD basic test includes */
Packit 875988
$mhd_basic_headers_includes /* End of MHD basic test includes */
Packit 875988
]])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_BASIC_HEADERS([PROLOG], [ACTION-IF-OK], [ACTION-IF-FAIL])
Packit 875988
#
Packit 875988
# Check whether basic headers can be compiled with specified prolog.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_BASIC_HEADERS], [dnl
Packit 875988
  AC_COMPILE_IFELSE([dnl
Packit 875988
    AC_LANG_PROGRAM([m4_n([$1])dnl
Packit 875988
_MHD_BASIC_INCLUDES
Packit 875988
    ], [[int i = 1; i++; if(i) return i]])
Packit 875988
  ], [$2], [$3])
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_SET_UNDEF_ALL_EXT
Packit 875988
#
Packit 875988
# Internal preparatory macro.
Packit 875988
Packit 875988
AC_DEFUN([_MHD_SET_UNDEF_ALL_EXT], [m4_divert_text([INIT_PREPARE],[dnl
Packit 875988
[mhd_undef_all_extensions="
Packit 875988
#ifdef _GNU_SOURCE
Packit 875988
#undef _GNU_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _XOPEN_SOURCE
Packit 875988
#undef _XOPEN_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _XOPEN_SOURCE_EXTENDED
Packit 875988
#undef _XOPEN_SOURCE_EXTENDED
Packit 875988
#endif
Packit 875988
#ifdef _XOPEN_VERSION
Packit 875988
#undef _XOPEN_VERSION
Packit 875988
#endif
Packit 875988
#ifdef _POSIX_C_SOURCE
Packit 875988
#undef _POSIX_C_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _POSIX_SOURCE
Packit 875988
#undef _POSIX_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _DEFAULT_SOURCE
Packit 875988
#undef _DEFAULT_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _BSD_SOURCE
Packit 875988
#undef _BSD_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _SVID_SOURCE
Packit 875988
#undef _SVID_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef __EXTENSIONS__
Packit 875988
#undef __EXTENSIONS__
Packit 875988
#endif
Packit 875988
#ifdef _ALL_SOURCE
Packit 875988
#undef _ALL_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _TANDEM_SOURCE
Packit 875988
#undef _TANDEM_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef _DARWIN_C_SOURCE
Packit 875988
#undef _DARWIN_C_SOURCE
Packit 875988
#endif
Packit 875988
#ifdef __BSD_VISIBLE
Packit 875988
#undef __BSD_VISIBLE
Packit 875988
#endif
Packit 875988
#ifdef _NETBSD_SOURCE
Packit 875988
#undef _NETBSD_SOURCE
Packit 875988
#endif
Packit 875988
"
Packit 875988
]])])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_UNDEF_ALL_EXT
Packit 875988
#
Packit 875988
# Output prolog that undefine all known extension and visibility macros.
Packit 875988
Packit 875988
AC_DEFUN([_MHD_UNDEF_ALL_EXT], [dnl
Packit 875988
AC_REQUIRE([_MHD_SET_UNDEF_ALL_EXT])dnl
Packit 875988
$mhd_undef_all_extensions
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_CHECK_DEFINED(SYMBOL, [PROLOG],
Packit 875988
#                    [ACTION-IF-DEFINED], [ACTION-IF-NOT-DEFINED])
Packit 875988
#
Packit 875988
# Silently checks for defined symbols.
Packit 875988
Packit 875988
AC_DEFUN([_MHD_CHECK_DEFINED], [dnl
Packit 875988
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
Packit 875988
m4_n([$2])dnl
Packit 875988
[#ifndef ]$1[
Packit 875988
#error ]$1[ is not defined
Packit 875988
choke me now;
Packit 875988
#endif
Packit 875988
        ]],[])
Packit 875988
    ], [m4_default_nblank([$3])], [m4_default_nblank([$4])]
Packit 875988
  )
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_DEFINED(SYMBOL, [PROLOG],
Packit 875988
#                   [ACTION-IF-DEFINED], [ACTION-IF-NOT-DEFINED],
Packit 875988
#                   [MESSAGE])
Packit 875988
#
Packit 875988
# Cache-check for defined symbols with printing results.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_DEFINED], [dnl
Packit 875988
  AS_VAR_PUSHDEF([mhd_cache_Var],[mhd_cv_macro_[]m4_tolower(m4_normalize($1))_defined])dnl
Packit 875988
  AC_CACHE_CHECK([dnl
Packit 875988
m4_ifnblank([$5], [$5], [whether ]m4_normalize([$1])[ is already defined])],
Packit 875988
    [mhd_cache_Var], [dnl
Packit 875988
    _MHD_CHECK_DEFINED(m4_normalize([$1]), [$2],
Packit 875988
      [mhd_cache_Var="yes"],
Packit 875988
      [mhd_cache_Var="no"]
Packit 875988
    )
Packit 875988
  ])
Packit 875988
  _MHD_VAR_IF([mhd_cache_Var], [["yes"]], [$3], [$4])
Packit 875988
  AS_VAR_POPDEF([mhd_cache_Var])dnl
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_DEFINED_MSG(SYMBOL, [PROLOG], [MESSAGE]
Packit 875988
#                       [ACTION-IF-DEFINED], [ACTION-IF-NOT-DEFINED])
Packit 875988
#
Packit 875988
# Cache-check for defined symbols with printing results.
Packit 875988
# Reordered arguments for better readability.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_DEFINED_MSG],[dnl
Packit 875988
MHD_CHECK_DEFINED([$1],[$2],[$4],[$5],[$3])])
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_ACCEPT_DEFINE(DEFINE-SYMBOL, [DEFINE-VALUE = 1], [PROLOG],
Packit 875988
#                         [ACTION-IF-ACCEPTED], [ACTION-IF-NOT-ACCEPTED],
Packit 875988
#                         [MESSAGE])
Packit 875988
#
Packit 875988
# Cache-check whether specific defined symbol do not break basic headers.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_ACCEPT_DEFINE], [dnl
Packit 875988
  AC_PREREQ([2.64])dnl for AS_VAR_PUSHDEF, AS_VAR_SET, m4_ifnblank
Packit 875988
  AS_VAR_PUSHDEF([mhd_cache_Var],
Packit 875988
    [mhd_cv_define_[]m4_tolower(m4_normalize($1))[]_accepted[]m4_ifnblank([$2],[_[]$2])])dnl
Packit 875988
  AC_CACHE_CHECK([dnl
Packit 875988
m4_ifnblank([$6],[$6],[whether headers accept $1[]m4_ifnblank([$2],[[ with value ]$2])])],
Packit 875988
    [mhd_cache_Var], [dnl
Packit 875988
    MHD_CHECK_BASIC_HEADERS([
Packit 875988
m4_n([$3])[#define ]$1 m4_default_nblank($2,[[1]])],
Packit 875988
      [mhd_cache_Var="yes"], [mhd_cache_Var="no"]
Packit 875988
    )
Packit 875988
  ])
Packit 875988
  _MHD_VAR_IF([mhd_cache_Var], [["yes"]], [$4], [$5])
Packit 875988
  AS_VAR_POPDEF([mhd_cache_Var])dnl
Packit 875988
])
Packit 875988
Packit 875988
Packit 875988
#
Packit 875988
# MHD_CHECK_DEF_AND_ACCEPT(DEFINE-SYMBOL, [DEFINE-VALUE = 1], [PROLOG],
Packit 875988
#                         [ACTION-IF-DEFINED],
Packit 875988
#                         [ACTION-IF-ACCEPTED], [ACTION-IF-NOT-ACCEPTED])
Packit 875988
#
Packit 875988
# Combination of MHD_CHECK_DEFINED_ECHO and MHD_CHECK_ACCEPT_DEFINE.
Packit 875988
# First check whether symbol is already defined and, if not defined,
Packit 875988
# checks whether it can be defined.
Packit 875988
Packit 875988
AC_DEFUN([MHD_CHECK_DEF_AND_ACCEPT], [dnl
Packit 875988
  MHD_CHECK_DEFINED([$1], [$3], [$4], [dnl
Packit 875988
    MHD_CHECK_ACCEPT_DEFINE([$1], [$2], [$3], [$5], [$6])dnl
Packit 875988
  ])dnl
Packit 875988
])
Packit 875988
Packit 875988
#
Packit 875988
# _MHD_XOPEN_VAR_ADD(DEFINES_VAR, FLAGS_VAR, [PROLOG])
Packit 875988
#
Packit 875988
# Internal macro. Only to be used in MHD_SYS_EXT.
Packit 875988
Packit 875988
AC_DEFUN([_MHD_XOPEN_VAR_ADD], [dnl
Packit 875988
  MHD_CHECK_DEF_AND_ACCEPT([[_XOPEN_SOURCE]], [[1]], [$3],
Packit 875988
    [
Packit 875988
      AC_CACHE_CHECK([[whether predefined value of _XOPEN_SOURCE is more or equal 500]],
Packit 875988
        [[mhd_cv_macro__xopen_source_def_fiveh]], [dnl
Packit 875988
          AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
Packit 875988
m4_n([$3])dnl
Packit 875988
[#if _XOPEN_SOURCE+0 < 500
Packit 875988
#error Value of _XOPEN_SOURCE is less than 500
Packit 875988
choke me now;
Packit 875988
#endif
Packit 875988
              ]],[[int i = 0; i++; if(i) return i]])],
Packit 875988
            [[mhd_cv_macro__xopen_source_def_fiveh="yes"]],
Packit 875988
            [[mhd_cv_macro__xopen_source_def_fiveh="no"]]
Packit 875988
          )dnl
Packit 875988
        ]
Packit 875988
      )dnl
Packit 875988
    ],
Packit 875988
    [_MHD_SYS_EXT_VAR_ADD_FLAG([$1], [$2], [[_XOPEN_SOURCE]], [[1]])]
Packit 875988
  )
Packit 875988
  AS_IF([[test "x${mhd_cv_define__xopen_source_accepted_1}" = "xyes" || \
Packit 875988
          test "x${mhd_cv_macro__xopen_source_def_fiveh}" = "xno"]],
Packit 875988
    [
Packit 875988
      MHD_CHECK_DEF_AND_ACCEPT([[_XOPEN_SOURCE_EXTENDED]], [],
Packit 875988
        [
Packit 875988
m4_n([$3])], [],
Packit 875988
      [dnl
Packit 875988
        _MHD_SYS_EXT_VAR_ADD_FLAG([$1],[$2],[[_XOPEN_SOURCE_EXTENDED]])
Packit 875988
      ], [dnl
Packit 875988
        MHD_CHECK_DEFINED([[_XOPEN_VERSION]],
Packit 875988
          [
Packit 875988
m4_n([$3])], [],
Packit 875988
        [dnl
Packit 875988
          AC_CACHE_CHECK([[for value of _XOPEN_VERSION accepted by headers]],
Packit 875988
            [mhd_cv_define__xopen_version_accepted], [dnl
Packit 875988
            MHD_CHECK_BASIC_HEADERS([
Packit 875988
m4_n([$3])
Packit 875988
[#define _XOPEN_VERSION 4]],
Packit 875988
              [[mhd_cv_define__xopen_version_accepted="4"]],
Packit 875988
            [
Packit 875988
              MHD_CHECK_BASIC_HEADERS([
Packit 875988
m4_n([$3])
Packit 875988
[#define _XOPEN_VERSION 3]],
Packit 875988
                [[mhd_cv_define__xopen_version_accepted="3"]],
Packit 875988
                [[mhd_cv_define__xopen_version_accepted="no"]]
Packit 875988
              )
Packit 875988
            ])
Packit 875988
          ])
Packit 875988
          AS_VAR_IF([mhd_cv_define__xopen_version_accepted], [["no"]],
Packit 875988
            [[:]],
Packit 875988
          [dnl
Packit 875988
            _MHD_SYS_EXT_VAR_ADD_FLAG([$1],[$2],[[_XOPEN_VERSION]],
Packit 875988
              [[${mhd_cv_define__xopen_version_accepted}]]dnl
Packit 875988
            )
Packit 875988
          ])
Packit 875988
        ])
Packit 875988
      ])
Packit 875988
    ]
Packit 875988
  )dnl
Packit 875988
])
Packit 875988