diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2011-01-28 23:58:14 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2011-01-28 23:58:14 (GMT) |
commit | ea7073d72a1f26e8ab278754903839931b6d0b97 (patch) | |
tree | 3cd7d4ebd0ee5ba24243be9467cf6723fa2d0550 | |
parent | 0a15d73625e223771a4292cfabfeb774fd9b0f11 (diff) | |
download | hdf5-ea7073d72a1f26e8ab278754903839931b6d0b97.zip hdf5-ea7073d72a1f26e8ab278754903839931b6d0b97.tar.gz hdf5-ea7073d72a1f26e8ab278754903839931b6d0b97.tar.bz2 |
[svn-r20019] Bug 2019: h5perf or h5perf_serial is removed twice. Some systems like AIX do
not like it as it may get into a racing condition when "gmake -j N" is used--
two "rm" commands were trying to remove the same file.
Solution:
Rearranged the Makefile.am so that h5perf or h5perf_serial are built only
once, that is through bin_PROGRAMS only.
Bug 2135: h5perf_serial is not installed in --enable-parallel build.
It was because in parallel build, h5perf_serial is not was not in the
bin_PROGRAMS list but it was still being built and tested.
Solution:
Rearranged the Makefile.am code so that h5perf_serial is installed too.
(It is easier to make cleaner code to install it than to build and test
h5perf_serial but not test it.)
Tested: Jam, both serial and parallel.
Did not run h5committest because the changes are in perform/ directory only
and I think Jam has given the changes in Makefile a complete test already.
-rw-r--r-- | perform/Makefile.am | 25 | ||||
-rw-r--r-- | perform/Makefile.in | 25 |
2 files changed, 30 insertions, 20 deletions
diff --git a/perform/Makefile.am b/perform/Makefile.am index 6836a2b..4b44b43 100644 --- a/perform/Makefile.am +++ b/perform/Makefile.am @@ -23,11 +23,11 @@ include $(top_srcdir)/config/commence.am INCLUDES=-I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib +# bin_PROGRAMS will be installed. if BUILD_PARALLEL_CONDITIONAL - bin_PROGRAMS=h5perf - TEST_PROG_PARA=h5perf perf + bin_PROGRAMS=h5perf_serial h5perf else - bin_PROGRAMS=h5perf_serial + bin_PROGRAMS=h5perf_serial endif # Add h5perf and h5perf_serial specific linker flags here @@ -38,16 +38,25 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) # specifying --enable-build-all at configure time. # Also, some of these programs should only be built in parallel. if BUILD_PARALLEL_CONDITIONAL - PARA_BUILD_ALL=benchpar mpi-perf + PARA_BUILD_ALL=benchpar mpi-perf endif if BUILD_ALL_CONDITIONAL - BUILD_ALL_PROGS=$(PARA_BUILD_ALL) + BUILD_ALL_PROGS=$(PARA_BUILD_ALL) endif -# These are the programs that `make all' or `make tests' will build and which -# `make check' will run. List them in the order they should be run. +# Define programs that will be run in 'make check' +# List them in the order they should be run. +# Parallel test programs. +if BUILD_PARALLEL_CONDITIONAL + TEST_PROG_PARA=h5perf perf +endif +# Serial test programs. TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) -check_PROGRAMS=$(TEST_PROG_PARA) $(TEST_PROG) + +# check_PROGRAMS will be built but not installed. Do not any executable +# that is in bin_PROGRAMS already. Otherwise, it will be removed twice in +# "make clean" and some systems, e.g., AIX, do not like it. +check_PROGRAMS= iopipe chunk overhead zip_perf perf_meta $(BUILD_ALL_PROGS) perf h5perf_SOURCES=pio_perf.c pio_engine.c pio_timer.c h5perf_serial_SOURCES=sio_perf.c sio_engine.c sio_timer.c diff --git a/perform/Makefile.in b/perform/Makefile.in index 805f983..d79c2de 100644 --- a/perform/Makefile.in +++ b/perform/Makefile.in @@ -56,8 +56,12 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ $(top_srcdir)/config/conclude.am COPYING @BUILD_PARALLEL_CONDITIONAL_FALSE@bin_PROGRAMS = \ @BUILD_PARALLEL_CONDITIONAL_FALSE@ h5perf_serial$(EXEEXT) -@BUILD_PARALLEL_CONDITIONAL_TRUE@bin_PROGRAMS = h5perf$(EXEEXT) -check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_4) +@BUILD_PARALLEL_CONDITIONAL_TRUE@bin_PROGRAMS = \ +@BUILD_PARALLEL_CONDITIONAL_TRUE@ h5perf_serial$(EXEEXT) \ +@BUILD_PARALLEL_CONDITIONAL_TRUE@ h5perf$(EXEEXT) +check_PROGRAMS = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \ + zip_perf$(EXEEXT) perf_meta$(EXEEXT) $(am__EXEEXT_2) \ + perf$(EXEEXT) TESTS = $(check_PROGRAMS) subdir = perform ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -69,14 +73,9 @@ CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" -@BUILD_PARALLEL_CONDITIONAL_TRUE@am__EXEEXT_1 = h5perf$(EXEEXT) \ -@BUILD_PARALLEL_CONDITIONAL_TRUE@ perf$(EXEEXT) -@BUILD_PARALLEL_CONDITIONAL_TRUE@am__EXEEXT_2 = benchpar$(EXEEXT) \ +@BUILD_PARALLEL_CONDITIONAL_TRUE@am__EXEEXT_1 = benchpar$(EXEEXT) \ @BUILD_PARALLEL_CONDITIONAL_TRUE@ mpi-perf$(EXEEXT) -@BUILD_ALL_CONDITIONAL_TRUE@am__EXEEXT_3 = $(am__EXEEXT_2) -am__EXEEXT_4 = iopipe$(EXEEXT) chunk$(EXEEXT) overhead$(EXEEXT) \ - zip_perf$(EXEEXT) perf_meta$(EXEEXT) h5perf_serial$(EXEEXT) \ - $(am__EXEEXT_3) +@BUILD_ALL_CONDITIONAL_TRUE@am__EXEEXT_2 = $(am__EXEEXT_1) PROGRAMS = $(bin_PROGRAMS) benchpar_SOURCES = benchpar.c benchpar_OBJECTS = benchpar.$(OBJEXT) @@ -417,7 +416,6 @@ TRACE = perl $(top_srcdir)/bin/trace # *.clog are from the MPE option. CHECK_CLEANFILES = *.chkexe *.chklog *.clog INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/test -I$(top_srcdir)/tools/lib -@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = h5perf perf # Add h5perf and h5perf_serial specific linker flags here h5perf_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) @@ -429,8 +427,11 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) @BUILD_PARALLEL_CONDITIONAL_TRUE@PARA_BUILD_ALL = benchpar mpi-perf @BUILD_ALL_CONDITIONAL_TRUE@BUILD_ALL_PROGS = $(PARA_BUILD_ALL) -# These are the programs that `make all' or `make tests' will build and which -# `make check' will run. List them in the order they should be run. +# Define programs that will be run in 'make check' +# List them in the order they should be run. +# Parallel test programs. +@BUILD_PARALLEL_CONDITIONAL_TRUE@TEST_PROG_PARA = h5perf perf +# Serial test programs. TEST_PROG = iopipe chunk overhead zip_perf perf_meta h5perf_serial $(BUILD_ALL_PROGS) h5perf_SOURCES = pio_perf.c pio_engine.c pio_timer.c h5perf_serial_SOURCES = sio_perf.c sio_engine.c sio_timer.c |