----------------------
./INSTALL
./configure.in
./configure [REGENERATED]
./src/H5config.h.in [REGENERATED]
Improvements for parallel library. If you have a properly
working mpicc you should be able to just say:
$ CC=mpicc ./configure
and you will see
checking for mpirun... /usr/local/mpi/bin/mpirun
checking for parallel support files... skipped
checking how to run on one processor...
/usr/local/mpi/bin/mpirun -np 1
checking how to run in parallel...
/usr/local/mpi/bin/mpirun -np $$NPROCS
To quote from the INSTALL file....
*** Parallel vs. serial library
The HDF5 library can be configured to use MPI and MPI-IO for
parallelizm on a distributed multi-processor system. The easy
way to do this is to have a properly installed parallel
compiler (e.g., MPICH's mpicc or IBM's mpcc) and supply that
executable as the value of the CC environment variable:
[NOTE: mpcc is not tested yet]
$ CC=mpcc ./configure
$ CC=/usr/local/mpi/bin/mpicc ./configure
If no such wrapper script is available then you must specify
your normal C compiler along with the distribution of
MPI/MPI-IO which is to be used (values other than `mpich' will
be added at a later date):
$ ./configure --enable-parallel=mpich
If the MPI/MPI-IO include files and/or libraries cannot be
found by the compiler then their directories must be given as
arguments to CPPFLAGS and/or LDFLAGS:
$ CPPFLAGS=-I/usr/local/mpi/include \
LDFLAGS=-L/usr/local/mpi/lib/LINUX/ch_p4 \
./configure --enable-parallel=mpich
If a parallel library is being built then configure attempts
to determine how to run a parallel application on one
processor and on many processors. If the compiler is mpicc
and the user hasn't specified values for RUNSERIAL and
RUNPARALLEL then configure chooses `mpirun' from the same
directory as `mpicc':
RUNSERIAL: /usr/local/mpi/bin/mpirun -np 1
RUNPARALLEL: /usr/local/mpi/bin/mpirun -np $${NPROCS:=2}
The `$${NPROCS:=2}' will be substituted with the value of the
NPROCS environment variable at the time `make check' is run
(or the value 2).
./testpar/Makefile.in
Saying `make check' (or `make test') will run the tests on two
processors by default. If you define NPROCS then that many
processors are used instead:
$ NPROCS=4 make check
./configure.in
Fixed (hopefully) bugs with detecting whether __attribute__
and __FUNCTION__ are special keywords for the compiler.
./Makefile.in
Saying `make install' from the top level directory shows
instructions for using shared libraries.
./config/commence.in
./src/Makefile.in
./test/Makefile.in
./testpar/Makefile.in
./tools/Makefile.in
Moved the @top_srcdir@ into the makefiles because it was
expanded too early and had the wrong value.
./INSTALL
Added a warning that if the wrong version of hdf4 tools are
installed then `make check' will fail in the tools directory.
118 lines
3.8 KiB
Makefile
118 lines
3.8 KiB
Makefile
#------------------------------------------------------------- -*- makefile -*-
|
|
# The following section of this makefile comes from the
|
|
# `./config/commence' file which was generated with config.status
|
|
# from `./config/commence.in'.
|
|
#------------------------------------------------------------------------------
|
|
|
|
# Things that Make needs
|
|
.SUFFIXES:
|
|
.SUFFIXES: .c .o .lo
|
|
@SET_MAKE@
|
|
|
|
# Programs
|
|
SHELL=/bin/sh
|
|
CC=@CC@
|
|
CFLAGS=@CFLAGS@
|
|
CPPFLAGS=@CPPFLAGS@
|
|
LDFLAGS=@LDFLAGS@
|
|
LIBS=@LIBS@
|
|
AR=@AR@
|
|
RANLIB=@RANLIB@
|
|
RM=rm -f
|
|
CP=cp
|
|
INSTALL=@INSTALL@
|
|
INSTALL_PROGRAM=@INSTALL_PROGRAM@
|
|
INSTALL_DATA=@INSTALL_DATA@
|
|
RUNSERIAL=@RUNSERIAL@
|
|
RUNPARALLEL=@RUNPARALLEL@
|
|
RUNTEST=$(RUNSERIAL)
|
|
TRACE=:
|
|
|
|
# Installation points
|
|
ROOT=@ROOT@
|
|
prefix=@prefix@
|
|
exec_prefix=@exec_prefix@
|
|
bindir=@bindir@
|
|
libdir=@libdir@
|
|
includedir=@includedir@
|
|
|
|
# Shared libraries
|
|
LT=$(top_srcdir)/libtool
|
|
LT_COMPILE=$(LT) --mode=compile $(CC)
|
|
LT_LINK_LIB=$(LT) --mode=link $(CC) -rpath $(libdir)
|
|
LT_LINK_EXE=$(LT) --mode=link $(CC)
|
|
LT_RUN=$(LT) --mode=execute
|
|
LT_INSTALL_PROG=$(LT) --mode=install $(INSTALL_PROGRAM)
|
|
LT_INSTALL_LIB=$(LT) --mode=install $(INSTALL_DATA)
|
|
LT_UNINSTALL=$(LT) --mode=uninstall $(RM)
|
|
|
|
|
|
# The default is to build the library and/or programs. We must build
|
|
# them sequentially.
|
|
all:
|
|
$(MAKE) lib
|
|
$(MAKE) progs
|
|
$(MAKE) tests
|
|
|
|
# The following rules insure that the Makefile is up-to-date by rerunning
|
|
# various autoconf components (although not all versions of make assume
|
|
# that the makefile is implicitly a target). We use time stamp files to
|
|
# keep track of the most recent update of H5config.h.in and H5config.h
|
|
# because autoheader and config.status don't update the modification time
|
|
# if the contents don't change.
|
|
#
|
|
# Graphically, the dependencies are:
|
|
#
|
|
# configure.in
|
|
# | |
|
|
# +--------------------+ +-------------------+
|
|
# | |
|
|
# stamp1 configure
|
|
# | |
|
|
# | config.status
|
|
# | | |
|
|
# | +-------------------------------------+ |
|
|
# | | |
|
|
# stamp2 Makefile.in et al |
|
|
# | | |
|
|
# | +-----------+ +------+
|
|
# +-----------------------------+ | |
|
|
# | | |
|
|
# Makefile
|
|
#
|
|
# A side effect of updating stamp1 is to generate H5config.h.in and a
|
|
# side effect of updating stamp2 is to generate H5config.h. When using
|
|
# a version of make that doesn't treat the makefile as the initial target
|
|
# the user may want to occassionally type `make Makefile' in any source
|
|
# directory.
|
|
#
|
|
STAMP1=$(ROOT)/config/stamp1
|
|
STAMP2=$(ROOT)/config/stamp2
|
|
|
|
MAKEFILE_PARTS=$(ROOT)/config/commence.in Makefile.in \
|
|
$(ROOT)/config/conclude.in $(ROOT)/config/depend.in
|
|
|
|
$(STAMP1): $(ROOT)/configure.in
|
|
-(cd $(ROOT); \
|
|
touch $(STAMP1); \
|
|
autoheader)
|
|
|
|
$(STAMP2): $(STAMP1) $(ROOT)/config.status
|
|
-(cd $(ROOT); \
|
|
touch $(STAMP2); \
|
|
CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status)
|
|
|
|
$(ROOT)/configure: $(ROOT)/configure.in
|
|
-(cd $(ROOT); autoconf)
|
|
|
|
$(ROOT)/config.status: $(ROOT)/configure
|
|
-(cd $(ROOT); ./config.status --recheck)
|
|
|
|
Makefile: $(MAKEFILE_PARTS) $(ROOT)/config.status $(STAMP2)
|
|
-(cd $(ROOT); CONFIG_HEADERS= ./config.status)
|
|
|
|
#------------------------------------------------------------------------------
|
|
# The following section of this makefile comes from the middle of `Makefile.in'
|
|
# from this directory. It was generated by running `config.status'.
|
|
#------------------------------------------------------------------------------
|