## HDF5 Library Makefile(.in) ## ## Copyright (C) 1997 National Center for Supercomputing Applications. ## All rights reserved. ## ## top_srcdir=@top_srcdir@ top_builddir=.. srcdir=@srcdir@ @COMMENCE@ TRACE=perl ../bin/trace ############################################################################### ## MODIFICATONS FOR CREATING THE PABLO INSTRUMENTED LIBRARY libhdf5-inst.a ## For Pablo instrumenation of parallel code, remove the # from in front of ## PABLO_MPIO_FLAGS. ## Set PABLO_INC equal to the path of the include directory for the Pablo ## TraceLibrary ############################################################################### #PABLO_MPIO_FLAGS = -DHAVE_PARALLEL -DHAVE_MPIOTRACE PABLO_INC = PABLO_FLAGS = -I. -I../src -I$(PABLO_INC) -DHAVE_PABLO $(PABLO_MPIO_FLAGS) ## This is our main target: LIB=libhdf5-inst.a SRCDIRS := ./. \ ../src/. SRCFILES := $(foreach DIR,$(SRCDIRS),$(wildcard $(DIR)/*.c)) LIB_SRC := $(notdir $(SRCFILES)) LIB_COBJ := $(LIB_SRC:.c=.o) LIB_FOBJ := PabloHDFff.o LIB_OBJ := $(LIB_FOBJ) $(LIB_COBJ) copy_src: cp ../src/*.c . touch copy_src vpath %.c $(shell echo $(SRCDIRS) | sed 's/ /:/g') ## Pablo header files (to be installed)... PABLO_HDR = HDFentryNames.h HDFidList.h ProcIDs.h HDFTrace.h ProcTrace.h \ ProcTrace.inc ##------------------------------------------------------------ -*- makefile -*- ## The following section of this makefile comes from the ## `./config/conclude' file which was generated with config.status ## from `./config/conclude.in'. ##----------------------------------------------------------------------------- ## This is the target for the library described in the main body of the ## makefile. ## lib: $(LIB) $(LIB) __no_library__: $(LIB_OBJ) $(AR) -rc $@ $(LIB_OBJ) $(RANLIB) $@ ## ## Dummy this out so that there is no redundant make of the library ## progs: ## Build a tags file in this directory. TAGS: $(LIB_SRC) $(RM) $@ -etags $(LIB_SRC) ## ## Dummy this out so that there is no redundant make of the library ## tests: ## Install the library, the public header files, and programs. install: $(LIB) @test -d $(libdir) || mkdir $(libdir) @for f in X $(LIB); do \ if test $$f != X; then \ (set -x; $(INSTALL_DATA) $$f $(libdir)/. || exit 1); \ fi; \ done @test -d $(includedir) || mkdir $(includedir) @for f in X $(PABLO_HDR); do \ if test $$f != X; then \ (set -x; $(INSTALL_DATA) $$f $(includedir)/. || exit 1); \ fi \ done ## Removes those things that `make install' (would have) installed. uninstall: @if test "X$(LIB)" != X; then \ set -x; cd $(libdir) && $(RM) $(LIB); \ fi ## Removes temporary files without removing the final target files. That is, ## remove things like object files but not libraries or executables. ## mostlyclean: $(RM) $(LIB_OBJ) $(TEST_OBJ) $(PROG_OBJ) $(MOSTLYCLEAN) ## Like `mostlyclean' except it also removes the final targets: things like ## libraries and executables. This target doesn't remove any file that ## is part of the HDF5 distribution. ## clean: mostlyclean $(RM) $(LIB) $(TESTS) $(PROGS) $(CLEAN) $(PABLO_CLEAN) H*.c copy_src ## Like `clean' except it also removes files that were created by running ## configure. If you've unpacked the source and built HDF5 without creating ## any other files, then `make distclean' will leave only the files that were ## in the distribution. ## distclean: clean $(RM) .depend TAGS *~ core *.core *.bak *.old *.new $(DISTCLEAN) @if test -f $(srcdir)/Makefile.in; then \ (set -x; $(RM) Makefile); \ fi ## Like `distclean' except it deletes all files that can be regenerated from ## the makefile, including those generated from autoheader and autoconf. ## maintainer-clean: distclean $(RM) *~ core core.* *.core *.bak *.contrib gmon.out %.o: %.c $(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $*.c PABLO_INCLUDES = HDFentryNames.h HDFidList.h ProcIDs.h HDFTrace.h ProcTrace.h \ ProcTrace.inc PABLO_CLEAN = HDFentryNames.h HDFidList.h ProcMasks.h HDFentries.txt HDFentries.txt: ../src/*.c grep "FUNC_ENTER.*(H5" ../src/*.c | \ sed "s/.*(H5/H5/;s/[,)].*//" | sort -u > $@ HDFentryNames.h: HDFentries.txt sed "s/.*/\"&\",/" $? > $@ HDFidList.h: HDFentries.txt sed "s/.*/ID_&,/" $? > $@ echo ID_ALLHDF, >> $@ grep "#define[ ]*PABLO_MASK" ../src/*.c | \ sed "s/.*H5/ID_H5/;s/mask.*/c,/" | sort -u >> $@ ProcMasks.h: ../src/*.c grep "#define[ ]*PABLO_MASK" ../src/*.c | \ sed "s/.*[ ]H5/H5/;s/_mask.*//;s/.*/#define &_mask ID_&_c/" >$@ ProcIDs.h: HDFidList.h ProcMasks.h ProcTrace.inc: HDFidList.h sed "=" $? | sed -f PabloSedscr > $@ echo " integer RuntimeTrace" >> $@ echo " integer SummaryTrace" >> $@ echo " integer MPIRuntimeTrace" >> $@ echo " integer MPISummaryTrace" >> $@ echo " integer NoTrace" >> $@ echo " parameter (RuntimeTrace = 0)" >> $@ echo " parameter (SummaryTrace = 1)" >> $@ echo " parameter (MPIRuntimeTrace = 2)" >> $@ echo " parameter (MPISummaryTrace = 3)" >> $@ echo " parameter (NoTrace = 4)" >> $@ PabloHDF.o: PabloHDF.c $(PABLO_INCLUDES) copy_src $(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $< PabloHDF_RT.o: PabloHDF_RT.c $(PABLO_INCLUDES) copy_src $(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $< PabloHDF_SDDF.o: PabloHDF_SDDF.c $(PABLO_INCLUDES) copy_src $(CC) $(CFLAGS) $(CPPFLAGS) $(PABLO_FLAGS) -c $< PabloHDFff.o: PabloHDFff.f $(PABLO_INCLUDES) copy_src $(F77) -O -c $<