# Copyright (C) 2008 Equinox Software, Inc.
# Kevin Beswick <kevinbeswick00@gmail.com>
+# Copyright (C) 2010 Laurentian University
+# 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
#---------------------------
export PATH=${PATH}:/usr/sbin
-AC_PREREQ(2.59)
+AC_PREREQ(2.61)
AC_INIT(Open-ILS, trunk, open-ils-dev@list.georgialibraries.org)
AM_INIT_AUTOMAKE([OpenILS], [trunk])
AC_REVISION($Revision: 0.1 $)
AC_CONFIG_SRCDIR([configure.ac])
-AC_PREFIX_DEFAULT([/openils/])
+AC_CONFIG_SUBDIRS([Open-ILS/xul/staff_client/external/libmar])
AC_SUBST(prefix)
AC_SUBST([abs_top_builddir])
-
#-----------------------------------
# Checks for programs.
#-----------------------------------
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
+AC_PROG_MKDIR_P
+AM_PROG_CC_C_O
#-----------------------------------
# Install options
#[ --enable-openils-all enables the installation of the default openils system (base system,web,staffclient) ],
#[case "${enableval}" in
# yes) openils_all=true;
-# openils_core=true;
-# openils_web=true;
-# openils_reporter=true;
-# openils_client_xul=true;
-# openils_server_xul=true ;;
+# openils_core=true;
+# openils_web=true;
+# openils_updates=true;
+# openils_reporter=true;
+# openils_client_xul=true;
+# openils_server_xul=true ;;
# no) openils_all=false ;;
# *) AC_MSG_ERROR([please choose another value for --enable-openils-all (supported values are yes or no])
#esac],
AM_CONDITIONAL([BUILDILSWEB], [test x$openils_web = xtrue])
+# install evergreen-updates?
+
+AC_ARG_ENABLE([updates],
+[ --disable-updates disables installation of the Evergreen updates folder ],
+[case "${enableval}" in
+ yes) openils_updates=true ;;
+ no) openils_updates=false ;;
+ *) AC_MSG_ERROR([please choose another value for --disable-updates (supported values are yes or no])
+esac],
+[openils_updates=true])
+
+AM_CONDITIONAL([BUILDILSUPDATES], [test x$openils_updates = xtrue])
+
+# Default updates host?
+AC_ARG_WITH([updateshost],
+[ --with-updateshost=hostname default hostname for automatic updates (default is blank)],
+[AUTOUPDATE_HOST=${withval}],
+[AUTOUPDATE_HOST=])
+AC_SUBST([AUTOUPDATE_HOST])
+
+# Default updates host?
+AC_ARG_WITH([initialhost],
+[ --with-initialhost=hostname default hostname for staff client (default is blank)],
+[INITIAL_HOST=${withval}],
+[INITIAL_HOST=])
+AC_SUBST([INITIAL_HOST])
+
+
# install Evergreen Apache modules?
AC_ARG_ENABLE([apache-modules],
[ --disable-apache-modules disables installation of the Evergreen Apache modules ],
#-----------------------------------
# Check for dependencies
#-----------------------------------
-
-AC_ARG_WITH([opensrf-headers],
-[ --with-opensrf-headers=path location of the OpenSRF header files (default is /openils/include/)],
-[OPENSRF_HEADERS=${withval}],
-[OPENSRF_HEADERS=/openils/include/])
-AC_SUBST([OPENSRF_HEADERS])
-
-# We need this for JavaScript
-AC_ARG_WITH([opensrf-libs],
-[ --with-opensrf-libs=path location of the OpenSRF libraries (default is /openils/lib/)],
-[OPENSRF_LIBS=${withval}],
-[OPENSRF_LIBS=/openils/lib/])
-AC_SUBST([OPENSRF_LIBS])
-
AC_ARG_WITH([tmp],
[ --with-tmp=path location of the Evergreen temporary directory (default is /tmp) ],
[TMP=${withval}],
[ --with-apxs=path location of the apxs Apache configuration tool (default is /usr/bin/apxs2)],
[APXS2=${withval}],
[APXS2=/usr/bin/apxs2])
-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])
-AC_SUBST([APACHE2_HEADERS])
-AC_ARG_WITH([apr],
-[ --with-apr=path location of the Apache Portable Runtime (APR) headers (default is /usr/include/apr-1.0/)],
-[APR_HEADERS=${withval}],
-[APR_HEADERS=/usr/include/apr-1.0])
-AC_SUBST([APR_HEADERS])
+# If the passed in value doesn't work, try some reasonable defaults
+# Fedora puts the file in /usr/sbin/apxs, for example
+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([libxml2],
[ --with-libxml2=path location of the libxml2 headers (default is /usr/include/libxml2)],
AC_SUBST([LIBXML2_HEADERS])
AC_ARG_WITH([dbi],
-[ --with-dbi=path location of the libdbi libraries (default is /usr/local/lib/dbd)],
+[ --with-dbi=path location of the libdbi driver libraries (default is /usr/lib/x86_64-linux-gnu/dbd/)],
[DBI_LIBS=${withval}],
-[DBI_LIBS=/usr/local/lib/dbd/])
+[DBI_LIBS=/usr/lib/x86_64-linux-gnu/dbd/])
+
+AC_ARG_WITH([perlbase],
+[ --with-perlbase=path base location to install Perl modules (default based on Config.pm)],
+[PERL_BASE=${withval}],
+[PERL_BASE=x])
+AC_SUBST([PERL_BASE])
+
+# If the passed in value doesn't work, fall back to reasonable defaults
+# Distributions are starting to package a good version of libdbi / libdbd
+if ! test -d "$DBI_LIBS"; then
+ for i in /usr/lib/dbd/ /usr/lib64/dbd /usr/local/lib/dbd/ ; do
+ if test -d "$i"; then
+ DBI_LIBS="$i"
+ break
+ fi
+ done
+fi
AC_SUBST([DBI_LIBS])
+AM_CONDITIONAL(CHECK_TESTS, test x$enable_tests = xyes)
+
if test "x$openils_core" = "xtrue"; then
- AC_CHECK_PROG([MEMCACHED],memcached,yes,no)
- if test $MEMCACHED = "no"; then
- AC_MSG_ERROR([*** memcached not found, aborting])
- fi
-
- AC_CHECK_PROG([ASPELL],aspell,yes,no)
- if test $ASPELL = "no"; then
- AC_MSG_ERROR([*** aspell not found, aborting])
- fi
-
- AC_CHECK_PROG([CPAN],cpan,yes,no)
- if test $CPAN = "no"; then
- AC_MSG_ERROR([*** cpan not found, aborting])
- fi
-
- AC_CHECK_PROG([YAZ],yaz-config,yes,no)
- if test $YAZ = "no"; then
- AC_MSG_ERROR([*** yaz not found, aborting])
- fi
-
- AC_CHECK_PROG([PERL],perl,yes,no)
- if test $PERL = "no"; then
- AC_MSG_ERROR([*** perl not found, aborting])
- fi
-
- #------------------------------------
- # Checks for libraries.
- #------------------------------------
-
- # Check for the existence of libraries in non-standard locations
-
- AC_MSG_CHECKING(for -lopensrf)
- if test -e ${OPENSRF_LIBS}/libopensrf.so; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_ERROR([*** libopensrf not found (or not in location specified to configure), aborting])
- fi
-
- # Check for the rest of the libraries
-
- #check for dynamic linking functions
- AC_CHECK_LIB(dl,dlopen)
-
- #check for the libdbi library
- AC_CHECK_LIB(dbi,dbi_initialize)
-
- #to check for the availability and function of a particular
- #driver we need a runtime check (since the driver is loaded
- #dynamically). This example checks for the mysql driver
- AC_MSG_CHECKING([for libdbi pgsql driver (dynamic load)])
- AC_RUN_IFELSE(
- [AC_LANG_PROGRAM(,
- [[dbi_initialize(0); return(dbi_conn_new("pgsql") ? 0 : 1);]])],
- [AC_MSG_RESULT("yes")],
- [AC_MSG_FAILURE("pgsql driver not installed?")])
-
- AC_CHECK_LIB([expat], [main], [], AC_MSG_ERROR(*** OpenILS requires libexpat))
- AC_CHECK_LIB([readline], [main], [], AC_MSG_ERROR(*** OpenILS requires libreadline))
- AC_CHECK_LIB([xml2], [main], [], AC_MSG_ERROR(*** OpenILS requires libxml2))
- AC_CHECK_LIB([xslt], [main], [], AC_MSG_ERROR(*** OpenILS requires libxslt))
- AC_CHECK_LIB([perl], [main], [], AC_MSG_ERROR(*** OpenILS requires libperl-dev))
- AC_CHECK_LIB([pq], [main], [], AC_MSG_ERROR(*** OpenILS requires libpq))
-
-
- #------------------------------------
- # Checks for header files.
- #------------------------------------
-
- AC_HEADER_STDC
- AC_CHECK_HEADERS([fcntl.h langinfo.h locale.h stdlib.h string.h unistd.h])
-
- #-------------------------------------------------------------------
- # Checks for typedefs, structures, and compiler characteristics.
- #-------------------------------------------------------------------
-
- AC_C_CONST
- AC_TYPE_SIZE_T
- AC_STRUCT_TM
- AC_HEADER_STDBOOL
-
- #-------------------------------------------------------------------
- # Checks for library functions.
- #-------------------------------------------------------------------
-
- AC_FUNC_STRFTIME
- AC_FUNC_STRTOD
- AC_CHECK_FUNCS([localtime_r memset nl_langinfo setlocale strcasecmp strchr strdup strerror strncasecmp])
-
- #----------------------------
- # Create Makefiles/Output
- #----------------------------
-
- AC_CONFIG_FILES([Open-ILS/examples/Makefile
- Open-ILS/src/c-apps/Makefile
- Open-ILS/src/extras/Makefile
- Open-ILS/src/java/Makefile
- Open-ILS/src/python/Makefile])
+ AC_PATH_PROG([OSRF_CONFIG], [osrf_config])
+ if test "x$OSRF_CONFIG" == "x"; then
+ AC_MSG_ERROR([Could not find osrf_config.
+ Ensure OpenSRF is installed and that the PATH environment variable includes
+ the OpenSRF executables. For example: PATH=\$PATH:/openils/bin ./configure])
+ fi
+
+ AC_ARG_WITH([opensrf-headers],
+ [ --with-opensrf-headers=path location of the OpenSRF header files],
+ [OPENSRF_HEADERS=${withval}],
+ [OPENSRF_HEADERS=`$OSRF_CONFIG --includedir`])
+ AC_SUBST([OPENSRF_HEADERS])
+
+ # We need this for JavaScript
+ AC_ARG_WITH([opensrf-libs],
+ [ --with-opensrf-libs=path location of the OpenSRF libraries],
+ [OPENSRF_LIBS=${withval}],
+ [OPENSRF_LIBS=`$OSRF_CONFIG --libdir`])
+ AC_SUBST([OPENSRF_LIBS])
+
+ AC_CHECK_PROG([MEMCACHED],memcached,yes,no)
+ if test $MEMCACHED = "no"; then
+ AC_MSG_ERROR([*** memcached not found, aborting])
+ fi
+
+ AC_CHECK_PROG([ASPELL],aspell,yes,no)
+ if test $ASPELL = "no"; then
+ AC_MSG_ERROR([*** aspell not found, aborting])
+ fi
+
+ AC_CHECK_PROG([CPAN],cpan,yes,no)
+ if test $CPAN = "no"; then
+ AC_MSG_ERROR([*** cpan not found, aborting])
+ fi
+
+ AC_CHECK_PROG([YAZ],yaz-config,yes,no)
+ if test $YAZ = "no"; then
+ AC_MSG_ERROR([*** yaz not found, aborting])
+ fi
+
+ AC_CHECK_PROG([PERL],perl,yes,no)
+ if test $PERL = "no"; then
+ AC_MSG_ERROR([*** perl not found, aborting])
+ fi
+
+ #------------------------------------
+ # Checks for libraries.
+ #------------------------------------
+
+ # Check for the rest of the libraries
+
+ #check for dynamic linking functions
+ AC_CHECK_LIB(dl,dlopen)
+
+ #check for the libdbi library
+ AC_CHECK_LIB(dbi,dbi_initialize)
+
+ #to check for the availability and function of a particular
+ #driver we need a runtime check (since the driver is loaded
+ #dynamically). This example checks for the mysql driver
+ AC_MSG_CHECKING([for libdbi pgsql driver (dynamic load)])
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(,
+ [[dbi_initialize(0); return(dbi_conn_new("pgsql") ? 0 : 1);]])],
+ [AC_MSG_RESULT("yes")],
+ [AC_MSG_FAILURE("pgsql driver not installed?")])
+
+ AC_CHECK_LIB([expat], [main], [], AC_MSG_ERROR(*** OpenILS requires libexpat))
+ AC_CHECK_LIB([ncurses], [main], [], AC_MSG_ERROR(*** OpenILS requires libncurses))
+
+ # IF the OpenSRF libs are installed in a non-standard location, such as
+ # /openils/lib, the compilation test will fail. Support that case.
+ LDFLAGS="-L$OPENSRF_LIBS"
+
+ AC_CHECK_LIB([opensrf], [osrfMessageFree], [], AC_MSG_ERROR(*** OpenILS requires libopensrf))
+ AC_CHECK_LIB([readline], [main], [], AC_MSG_ERROR(*** OpenILS requires libreadline))
+ AC_CHECK_LIB([xml2], [main], [], AC_MSG_ERROR(*** OpenILS requires libxml2))
+ AC_CHECK_LIB([xslt], [main], [], AC_MSG_ERROR(*** OpenILS requires libxslt))
+ AC_CHECK_LIB([pq], [main], [], AC_MSG_ERROR(*** OpenILS requires libpq))
+ PKG_CHECK_MODULES(pcre, libpcre >= 3.0.0)
+
+
+ #------------------------------------
+ # Checks for header files.
+ #------------------------------------
+
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS([fcntl.h langinfo.h locale.h stdlib.h string.h unistd.h])
+
+ #-------------------------------------------------------------------
+ # Checks for typedefs, structures, and compiler characteristics.
+ #-------------------------------------------------------------------
+
+ AC_C_CONST
+ AC_TYPE_SIZE_T
+ AC_STRUCT_TM
+ AC_HEADER_STDBOOL
+
+ #-------------------------------------------------------------------
+ # Checks for library functions.
+ #-------------------------------------------------------------------
+
+ AC_FUNC_STRFTIME
+ AC_FUNC_STRTOD
+ AC_CHECK_FUNCS([localtime_r memset nl_langinfo setlocale strcasecmp strchr strdup strerror strncasecmp])
+
+ #---------------------------------
+ # Check for unit test framework.
+ #---------------------------------
+ PKG_CHECK_MODULES([CHECK], [check >= 0.9.0], [enable_tests=yes],
+ [enable_tests=no])
+ if test "x$enable_tests" = "xno"; then
+ AC_MSG_WARN(Check unit testing framework not found.)
+ fi
+
+ #----------------------------
+ # Create Makefiles/Output
+ #----------------------------
+
+ AC_CONFIG_FILES([Open-ILS/examples/Makefile
+ Open-ILS/src/c-apps/Makefile
+ Open-ILS/src/c-apps/tests/Makefile
+ Open-ILS/src/extras/Makefile
+ Open-ILS/src/java/Makefile
+ Open-ILS/src/python/Makefile])
fi
if test "x$build_apachemods" = "xtrue"; then
- #-----------------------------------
- # Set install path variables
- #-----------------------------------
+ #-----------------------------------
+ # Set install path variables
+ #-----------------------------------
- #APACHE PREFORK DEV TEST
- AC_MSG_CHECKING([APXS2])
- if test -x "${APXS2}"; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_ERROR([*** apxs not found, aborting])
- fi
+ #APACHE PREFORK DEV TEST
+ AC_MSG_CHECKING([APXS2])
+ if test -x "${APXS2}"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_ERROR([*** apxs not found in ${APXS2}, aborting])
+ fi
- AC_CONFIG_FILES([Open-ILS/src/apachemods/Makefile])
+ AC_CONFIG_FILES([Open-ILS/src/apachemods/Makefile])
fi
AC_CONFIG_FILES([Makefile
- Open-ILS/src/Makefile
- Open-ILS/web/Makefile
- Open-ILS/xul/staff_client/Makefile
- Open-ILS/src/extras/eg_config
- Open-ILS/src/extras/fast-extract],
- [
- if test -e "./Open-ILS/src/extras/eg_config"; then chmod 755 Open-ILS/src/extras/eg_config; fi;
- if test -e "./Open-ILS/src/extras/fast-extract"; then chmod 755 Open-ILS/src/extras/fast-extract; fi;
- ])
+ Open-ILS/src/Makefile
+ Open-ILS/src/perlmods/Makefile
+ Open-ILS/web/Makefile
+ Open-ILS/updates/Makefile
+ Open-ILS/xul/staff_client/Makefile
+ Open-ILS/src/extras/eg_config
+ ],
+ [
+ if test -e "./Open-ILS/src/extras/eg_config"; then chmod 755 Open-ILS/src/extras/eg_config; fi;
+ ])
AC_OUTPUT
#-------------------------------------------------
AC_MSG_RESULT([])
AC_MSG_RESULT([-------- Installation Options: --------])
if test "$openils_core" = "true" ; then
- AC_MSG_RESULT([Evergreen Core: yes])
+ AC_MSG_RESULT([Evergreen Core: yes])
else
- AC_MSG_RESULT([Evergreen Core: no])
+ AC_MSG_RESULT([Evergreen Core: no])
fi
if test "$build_apachemods" = "true" ; then
- AC_MSG_RESULT([Evergreen Apache module: yes])
-else
- AC_MSG_RESULT([Evergreen Apache module: no])
-fi
-if test "$openils_web" = "true" ; then
- AC_MSG_RESULT([Evergreen Web: yes])
-else
- AC_MSG_RESULT([Evergreen Web: no])
-fi
-if test "$openils_reporter" = "true" ; then
- AC_MSG_RESULT([Evergreen Reporter: yes])
-else
- AC_MSG_RESULT([Evergreen Reporter: no])
-fi
-if test "$openils_client" = "true" ; then
- AC_MSG_RESULT([Evergreen Staff Client: yes])
-else
- AC_MSG_RESULT([Evergreen Staff Client: no])
-fi
-if test "$EG_PYTHON_INSTALL" = "true" ; then
- AC_MSG_RESULT([Evergreen Python Components: yes])
-else
- AC_MSG_RESULT([Evergreen Python Components: no])
-fi
-if test "$evergreen_java" = "true" ; then
- AC_MSG_RESULT([Evergreen Java Components: yes])
-else
- AC_MSG_RESULT([Evergreen Java Components: no])
+AC_MSG_RESULT([Evergreen Apache module: yes])
+ else
+AC_MSG_RESULT([Evergreen Apache module: no])
+ fi
+ if test "$openils_web" = "true" ; then
+AC_MSG_RESULT([Evergreen Web: yes])
+ else
+AC_MSG_RESULT([Evergreen Web: no])
+ fi
+ if test "$openils_updates" = "true" ; then
+AC_MSG_RESULT([Evergreen Updates: yes])
+ else
+AC_MSG_RESULT([Evergreen Updates: no])
+ fi
+ if test "$openils_reporter" = "true" ; then
+AC_MSG_RESULT([Evergreen Reporter: yes])
+ else
+AC_MSG_RESULT([Evergreen Reporter: no])
+ fi
+ if test "$openils_client" = "true" ; then
+AC_MSG_RESULT([Evergreen Staff Client: yes])
+ else
+AC_MSG_RESULT([Evergreen Staff Client: no])
+ fi
+ if test "$EG_PYTHON_INSTALL" = "true" ; then
+AC_MSG_RESULT([Evergreen Python Components: yes])
+ else
+AC_MSG_RESULT([Evergreen Python Components: no])
+ fi
+ if test "$evergreen_java" = "true" ; then
+AC_MSG_RESULT([Evergreen Java Components: yes])
+ else
+AC_MSG_RESULT([Evergreen Java Components: no])
fi
AC_MSG_RESULT([])
AC_MSG_RESULT([-------- Installation Directories --------])
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(libdbi location: ${DBI_LIBS})
AC_MSG_RESULT(OpenSRF headers location: ${OPENSRF_HEADERS})
AC_MSG_RESULT([----------------------------------------------------------------------])
+# vim:et:ts=4:sw=4: