# HDF5 Library Test Makefile(.in)			       -*- makefile -*-
#
# Copyright (C) 1997 National Center for Supercomputing Applications.
#                    All rights reserved.
#
# 
@COMMENCE@

# Add include directory to the C preprocessor flags.
CPPFLAGS=-I. -I../src @CPPFLAGS@

# These are our main targets. They should be listed in the order to be
# executed, generally most specific tests to least specific tests.
TESTS=testhdf5 gheap hyperslab istore bittests dtypes dsets cmpd_dset extend \
      external shtype links unlink big mtime fillval mount flush1 flush2
TIMINGS=iopipe chunk ragged overhead

# Temporary files
MOSTLYCLEAN=cmpd_dset.h5 dataset.h5 extend.h5 istore.h5 tfile1.h5 tfile2.h5  \
	    tfile3.h5 th5s1.h5 theap.h5 tohdr.h5 tstab1.h5 tstab2.h5         \
	    extern_1.h5 extern_2.h5 extern_3.h5 extern_1.raw extern_1b.raw   \
	    extern_2.raw extern_2b.raw extern_3.raw extern_3b.raw            \
	    extern_4.raw extern_4b.raw iopipe.raw iopipe.h5 gheap0.h5        \
	    gheap1.h5 gheap2.h5 gheap3.h5 gheap4.h5 shtype0.h5 shtype1.h5    \
	    shtype2a.h5 shtype2b.h5 shtype3.h5 links.h5 chunk.h5 big.data    \
	    big[0-9][0-9][0-9][0-9][0-9].h5 dtypes1.h5 dtypes2.h5 tattr.h5   \
	    tselect.h5 mtime.h5 ragged.h5 grptime.h5 unlink.h5 overhead.h5   \
	    fillval_[0-9].h5 mount_[0-9].h5 trefer.h5 flush.h5
CLEAN=$(TIMINGS)

# Source and object files for programs...  The TEST_SRC list contains all the
# source files and is used for things like dependencies, archiving, etc.  The
# other source lists are for the individual tests, the files of which may
# overlap with other tests.
TEST_SRC=testhdf5.c tattr.c tfile.c theap.c tmeta.c tohdr.c trefer.c         \
    tselect.c tstab.c th5s.c dtypes.c hyperslab.c istore.c dsets.c           \
    cmpd_dset.c extend.c external.c iopipe.c gheap.c shtype.c big.c links.c  \
    chunk.c bittests.c mtime.c ragged.c unlink.c overhead.c fillval.c        \
    mount.c flush1.c flush2.c
TEST_OBJ=$(TEST_SRC:.c=.o)

# Private header files (not to be installed)...
PRIVATE_HDR=testhdf5.h

# Additional targets
.PHONY: timings _timings
timings _timings: $(TIMINGS)
	@for timing in $(TIMINGS) dummy; do				      \
	   if test $$timing != dummy; then				      \
	      echo "Running $$timing $(TEST_FLAGS)"; 			      \
	      $(RUNTEST) ./$$timing $(TEST_FLAGS) || exit 1; 		      \
	   fi;								      \
	done;

# How to build the programs...
TESTHDF5_OBJ=testhdf5.o tattr.o tfile.o theap.o tmeta.o tohdr.o trefer.o tselect.o tstab.o th5s.o
testhdf5: $(TESTHDF5_OBJ) ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ $(TESTHDF5_OBJ) ../src/libhdf5.a $(LIBS)

gheap: gheap.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ gheap.o ../src/libhdf5.a $(LIBS)

dsets: dsets.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ dsets.o ../src/libhdf5.a $(LIBS)

bittests: bittests.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ bittests.o ../src/libhdf5.a $(LIBS)

dtypes: dtypes.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ dtypes.o ../src/libhdf5.a $(LIBS)

hyperslab: hyperslab.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ hyperslab.o ../src/libhdf5.a $(LIBS)

istore: istore.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ istore.o ../src/libhdf5.a $(LIBS)

cmpd_dset: cmpd_dset.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ cmpd_dset.o ../src/libhdf5.a $(LIBS)

extend: extend.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ extend.o ../src/libhdf5.a $(LIBS)

external: external.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ external.o ../src/libhdf5.a $(LIBS)

shtype: shtype.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ shtype.o ../src/libhdf5.a $(LIBS)

iopipe: iopipe.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ iopipe.o ../src/libhdf5.a $(LIBS)

grptime: grptime.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ grptime.o ../src/libhdf5.a $(LIBS)

big: big.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ big.o ../src/libhdf5.a $(LIBS)

links: links.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ links.o ../src/libhdf5.a $(LIBS)

chunk: chunk.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ chunk.o ../src/libhdf5.a $(LIBS)

mtime: mtime.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ mtime.o ../src/libhdf5.a $(LIBS)

ragged: ragged.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ ragged.o ../src/libhdf5.a $(LIBS)

unlink: unlink.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ unlink.o ../src/libhdf5.a $(LIBS)

overhead: overhead.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ overhead.o ../src/libhdf5.a $(LIBS)

fillval: fillval.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ fillval.o ../src/libhdf5.a $(LIBS)

mount: mount.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ mount.o ../src/libhdf5.a $(LIBS)

flush1: flush1.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ flush1.o ../src/libhdf5.a $(LIBS)

flush2: flush2.o ../src/libhdf5.a
	$(CC) $(CFLAGS) -o $@ flush2.o ../src/libhdf5.a $(LIBS)

@CONCLUDE@
