summaryrefslogtreecommitdiffstats
path: root/config/examples.am
blob: 28bd4474ee6f7d35dcef9619ee288b550b25dd08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
## config/examples.am
## (Use double hashes for copyright notice so that automake treats it as
## comments and does not pass it to 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.

## Textually included near the end of HDF5 Makefiles in example directories.
## Contains boilerplate for building, installing, and cleaning example
## programs.

# We can't tell automake about example programs, because they need to be
# built using h5cc (or h5fc, etc.) instead of the standard compilers.
# This creates some extra work for us.

## The Makefile.am that includes this boilerplate needs to define the
## following:
##
## TEST_PROG and TEST_PROG_PARA
## We assume that all test programs in this directory are examples.
##
## INSTALL_FILES
## The source files that the examples use which should be installed.
##
## EXAMPLEDIR
## The directory into which examples should be installed. 
##
## Build rules for $(EXTRA_PROG).
## Dependencies for example programs.
## Automake will supply neither of these.
##

# Assume that all tests in this directory are examples, and tell
# conclude.am when to build them.
EXAMPLE_PROG = $(TEST_PROG_PARA) $(TEST_PROG)
EXTRA_PROG = $(EXAMPLE_PROG)

# We need to tell automake what to clean
MOSTLYCLEANFILES=*.raw *.meta *.o
CHECK_CLEANFILES+=*.h5
CLEANFILES=$(TEST_PROG) $(TEST_PROG_PARA)

# How to create EXAMPLEDIR if it doesn't already exist
$(EXAMPLEDIR):
	-$(top_srcdir)/bin/mkdirs $@

# Install and uninstall rules.  We install the source files, not the
# example programs themselves.
install-data-local:
	@$(MAKE) $(AM_MAKEFLAGS) install-examples
uninstall-local:
	@$(MAKE) $(AM_MAKEFLAGS) uninstall-examples

install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
	@for f in X $(INSTALL_FILES); do                                     \
	  if test $$f != X; then                                             \
	    (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);\
	  fi;                                                                \
	done

uninstall-examples:
	@if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then                                 \
	  set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES);              \
        fi

installcheck-local:
	@if test "$(STATIC_SHARED)" = "static, shared"; then               \
	  H5CCFLAGS="-shlib" $(MAKE) $(AM_MAKEFLAGS) check;                \
	  $(MAKE) $(AM_MAKEFLAGS) clean;                                   \
	  H5CCFLAGS="" $(MAKE) $(AM_MAKEFLAGS) check;                      \
	 elif test "$(STATIC_SHARED)" = "shared"; then                     \
	  H5CCFLAGS="-shlib" $(MAKE) $(AM_MAKEFLAGS) check;                \
	 else                                                              \
	  $(MAKE) $(AM_MAKEFLAGS) check;                                   \
	 fi