mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +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.
110 lines
3.8 KiB
Makefile
110 lines
3.8 KiB
Makefile
# Top-level HDF5 Makefile(.in)
|
|
#
|
|
# Copyright (C) 1997 National Center for Supercomputing Applications.
|
|
# All rights reserved.
|
|
#
|
|
#
|
|
# This makefile mostly just reinvokes make in the various subdirectories
|
|
# but does so in the correct order. You can alternatively invoke make from
|
|
# each subdirectory manually.
|
|
#
|
|
@COMMENCE@
|
|
top_srcdir=@top_srcdir@
|
|
|
|
# Subdirectories in build-order
|
|
SUBDIRS=src test tools @TESTPARALLEL@
|
|
|
|
##############################################################################
|
|
# T A R G E T S
|
|
#
|
|
# all: Build libraries, header files, tests, and programs in the
|
|
# various subdirectories but does not run tests or install the
|
|
# library, header files, or programs. The components can be
|
|
# built individually with the targets lib, progs, and tests.
|
|
#
|
|
# check: Test the uninstalled library to make sure it works. You may
|
|
# also say `test' or `_test' (`test' doesn't work from the top
|
|
# level directory for some versions of make because `test' is
|
|
# also a directory).
|
|
#
|
|
# install: Installs libraries, header files, programs, and documentation
|
|
# in the various directories under the prefix directory (lib,
|
|
# include, bin, man, info). Use the `--prefix=PATH' option
|
|
# to `configure' (or `config.status') or say `--help' for
|
|
# other alternatives. The default prefix is `/usr/local'.
|
|
#
|
|
# uninstall: Delete all the installed files that the `install' target
|
|
# created (but not the noninstalled files such as `make all'
|
|
# created).
|
|
#
|
|
# clean: Removes temporary files except those that record the
|
|
# configuration and those that are part of the distribution.
|
|
#
|
|
# mostlyclean: Like `clean' except it doesn't delete a few files like
|
|
# libraries, programs, and/or generated header files because
|
|
# regenerating them is rarely necessary and takes a lot of time.
|
|
#
|
|
# distclean: Deletes all files that are created by configuring or building
|
|
# HDF5. If you have unpacked the source and built HDF5 without
|
|
# creating any other files, then `make distclean' will leave
|
|
# only the files that were in the distrubution.
|
|
#
|
|
# maintainer-clean:
|
|
# Like `distclean' except it deletes more files. It deletes
|
|
# all generated files. This target is not intended for normal
|
|
# users; it deletes files that may require special tools to
|
|
# rebuild.
|
|
#
|
|
# TAGS: Updates the tags table for this program.
|
|
#
|
|
# dep depend: Builds dependencies in all subdirectories. These targets
|
|
# might not be available on certain combinations of make
|
|
# programs and C compilers. At the other extreme, the GNU
|
|
# make used in combination with gcc will maintain dependency
|
|
# information automatically.
|
|
#
|
|
lib progs tests check test _test uninstall TAGS dep depend:
|
|
@@SETX@; for d in $(SUBDIRS); do \
|
|
(cd $$d && $(MAKE) $@) || exit 1; \
|
|
done
|
|
|
|
install:
|
|
@@SETX@; for d in $(SUBDIRS); do \
|
|
(cd $$d && $(MAKE) $@) || exit 1; \
|
|
done
|
|
@$(LT) --mode=finish $(libdir);
|
|
|
|
# Number format detection
|
|
H5detect:
|
|
(cd src && $(MAKE) $@)
|
|
|
|
H5Tinit.c:
|
|
(cd src && $(MAKE) $@)
|
|
|
|
.PHONY: all lib progs test _test install uninstall dep depend clean \
|
|
mostlyclean distclean maintainer-clean
|
|
|
|
clean mostlyclean:
|
|
@@SETX@; for d in $(SUBDIRS); do \
|
|
(cd $$d && $(MAKE) $@); \
|
|
done
|
|
|
|
distclean:
|
|
@@SETX@; for d in $(SUBDIRS); do \
|
|
(cd $$d && $(MAKE) $@); \
|
|
done
|
|
-$(RM) config/commence config/conclude config/depend
|
|
-$(RM) config.cache config.log config.status src/H5config.h
|
|
-$(RM) Makefile
|
|
-$(CP) Makefile.dist Makefile
|
|
|
|
maintainer-clean:
|
|
@echo "This command is intented for maintainers to use;"
|
|
@echo "it deletes files that may require special tools to rebuild."
|
|
@@SETX@; for d in $(SUBDIRS); do \
|
|
(cd $$d && $(MAKE) $@); \
|
|
done
|
|
-$(RM) config.cache config.log config.status src/H5config.h
|
|
-$(RM) configure src/H5config.h.in
|
|
|