mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-03 02:32:04 +08:00
bfbfda0cae
Improvement Description: If the library is built in parallel mode, then name the "h5cc" and "h5fc" programs "h5pcc" and "h5pfc" resp. This saves the user from worrying about mixing serial and parallel builds of the library and having to specify the pathnames and so-forth. Platforms tested: Linux (w/ parallel & Fortran) Modi4 (w/ parallel & Fortran) Sol (Serial & Fortran & C++) Misc. update: Updated release/docs/RELEASE
196 lines
6.1 KiB
Makefile
196 lines
6.1 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 .f90 .cpp .o .lo
|
|
@SET_MAKE@
|
|
|
|
## Directories to search
|
|
@SEARCH@
|
|
|
|
## Programs
|
|
SHELL=/bin/sh
|
|
CC=@CC@
|
|
CXX=@CXX@
|
|
F9X=@F9X@
|
|
F9XMODEXT=@F9XMODEXT@
|
|
F9XMODFLAG=@F9XMODFLAG@
|
|
FSEARCH_DIRS=@FSEARCH_DIRS@
|
|
CFLAGS=@CFLAGS@
|
|
CXXFLAGS=@CXXFLAGS@
|
|
FFLAGS=@FFLAGS@
|
|
CPPFLAGS=@CPPFLAGS@
|
|
LDFLAGS=@LDFLAGS@
|
|
ROOT=@ROOT@
|
|
LIBS=@LIBS@
|
|
AR=@AR@
|
|
RANLIB=@RANLIB@
|
|
PERL=@PERL@
|
|
RM=rm -f
|
|
CP=cp
|
|
INSTALL=@INSTALL@
|
|
INSTALL_PROGRAM=@INSTALL_PROGRAM@
|
|
INSTALL_DATA=@INSTALL_DATA@
|
|
PARALLEL=@PARALLEL@
|
|
RUNSERIAL=@RUNSERIAL@
|
|
RUNPARALLEL=@RUNPARALLEL@
|
|
RUNTEST=$(RUNSERIAL)
|
|
TRACE=:
|
|
|
|
## Languages
|
|
HDF_FORTRAN="no"
|
|
HDF_CXX="no"
|
|
|
|
## Installation points
|
|
prefix=@prefix@
|
|
exec_prefix=@exec_prefix@
|
|
bindir=@bindir@
|
|
libdir=@libdir@
|
|
includedir=@includedir@
|
|
docdir=@exec_prefix@/doc
|
|
PUB_LIB=$(LIB)
|
|
|
|
## Obtain default library; the current version of libtool does not fully
|
|
## support C++ yet, and it does not know which default library to find.
|
|
## With libtool 1.5, this support can be removed. - BMR - Jan, 2002
|
|
DEFAULT_LIBS=@DEFAULT_LIBS@
|
|
|
|
## Shared libraries
|
|
LT_STATIC_EXEC=@LT_STATIC_EXEC@
|
|
DYNAMIC_DIRS=@DYNAMIC_DIRS@
|
|
LT=$(top_builddir)/libtool
|
|
LT_COMPILE=$(LT) --mode=compile $(CC)
|
|
LT_LINK_LIB=$(LT) --mode=link $(CC) -rpath $(libdir) $(DYNAMIC_DIRS)
|
|
LT_LINK_EXE=$(LT) --mode=link $(CC) $(LT_STATIC_EXEC) -dlopen self -rpath $(libdir) $(DYNAMIC_DIRS)
|
|
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)
|
|
|
|
# Fortran compilation/linking stuff
|
|
LT_FCOMPILE=$(LT) --mode=compile $(F9X)
|
|
LT_LINK_FLIB=$(LT) --mode=link $(F9X) -static -rpath $(libdir) $(DYNAMIC_DIRS)
|
|
LT_LINK_FEXE=$(LT) --mode=link $(F9X) -static $(LT_STATIC_EXEC) $(DYNAMIC_DIRS)
|
|
|
|
# C++ compilation/linking stuff
|
|
LT_CXX_COMPILE=$(LT) --mode=compile $(CXX)
|
|
LT_LINK_CXX_LIB=$(LT) --mode=link $(CXX) -static -rpath $(libdir) $(DYNAMIC_DIRS)
|
|
LT_LINK_CXX_EXE=$(LT) --mode=link $(CXX) -static $(LT_STATIC_EXEC) -dlopen self -rpath $(bindir) $(DYNAMIC_DIRS)
|
|
|
|
## Optional variables. We must declare them here because Irix pmake
|
|
## complains if it sees a reference to a variable which has never been
|
|
## defined. The main makefile is free to redefine these to something else.
|
|
DOCDIR=$(docdir)
|
|
SUBDOCDIR=
|
|
EXAMPLEDIR=$(docdir)/hdf5/examples/c
|
|
LIB=
|
|
LIB_SRC=
|
|
LIB_OBJ=
|
|
PUB_HDR=
|
|
PUB_PROGS=
|
|
PUB_DOCS=
|
|
PUB_SUBDOCS=
|
|
PROGS=
|
|
TEST_PROGS=
|
|
TEST_PROGS_PARA=
|
|
TEST_FLAGS=
|
|
TEST_SCRIPTS=
|
|
AUX_LIB=
|
|
EXAMPLE_PROGS=
|
|
SUBDIRS=
|
|
LIBHDF5=
|
|
|
|
## 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.
|
|
## Invoke it by "gmake reconfigure".
|
|
##
|
|
## Graphically, the dependencies are:
|
|
##
|
|
## configure.in
|
|
## | |
|
|
## +-----------------+ +------------+
|
|
## | |
|
|
## stamp1 configure
|
|
## (H5config.h.in) |
|
|
## | | |
|
|
## | +---------------+ +-----------+
|
|
## | | |
|
|
## | config.status
|
|
## | |
|
|
## | +------------------+
|
|
## | |
|
|
## stamp2
|
|
## (H5config.h) 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.
|
|
## The `Makefile' target has been renamed to `reconfigure' so that the
|
|
## autoconf and make depend processes do not start up automatically.
|
|
## One must do `make reconfigure' explicitedly to start the process.
|
|
## (When srcdir is used and if more than one machines are running,
|
|
## this automatic Makefile/autoconf can get things unstable.)
|
|
##
|
|
STAMP1=$(top_builddir)/config/stamp1
|
|
STAMP2=$(top_builddir)/config/stamp2
|
|
|
|
MAKEFILE_PARTS=$(srcdir)/Makefile.in \
|
|
$(top_srcdir)/config/commence.in \
|
|
$(top_srcdir)/config/conclude.in \
|
|
$(top_srcdir)/config/depend1.in \
|
|
$(top_srcdir)/config/depend2.in \
|
|
$(top_srcdir)/config/depend3.in \
|
|
$(top_srcdir)/config/depend4.in \
|
|
$(top_srcdir)/config/dependN.in
|
|
|
|
$(STAMP1): $(top_srcdir)/configure.in
|
|
touch $(STAMP1)
|
|
-cd $(top_srcdir); autoheader
|
|
|
|
$(STAMP2): $(STAMP1) $(top_builddir)/config.status
|
|
touch $(STAMP2)
|
|
-cd $(top_builddir); \
|
|
CONFIG_FILES= CONFIG_HEADERS=src/H5config.h ./config.status
|
|
|
|
$(top_srcdir)/configure: $(top_srcdir)/configure.in
|
|
-cd $(top_srcdir); autoconf
|
|
|
|
$(top_builddir)/config.status: $(top_srcdir)/configure $(STAMP1)
|
|
-cd $(top_builddir); ./config.status --recheck
|
|
|
|
# rerun the autoconf process if any configure components have changed.
|
|
reconfigure: $(MAKEFILE_PARTS) $(STAMP2)
|
|
-cd $(top_builddir); CONFIG_HEADERS= ./config.status
|
|
@for sub in @subdirs@ dummy; do \
|
|
if test $$sub != dummy; then \
|
|
-cd $$sub; $(MAKE) reconfigure; \
|
|
fi; \
|
|
done;
|
|
|
|
##-----------------------------------------------------------------------------
|
|
## The following section of this makefile comes from the middle of
|
|
## `Makefile.in' from this directory. It was generated by running
|
|
## `config.status'.
|
|
##-----------------------------------------------------------------------------
|