/configure.ac
m4 | 393 lines | 272 code | 61 blank | 60 comment | 0 complexity | 22c591ea78a46e040789904f232871ed MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
- # Copyright (C) 2008 Equinox Software, Inc.
- # Kevin Beswick <kevinbeswick00@gmail.com>
- # Copyright (C) 2009-2010 Dan Scott <dscott@laurentian.ca>
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
- # as published by the Free Software Foundation; either version 2
- # of the License, or (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # Process this file with autoconf to produce a configure script.
- #-------------------------------
- # Initialization
- #-------------------------------
- export PATH=${PATH}:/usr/sbin
- AC_PREREQ(2.59)
- AC_INIT([OpenSRF],[trunk],[open-ils-dev@list.georgialibraries.org])
- AM_INIT_AUTOMAKE([OpenSRF], [trunk])
- AC_REVISION($Revision: 0.1 $)
- AC_CONFIG_SRCDIR([configure.ac])
- AC_PREFIX_DEFAULT([/opensrf])
- AC_CONFIG_MACRO_DIR([m4])
- # Enable $prefix to resolve to a reasonable value in substitutions in
- # scripts if no explict value was passed in to configure
- if test "$prefix" == "NONE"; then
- prefix=$ac_default_prefix
- fi
- # Perl and Python scripts don't want ${prefix} if no value was specified
- eval "eval CONF_DIR=$sysconfdir"
- eval "eval PID_DIR=$localstatedir"
- AC_SUBST([CONF_DIR])
- AC_SUBST([PID_DIR])
- AC_SUBST(prefix)
- AC_SUBST(bindir)
- AC_DEFUN([AC_PYTHON_MOD],[
- if test -z $PYTHON;
- then
- PYTHON="python"
- fi
- AC_MSG_CHECKING($PYTHON_NAME module: $1)
- $PYTHON -c "import $1" 2>/dev/null
- if test $? -eq 0;
- then
- AC_MSG_RESULT(yes)
- eval AS_TR_CPP(HAVE_PYMOD_$1)=yes
- else
- AC_MSG_ERROR(failed to find required module $1)
- exit 1
- fi
- ])
- #-------------------------------
- # Installation options
- #-------------------------------
- # build and install the java libs?
- AC_ARG_ENABLE([java],
- [ --enable-java enable building and installing the java libraries],
- [case "${enableval}" in
- yes) OSRF_INSTALL_JAVA=true ;;
- no) OSRF_INSTALL_JAVA=false ;;
- *) AC_MSG_ERROR([please choose another value for --enable-java (supported values are yes or no)]) ;;
- esac],
- [OSRF_INSTALL_JAVA=false])
- AM_CONDITIONAL([BUILDJAVA], [test x$OSRF_INSTALL_JAVA = xtrue])
- AC_SUBST([OSRF_INSTALL_JAVA])
- # install the javascript files?
- AC_ARG_ENABLE([javascript],
- [ --disable-javascript disable installing JavaScript libraries],
- [case "${enableval}" in
- yes) OSRF_INSTALL_JAVASCRIPT=true ;;
- no) OSRF_INSTALL_JAVASCRIPT=false ;;
- *) AC_MSG_ERROR([please choose another value for --disable-javascript (supported values are yes or no)]) ;;
- esac],
- [OSRF_INSTALL_JAVASCRIPT=true])
- AM_CONDITIONAL([INSTALLJAVASCRIPT], [test x$OSRF_INSTALL_JAVASCRIPT = xtrue])
- AC_SUBST([OSRF_INSTALL_JAVASCRIPT])
- # install the OpenSRF core files?
- AC_ARG_ENABLE([core],
- [ --disable-core disable installing core files],
- [case "${enableval}" in
- yes) OSRF_INSTALL_CORE=true ;;
- no) OSRF_INSTALL_CORE=false ;;
- *) AC_MSG_ERROR([please choose another value for --disable-core (supported values are yes or no)]) ;;
- esac],
- [OSRF_INSTALL_CORE=true])
- AM_CONDITIONAL([BUILDCORE], [test x$OSRF_INSTALL_CORE = xtrue])
- AC_SUBST([OSRF_INSTALL_CORE])
- # build and install the python modules
- AC_ARG_ENABLE([python],
- [ --enable-python enable building and installing python modules],
- [case "${enableval}" in
- yes) OSRF_INSTALL_PYTHON=true ;;
- no) OSRF_INSTALL_PYTHON=false ;;
- *) AC_MSG_ERROR([please choose another value for --enable-python (supported values are yes or no)]) ;;
- esac],
- [OSRF_INSTALL_PYTHON=false])
- AM_CONDITIONAL([BUILDPYTHON], [test x$OSRF_INSTALL_PYTHON = xtrue])
- AC_SUBST([OSRF_INSTALL_PYTHON])
- # enable chopchop, the basic XMPP server
- AC_ARG_ENABLE([chopchop],
- [ --enable-chopchop build and install chopchop, a basic XMPP server],
- [case "${enableval}" in
- yes) OSRF_INSTALL_CHOPCHOP=true ;;
- no) OSRF_INSTALL_CHOPCHOP=false ;;
- *) AC_MSG_ERROR([please choose another value for --enable-chopchop (supported values are yes or no)]) ;;
- esac],
- [OSRF_INSTALL_CHOPCHOP=false])
- AM_CONDITIONAL([BUILDCHOPCHOP], [test x$OSRF_INSTALL_CHOPCHOP = xtrue])
- AC_SUBST([OSRF_INSTALL_CHOPCHOP])
- # enable debug?
- AC_ARG_ENABLE(debug,
- [ --enable-debug Turn on debugging],
- [case "${enableval}" in
- yes) debug=true ;;
- no) debug=false ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
- esac],[debug=false])
- AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
-
- # path to the directory containing the java dependency jar files (included if java installs)
- if test $OSRF_INSTALL_JAVA; then
- AC_SUBST([OSRF_JAVA_DEPSDIR], [/opt/java])
- AC_CONFIG_FILES([src/java/Makefile])
- fi
- #--------------------------------
- # Checks for programs.
- #--------------------------------
- AC_PROG_LIBTOOL
- AC_PROG_AWK
- AC_PROG_CC
- AC_PROG_INSTALL
- AC_PROG_MAKE_SET
- #------------------------------
- # Set install path variables
- #------------------------------
- AC_ARG_WITH([tmp],
- [ --with-tmp=path location for the temporary directory for OpenSRF (default is /tmp)],
- [TMP=${withval}],
- [TMP=/tmp])
- AC_SUBST([TMP])
- AC_ARG_WITH([apxs],
- [ --with-apxs=path location of the apxs (Apache extension) tool (default is /usr/bin/apxs2)],
- [APXS2=${withval}],
- [APXS2=/usr/bin/apxs2])
- if ! test -x "$APXS2"; then
- for i in /usr/bin /usr/sbin /usr/local/apache/bin /usr/local/apache2/bin ; do
- for j in apxs apxs2 ; do
- if test -x "$i/$j"; then
- APXS2="$i/$j"
- break
- fi
- done
- done
- fi
- AC_SUBST([APXS2])
- AC_ARG_WITH([apache],
- [ --with-apache=path location of the Apache headers (default is /usr/include/apache2)],
- [APACHE2_HEADERS=${withval}],
- [APACHE2_HEADERS=/usr/include/apache2])
- if ! test -d "$APACHE2_HEADERS"; then
- for i in /usr/include/httpd ; do
- if test -d "$i"; then
- APACHE2_HEADERS="$i"
- break
- fi
- done
- fi
- AC_SUBST([APACHE2_HEADERS])
- AC_ARG_WITH([apr],
- [ --with-apr=path location of the Apache Portable Runtime headers (default is /usr/include/apr-1.0/)],
- [APR_HEADERS=${withval}],
- [APR_HEADERS=/usr/include/apr-1.0])
- if ! test -d "$APR_HEADERS"; then
- for i in /usr/include/apr-1 ; do
- if test -d "$i"; then
- APR_HEADERS="$i"
- break
- fi
- done
- fi
- AC_SUBST([APR_HEADERS])
- AC_ARG_WITH([libxml],
- [ --with-libxml=path location of the libxml2 headers (default is /usr/include/libxml2/))],
- [LIBXML2_HEADERS=${withval}],
- [LIBXML2_HEADERS=/usr/include/libxml2/])
- AC_SUBST([LIBXML2_HEADERS])
- AC_ARG_WITH([includes],
- [ --with-includes=DIRECTORIES a colon-separated list of directories that will be added to the list the compiler searches for header files (Example: --with-includes=/path/headers:/anotherpath/moreheaders)],
- [EXTRA_USER_INCLUDES=${withval}])
- AC_ARG_WITH([libraries],
- [ --with-libraries=DIRECTORIES a colon-separated list of directories to search for libraries (Example: --with-libraries=/lib:/usr/lib)],
- [EXTRA_USER_LIBRARIES=${withval}])
- # Change these lists to proper compiler/linker options
- IFSBAK=${IFS}
- IFS="${IFS}:"
- for dir in $EXTRA_USER_INCLUDES; do
- if test -d "$dir"; then
- INCLUDES="$INCLUDES -I$dir"
- else
- AC_MSG_WARN([*** Include directory $dir does not exist.])
- fi
- done
- AC_SUBST(INCLUDES)
- for dir in $EXTRA_USER_LIBRARIES; do
- if test -d "$dir"; then
- LIBDIRS="$LIBDIRS -L$dir"
- else
- AC_MSG_WARN([*** Library directory $dir does not exist.])
- fi
- done
- AC_SUBST(LIBDIRS)
- IFS=${IFSBAK}
- AC_CONFIG_FILES([Makefile
- src/Makefile])
- #PYTHON TESTS
- if test x$OSRF_INSTALL_PYTHON = xtrue; then
- AC_CHECK_PROG([HAVE_PYTHON],python,yes,no)
- if test $HAVE_PYTHON = "no"; then
- AC_MSG_ERROR([*** python not found, aborting])
- fi
- AC_PYTHON_MOD([setuptools])
- AC_CONFIG_FILES([
- examples/math_client.py
- examples/simple_text.py
- src/python/Makefile
- ])
- fi
- if test "x$OSRF_INSTALL_CORE" = "xtrue"; then
- #--------------------------------
- # Check for dependencies.
- #--------------------------------
- #APACHE PREFORK DEV TEST
- AC_MSG_CHECKING([APXS])
- if test -f "${APXS2}"; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_ERROR([*** apxs not found, aborting])
- fi
- #-----------------------------
- # Checks for libraries.
- #-----------------------------
- AC_SEARCH_LIBS([dlerror], [dl], [],AC_MSG_ERROR([***OpenSRF requires a library (typically libdl) that provides dlerror()]))
- AC_CHECK_LIB([ncurses], [initscr], [], AC_MSG_ERROR(***OpenSRF requires ncurses development headers))
- AC_CHECK_LIB([readline], [readline], [], AC_MSG_ERROR(***OpenSRF requires readline development headers))
- AC_CHECK_LIB([xml2], [xmlAddID], [], AC_MSG_ERROR(***OpenSRF requires xml2 development headers))
- # Check for libmemcached and set flags accordingly
- PKG_CHECK_MODULES(memcached, libmemcached >= 0.8.0)
- AC_SUBST(memcached_CFLAGS)
- AC_SUBST(memcached_LIBS)
- # Check Unit test framework
- PKG_CHECK_MODULES([CHECK], [check >= 0.9.0], [enable_tests=yes],
- [enable_tests=no])
- AM_CONDITIONAL(CHECK_TESTS, test x$enable_tests = xyes)
- if test "x$enable_tests" = "xno"; then
- AC_MSG_WARN(Check unit testing framwork not found.)
- fi
- #-----------------------------
- # Checks for header files.
- #-----------------------------
- AC_HEADER_STDC
- AC_HEADER_SYS_WAIT
- AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h malloc.h netdb.h netinet/in.h stdlib.h string.h strings.h sys/socket.h sys/time.h sys/timeb.h syslog.h unistd.h])
- #------------------------------------------------------------------
- # Checks for typedefs, structures, and compiler characteristics.
- #------------------------------------------------------------------
- AC_C_CONST
- AC_C_INLINE
- AC_TYPE_PID_T
- AC_TYPE_SIZE_T
- AC_HEADER_TIME
- AC_STRUCT_TM
- AM_PROG_CC_C_O
- #----------------------------------
- # Checks for library functions.
- #----------------------------------
- AC_FUNC_FORK
- AC_FUNC_MALLOC
- AC_FUNC_SELECT_ARGTYPES
- AC_TYPE_SIGNAL
- AC_FUNC_STRFTIME
- AC_FUNC_STRTOD
- AC_FUNC_VPRINTF
- AC_CHECK_FUNCS([bzero dup2 gethostbyname gethostname gettimeofday malloc_stats memset select socket strcasecmp strchr strdup strerror strncasecmp strndup strrchr strtol])
- #------------------------------------
- # Configuration and output
- #------------------------------------
- AC_CONFIG_FILES([doc/dokuwiki-doc-stubber.pl
- examples/math_xul_client/Makefile
- examples/math_bench.pl
- examples/multisession-test.pl
- src/c-apps/Makefile
- src/gateway/Makefile
- src/jserver/Makefile
- src/libopensrf/Makefile
- src/perl/Makefile
- src/ports/strn_compat/Makefile
- src/python/opensrf.py
- src/router/Makefile
- src/srfsh/Makefile
- tests/Makefile
- bin/opensrf-perl.pl
- bin/osrf_config
- bin/osrf_ctl.sh])
- fi
- AC_OUTPUT
- AC_MSG_RESULT([])
- AC_MSG_RESULT([--------------------- Configuration options: -----------------------])
- if test "$OSRF_INSTALL_JAVA" = "true" ; then
- AC_MSG_RESULT([OSRF install Java support? yes])
- AC_MSG_RESULT([Java support files $OSRF_JAVA_DEPSDIR])
- else
- AC_MSG_RESULT([OSRF install Java support? no])
- fi
- if test "$OSRF_INSTALL_PYTHON" = "true" ; then
- AC_MSG_RESULT([OSRF install Python support? yes])
- else
- AC_MSG_RESULT([OSRF install Python support? no])
- fi
- if test "$OSRF_INSTALL_CHOPCHOP" = "true" ; then
- AC_MSG_RESULT([OSRF install chopchop? yes])
- else
- AC_MSG_RESULT([OSRF install chopchop? no])
- fi
- AC_MSG_RESULT(Installation directory prefix: ${prefix})
- AC_MSG_RESULT(Temporary directory: ${TMP})
- AC_MSG_RESULT(APXS2 location: ${APXS2})
- AC_MSG_RESULT(Apache headers location: ${APACHE2_HEADERS})
- AC_MSG_RESULT(APR headers location: ${APR_HEADERS})
- AC_MSG_RESULT(libxml2 headers location: ${LIBXML2_HEADERS})
- AC_MSG_RESULT([----------------------------------------------------------------------])