Docs: Fixing broken link
[Evergreen.git] / configure.ac
index 01bcf66..dacb5a3 100644 (file)
@@ -1,5 +1,7 @@
 # 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.
 #-----------------------------------
@@ -36,6 +37,8 @@ AC_PROG_CC
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
+AC_PROG_MKDIR_P
+AM_PROG_CC_C_O
 
 #-----------------------------------
 # Install options 
@@ -46,11 +49,12 @@ AC_PROG_MAKE_SET
 #[  --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],
@@ -81,6 +85,34 @@ 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 ],
@@ -150,20 +182,6 @@ AM_CONDITIONAL([BUILDEGPYTHON], [test x$EG_PYTHON_INSTALL = xtrue])
 #-----------------------------------
 # 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}],
@@ -178,29 +196,17 @@ AC_ARG_WITH([apxs],
 # 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
+    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])
-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])
-
 AC_ARG_WITH([libxml2],
 [  --with-libxml2=path         location of the libxml2 headers (default is /usr/include/libxml2)],
 [LIBXML2_HEADERS=${withval}],
@@ -208,150 +214,187 @@ AC_ARG_WITH([libxml2],
 AC_SUBST([LIBXML2_HEADERS])
 
 AC_ARG_WITH([dbi],
-[  --with-dbi=path             location of the libdbi driver 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/local/lib/dbd/ ; do
-               if test -d "$i"; then
-                       DBI_LIBS="$i"
-                       break
-               fi
-       done
+    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 in ${APXS2}, 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
 
 #-------------------------------------------------
@@ -364,47 +407,50 @@ AC_MSG_RESULT([--------------------- Configuration options:  -------------------
 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})
@@ -412,3 +458,4 @@ AC_MSG_RESULT(OpenSRF libraries location:               ${OPENSRF_LIBS})
 
 AC_MSG_RESULT([----------------------------------------------------------------------])
 
+# vim:et:ts=4:sw=4: