diff options
Diffstat (limited to 'moon-abe/pbc-0.5.14/configure.ac')
-rw-r--r-- | moon-abe/pbc-0.5.14/configure.ac | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/moon-abe/pbc-0.5.14/configure.ac b/moon-abe/pbc-0.5.14/configure.ac new file mode 100644 index 00000000..79f564a1 --- /dev/null +++ b/moon-abe/pbc-0.5.14/configure.ac @@ -0,0 +1,191 @@ +#-*- Autoconf -*- +# Process this file with autoconf to produce a configure script. + +AC_PREREQ(2.59) +AC_INIT([pbc], [0.5.14], [blynn@cs.stanford.edu]) +AM_INIT_AUTOMAKE +AC_CONFIG_HEADERS(config.h) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_SRCDIR([./]) +LT_INIT +#AC_CANONICAL_HOST + +CFLAGS= +default_fink_path=/sw +case $host_os in + darwin*) + dnl fink installation + AC_MSG_CHECKING([for a fink installation at $default_fink_path]) + if test -d $default_fink_path; then + AC_MSG_RESULT([found it!]) + AC_MSG_NOTICE([Adding -I$default_fink_path/include to CPPFLAGS]) + CPPFLAGS="-I$default_fink_path/include $CPPFLAGS" + AC_MSG_NOTICE([Adding -L$default_fink_path/lib to LDFLAGS]) + LDFLAGS="-L$default_fink_path/lib $LDFLAGS" + else + AC_MSG_RESULT(none) + AC_MSG_NOTICE([You may need to add set CPPFLAGS and LDFLAGS for gmp, etc.]) + fi + ;; +esac + +############################ +# Configs for Windows DLLs. +# Framework for the below was extracted and +# modeled after the libgmp configure script. + +AC_LIBTOOL_WIN32_DLL +AC_SUBST(LIBPBC_DLL,0) + +case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + if test -z "$enable_shared"; then + enable_shared=no + fi + # Don't allow both static and DLL. + if test "$enable_shared" != no && test "$enable_static" != no; then + AC_MSG_ERROR([cannot build both static and DLL, since gmp.h is different for each. +Use "--disable-static --enable-shared" to build just a DLL.]) + fi + + # "-no-undefined" is required when building a DLL, see documentation on + # AC_LIBTOOL_WIN32_DLL. Also, -no-undefined needs a version number + # or it will complain about not having a nonnegative integer. + if test "$enable_shared" = yes; then + PBC_LDFLAGS="$PBC_LDFLAGS -no-undefined 0 -Wl,--export-all-symbols" + LIBPBC_LDFLAGS="$LIBPBC_LDFLAGS -Wl,--output-def,.libs/libpbc.dll.def" + LIBPBC_DLL=1 + fi + ;; +esac +case $host in + *-*-mingw*) + gcc_cflags_optlist="$gcc_cflags_optlist nocygwin" + gcc_cflags_nocygwin="-mno-cygwin" + ;; +esac + +AC_SUBST(PBC_LDFLAGS) +AC_SUBST(LIBPBC_LDFLAGS) +############################ + +# Checks for programs. +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_CPP +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_MAKE_SET + +AC_PROG_LEX +if test "x$LEX" != xflex; then + echo "************************" + echo "flex not found" + echo "************************" + exit -1 +fi + +AC_PROG_YACC +if test "x$YACC" != "xbison -y"; then + echo "************************" + echo "bison not found" + echo "************************" + exit -1 +fi + +# Checks for libraries. +lib_err_msg="add its path to LDFLAGS\nsee ./configure --help" +AC_CHECK_LIB( [m], [pow], [],[ + echo "************************" + echo "m library not found" + echo -e $lib_err_msg + echo "************************" + exit -1 + ]) +AC_CHECK_LIB( [gmp], [__gmpz_init], [],[ + echo "************************" + echo "gmp library not found" + echo -e $lib_err_msg + echo "************************" + exit -1 + ]) +dnl Reset libs because most programs do not need to link against all of these libs. +LIBS= + +# Checks for header files. +AC_FUNC_ALLOCA +AC_HEADER_STDC +AC_CHECK_HEADERS([stdlib.h string.h sys/time.h]) + +# Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_TYPE_SIZE_T +AC_HEADER_TIME + +dnl setup CFLAGS +with_enable_optimized="no" +AC_ARG_ENABLE( optimized, + [AS_HELP_STRING([--enable-optimized], + [Enable optimized build])], + [with_enable_optimized="$withval"], + [with_enable_optimized="no"]) + + +with_safe_clean=n +AC_ARG_ENABLE( safe-clean, + [AS_HELP_STRING([--enable-safe-clean], + [When free any PBC element or GMP mpz_t, fill internal memory inside the element by zero])], + [with_safe_clean=y], + [with_safe_clean=n]) + +with_debug=n +AC_ARG_ENABLE( debug, + [AS_HELP_STRING([--enable-debug], + [Add extra debugging information. Forbid compiling optimization.])], + [with_debug=y], + [with_debug=n]) + +CFLAGS="$CFLAGS -Wall -W -Wfloat-equal -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wredundant-decls \ +-Wendif-labels -Wshadow -pipe -ffast-math -U__STRICT_ANSI__ -std=gnu99" +if test "$with_debug" == "y"; then + CFLAGS="$CFLAGS -g3 -O0" +elif test "$with_enable_optimized" != "no"; then + CFLAGS="$CFLAGS -g -O2" +else + CFLAGS="$CFLAGS -fomit-frame-pointer -O3" +fi + +if test "$with_safe_clean" != "n"; then + CFLAGS="$CFLAGS -DSAFE_CLEAN" +fi + +# Checks for library functions. +AC_FUNC_MALLOC +AC_FUNC_REALLOC +AC_CHECK_FUNCS([floor gettimeofday memmove memset pow sqrt strchr strdup]) + +AC_CONFIG_FILES([Makefile example/Makefile gen/Makefile]) +AC_OUTPUT + +echo -ne "\n" +echo "global build variables" +echo "-----------------------------------------" +echo `date` +echo "host info: $host" +echo "optimized build: $with_enable_optimized" +echo "compiler (CC): $CC" +echo "LDFLAGS: $LDFLAGS" +echo "CPPFLAGS: $CPPFLAGS" +echo "CFLAGS: $CFLAGS" +echo "LEX: $LEX" +echo "AM_LFLAGS: $AM_LFLAGS" +echo "LFLAGS: $LFLAGS" +echo "YACC: $YACC" +echo "AM_YFLAGS: $AM_YFLAGS" +echo "YFLAGS: $YFLAGS" +echo "-----------------------------------------" +echo -ne "\n" + +syscmd(bison -d -b pbc/parser pbc/parser.y) +syscmd(flex -o pbc/lex.yy.c --header-file=pbc/lex.yy.h pbc/parser.lex) |