You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sci-biology/meme/files/meme-4.11.2_p2-fix-build-sy...

347 lines
10 KiB

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