Fix and modernise build system
* Remove all *FLAGS setting, just append to the user-supplied ones
* Add --enable-doc and --enable-examples configure flags
* Install documentation and examples in correct directories
* Discover libxml2 and libxslt dependencies using PKG_CHECK_MODULES
* Install python and perl modules correctly

--- a/configure.ac
+++ b/configure.ac
@@ -76,61 +76,10 @@
 AM_CONDITIONAL(WANT_STRLCPY, test ["$have_strlcpy" = no])
 
 # Check for compiler-specific settings
-LARGE_FILE_SUPPORT=`getconf LFS_CFLAGS`
-if test "${GCC}" = "yes"; then
-  ac_cc_opt="-O3"
-  ac_cc_debug_opt="-O0"
-  ac_cc_warn="-Wall -Wno-unused"
-  ac_cc_debug="-ggdb"
-  # Check for OS X llvm (clang) compiler
-  if `gcc --version |grep llvm >/dev/null`; then
-    ac_cc_debug="-g"
-  fi
-  CFLAGS="-std="gnu89" $ac_cc_warn -DUNIX -D__USE_FIXED_PROTOTYPES__ $LARGE_FILE_SUPPORT"
-else
-  ac_cc_opt="-O"
-  ac_cc_debug_opt=""
-  ac_cc_warn=""
-  ac_cc_debug="-g"
-  CFLAGS="$ac_cc_warn -DUNIX -D__USE_FIXED_PROTOTYPES__ $LARGE_FILE_SUPPORT"
-fi
-
-# Set up default libxml2 settings
-# check for installed copy of libxml2
-build_libxml2="yes"
-if test -n "$XML2_CONFIG"; then
-  # Require at least version 2.6
-  required_libxml2_version="2006000"
-  LIBXML2_VERSION="`$XML2_CONFIG --version | \
-    awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`"
-  if test -n "$LIBXML2_VERSION" && \
-     test "$LIBXML2_VERSION"  -ge "$required_libxml2_version"; then 
-    build_libxml2="no"
-    LIBXML2_LIBS="`$XML2_CONFIG --libs`"
-    LIBXML2_CFLAGS="`$XML2_CONFIG --cflags`"
-  fi
-fi
-if test -z "$LIBXML2_LIBS"; then
-  AC_MSG_WARN([libxml2 library not found])
-  LIBXML2_LIBS="\${top_builddir}/src/libxml2/libxml2.la"
-  LIBXML2_CFLAGS="-I\${top_srcdir}/src/libxml2/include"
-fi
-
-# Set up default libxslt settings
-# check for installed copy of libxslt
-build_libxslt="yes"
-if test -n "$XSLT_CONFIG"; then
-  build_libxslt="no"
-  LIBXSLT_LIBS="`$XSLT_CONFIG --libs` -lexslt"
-  LIBXSLT_CFLAGS="`$XSLT_CONFIG --cflags`"
-fi
-if test -z "$LIBXSLT_LIBS"; then
-  AC_MSG_WARN([libxslt library not found])
-  LIBEXSLT_LIBS="\${top_builddir}/src/libexslt/libexslt.la"
-  LIBXSLT_LIBS="\${top_builddir}/src/libxslt/libxslt.la"
-  LIBEXSLT_CFLAGS="-I\${top_srcdir}/src/libexslt"
-  LIBXSLT_CFLAGS="-I\${top_srcdir}/src/"
-fi
+AC_PROG_MKDIR_P
+AC_SYS_LARGEFILE
+CFLAGS="-std=gnu89 -Wall -Wno-unused ${CFLAGS}"
+CPPFLAGS="-DUNIX -D__USE_FIXED_PROTOTYPES__ ${CPPFLAGS}"
 
 # who is installing 
 USER=`whoami`
@@ -279,6 +227,16 @@
 AM_CONDITIONAL(PARALLEL, test ["$parallel" != no])
 AM_CONDITIONAL(PARALLEL_IS_LAM, test -n ["$lammpi"]) 
 
+dnl Documentation
+AC_ARG_ENABLE([doc],
+	AS_HELP_STRING([--enable-doc], [Enable installation of documentation]))
+AM_CONDITIONAL([ENABLE_DOC], [test "x$enable_doc" = "xyes"])
+
+dnl Examples
+AC_ARG_ENABLE([examples],
+	AS_HELP_STRING([--enable-examples], [Enable installation of examples]))
+AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
+
 AC_ARG_ENABLE(
     webservice,
     [  --enable-webservice=deploy_dir       Deploy the MEME service on an existing Opal 2.5+ installation],
@@ -309,24 +267,35 @@
 AM_CONDITIONAL(WEBEITHER, test ["x$OPAL_DEPLOY" != "x" -o "x$OPAL_URL" != "xno"])
 
 # enable building of included libxml2
-AC_ARG_ENABLE(
-    build_libxml2,
-    [  --enable-build-libxml2     Build included version of libxml2. Default is to use pre-existing locally installed copy.],
-    build_libxml2=$enableval; \
-    LIBXML2_LIBS="\${top_builddir}/src/libxml2/libxml2.la"; \
-    LIBXML2_CFLAGS="-I\${top_srcdir}/src/libxml2/include" , )
-AM_CONDITIONAL(BUILD_LIBXML2, test ["$build_libxml2" = yes])
+AC_ARG_ENABLE([build-libxml2],
+	AS_HELP_STRING([--enable-build-libxml2], [Build included version of libxml2. Default is to use pre-existing locally installed copy.]))
+AS_IF([test "x$enable_build_libxml2" = "xyes"], [
+	dnl Enable building of bundled libs
+	LIBXML2_CFLAGS="-I\${top_srcdir}/src/libxml2/include"
+	LIBXML2_LIBS="\${top_builddir}/src/libxml2/libxml2.la"
+	],[
+	dnl Use system libraries
+	PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6])
+])
+AM_CONDITIONAL([BUILD_LIBXML2], [test "x$enable_build_libxml2" = "xyes"])
+
 
 # enable building of included libxslt
-AC_ARG_ENABLE(
-    build_libxslt,
-    [  --enable-build-libxslt     Build included version of libxslt. Default is to use pre-existing locally installed copy.],
-    build_libxslt=$enableval; \
-    LIBEXSLT_LIBS="\${top_builddir}/src/libexslt/libexslt.la"; \
-    LIBXSLT_LIBS="\${top_builddir}/src/libxslt/libxslt.la"; \
-    LIBEXSLT_CFLAGS="-I\${top_srcdir}/src/libexslt"; \
-    LIBXSLT_CFLAGS="-I\${top_srcdir}/src/" , )
-AM_CONDITIONAL(BUILD_LIBXSLT, test ["$build_libxslt" = yes])
+AC_ARG_ENABLE([build-libxslt],
+	AS_HELP_STRING([--enable-build-libxslt], [Build included version of libxslt. Default is to use pre-existing locally installed copy.]))
+AS_IF([test "x$enable_build_libxslt" = "xyes"], [
+	dnl Enable building of bundled libs
+	LIBXSLT_CFLAGS="-I\${top_srcdir}/src/"
+	LIBXSLT_LIBS="\${top_builddir}/src/libxslt/libxslt.la"
+
+	LIBEXSLT_CFLAGS="-I\${top_srcdir}/src/libexslt"
+	LIBEXSLT_LIBS="\${top_builddir}/src/libexslt/libexslt.la"
+	],[
+	dnl Use system libraries
+	PKG_CHECK_MODULES([LIBXSLT], [libxslt])
+	PKG_CHECK_MODULES([LIBEXSLT], [libexslt])
+])
+AM_CONDITIONAL([BUILD_LIBXSLT], [test "x$enable_build_libxslt" = "xyes"])
 
 # set website url
 AC_ARG_WITH(
@@ -427,13 +396,13 @@
     [AC_PATH_PROG(PERL, perl)])
 AC_DEFINE_UNQUOTED(PERL, "$PERL", [Path to Perl] )
 
+AC_ARG_WITH([perl-dir],
+	AS_HELP_STRING([--with-perl-dir], [Perl modules directory]), [perlmoddir="$with_perl_dir"], [perlmoddir="lib/perl"])
+AC_SUBST([perlmoddir])
+
+
 # set path to Python
-AC_ARG_WITH(
-    python,
-    [  --with-python=NAME     Set path to Python. Default is to take from user's PATH.],
-    [PYTHON=$withval],
-    [AC_PATH_PROG(PYTHON, python)])
-AC_DEFINE_UNQUOTED(PYTHON, "$PYTHON", [Path to Python] )
+AM_PATH_PYTHON
 
 # set path to convert utility
 AC_ARG_WITH(
@@ -586,13 +555,15 @@
         Configuration parameters
         ========================
 
-  Install path:               ${prefix}
+  Install path (prefix):      ${prefix}
   Install UID:                ${MEME_USER}
   Version:                    ${VERSION}
-  C compiler:                 ${CC}
-  C compiler flags:           ${CFLAGS}
-  Linker:                     ${LD}
-  Special Libs:               ${LIBS}
+  C compiler (CC):            ${CC}
+  C compiler flags (CFLAGS):  ${CFLAGS}
+  C preproc flags (CPPFLAGS): ${CPPFLAGS}
+  Linker (LD):                ${LD}
+  Linker flags (LDFLAGS):     ${LDFLAGS}
+  Special Libs (LIBS):        ${LIBS}
   MPICC                       ${MPICC}
   MPIRUN                      ${MPIRUN}
   MPI_CMD                     ${MPI_CMD}
--- a/doc/css/Makefile.am
+++ b/doc/css/Makefile.am
@@ -5,7 +5,7 @@
 
 EXTRA_DIST = $(NORMAL_FILES)
 
-if ! WEBSITE
-doccssdir = $(prefix)/doc/css
+if ENABLE_DOC
+doccssdir = $(htmldir)/css
 doccss_DATA =  $(NORMAL_FILES)
 endif
--- a/doc/examples/compute_prior_dist_example_output_files/Makefile.am
+++ b/doc/examples/compute_prior_dist_example_output_files/Makefile.am
@@ -7,8 +7,8 @@
 EXAMPLES = \
   prior.dist.txt
 
-if ! WEBSITE
-exdir = $(prefix)/doc/examples/compute_prior_dist_example_output_files
+if ENABLE_EXAMPLES
+exdir = $(docdir)/examples/compute_prior_dist_example_output_files
 ex_DATA = $(EXAMPLES)
 endif
 
--- a/doc/examples/Makefile.am
+++ b/doc/examples/Makefile.am
@@ -22,8 +22,8 @@
 # load the EXAMPLE_OUTPUT_FILES variable
 include examples.mk
 
-if ! WEBSITE
-exdir = $(prefix)/doc/examples
+if ENABLE_EXAMPLES
+exdir = $(docdir)/examples
 nobase_dist_ex_DATA = $(EXAMPLES) $(EXAMPLE_OUTPUT_FILES)
 endif
 
--- a/doc/examples/sample_opal_scripts/Makefile.am
+++ b/doc/examples/sample_opal_scripts/Makefile.am
@@ -15,8 +15,8 @@
   MemeClient.pl \
   MemeClient.py
 
-if ! WEBSITE
-exdir = $(prefix)/doc/examples/sample_opal_scripts
+if ENABLE_EXAMPLES
+exdir = $(docdir)/examples/sample_opal_scripts
 ex_DATA = $(EXAMPLES)
 endif
 
--- a/doc/images/Makefile.am
+++ b/doc/images/Makefile.am
@@ -30,8 +30,8 @@
 
 MEME_IMAGES = $(PROGRAM_ICONS) $(OTHER_IMAGES)
 
-if ! WEBSITE
-memeimgdir = $(prefix)/doc/images
+if ENABLE_DOC
+memeimgdir = $(htmldir)/images
 memeimg_DATA = $(MEME_IMAGES)
 endif
 
--- a/doc/js/Makefile.am
+++ b/doc/js/Makefile.am
@@ -41,8 +41,8 @@
 
 BUILT_SOURCES = $(BUILT_FILES)
 
-if ! WEBSITE
-docjsdir = $(prefix)/doc/js
+if ENABLE_DOC
+docjsdir = $(htmldir)/js
 docjs_DATA =  $(NORMAL_FILES) $(BUILT_FILES) $(SYMLINK_FILES)
 endif
 
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -129,8 +129,8 @@
   update-sequence-db.html \
   ismb94.pdf
 
-if ! WEBSITE
-memedocdir = $(prefix)/doc
+if ENABLE_DOC
+memedocdir = $(htmldir)
 memedoc_DATA =  $(NORMAL_FILES)
 endif
 
--- a/Makefile.am
+++ b/Makefile.am
@@ -52,7 +52,7 @@
 endif
 
 dbdir:
-	mkdir -p $(MEME_DB)
+	$(MKDIR_P) $(DESTDIR)/$(MEME_DB)
 
 all-local:
 if WEBSITE
@@ -64,8 +64,8 @@
 endif
 
 install-data-local:
-	mkdir -p $(MEME_LOGS)
-	chmod a+w $(MEME_LOGS)
+	$(MKDIR_P) $(DESTDIR)/$(MEME_LOGS)
+	chmod a+w $(DESTDIR)/$(MEME_LOGS)
 
 distdir = $(PACKAGE)_$(VERSION)
 
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -22,8 +22,8 @@
   -e 's%@WHICHJAVA@%$(JAVA)%' \
   -e 's%@WHICHCONVERT@%$(CONVERT)%' \
   -e 's%@WHICHGHOSTSCRIPT@%$(GHOSTSCRIPT)%' \
-  -e 's%@PERLLIBDIR@%$(libdir)/perl%' \
-  -e 's%@PYTHONLIBDIR@%$(libdir)/python%' \
+  -e 's%@PERLLIBDIR@%$(perlmoddir)%' \
+  -e 's%@PYTHONLIBDIR@%$(pythondir)%' \
   -e 's%@JAVALIBDIR@%$(libdir)/java%' \
   -e 's%@LAM_BIN@%$(LAMBIN)%' \
   -e 's%@APPCONFIGDIR@%$(sysconfdir)%' \
@@ -62,7 +62,7 @@
   DiffXML.pm \
   HypergeometricDynProg.pm
 
-perlmoddir=$(libdir)/perl
+perlmoddir = $(exec_prefix)/@perlmoddir@
 perlmod_SCRIPTS = \
   $(BUILT_PERL_MOD) \
   $(NORMAL_PERL_MOD)
@@ -76,8 +76,7 @@
   hypergeometric.py \
   sequence.py
 
-pythonlibdir=$(libdir)/python
-pythonlib_SCRIPTS = \
+python_PYTHON = \
   $(BUILT_PYTHON_LIB) \
   $(NORMAL_PYTHON_LIB)
 
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -19,7 +19,13 @@
 ARCHIVE_REVISION = $(shell cat ../ARCHIVE_REVISION)
 ARCHIVE_DATE = $(shell cat ../ARCHIVE_DATE)
 
-SUBDIRS = filters libxml2 libxslt libexslt . parallel
+SUBDIRS = filters . parallel
+if BUILD_LIBXML2
+SUBDIRS += libxml2
+endif
+if BUILD_LIBXSLT
+SUBDIRS += libxslt libexslt
+endif
 
 BUILT_SOURCES = dir.h projrel.h
 
