# Configure script for Digital Bazaar Bitmunk product line # Usage: Run ./configure once # Author: Manu Sporny AC_PREREQ([2.60]) AC_INIT([forge],[0.1.0],[support@digitalbazaar.com]) AC_CONFIG_AUX_DIR(setup) # Setup standard build environment variables # FIXME: allow changing via configure option FORGE_DIR=`(cd ${srcdir} && pwd)` AC_SUBST(FORGE_DIR) DATE_YMD=`date +%Y%m%d` PACKAGE_DATE_VERSION=${PACKAGE_VERSION}-${DATE_YMD} AC_SUBST(DATE_RFC_2822) AC_SUBST(PACKAGE_DATE_VERSION) dnl ----------------- docs ----------------- AC_ARG_ENABLE([docs], AS_HELP_STRING([--enable-docs], [build documentation [no]]), [ case "${enableval}" in yes) BUILD_DOCS=yes ;; no) BUILD_DOCS=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs) ;; esac ], [BUILD_DOCS=no]) dnl Default value AC_SUBST(BUILD_DOCS) dnl ----------------- tests ----------------- AC_ARG_ENABLE([tests], AC_HELP_STRING([--disable-tests], [disable building test apps [no]]), [ case "${enableval}" in yes) BUILD_TESTS=yes ;; no) BUILD_TESTS=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;; esac ], [BUILD_TESTS=no]) dnl Default value AC_SUBST(BUILD_TESTS) dnl ----------------- build flash ----------------- AC_ARG_ENABLE([flash], AC_HELP_STRING([--disable-flash], [disable building Flash [no]]), [ case "${enableval}" in yes) BUILD_FLASH=yes ;; no) BUILD_FLASH=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-flash) ;; esac ], [BUILD_FLASH=yes]) dnl Default value AC_ARG_ENABLE([pre-built-flash], AC_HELP_STRING([--disable-pre-built-flash], [disable use of pre-built Flash [no]]), [ case "${enableval}" in yes) USE_PRE_BUILT_FLASH=yes ;; no) USE_PRE_BUILT_FLASH=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-flash) ;; esac ], [USE_PRE_BUILT_FLASH=yes]) dnl Default value AC_SUBST(BUILD_FLASH) AC_SUBST(USE_PRE_BUILT_FLASH) dnl ----------------- mxmlc ----------------- AC_ARG_WITH([mxmlc], AC_HELP_STRING([--with-mxmlc=PATH], [use PATH for mxmlc]), [ case "${withval}" in yes|no) AC_MSG_ERROR(bad value ${withval} for --with-mxmlc) ;; *) MXMLC="${withval}" ;; esac if test "x$MXMLC" = x -o ! -x "$MXMLC"; then AC_MSG_ERROR([mxmlc not found at "$MXMLC"]) fi ]) if test "$BUILD_FLASH" = "yes" ; then dnl Need to try to find mxmlc if test "x$MXMLC" = x; then AC_CHECK_PROGS(MXMLC, mxmlc /usr/lib/flex3/bin/mxmlc,, $PATH /) fi dnl Check that mxmlc was found if test "x$MXMLC" = x; then if test "$USE_PRE_BUILT_FLASH" = "yes"; then dnl Check pre-built SWF is present if test -r "$FORGE_DIR/swf/SocketPool.swf"; then AC_MSG_NOTICE([Using pre-built Flash]) BUILD_FLASH=no else AC_MSG_ERROR([mxmlc and pre-built Flash not found]) fi else AC_MSG_ERROR([mxmlc not found, try --with-mxmlc]) fi fi fi AC_SUBST(MXMLC) dnl ----------------- mxmlc debug ----------------- AC_ARG_ENABLE([mxmlc-debug], AC_HELP_STRING([--enable-mxmlc-debug], [enable mxmlc debug mode [no]]), [ case "${enableval}" in yes) MXMLC_DEBUG_MODE=yes ;; no) MXMLC_DEBUG_MODE=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-mxmlc-debug) ;; esac ], [MXMLC_DEBUG_MODE=no]) dnl Default value AC_SUBST(MXMLC_DEBUG_MODE) dnl ----------------- end of options ----------------- echo -e "\n--------- Configuring Build Environment -----------" PKG_PROG_PKG_CONFIG # Checking for standard build tools AC_PROG_CPP AC_PROG_INSTALL AS_PATH_PYTHON([2.7]) if test "x$PYTHON" != x; then save_CPPFLAGS="$CPPFLAGS" AC_CHECK_PROGS([PYTHON_CONFIG], [python-config]) if test "x$PYTHON_CONFIG" != x; then CPPFLAGS="$CPPFLAGS `$PYTHON_CONFIG --cflags`" fi AC_CHECK_HEADERS([Python.h], [BUILD_PYTHON_MODULES=yes], [BUILD_PYTHON_MODULES=no AC_MSG_WARN([Python.h not found, SSL bindings will not be build.])]) CPPFLAGS="$save_CPPFLAGS" else AC_MSG_WARN([Need at least Python 2.7 to build SSL bindings.]) fi AC_SUBST(BUILD_PYTHON_MODULES) dnl ---------------------------------- dnl NOTE: dnl This code was used previously to autogenerate the .gitignore file but due dnl to the current more common use of just the js files, it's likely people dnl who checkout the code will never run the build scripts. The files are now dnl just hardcoded into .gitignore and should be updated by hand as needed. dnl dnl # Generating files dnl AC_CONFIG_FILES([ dnl .gitignore dnl Makefile dnl ]) dnl dnl # add newlines to internal output file list dnl CONFIGURE_GENERATED_FILES="`echo $ac_config_files | tr ' ' '\n'`" dnl AC_SUBST(CONFIGURE_GENERATED_FILES) AC_OUTPUT # Dump the build configuration echo -e "\n--------- Forge Build Environment -----------" echo "Forge Version : $PACKAGE_NAME $PACKAGE_DATE_VERSION" if test "x$BUILD_FLASH" = "xyes" ; then echo "Adobe Flash : Flash building enabled" echo "MXMLC : $MXMLC" echo "MXMLC Debug flags : $MXMLC_DEBUG_MODE" else echo "Adobe Flash : using pre-built Flash" fi if test "x$BUILD_PYTHON_MODULES" = "xyes" ; then echo "Python : $PYTHON (version $PYTHON_VERSION)" else echo "Python : development environment not found" fi if test "x$BUILD_DOCS" = "xyes"; then echo "Documentation : enabled" else echo "Documentation : disabled (use --enable-docs to enable)" fi if test "x$BUILD_TESTS" = "xyes"; then echo "Tests : enabled" else echo "Tests : disabled (use --enable-tests to enable)" fi