## 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.
## All rights reserved.
##
## This file is part of HDF.  The full HDF copyright notice, including
## terms governing use, modification, and redistribution, is contained in
## the COPYING file, which can be found at the root of the source code
## distribution tree, or in https://www.hdfgroup.org/licenses.
## If you do not have access to either file, you may request a copy from
## help@hdfgroup.org.

# We can't tell automake about example programs, because they need to be
# built using h4cc (or h4fc, 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
## 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.
EXTRA_PROG = $(EXAMPLE_PROG)

# We need to tell automake what to clean
MOSTLYCLEANFILES=*.o $(EXAMPLE_PROG)
CHECK_CLEANFILES+= *.hdf
CLEANFILES=$(EXAMPLE_PROG)

# How to create EXAMPLEDIR if it doesn't already exist
$(EXAMPLEDIR):
	mkdir -p $@

# 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)
	@for f in X $(INSTALL_FILES); do                                     \
	  if test $$f != X; then                                             \
	    (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);    \
            chmod a-x $(EXAMPLEDIR)/$$f;                                     \
	  fi;                                                                \
	done
	@for f in X $(INSTALL_SCRIPT_FILES); do                              \
	  if test $$f != X; then                                             \
	    (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);    \
	  fi;                                                                \
	done
	@for f in X $(INSTALL_TOP_FILES); do                                 \
	  if test $$f != X; then                                             \
	    (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLETOPDIR)/. || exit 1); \
	    chmod a-x $(EXAMPLETOPDIR)/$$f;                                  \
	  fi;                                                                \
	done
	@for f in X $(INSTALL_TOP_SCRIPT_FILES); do                          \
	  if test $$f != X; then                                             \
	    (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLETOPDIR)/. || exit 1); \
	  fi;                                                                \
	done

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

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

