## Top-level HDF5 Makefile(.in) ## # Copyright by The HDF Group. # Copyright by the Board of Trustees of the University of Illinois. # All rights reserved. # # This file is part of HDF5. The full HDF5 copyright notice, including # terms governing use, modification, and redistribution, is contained in # the files COPYING and Copyright.html. COPYING can be found at the root # of the source code distribution tree; Copyright.html can be found at the # root level of an installed copy of the electronic HDF5 document set and # is linked from the top-level documents page. It can also be found at # http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have # access to either file, you may request a copy from help@hdfgroup.org. ## ## 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. ## top_srcdir=.. top_builddir=.. srcdir=. ##------------------------------------------------------------ -*- makefile -*- # Copyright by The HDF Group. # Copyright by the Board of Trustees of the University of Illinois. # All rights reserved. # # This file is part of HDF5. The full HDF5 copyright notice, including # terms governing use, modification, and redistribution, is contained in # the files COPYING and Copyright.html. COPYING can be found at the root # of the source code distribution tree; Copyright.html can be found at the # root level of an installed copy of the electronic HDF5 document set and # is linked from the top-level documents page. It can also be found at # http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have # access to either file, you may request a copy from help@hdfgroup.org. ## ## ## 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 ## Directories to search VPATH=$(srcdir):$(top_builddir)/src:$(top_srcdir)/src ## Programs SHELL=/bin/sh CC=cc ## H5_CPPFLAGS and H5_CFLAGS are used for extra flags used to build HDF5 ## (flags that don't need to be included in h5cc, for instance). CFLAGS= -fno-common CPPFLAGS=-UH5_DEBUG_API -DNDEBUG H5_CFLAGS= -fno-common H5_CPPFLAGS=-UH5_DEBUG_API -DNDEBUG LDFLAGS= ROOT=/mnt/gmirror/ports/science/hdf5/work/hdf5-1.6.6 LIBS=-lz -lm AR=ar RANLIB=ranlib PERL= RM=rm -f CP=cp INSTALL=/usr/bin/install -c -o root -g wheel INSTALL_PROGRAM=install -o root -g wheel -m 555 INSTALL_DATA=install -o root -g wheel -m 444 PARALLEL=no RUNSERIAL= RUNPARALLEL= RUNTEST=$(RUNSERIAL) TIME=time TRACE=: ## Installation points prefix= exec_prefix=${prefix} bindir=${exec_prefix}/bin libdir=${exec_prefix}/lib includedir=${prefix}/include docdir=${prefix}/share PUB_LIB=$(LIB) ## Shared libraries LT_STATIC_EXEC= 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) ## 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)/doc/hdf5 SUBDOCDIR= EXAMPLEDIR=$(docdir)/examples/hdf5/c LIB= LIB_SRC= LIB_OBJ= PUB_HDR= PUB_PROGS= PUB_DOCS= PUB_SUBDOCS= PROGS= TEST_PROGS= PRIV_PROGS= TEST_PROGS_PARA= TEST_FLAGS= TEST_SCRIPTS= TEST_SCRIPTS_PARA= 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 dummy; do \ if test $$sub != dummy; then \ -cd $$sub; $(MAKE) reconfigure; \ fi; \ done; ## make help target help: $(top_srcdir)/bin/makehelp ##----------------------------------------------------------------------------- ## The following section of this makefile comes from the middle of ## `Makefile.in' from this directory. It was generated by running ## `config.status'. ##----------------------------------------------------------------------------- # Subdirectories in build-order (not including 'examples') SUBDIRS=src test tools ############################################################################## ## 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 check check-s check-p test _test uninstall: @set -x; for d in $(SUBDIRS); do \ (cd $$d && $(MAKE) $@) || exit 1; \ done tests TAGS dep depend: @set -x; for d in $(SUBDIRS); do \ (cd $$d && $(MAKE) $@) || exit 1; \ done install-all: @$(MAKE) install install: @set -x; for d in $(SUBDIRS); do \ (cd $$d && $(MAKE) $@) || exit 1; \ done @$(MAKE) install-examples install-examples: (cd examples && $(MAKE) $@) || exit 1; uninstall-examples: (cd examples && $(MAKE) $@) || exit 1; check-install: (cd examples && $(MAKE) check) || exit 1 .PHONY: all lib progs test _test install uninstall dep depend clean \ mostlyclean distclean maintainer-clean clean mostlyclean: @set -x; for d in $(SUBDIRS) examples; do \ (cd $$d && $(MAKE) $@); \ done distclean: @set -x; for d in $(SUBDIRS) examples; do \ (cd $$d && $(MAKE) $@); \ done -$(RM) Makefile maintainer-clean: @echo "This target is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." @set -x; for d in $(SUBDIRS); do \ (cd $$d && $(MAKE) $@); \ done