dnl dnl Configure template for G10 dnl dnl (Process this file with autoconf to produce a configure script.) AC_INIT(g10/g10.c) AC_CONFIG_AUX_DIR(scripts) AC_CONFIG_HEADER(config.h) VERSION=0.0.0 PACKAGE=g10 AC_SUBST(VERSION) AC_SUBST(PACKAGE) AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") AC_ARG_ENABLE(m-debug, [ --enable-m-debug Enable debugging of memory allocation]) if test "$enableval" = y || test "$enableval" = yes; then AC_DEFINE(M_DEBUG) fi dnl some additional macros dnl WK_CHECK_TYPEDEF(TYPE, HAVE_NAME) AC_DEFUN(WK_CHECK_TYPEDEF, [AC_MSG_CHECKING(for $1 typedef) AC_CACHE_VAL(wk_cv_typedef_$1, [AC_TRY_COMPILE([#include #include ], [ #undef $1 int a = sizeof($1); ], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )]) AC_MSG_RESULT($wk_cv_typedef_$1) if test "$wk_cv_typedef_$1" = yes; then AC_DEFINE($2) fi ]) dnl AC_CANONICAL_SYSTEM AC_MSG_CHECKING(cached information) hostcheck="$target" AC_CACHE_VAL(ac_cv_mpi_hostcheck, [ ac_cv_mpi_hostcheck="$hostcheck" ]) if test "$ac_cv_mpi_hostcheck" != "$hostcheck"; then AC_MSG_RESULT(changed) AC_MSG_WARN(config.cache exists!) AC_MSG_ERROR(you must do 'make distclean' first to compile for different target or different parameters.) else AC_MSG_RESULT(ok) fi dnl Checks for programs. AC_PROG_MAKE_SET case "${target}" in i386--mingw32) # special stuff for Windoze NT cross_compiling=yes CC="i386--mingw32-gcc" CPP="i386--mingw32-gcc -E" RANLIB="i386--mingw32-ranlib" ac_cv_have_dev_random=no ;; *) AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_CC AC_PROG_CPP ;; esac AC_ARG_PROGRAM dnl Checks for libraries. dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS(unistd.h) AC_CHECK_HEADERS(zlib.h, [LIBS="$LIBS -lz"], AC_MSG_WARN([zlib missing - creating without ZLIB support!]) ) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T dnl autoconf doesn't support a default value for AC_C_BIGENDIAN dnl so here is the modified version if test "$cross_compiling" = yes; then AC_MSG_WARN(cross compiling; assuming little endianess) fi AC_CACHE_CHECK(for little endianess, ac_cv_c_littleendian, [ac_cv_c_littleendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. AC_TRY_COMPILE([#include #include ], [ #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN bogus endian macros #endif], [# It does; now see whether it defined to BIG_ENDIAN or not. AC_TRY_COMPILE([#include #include ], [ #if BYTE_ORDER != BIG_ENDIAN not big endian #endif], ac_cv_c_littleendian=no, ac_cv_c_littleendian=yes)]) if test "$ac_cv_c_littleendian" = unknown; then AC_TRY_RUN([main () { /* Are we little or big endian? From Harbison&Steele. */ union { long l; char c[sizeof (long)]; } u; u.l = 1; exit (u.c[sizeof (long) - 1] == 1); }], ac_cv_c_littleendian=yes, ac_cv_c_littleendian=no, ac_cv_c_littleendian=yes) fi]) if test "$ac_cv_c_littleendian" = yes; then AC_DEFINE(LITTLE_ENDIAN_HOST) else AC_DEFINE(BIG_ENDIAN_HOST) fi WK_CHECK_TYPEDEF(byte, HAVE_BYTE_TYPEDEF) WK_CHECK_TYPEDEF(ushort, HAVE_USHORT_TYPEDEF) WK_CHECK_TYPEDEF(ulong, HAVE_ULONG_TYPEDEF) WK_CHECK_TYPEDEF(u16, HAVE_U16_TYPEDEF) WK_CHECK_TYPEDEF(u32, HAVE_U32_TYPEDEF) AC_CHECK_SIZEOF(unsigned short, 16) AC_CHECK_SIZEOF(unsigned int, 32) AC_CHECK_SIZEOF(unsigned long, 32) dnl Checks for library functions. AC_FUNC_VPRINTF AC_CHECK_FUNCS(strerror strtol strtoul stpcpy tcgetattr) dnl check wether we have a random device AC_CACHE_CHECK(for random device, ac_cv_have_dev_random, [if test -c /dev/random && test -c /dev/urandom ; then ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi]) if test "$ac_cv_have_dev_random" = yes; then AC_DEFINE(HAVE_DEV_RANDOM) fi dnl setup assembler stuff AC_MSG_CHECKING(configure mpi) mpi_config_done="no" AC_CACHE_VAL(ac_cv_mpi_config_done, [ ac_cv_mpi_config_done="$mpi_config_done" ]) if test "$ac_cv_mpi_config_done" = yes; then AC_MSG_RESULT(done) else ac_cv_mpi_config_done="" if test -f ./mpi/config.links ; then . ./mpi/config.links AC_LINK_FILES( ${mpi_ln_src}, ${mpi_ln_dst} ) ac_cv_mpi_config_done="yes" AC_MSG_RESULT(done) else AC_MSG_RESULT(failed) AC_MSG_ERROR([mpi/config.links missing!]) fi fi dnl checking whether we have the RSA source dnl Add stuff to insert this into the makefile dnl AC_SUBST(add_cipher_SOURCES) AC_CACHE_CHECK(for rsa source, ac_cv_have_rsa_cipher, [if test -f cipher/rsa.c && test -f cipher/rsa.h; then ac_cv_have_rsa_cipher=yes; else ac_cv_have_rsa_cipher=no; fi]) if test $ac_cv_have_rsa_cipher = yes; then AC_DEFINE(HAVE_RSA_CIPHER) fi AC_OUTPUT([ Makefile \ util/Makefile \ mpi/Makefile \ cipher/Makefile \ g10/Makefile \ tools/Makefile \ ], [echo timestamp > stamp-h ] )