mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-06 14:56:51 +08:00
ea3624e133
---------------------- ./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.
65 lines
1.9 KiB
Makefile
65 lines
1.9 KiB
Makefile
# HDF5 Library Makefile(.in)
|
|
#
|
|
# Copyright (C) 1997 National Center for Supercomputing Applications.
|
|
# All rights reserved.
|
|
#
|
|
#
|
|
@COMMENCE@
|
|
top_srcdir=@top_srcdir@
|
|
|
|
# Add include directory to the C preprocessor flags, add -lh5tools and
|
|
# -lhdf5 to the list of libraries.
|
|
CPPFLAGS=-I../src -I. @CPPFLAGS@
|
|
LIBS=../src/libhdf5.la @LIBS@
|
|
|
|
# Test programs and scripts.
|
|
TEST_PROGS=
|
|
TEST_SCRIPTS=testh5dump.sh @TESTH5TOH4@
|
|
|
|
# These are our main targets: library and tools. We link this library
|
|
# statically because some systems can only link executables to a single
|
|
# shared library and libhdf5 is much bigger than libh5tools.
|
|
LT_LINK_LIB=$(LT) --mode=link $(CC) -static
|
|
LIB=libh5tools.a
|
|
PROGS=h5debug h5import h5ls h5repart h5dump @H5TOH4@
|
|
|
|
# Source and object files for the library.
|
|
LIB_SRC=h5tools.c h5findshd.c
|
|
LIB_OBJ=$(LIB_SRC:.c=.o)
|
|
|
|
# Source and object files for programs...
|
|
PROG_SRC=h5debug.c h5import.c h5ls.c h5repart.c h5dump.c h5dumputil.c h5toh4.c
|
|
PROG_OBJ=$(PROG_SRC:.c=.o)
|
|
PRIVATE_HDR=h5tools.h
|
|
|
|
# Source and object files for the tests
|
|
TEST_SRC=
|
|
TEST_OBJ=$(TEST_SRC:.c=.o)
|
|
|
|
# Programs have to be built before they can be tested!
|
|
check test _test: $(PROGS)
|
|
|
|
# How to build the programs... They all depend on the hdf5 library and
|
|
# the tools library compiled in this directory.
|
|
$(PROGS): $(LIB) ../src/libhdf5.la
|
|
|
|
h5debug: h5debug.o
|
|
$(LT_LINK_EXE) $(CFLAGS) -o $@ h5debug.o $(LIB) $(LDFLAGS) $(LIBS)
|
|
|
|
h5import: h5import.o
|
|
$(LT_LINK_EXE) $(CFLAGS) -o $@ h5import.o $(LIB) $(LDFLAGS) $(LIBS)
|
|
|
|
h5ls: h5ls.o
|
|
$(LT_LINK_EXE) $(CFLAGS) -o $@ h5ls.o $(LIB) $(LDFLAGS) $(LIBS)
|
|
|
|
h5repart: h5repart.o
|
|
$(LT_LINK_EXE) $(CFLAGS) -o $@ h5repart.o $(LIB) $(LDFLAGS) $(LIBS)
|
|
|
|
h5dump: h5dump.o h5dumputil.o
|
|
$(LT_LINK_EXE) $(CFLAGS) -o $@ h5dump.o h5dumputil.o $(LIB) $(LDFLAGS) $(LIBS)
|
|
|
|
h5toh4: h5toh4.o
|
|
$(LT_LINK_EXE) $(CFLAGS) -o $@ h5toh4.o $(LIB) $(LDFLAGS) $(LIBS)
|
|
|
|
@CONCLUDE@
|