Skip to content
Snippets Groups Projects
configure.in 31.6 KiB
Newer Older
Marc G. Fournier's avatar
 
Marc G. Fournier committed
int64 a = 20000001;
int64 b = 40000005;
   
int does_int64_snprintf_work()
{  
  int64 c;
  char buf[100];

  if (sizeof(int64) != 8)
    return 0;     /* doesn't look like the right size */

  c = a * b;
  snprintf(buf, 100, INT64_FORMAT, c);
  if (strcmp(buf, "800000140000005") != 0)
    return 0;     /* either multiply or snprintf is busted */
  return 1;
}
main() {
  exit(! does_int64_snprintf_work());
}],
  [ AC_MSG_RESULT(yes)
    INT64_FORMAT='"%qd"'
  ],
  [ AC_MSG_RESULT(no)
	# Force usage of our own snprintf, since system snprintf is broken
	SNPRINTF='snprintf.o'
	INT64_FORMAT='"%lld"'
  ],
  [ AC_MSG_RESULT(assuming not on target machine)
	# Force usage of our own snprintf, since we cannot test foreign snprintf
	SNPRINTF='snprintf.o'
	INT64_FORMAT='"%lld"'
  ]) ],
  [ AC_MSG_RESULT(assuming not on target machine)
	# Force usage of our own snprintf, since we cannot test foreign snprintf
	SNPRINTF='snprintf.o'
	INT64_FORMAT='"%lld"'
  ])
  else
    # here if we previously decided we needed to use our own snprintf
    INT64_FORMAT='"%lld"'
  fi
else
  # Here if we are not using 'long long int' at all
  INT64_FORMAT='"%ld"'
AC_DEFINE_UNQUOTED(INT64_FORMAT, $INT64_FORMAT)

dnl Determine memory alignment requirements for the basic C datatypes.

PGAC_CHECK_ALIGNOF(short)
PGAC_CHECK_ALIGNOF(int)
PGAC_CHECK_ALIGNOF(long)
Peter Eisentraut's avatar
Peter Eisentraut committed
if [[ x"$HAVE_LONG_LONG_INT_64" = xyes ]] ; then
  PGAC_CHECK_ALIGNOF(long long int)
PGAC_CHECK_ALIGNOF(double)

dnl Compute maximum alignment of any basic type.
dnl We assume long's alignment is at least as strong as char, short, or int;
dnl but we must check long long (if it exists) and double.

if test $pgac_cv_alignof_double != 'sizeof(double)' ; then
  MAX_ALIGNOF=$pgac_cv_alignof_long
  if test $MAX_ALIGNOF -lt $pgac_cv_alignof_double ; then
    MAX_ALIGNOF=$pgac_cv_alignof_double
Peter Eisentraut's avatar
Peter Eisentraut committed
  if test x"$HAVE_LONG_LONG_INT_64" = xyes && test $MAX_ALIGNOF -lt $pgac_cv_alignof_long_long_int ; then
    MAX_ALIGNOF="$pgac_cv_alignof_long_long_int"
  fi
else
  dnl cross-compiling: assume that double's alignment is worst case
  MAX_ALIGNOF="$pgac_cv_alignof_double"
AC_DEFINE_UNQUOTED(MAXIMUM_ALIGNOF, $MAX_ALIGNOF, [Define as the maximum alignment requirement of any type])

PGAC_FUNC_POSIX_SIGNALS

# Check for Tcl configuration script tclConfig.sh
if test "$with_tcl" = yes; then
    PGAC_PATH_TCLCONFIGSH([$with_tclconfig])
# Check for Tk configuration script tkConfig.sh
if test "$with_tk" = yes; then
    PGAC_PATH_TKCONFIGSH([$with_tkconfig $with_tclconfig])
#
# Check for DocBook and tools
#
PGAC_PROG_NSGMLS
# If you don't have nsgmls you won't get very far, so save the cycles.
if test -n "$NSGMLS"; then
  PGAC_PROG_JADE
  PGAC_CHECK_DOCBOOK([3.1])
  PGAC_PATH_DOCBOOK_STYLESHEETS
  AC_CHECK_PROGS(SGMLSPL, sgmlspl)
fi


# Finally ready to produce output files ...
if test x"$abs_top_srcdir" != x"$abs_top_builddir"; then
  echo $ac_n "preparing build tree... $ac_c" 1>&6
  /bin/sh "$srcdir/config/prep_buildtree" "$abs_top_srcdir" "$abs_top_builddir" \
    || AC_MSG_ERROR(failed)
  AC_MSG_RESULT(done)
fi

[
  GNUmakefile
  src/GNUmakefile
  src/Makefile.global
  src/backend/port/Makefile
],
[echo "timestamp file" > src/include/stamp-h]