Commit 9d34d2fb authored by Andreas Marek's avatar Andreas Marek
Browse files

Add parallel build functionality in ELPA 2013.08.004

Automake does normally not understand the dependencies of Fortran 90
modules, thus a parallel build will almost certainly fail.

As in ELPA 2011.12.002, ELPA 2013.08.004  now includes scripts from
the fdep project (see git.schokokeks.org/fdep) which cirumvents this
problem.

Thanks to Lorenz Huedepohl, now a parallel build works.
parent 12fcb89c
...@@ -133,3 +133,5 @@ test_complex2.sh: ...@@ -133,3 +133,5 @@ test_complex2.sh:
CLEANFILES = test_real.sh test_real2.sh test_complex.sh test_complex2.sh CLEANFILES = test_real.sh test_real2.sh test_complex.sh test_complex2.sh
@FORTRAN_MODULE_DEPS@
...@@ -118,9 +118,11 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ ...@@ -118,9 +118,11 @@ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
ar-lib compile config.guess config.sub install-sh missing \ ar-lib compile config.guess config.sub install-sh missing \
ltmain.sh ltmain.sh
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_check_gnu_make.m4 \
$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
$(top_srcdir)/m4/lt~obsolete.m4 \
$(top_srcdir)/fdep/fortran_dependencies.m4 \
$(top_srcdir)/m4/ax_prog_fc_mpi.m4 $(top_srcdir)/configure.ac $(top_srcdir)/m4/ax_prog_fc_mpi.m4 $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4) $(ACLOCAL_M4)
...@@ -653,6 +655,7 @@ host_cpu = @host_cpu@ ...@@ -653,6 +655,7 @@ host_cpu = @host_cpu@
host_os = @host_os@ host_os = @host_os@
host_vendor = @host_vendor@ host_vendor = @host_vendor@
htmldir = @htmldir@ htmldir = @htmldir@
ifGNUmake = @ifGNUmake@
includedir = @includedir@ includedir = @includedir@
infodir = @infodir@ infodir = @infodir@
install_sh = @install_sh@ install_sh = @install_sh@
...@@ -1683,6 +1686,8 @@ test_complex2.sh: ...@@ -1683,6 +1686,8 @@ test_complex2.sh:
echo "mpiexec -n 2 ./test_complex2 > /dev/null 2>&1" > test_complex2.sh echo "mpiexec -n 2 ./test_complex2 > /dev/null 2>&1" > test_complex2.sh
chmod +x test_complex2.sh chmod +x test_complex2.sh
@FORTRAN_MODULE_DEPS@
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:
...@@ -1148,6 +1148,7 @@ AC_SUBST([am__tar]) ...@@ -1148,6 +1148,7 @@ AC_SUBST([am__tar])
AC_SUBST([am__untar]) AC_SUBST([am__untar])
]) # _AM_PROG_TAR ]) # _AM_PROG_TAR
m4_include([m4/ax_check_gnu_make.m4])
m4_include([m4/libtool.m4]) m4_include([m4/libtool.m4])
m4_include([m4/ltoptions.m4]) m4_include([m4/ltoptions.m4])
m4_include([m4/ltsugar.m4]) m4_include([m4/ltsugar.m4])
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for elpa 2013.08.003. # Generated by GNU Autoconf 2.69 for elpa 2013.08.004.
# #
# Report bugs to <elpa-library@rzg.mpg.de>. # Report bugs to <elpa-library@rzg.mpg.de>.
# #
...@@ -590,8 +590,8 @@ MAKEFLAGS= ...@@ -590,8 +590,8 @@ MAKEFLAGS=
# Identity of this package. # Identity of this package.
PACKAGE_NAME='elpa' PACKAGE_NAME='elpa'
PACKAGE_TARNAME='elpa' PACKAGE_TARNAME='elpa'
PACKAGE_VERSION='2013.08.003' PACKAGE_VERSION='2013.08.004'
PACKAGE_STRING='elpa 2013.08.003' PACKAGE_STRING='elpa 2013.08.004'
PACKAGE_BUGREPORT='elpa-library@rzg.mpg.de' PACKAGE_BUGREPORT='elpa-library@rzg.mpg.de'
PACKAGE_URL='' PACKAGE_URL=''
   
...@@ -734,7 +734,9 @@ CPPFLAGS ...@@ -734,7 +734,9 @@ CPPFLAGS
LDFLAGS LDFLAGS
CFLAGS CFLAGS
CC CC
FORTRAN_MODULE_DEPS
CPP_FOUND CPP_FOUND
ifGNUmake
AM_BACKSLASH AM_BACKSLASH
AM_DEFAULT_VERBOSITY AM_DEFAULT_VERBOSITY
AM_DEFAULT_V AM_DEFAULT_V
...@@ -1383,7 +1385,7 @@ if test "$ac_init_help" = "long"; then ...@@ -1383,7 +1385,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures elpa 2013.08.003 to adapt to many kinds of systems. \`configure' configures elpa 2013.08.004 to adapt to many kinds of systems.
   
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
   
...@@ -1453,7 +1455,7 @@ fi ...@@ -1453,7 +1455,7 @@ fi
   
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of elpa 2013.08.003:";; short | recursive ) echo "Configuration of elpa 2013.08.004:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
   
...@@ -1590,7 +1592,7 @@ fi ...@@ -1590,7 +1592,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
elpa configure 2013.08.003 elpa configure 2013.08.004
generated by GNU Autoconf 2.69 generated by GNU Autoconf 2.69
   
Copyright (C) 2012 Free Software Foundation, Inc. Copyright (C) 2012 Free Software Foundation, Inc.
...@@ -2073,7 +2075,7 @@ cat >config.log <<_ACEOF ...@@ -2073,7 +2075,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
   
It was created by elpa $as_me 2013.08.003, which was It was created by elpa $as_me 2013.08.004, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
   
$ $0 $@ $ $0 $@
...@@ -2938,7 +2940,7 @@ fi ...@@ -2938,7 +2940,7 @@ fi
   
# Define the identity of the package. # Define the identity of the package.
PACKAGE='elpa' PACKAGE='elpa'
VERSION='2013.08.003' VERSION='2013.08.004'
   
   
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
...@@ -2992,9 +2994,72 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' ...@@ -2992,9 +2994,72 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
   
ac_config_headers="$ac_config_headers config.h" ac_config_headers="$ac_config_headers config.h"
   
#AM_SILENT_RULES([yes]) # Check whether --enable-silent-rules was given.
if test "${enable_silent_rules+set}" = set; then :
enableval=$enable_silent_rules;
fi
case $enable_silent_rules in # (((
yes) AM_DEFAULT_VERBOSITY=0;;
no) AM_DEFAULT_VERBOSITY=1;;
*) AM_DEFAULT_VERBOSITY=0;;
esac
am_make=${MAKE-make}
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
if ${am_cv_make_support_nested_variables+:} false; then :
$as_echo_n "(cached) " >&6
else
if $as_echo 'TRUE=$(BAR$(V))
BAR0=false
BAR1=true
V=1
am__doit:
@$(TRUE)
.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
am_cv_make_support_nested_variables=yes
else
am_cv_make_support_nested_variables=no
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
$as_echo "$am_cv_make_support_nested_variables" >&6; }
if test $am_cv_make_support_nested_variables = yes; then
AM_V='$(V)'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
else
AM_V=$AM_DEFAULT_VERBOSITY
AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
fi
AM_BACKSLASH='\'
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
$as_echo_n "checking for GNU make... " >&6; }
if ${_cv_gnu_make_command+:} false; then :
$as_echo_n "(cached) " >&6
else
_cv_gnu_make_command='' ;
for a in "$MAKE" make gmake gnumake ; do
if test -z "$a" ; then continue ; fi ;
if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then
_cv_gnu_make_command=$a ;
break;
fi
done ;
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5
$as_echo "$_cv_gnu_make_command" >&6; } ;
if test "x$_cv_gnu_make_command" != "x" ; then
ifGNUmake='' ;
else
ifGNUmake='#' ;
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: \"Not found\"" >&5
$as_echo "\"Not found\"" >&6; };
fi
   
AX_CHECK_GNU_MAKE()
if test x$_cv_gnu_make_command = x ; then if test x$_cv_gnu_make_command = x ; then
as_fn_error $? "Need GNU Make" "$LINENO" 5 as_fn_error $? "Need GNU Make" "$LINENO" 5
fi fi
...@@ -3041,6 +3106,32 @@ if test "x${CPP_FOUND}" = xno; then ...@@ -3041,6 +3106,32 @@ if test "x${CPP_FOUND}" = xno; then
as_fn_error $? "no cpp found" "$LINENO" 5 as_fn_error $? "no cpp found" "$LINENO" 5
fi fi
   
# gnu-make fortran module dependencies
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
$as_echo_n "checking for GNU make... " >&6; }
for a in "$MAKE" make gmake gnumake ; do
if test -z "$a" ; then continue ; fi ;
if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then
_fdep_gnu_make_command=$a ;
break;
fi
done ;
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_fdep_gnu_make_command" >&5
$as_echo "$_fdep_gnu_make_command" >&6; }
if test x$_fdep_gnu_make_command = x ; then
as_fn_error $? "Need GNU Make" "$LINENO" 5
fi
FORTRAN_MODULE_DEPS="
CLEANFILES +=
include ${srcdir}/fdep/fortran_dependencies.mk
"
   
DEPDIR="${am__leading_dot}deps" DEPDIR="${am__leading_dot}deps"
   
...@@ -5790,7 +5881,7 @@ fi ...@@ -5790,7 +5881,7 @@ fi
   
   
   
ELPA_LIB_VERSION=2013.08.003 ELPA_LIB_VERSION=2013.08.004
   
# this is the version of the API, should be changed in the major revision # this is the version of the API, should be changed in the major revision
# if and only if the actual API changes # if and only if the actual API changes
...@@ -20560,7 +20651,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ...@@ -20560,7 +20651,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by elpa $as_me 2013.08.003, which was This file was extended by elpa $as_me 2013.08.004, which was
generated by GNU Autoconf 2.69. Invocation command line was generated by GNU Autoconf 2.69. Invocation command line was
   
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
...@@ -20626,7 +20717,7 @@ _ACEOF ...@@ -20626,7 +20717,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\ ac_cs_version="\\
elpa config.status 2013.08.003 elpa config.status 2013.08.004
configured by $0, generated by GNU Autoconf 2.69, configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\" with options \\"\$ac_cs_config\\"
   
......
AC_PREREQ([2.69]) AC_PREREQ([2.69])
AC_INIT([elpa],[2013.08.003], elpa-library@rzg.mpg.de) AC_INIT([elpa],[2013.08.004], elpa-library@rzg.mpg.de)
AC_CONFIG_SRCDIR([src/elpa1.f90]) AC_CONFIG_SRCDIR([src/elpa1.f90])
AM_INIT_AUTOMAKE([foreign -Wall subdir-objects]) AM_INIT_AUTOMAKE([foreign -Wall subdir-objects])
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
#AM_SILENT_RULES([yes]) AM_SILENT_RULES([yes])
AX_CHECK_GNU_MAKE() AX_CHECK_GNU_MAKE()
if test x$_cv_gnu_make_command = x ; then if test x$_cv_gnu_make_command = x ; then
...@@ -17,6 +17,10 @@ if test "x${CPP_FOUND}" = xno; then ...@@ -17,6 +17,10 @@ if test "x${CPP_FOUND}" = xno; then
AC_MSG_ERROR([no cpp found]) AC_MSG_ERROR([no cpp found])
fi fi
# gnu-make fortran module dependencies
m4_include([fdep/fortran_dependencies.m4])
FDEP_F90_GNU_MAKE_DEPS
AC_PROG_INSTALL AC_PROG_INSTALL
AM_PROG_CC_C_O AM_PROG_CC_C_O
AM_PROG_AR AM_PROG_AR
...@@ -177,7 +181,7 @@ AX_PROG_FC_MPI([],[have_mpi=yes],[have_mpi=no ...@@ -177,7 +181,7 @@ AX_PROG_FC_MPI([],[have_mpi=yes],[have_mpi=no
fi]) fi])
AC_SUBST([ELPA_LIB_VERSION], [2013.08.003]) AC_SUBST([ELPA_LIB_VERSION], [2013.08.004])
# this is the version of the API, should be changed in the major revision # this is the version of the API, should be changed in the major revision
# if and only if the actual API changes # if and only if the actual API changes
AC_SUBST([ELPA_SO_VERSION], [0:0:0]) AC_SUBST([ELPA_SO_VERSION], [0:0:0])
......
../fdep
\ No newline at end of file
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_check_gnu_make.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_GNU_MAKE()
#
# DESCRIPTION
#
# This macro searches for a GNU version of make. If a match is found, the
# makefile variable `ifGNUmake' is set to the empty string, otherwise it
# is set to "#". This is useful for including a special features in a
# Makefile, which cannot be handled by other versions of make. The
# variable _cv_gnu_make_command is set to the command to invoke GNU make
# if it exists, the empty string otherwise.
#
# Here is an example of its use:
#
# Makefile.in might contain:
#
# # A failsafe way of putting a dependency rule into a makefile
# $(DEPEND):
# $(CC) -MM $(srcdir)/*.c > $(DEPEND)
#
# @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND)))
# @ifGNUmake@ include $(DEPEND)
# @ifGNUmake@ endif
#
# Then configure.in would normally contain:
#
# AX_CHECK_GNU_MAKE()
# AC_OUTPUT(Makefile)
#
# Then perhaps to cause gnu make to override any other make, we could do
# something like this (note that GNU make always looks for GNUmakefile
# first):
#
# if ! test x$_cv_gnu_make_command = x ; then
# mv Makefile GNUmakefile
# echo .DEFAULT: > Makefile ;
# echo \ $_cv_gnu_make_command \$@ >> Makefile;
# fi
#
# Then, if any (well almost any) other make is called, and GNU make also
# exists, then the other make wraps the GNU make.
#
# LICENSE
#
# Copyright (c) 2008 John Darrington <j.darrington@elvis.murdoch.edu.au>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 7
AC_DEFUN([AX_CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
_cv_gnu_make_command='' ;
dnl Search all the common names for GNU make
for a in "$MAKE" make gmake gnumake ; do
if test -z "$a" ; then continue ; fi ;
if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then
_cv_gnu_make_command=$a ;
break;
fi
done ;
) ;
dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise
if test "x$_cv_gnu_make_command" != "x" ; then
ifGNUmake='' ;
else
ifGNUmake='#' ;
AC_MSG_RESULT("Not found");
fi
AC_SUBST(ifGNUmake)
] )
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment