<commit_before>dnl  Copyright (C) 2009 Sun Microsystems
dnl This file is free software; Sun Microsystems
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.

dnl Which version of the canonical setup we're using
AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.75])

AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
  dnl Force dependency tracking on for Sun Studio builds
  AS_IF([test "x${enable_dependency_tracking}" = "x"],[
    enable_dependency_tracking=yes
  ])
])

dnl The standard setup for how we build Pandora projects
AC_DEFUN([PANDORA_CANONICAL_TARGET],[
  AC_REQUIRE([PANDORA_FORCE_DEPEND_TRACKING])
  ifdef([m4_define],,[define([m4_define],   defn([define]))])
  ifdef([m4_undefine],,[define([m4_undefine],   defn([undefine]))])
  m4_define([PCT_ALL_ARGS],[$*])
  m4_define([PCT_USE_GNULIB],[no])
  m4_define([PCT_REQUIRE_CXX],[no])
  m4_define([PCT_IGNORE_SHARED_PTR],[no])
  m4_define([PCT_FORCE_GCC42],[no])
  m4_define([PCT_SRC_IN_SRC],[no])
  m4_foreach([pct_arg],[$*],[
    m4_case(pct_arg,
      [use-gnulib], [
        m4_undefine([PCT_USE_GNULIB])
        m4_define([PCT_USE_GNULIB],[yes])
      ],
      [require-cxx], [
        m4_undefine([PCT_REQUIRE_CXX])
        m4_define([PCT_REQUIRE_CXX],[yes])
      ],
      [ignore-shared-ptr], [
        m4_undefine([PCT_IGNORE_SHARED_PTR])
        m4_define([PCT_IGNORE_SHARED_PTR],[yes])
      ],
      [force-gcc42], [
        m4_undefine([PCT_FORCE_GCC42])
        m4_define([PCT_FORCE_GCC42],[yes])
      ],
      [src-in-src], [
        m4_undefine([PCT_SRC_IN_SRC])
        m4_define([PCT_SRC_IN_SRC],[yes])
    ])
  ])

  # We need to prevent canonical target
  # from injecting -O2 into CFLAGS - but we won't modify anything if we have
  # set CFLAGS on the command line, since that should take ultimate precedence
  AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"],
        [CFLAGS=""])
  AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"],
        [CXXFLAGS=""])
  
  AC_CANONICAL_TARGET
  
  AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects foreign)
  m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])

  m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
  
  AC_REQUIRE([AC_PROG_CC])
  AC_REQUIRE([PANDORA_MAC_GCC42])
  AC_REQUIRE([PANDORA_64BIT])

  dnl Once we can use a modern autoconf, we can use this
  dnl AC_PROG_CC_C99
  AC_REQUIRE([AC_PROG_CXX])
  PANDORA_EXTENSIONS
  AM_PROG_CC_C_O


  m4_if(PCT_FORCE_GCC42, [yes], [
    AS_IF([test "$GCC" = "yes"], PANDORA_ENSURE_GCC_VERSION)
  ])

  PANDORA_PLATFORM

  PANDORA_LIBTOOL

  AS_IF([test "$lt_cv_prog_gnu_ld" = "yes"],[
    AM_LDFLAGS="${AM_LDFLAGS} -Wl,--default-symver"
  ])

  dnl autoconf doesn't automatically provide a fail-if-no-C++ macro
  dnl so we check c++98 features and fail if we don't have them, mainly
  dnl for that reason
  PANDORA_CHECK_CXX_STANDARD
  m4_if(PCT_REQUIRE_CXX, [yes], [
    AS_IF([test "$ac_cv_cxx_stdcxx_98" = "no"],[
      AC_MSG_ERROR([No working C++ Compiler has been found. ${PACKAGE} requires a C++ compiler that can handle C++98])
    ])

  ])
  
  PANDORA_SHARED_PTR
  m4_if(PCT_IGNORE_SHARED_PTR, [no], [
    AS_IF([test "$ac_cv_shared_ptr_namespace" = "missing"],[
      AC_MSG_WARN([a usable shared_ptr implementation was not found. Let someone know what your platform is.])
    ])
  ])
  
  m4_if(PCT_USE_GNULIB, [yes], [
    gl_INIT
    AC_CONFIG_LIBOBJ_DIR([gnulib])
  ])

  PANDORA_CHECK_C_VERSION
  PANDORA_CHECK_CXX_VERSION

  AC_C_BIGENDIAN
  AC_C_CONST
  AC_C_INLINE
  AC_C_VOLATILE
  AC_C_RESTRICT

  AC_HEADER_TIME
  AC_TYPE_SIZE_T
  AC_SYS_LARGEFILE

  # off_t is not a builtin type
  AC_CHECK_SIZEOF(off_t, 4)
  AS_IF([test "$ac_cv_sizeof_off_t" -eq 0],[
    AC_MSG_ERROR("${PACKAGE} needs an off_t type.")
  ])

  AC_CHECK_SIZEOF(size_t)
  AS_IF([test "$ac_cv_sizeof_size_t" -eq 0],[
    AC_MSG_ERROR("${PACKAGE} needs an size_t type.")
  ])

  AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],[Size of size_t as computed by sizeof()])
  AC_CHECK_SIZEOF(long long)
  AC_DEFINE_UNQUOTED([SIZEOF_LONG_LONG],[$ac_cv_sizeof_long_long],[Size of long long as computed by sizeof()])
  AC_CACHE_CHECK([if time_t is unsigned], [ac_cv_time_t_unsigned],[
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
      [[
#include <time.h>
      ]],
      [[
      int array[(((time_t)-1) > 0) ? 1 : -1];
      ]])
    ],[
      ac_cv_time_t_unsigned=yes
    ],[
      ac_cv_time_t_unsigned=no
    ])
  ])
  AS_IF([test "$ac_cv_time_t_unsigned" = "yes"],[
    AC_DEFINE([TIME_T_UNSIGNED], 1, [Define to 1 if time_t is unsigned])
  ])

  dnl AC_FUNC_ALLOCA would test for stack direction if we didn't have a working
  dnl alloca - but we need to know it anyway for check_stack_overrun.
  PANDORA_STACK_DIRECTION

  save_LIBS="${LIBS}"
  LIBS=""
  AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
  LIBM="${LIBS}"
  LIBS="${save_LIBS}"
  AC_SUBST([LIBM])
  
  AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
  AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])



  PANDORA_OPTIMIZE

  AC_LANG_PUSH(C++)
  # Test whether madvise() is declared in C++ code -- it is not on some
  # systems, such as Solaris
  AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[
  #if HAVE_SYS_MMAN_H
  #include <sys/types.h>
  #include <sys/mman.h>
  #endif
  ]])
  AC_LANG_POP()

  PANDORA_HAVE_GCC_ATOMICS

  dnl We need to inject error into the cflags to test if visibility works or not
  save_CFLAGS="${CFLAGS}"
  CFLAGS="${CFLAGS} -Werror"
  gl_VISIBILITY
  CFLAGS="${save_CFLAGS}"

  PANDORA_HEADER_ASSERT<commit_msg>pandora-build v0.76 - synced with drizzle<commit_after>dnl  Copyright (C) 2009 Sun Microsystems
dnl This file is free software; Sun Microsystems
dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.

dnl Which version of the canonical setup we're using
AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.76])

AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
  dnl Force dependency tracking on for Sun Studio builds
  AS_IF([test "x${enable_dependency_tracking}" = "x"],[
    enable_dependency_tracking=yes
  ])
])

dnl The standard setup for how we build Pandora projects
AC_DEFUN([PANDORA_CANONICAL_TARGET],[
  AC_REQUIRE([PANDORA_FORCE_DEPEND_TRACKING])
  ifdef([m4_define],,[define([m4_define],   defn([define]))])
  ifdef([m4_undefine],,[define([m4_undefine],   defn([undefine]))])
  m4_define([PCT_ALL_ARGS],[$*])
  m4_define([PCT_USE_GNULIB],[no])
  m4_define([PCT_REQUIRE_CXX],[no])
  m4_define([PCT_IGNORE_SHARED_PTR],[no])
  m4_define([PCT_FORCE_GCC42],[no])
  m4_define([PCT_SRC_IN_SRC],[no])
  m4_define([PCT_USE_VISIBILITY],[yes])
  m4_foreach([pct_arg],[$*],[
    m4_case(pct_arg,
      [use-gnulib], [
        m4_undefine([PCT_USE_GNULIB])
        m4_define([PCT_USE_GNULIB],[yes])
      ],
      [require-cxx], [
        m4_undefine([PCT_REQUIRE_CXX])
        m4_define([PCT_REQUIRE_CXX],[yes])
      ],
      [ignore-shared-ptr], [
        m4_undefine([PCT_IGNORE_SHARED_PTR])
        m4_define([PCT_IGNORE_SHARED_PTR],[yes])
      ],
      [force-gcc42], [
        m4_undefine([PCT_FORCE_GCC42])
        m4_define([PCT_FORCE_GCC42],[yes])
      ],
      [skip-visibility], [
        m4_undefine([PCT_USE_VISIBILITY])
        m4_define([PCT_USE_VISIBILITY],[no])
      ],
      [src-in-src], [
        m4_undefine([PCT_SRC_IN_SRC])
        m4_define([PCT_SRC_IN_SRC],[yes])
    ])
  ])

  # We need to prevent canonical target
  # from injecting -O2 into CFLAGS - but we won't modify anything if we have
  # set CFLAGS on the command line, since that should take ultimate precedence
  AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"],
        [CFLAGS=""])
  AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"],
        [CXXFLAGS=""])
  
  AC_CANONICAL_TARGET
  
  AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects foreign)
  m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])

  m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
  
  AC_REQUIRE([AC_PROG_CC])
  AC_REQUIRE([PANDORA_MAC_GCC42])
  AC_REQUIRE([PANDORA_64BIT])

  dnl Once we can use a modern autoconf, we can use this
  dnl AC_PROG_CC_C99
  AC_REQUIRE([AC_PROG_CXX])
  PANDORA_EXTENSIONS
  AM_PROG_CC_C_O


  m4_if(PCT_FORCE_GCC42, [yes], [
    AS_IF([test "$GCC" = "yes"], PANDORA_ENSURE_GCC_VERSION)
  ])

  PANDORA_PLATFORM

  PANDORA_LIBTOOL

  AS_IF([test "$lt_cv_prog_gnu_ld" = "yes"],[
    AM_LDFLAGS="${AM_LDFLAGS} -Wl,--default-symver"
  ])

  dnl autoconf doesn't automatically provide a fail-if-no-C++ macro
  dnl so we check c++98 features and fail if we don't have them, mainly
  dnl for that reason
  PANDORA_CHECK_CXX_STANDARD
  m4_if(PCT_REQUIRE_CXX, [yes], [
    AS_IF([test "$ac_cv_cxx_stdcxx_98" = "no"],[
      AC_MSG_ERROR([No working C++ Compiler has been found. ${PACKAGE} requires a C++ compiler that can handle C++98])
    ])

  ])
  
  PANDORA_SHARED_PTR
  m4_if(PCT_IGNORE_SHARED_PTR, [no], [
    AS_IF([test "$ac_cv_shared_ptr_namespace" = "missing"],[
      AC_MSG_WARN([a usable shared_ptr implementation was not found. Let someone know what your platform is.])
    ])
  ])
  
  m4_if(PCT_USE_GNULIB, [yes], [
    gl_INIT
    AC_CONFIG_LIBOBJ_DIR([gnulib])
  ])

  PANDORA_CHECK_C_VERSION
  PANDORA_CHECK_CXX_VERSION

  AC_C_BIGENDIAN
  AC_C_CONST
  AC_C_INLINE
  AC_C_VOLATILE
  AC_C_RESTRICT

  AC_HEADER_TIME
  AC_TYPE_SIZE_T
  AC_SYS_LARGEFILE

  # off_t is not a builtin type
  AC_CHECK_SIZEOF(off_t, 4)
  AS_IF([test "$ac_cv_sizeof_off_t" -eq 0],[
    AC_MSG_ERROR("${PACKAGE} needs an off_t type.")
  ])

  AC_CHECK_SIZEOF(size_t)
  AS_IF([test "$ac_cv_sizeof_size_t" -eq 0],[
    AC_MSG_ERROR("${PACKAGE} needs an size_t type.")
  ])

  AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],[Size of size_t as computed by sizeof()])
  AC_CHECK_SIZEOF(long long)
  AC_DEFINE_UNQUOTED([SIZEOF_LONG_LONG],[$ac_cv_sizeof_long_long],[Size of long long as computed by sizeof()])
  AC_CACHE_CHECK([if time_t is unsigned], [ac_cv_time_t_unsigned],[
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
      [[
#include <time.h>
      ]],
      [[
      int array[(((time_t)-1) > 0) ? 1 : -1];
      ]])
    ],[
      ac_cv_time_t_unsigned=yes
    ],[
      ac_cv_time_t_unsigned=no
    ])
  ])
  AS_IF([test "$ac_cv_time_t_unsigned" = "yes"],[
    AC_DEFINE([TIME_T_UNSIGNED], 1, [Define to 1 if time_t is unsigned])
  ])

  dnl AC_FUNC_ALLOCA would test for stack direction if we didn't have a working
  dnl alloca - but we need to know it anyway for check_stack_overrun.
  PANDORA_STACK_DIRECTION

  save_LIBS="${LIBS}"
  LIBS=""
  AC_CHECK_LIB(m, floor, [], AC_CHECK_LIB(m, __infinity))
  LIBM="${LIBS}"
  LIBS="${save_LIBS}"
  AC_SUBST([LIBM])
  
  AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
  AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])



  PANDORA_OPTIMIZE

  AC_LANG_PUSH(C++)
  # Test whether madvise() is declared in C++ code -- it is not on some
  # systems, such as Solaris
  AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[
  #if HAVE_SYS_MMAN_H
  #include <sys/types.h>
  #include <sys/mman.h>
  #endif
  ]])
  AC_LANG_POP()

  PANDORA_HAVE_GCC_ATOMICS

  m4_if(PCT_USE_VISIBILITY,[yes],[
    dnl We need to inject error into the cflags to test if visibility works or not
    save_CFLAGS="${CFLAGS}"
    CFLAGS="${CFLAGS} -Werror"
    gl_VISIBILITY
    CFLAGS="${save_CFLAGS}"
  ])

  PANDORA_HEADER_ASSERT
{'fraction_non_alphanumeric': 0.12780170519469106, 'fraction_numerical': 0.012393425331809791, 'mean_word_length': 4.248154981549815, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 11, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5360125', 'n_tokens_mistral': 4861, 'n_tokens_neox': 4593, 'n_words': 856}