Alien-SVN

 view release on metacpan or  search on metacpan

src/subversion/build/ac-macros/svn-macros.m4  view on Meta::CPAN

# invocation, instead of the entire configured state.
AC_DEFUN([SVN_CONFIG_NICE], [
  AC_MSG_NOTICE([creating $1])
  # This little dance satisfies Cygwin, which cannot overwrite in-use files.
  if test -f "$1"; then
    mv "$1" "$1.old"
  fi

  cat >"$1" <<EOF
#! /bin/sh
#
# Created by configure

'[$]0' $ac_configure_args "\[$]@"
EOF

  chmod +x "$1"
  rm -f "$1.old"
])


dnl
dnl SVN_CONFIG_SCRIPT(path)
dnl
dnl Make AC_OUTPUT create an executable file.
dnl Accumulate filenames in $SVN_CONFIG_SCRIPT_FILES for AC_SUBSTing to
dnl use in, for example, Makefile distclean rules.
dnl
AC_DEFUN(SVN_CONFIG_SCRIPT, [
  SVN_CONFIG_SCRIPT_FILES="$SVN_CONFIG_SCRIPT_FILES $1"
  AC_CONFIG_FILES([$1], [chmod +x $1])])

dnl Iteratively interpolate the contents of the second argument
dnl until interpolation offers no new result. Then assign the
dnl final result to $1.
dnl
dnl Based on APR_EXPAND_VAR macro
dnl
dnl Example:
dnl
dnl foo=1
dnl bar='${foo}/2'
dnl baz='${bar}/3'
dnl SVN_EXPAND_VAR(fraz, $baz)
dnl   $fraz is now "1/2/3"
dnl 
AC_DEFUN(SVN_EXPAND_VAR,[
svn_last=
svn_cur="$2"
while test "x${svn_cur}" != "x${svn_last}";
do
  svn_last="${svn_cur}"
  svn_cur=`eval "echo ${svn_cur}"`
done
$1="${svn_cur}"
])

dnl SVN_STRIP_FLAG(FLAG_VAR_NAME, FLAG)
dnl
dnl Remove FLAG from the variable FLAG_VAR_NAME, if it exists.  This macro
dnl is primarily used for removing unwanted compiler flags, but is really
dnl just a general wrapper around `sed'.
AC_DEFUN(SVN_STRIP_FLAG,
[
  $1=`echo "$$1" | $SED -e 's/$2//'`
])

dnl SVN_REMOVE_STANDARD_LIB_DIRS(OPTIONS)
dnl
dnl Remove standard library search directories.
dnl OPTIONS is a list of compiler/linker options.
dnl This macro prints input options except -L options whose arguments are
dnl standard library search directories (e.g. /usr/lib).
dnl
dnl This macro is used to avoid linking against Subversion libraries
dnl potentially placed in standard library search directories.
AC_DEFUN([SVN_REMOVE_STANDARD_LIB_DIRS],
[
  input_flags="$1"
  output_flags=""
  filtered_dirs="/lib /lib64 /usr/lib /usr/lib64"
  for flag in $input_flags; do
    filter="no"
    for dir in $filtered_dirs; do
      if test "$flag" = "-L$dir" || test "$flag" = "-L$dir/"; then
        filter="yes"
        break
      fi
    done
    if test "$filter" = "no"; then
      output_flags="$output_flags $flag"
    fi
  done
  if test -n "$output_flags"; then
    printf "%s" "${output_flags# }"
  fi
])

AC_DEFUN([SVN_CHECK_FOR_ATOMIC_BUILTINS],
[
  AC_CACHE_CHECK([whether the compiler provides atomic builtins], [svn_cv_atomic_builtins],
  [AC_TRY_RUN([
  int main()
  {
      unsigned long long val = 1010, tmp, *mem = &val;

      if (__sync_fetch_and_add(&val, 1010) != 1010 || val != 2020)
          return 1;

      tmp = val;

      if (__sync_fetch_and_sub(mem, 1010) != tmp || val != 1010)
          return 1;

      if (__sync_sub_and_fetch(&val, 1010) != 0 || val != 0)
          return 1;

      tmp = 3030;

      if (__sync_val_compare_and_swap(mem, 0, tmp) != 0 || val != tmp)
          return 1;

      if (__sync_lock_test_and_set(&val, 4040) != 3030)
          return 1;

      mem = &tmp;

      if (__sync_val_compare_and_swap(&mem, &tmp, &val) != &tmp)
          return 1;

      __sync_synchronize();

      if (mem != &val)
          return 1;

      return 0;
  }], [svn_cv_atomic_builtins=yes], [svn_cv_atomic_builtins=no], [svn_cv_atomic_builtins=no])])
])



( run in 0.795 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )