1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
|
dnl $Header: /fridge/cvs/xscorch/libj/libjconf.m4,v 1.19 2004/03/11 02:05:42 justins Exp $
dnl Utilities for the libj configure script. This file is only of interest
dnl to projects which embed libj; projects linking against the shared lib
dnl version of libj only need libj.m4.
dnl LIBJ_VERSION_CHECK
dnl Setup all version values based on the current libj version.
dnl
AC_DEFUN([LIBJ_VERSION_CHECK], [
dnl
dnl *** Current libj version is defined here ***
dnl
LIBJ_VERSION_MAJOR=4
LIBJ_VERSION_MINOR=0
LIBJ_VERSION_PATCH=16
dnl Build the library version number based on the numbers above.
AC_MSG_CHECKING([for libj version number])
LIBJ_VERSION="${LIBJ_VERSION_MAJOR}.${LIBJ_VERSION_MINOR}.${LIBJ_VERSION_PATCH}"
LIBJ_VERSION_EXPR="((((long)${LIBJ_VERSION_MAJOR} & 0xff) << 24) | (((long)${LIBJ_VERSION_MINOR} & 0xff) << 16) | (((long)${LIBJ_VERSION_PATCH} & 0xff) << 8)) /* Version ${LIBJ_VERSION} */"
AC_SUBST([LIBJ_VERSION])
AC_SUBST([LIBJ_VERSION_MAJOR])
AC_SUBST([LIBJ_VERSION_MINOR])
AC_SUBST([LIBJ_VERSION_PATCH])
AC_SUBST([LIBJ_VERSION_EXPR])
LIBJ_LT_CURRENT=`expr $LIBJ_VERSION_MAJOR + $LIBJ_VERSION_MINOR`
LIBJ_LT_REVISION=$LIBJ_VERSION_PATCH
LIBJ_LT_AGE=$LIBJ_VERSION_MINOR
AC_SUBST([LIBJ_LT_CURRENT])
AC_SUBST([LIBJ_LT_REVISION])
AC_SUBST([LIBJ_LT_AGE])
AC_MSG_RESULT([$LIBJ_VERSION])
])
dnl LIBJ_CONF_SIZES
dnl Check the sizes of various data types. Used to setup the
dnl fixed-size type definitions in libj.h.
dnl
AC_DEFUN([LIBJ_CONF_SIZES], [
dnl Requirements
AC_REQUIRE([LIBJ_PROG_CC])
dnl Checks for object sizes
AC_CHECK_SIZEOF([short], 2)
AC_CHECK_SIZEOF([int], 4)
AC_CHECK_SIZEOF([long], 4)
AC_CHECK_SIZEOF([long long], 8)
AC_CHECK_SIZEOF([int16_t], 0)
AC_CHECK_SIZEOF([int32_t], 0)
AC_CHECK_SIZEOF([int64_t], 0)
LIBJ_BYTE_TYPE=char
case 2 in
$ac_cv_sizeof_short) LIBJ_WORD_TYPE=short ;;
$ac_cv_sizeof_int) LIBJ_WORD_TYPE=int ;;
$ac_cv_sizeof_int16_t) LIBJ_WORD_TYPE=int16_t ;;
*) AC_MSG_ERROR([Cannot find a suitable 16-bit data type])
esac
case 4 in
$ac_cv_sizeof_short) LIBJ_DWORD_TYPE=short ;;
$ac_cv_sizeof_int) LIBJ_DWORD_TYPE=int ;;
$ac_cv_sizeof_long) LIBJ_DWORD_TYPE=long ;;
$ac_cv_sizeof_int32_t) LIBJ_DWORD_TYPE=int32_t ;;
*) AC_MSG_ERROR([Cannot find a suitable 32-bit data type])
esac
case 8 in
$ac_cv_sizeof_int) LIBJ_QWORD_TYPE=int ;;
$ac_cv_sizeof_long_long) LIBJ_QWORD_TYPE="long long";;
$ac_cv_sizeof_int64_t) LIBJ_QWORD_TYPE=int64_t ;;
*) AC_MSG_ERROR([Cannot find a suitable 64-bit data type])
esac
AC_SUBST([LIBJ_BYTE_TYPE])
AC_SUBST([LIBJ_WORD_TYPE])
AC_SUBST([LIBJ_DWORD_TYPE])
AC_SUBST([LIBJ_QWORD_TYPE])
])
dnl LIBJ_CONF_HEADERS
dnl Check several headers that libj requires, and make
dnl the appropriate definitions.
dnl
AC_DEFUN([LIBJ_CONF_HEADERS], [
dnl Check for standard C headers (may have already run)
AC_REQUIRE([LIBJ_PROG_CC])
AC_REQUIRE([AC_HEADER_STDC])
dnl Check C headers
AC_CHECK_HEADERS([sys/time.h])
if test "$ac_cv_header_sys_time_h" = "yes"; then
LIBJ_HAVE_SYS_TIME_H=1
else
LIBJ_HAVE_SYS_TIME_H=0
fi
AC_SUBST([LIBJ_HAVE_SYS_TIME_H])
AC_HEADER_TIME
if test "$ac_cv_header_time" = "yes"; then
LIBJ_TIME_WITH_SYS_TIME=1
else
LIBJ_TIME_WITH_SYS_TIME=0
fi
AC_SUBST([LIBJ_TIME_WITH_SYS_TIME])
])
dnl LIBJ_CONF_FUNCTIONS
dnl Check several functions that libj requires, and make
dnl the appropriate definitions.
dnl
AC_DEFUN([LIBJ_CONF_FUNCTIONS], [
dnl Make sure we checked for the compiler.
AC_REQUIRE([LIBJ_PROG_CC])
dnl Checks for library functions.
AC_CHECK_FUNCS([gettimeofday])
if test "$ac_cv_func_gettimeofday" = "yes"; then
LIBJ_HAVE_GETTIMEOFDAY=1
else
LIBJ_HAVE_GETTIMEOFDAY=0
fi
AC_SUBST([LIBJ_HAVE_GETTIMEOFDAY])
AC_CHECK_FUNCS([snprintf], , [AC_MSG_ERROR([snprintf not found, aborting])])
])
dnl LIBJ_CONF_STANDALONE
dnl LIBJ_CONF_EMBEDDED
dnl Setup STANDALONE or EMBEDDED mode build.
dnl LIBJ_STANDALONE is always 1 for a libj build.
dnl Programs that embed libj should set this 0 in
dnl their configure scripts. These macros are
dnl convenient shorthands for setting the build.
dnl
dnl The embedded macro conveniently does all the
dnl standard libj checks, and also defines defaults
dnl for the libj compilation options.
dnl
AC_DEFUN([LIBJ_CONF_STANDALONE], [
LIBJ_STANDALONE=1
AC_SUBST([LIBJ_STANDALONE])
AM_CONDITIONAL(LIBJ_STANDALONE, [true])
])
AC_DEFUN([LIBJ_CONF_EMBEDDED], [
dnl Requirements for the embedded build
dnl Note that requirements are *always* expanded first.
AC_REQUIRE([LIBJ_VERSION_CHECK])
AC_REQUIRE([LIBJ_PROG_CC])
AC_REQUIRE([LIBJ_CONF_HEADERS])
AC_REQUIRE([LIBJ_CONF_FUNCTIONS])
AC_REQUIRE([LIBJ_CONF_SIZES])
dnl Setup for embedded (not standalone) build.
LIBJ_STANDALONE=0
AC_SUBST([LIBJ_STANDALONE])
AM_CONDITIONAL(LIBJ_STANDALONE, [false])
dnl Set default compile options for libj
LIBJ_USE_LIBC_STRING=1
LIBJ_C99_STANDARD=0
AC_SUBST([LIBJ_USE_LIBC_STRING])
AC_SUBST([LIBJ_C99_STANDARD])
AM_CONDITIONAL(LIBJ_USE_LIBC_STRING, [true])
])
|