mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-21 01:04:10 +08:00
2f79e3f2df
* OESS-98 convert plugin option to FetchContent, add tests * Fixes for pkcfg files because of plugin option * OESS-98 fix tools test for plugins * Keep doxygen comments under 100 chars long - format hint * Whitespace * HDFFV-11144 - Reclassify CMake messages * HDFFV-11099/11100 added help text * Reworked switch statement to compare string instead * Fix typo * Update CDash mode * Correct name of threadsafe * Correct option name * Undo accidental commit * Note LLVM 10 to 11 format default changes * Update format plugin * Undo clang-format version 11 changes * One more correction * Update supported platforms * Revert whitespace changes * Correct whitespace * Changes from PR#3 * HDFFV-11213 added option to control gcc10 warnings diagnostics * HDFFV-11212 Use the new references correctly in JNI utility and tests * format source * Fix typo * Add new test file * HDFFV-11212 - update test and remove unused arg * Minor non-space formatting changes * Use H5I_INVALID_ID instead of "-1" * source formatting * add missing testfile, update jni function * Undo commit of debug code * remove mislocated file * Fix h5repack test for handling of fapls and id close * Update h5diff test files usage text * HDFFV-11212 add new ref tests for JNI export dataset * src format update * Remove blank line typo * src format typo * long double requires %Lg * Another long double foramt specifer S.B. %Lg * issue with t128bit test * Windows issue with h5dump and type. * Fix review issues * refactor function nesting and fix error checks * format fixes * Remove untested functions and javadoc quiet comments * Restore TRY block. * Change string append errors to memory exception * revert to H5_JNI_FATAL_ERROR - support functions need work * Add assertion error for h5util functions * remove duplicate function * format fix * Revert HD function error handling * Update copyright comments * GH #386 java folder copyright corrections * Whitespace * GH #359 implement and fix tools 1.6 API usage * remove excessive comments * Flip inits to correct ifdef section * rework ifdef to be simpler * format issue * Reformat ifdef inits * remove static attribute * format compliance * Update names * Revert because logic relies on float not being int * Changes noticed from creating merge of #412 * Double underscore change * Correct compiler version variable used * Remove header guard underscores * Whitespace cleanup * Split format source and commit changes on repo push * remove pre-split setting * Change windows TS to use older VS. * correct window os name * HDFFV-11212 JNI export util and Javadoc * Suggested review changes * Another change found * Committing clang-format changes * HDFFV-11113 long double in tools * HDFFV-11113 add note * Disable long double tests for now * HDFFV-11228 remove arbitrary CMake warning groups. * Make each flag a string * Some Javadoc warning fixes * Updated javadoc fixes * # WARNING: head commit changed in the meantime HDFFV-11229 Fix long double usage in tools and java Changed h5dump and h5ls to just print 128-bit for long double type. Added test and file for dataset and attributes with all three float types. * Committing clang-format changes * HDFFV-11229 Add release note * HDFFV-11229 windows testfile needed * fix typo * Remove non supported message text * HDFFV-11229 - change ldouble test to check both native and general * HDFFV-11229 add second file compare * HDFFV-11229 fix reference file * HDFFV-11229 autotools check two refs * HDFFV-11229 revert back to removal of NATIVE_LDOUBLE in tools output * Committing clang-format changes * Update release note * Update attribute type of ref file * Change source of ninja for macs * try port instead of brew * Recommended is to use brew. * Undo non long double changes * remove unneeded file * Fix perl and doxygen CMake code * Add "option" command for clang options * Rework CMake add_custom to use the BYPRODUCTS argument * Add stamp files to BYPRODUCTS * Only one copy of file exists * Fix custom cmmand depends targets * Fix fortran custom command DEPENDS * Add LD_LIBRARY_PATH to tests * Add custom target for DEPENDS * Add h5detect conditionaly to generated target DEPENDS * Correct DEPENDS targets * Parallel builds need the mpi compiler for pkgconfig scripts. * install only if MPI build * Fortran target depends * Remove incorrect source attribute * doxygen adjustments * doxygen build updates * Correct version * Correct function version - function has been merged to 1.12 * Correct version string for map functions Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
228 lines
8.1 KiB
Makefile
228 lines
8.1 KiB
Makefile
#
|
|
# 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 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.
|
|
##
|
|
## Makefile.am
|
|
## Run automake to generate a Makefile.in from this file.
|
|
##
|
|
#
|
|
# This makefile mostly just reinvokes make in the various subdirectories
|
|
# but does so in the correct order. You can alternatively invoke make from
|
|
# each subdirectory manually.
|
|
#
|
|
# Top-level HDF5 Makefile(.in)
|
|
|
|
# pmake has issues if variables are undefined. Solve this problem in
|
|
# top-level Makefile by defining .MAKEFLAGS target to -V before pmake can
|
|
# encounter any undefined variables.
|
|
# Automake resists putting anything but variable definitions first in
|
|
# a Makefile.in, so we'll put a placebo comment here and use sed in
|
|
# bin/reconfigure to turn it into the .MAKEFLAGS target. Sigh. -JL 2005
|
|
# Configure should set AM_MAKEFLAGS to -V to solve this problem in
|
|
# subdirectories.
|
|
# NOTE: This means that invoking pmake in a subdirectory will not work.
|
|
#xxx.MAKEFLAGS:@AM_MAKEFLAGS@
|
|
#xxx $(MAKE) all
|
|
#xxx
|
|
|
|
include $(top_srcdir)/config/commence.am
|
|
|
|
# include Doxygen rules (requires autoconf-archive >2016-03-20)
|
|
@DX_RULES@
|
|
|
|
# Define subdirectories to build.
|
|
## Automake understands that `make distclean' should recurse into
|
|
## conditional subdirectories even if `make all' does not.
|
|
## We need to list the examples directory in the DIST_SUBDIRS variable
|
|
## so that it will be visited by `make distclean'
|
|
# Add this directory to SUBDIRS so that examples get built after tools
|
|
# but before examples in extra interfaces (c++ and fortran).
|
|
# Since we're explicitly listing DIST_SUBDIRS, we also need to list
|
|
# directories that are only conditionally built (so that their Makefiles
|
|
# are cleaned as well).
|
|
# Note that `make clean' will not affect the examples or doc directories.
|
|
|
|
# Conditionals. These conditionals are defined during configure
|
|
# Define each variable to empty if it is not used to placate pmake
|
|
if BUILD_CXX_CONDITIONAL
|
|
CXX_DIR =c++
|
|
else
|
|
CXX_DIR=
|
|
endif
|
|
if BUILD_FORTRAN_CONDITIONAL
|
|
FORTRAN_DIR =fortran
|
|
else
|
|
FORTRAN_DIR=
|
|
endif
|
|
if BUILD_JAVA_CONDITIONAL
|
|
JAVA_DIR=java
|
|
else
|
|
JAVA_DIR=
|
|
endif
|
|
if BUILD_HDF5_HL_CONDITIONAL
|
|
HDF5_HL_DIR =hl
|
|
else
|
|
HDF5_HL_DIR=
|
|
endif
|
|
if BUILD_TESTS_CONDITIONAL
|
|
TESTSERIAL_DIR =test
|
|
else
|
|
TESTSERIAL_DIR=
|
|
endif
|
|
if BUILD_TESTS_PARALLEL_CONDITIONAL
|
|
TESTPARALLEL_DIR =testpar
|
|
else
|
|
TESTPARALLEL_DIR=
|
|
endif
|
|
if BUILD_TOOLS_CONDITIONAL
|
|
TOOLS_DIR =tools
|
|
else
|
|
TOOLS_DIR=
|
|
endif
|
|
|
|
SUBDIRS = src $(TESTSERIAL_DIR) $(TESTPARALLEL_DIR) bin utils $(TOOLS_DIR) . \
|
|
$(CXX_DIR) $(FORTRAN_DIR) $(JAVA_DIR) $(HDF5_HL_DIR)
|
|
DIST_SUBDIRS = src test testpar utils tools . c++ fortran hl examples java
|
|
|
|
# Some files generated during configure that should be cleaned
|
|
DISTCLEANFILES=config/stamp1 config/stamp2
|
|
|
|
# Some files/directories generated during check that should be cleaned
|
|
CHECK_CLEANFILES+=*-tmp
|
|
|
|
# Define rules for lib, progs, check, and tests.
|
|
# These simply involve recursing into subdirectories.
|
|
test _test: check
|
|
|
|
lib progs check-p check-s:
|
|
for d in $(SUBDIRS); do \
|
|
if test $$d != .; then \
|
|
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
|
|
fi; \
|
|
done
|
|
|
|
# Make all, tests, and (un)install
|
|
tests:
|
|
for d in $(SUBDIRS); do \
|
|
if test $$d != .; then \
|
|
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
|
|
fi; \
|
|
done
|
|
|
|
# Check-clean also recurses into examples directory
|
|
check-clean:
|
|
for d in $(SUBDIRS) examples; do \
|
|
if test $$d != .; then \
|
|
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
|
|
fi; \
|
|
done
|
|
$(RM) -rf prefix-tmp destdir-tmp
|
|
|
|
# Some C++ compilers/linkers will create a directory named ii_files in
|
|
# the root directory, which should be cleaned.
|
|
mostlyclean-local:
|
|
if test -d ii_files; then \
|
|
$(RM) -rf ii_files; \
|
|
fi
|
|
|
|
# 'make install' will now install examples, the same as 'make install-all'.
|
|
# 'make-install-all' will be redundant but will still work.
|
|
install: install-recursive install-examples
|
|
uninstall: uninstall-recursive uninstall-examples
|
|
|
|
# 'make install-all' also installs examples
|
|
install-all:
|
|
@$(MAKE) $(AM_MAKEFLAGS) install
|
|
uninstall-all:
|
|
@$(MAKE) $(AM_MAKEFLAGS) uninstall
|
|
|
|
# Install examples in this directory and recursively
|
|
install-examples uninstall-examples:
|
|
for d in examples $(HDF5_INTERFACES) $(HL); do \
|
|
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
|
|
done
|
|
|
|
# Placeholder to remind users that docs are now in a separate repository.
|
|
install-doc:
|
|
@echo "docs no longer live in this tree. Use install-examples to install examples."
|
|
|
|
uninstall-doc:
|
|
@echo "docs no longer live in this tree. Use install-examples to install examples."
|
|
|
|
# `make check-install' or `make installcheck' checks that examples can
|
|
# be successfully built
|
|
installcheck-local:
|
|
if test -n "${DESTDIR}"; then \
|
|
(cd ${DESTDIR}$(bindir) && pwd && ./h5redeploy -force); \
|
|
fi
|
|
@(cd examples && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;
|
|
|
|
# check-install is just a synonym for installcheck
|
|
check-install: installcheck
|
|
|
|
# check-all-install tests all installation methods.
|
|
# Install via different mechanism and then compare against the default.
|
|
# Fine if only libXXX.a files are different since they may have been ranlib'ed.
|
|
check-all-install:
|
|
@echo Installing to default location
|
|
$(MAKE) install
|
|
@echo Installing to different prefix location
|
|
$(MAKE) prefix=${ROOT}/prefix-tmp install
|
|
@echo Compare against the default installation.
|
|
@echo Fine if only libXXX.a files are different.
|
|
-diff -r prefix-tmp ${prefix}
|
|
@echo Installing to different $$\DESTDIR location
|
|
env DESTDIR=${ROOT}/destdir-tmp $(MAKE) install
|
|
@echo Compare against the default installation.
|
|
@echo Fine if only libXXX.a files are different.
|
|
-diff -r destdir-tmp${prefix} ${prefix}
|
|
|
|
# Only source files in the src directory include tracing information,
|
|
# so 'make trace' only needs to recurse into that directory.
|
|
trace:
|
|
@(cd src && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1;
|
|
|
|
# doxygen support
|
|
if BUILD_DOXYGEN_CONDITIONAL
|
|
doxygen: doxygen-doc
|
|
endif
|
|
|
|
# Run tests with different Virtual File Drivers.
|
|
# Currently, only invoke check-vfd in the test directory.
|
|
check-vfd:
|
|
for d in src utils test; do \
|
|
if test $$d != .; then \
|
|
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
|
|
fi; \
|
|
done
|
|
|
|
# Run tests with different passthrough Virtual Object Layer Connectors.
|
|
# NOTE: Will only succeed with passthrough VOL connectors that use
|
|
# the native VOL connector as the terminal connector.
|
|
check-passthrough-vol:
|
|
for d in $(SUBDIRS); do \
|
|
if test $$d != .; then \
|
|
(cd $$d && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1; \
|
|
fi; \
|
|
done
|
|
|
|
# Automake wants to make config.status depend on configure. This
|
|
# makes sense, but config.status can't always be regenerated
|
|
# properly, which can cause builds to fail.
|
|
# This is a problem for our Daily Tests, which need to be able to
|
|
# 'make distclean' reliably before running configure.
|
|
# The simple solution is to override the dependency Automake supplies
|
|
# for config.status so that it will never be regenerated.
|
|
$(top_builddir)/config.status:
|
|
|
|
# Don't include conclude.am in root Makefile; tests target needs to
|
|
# recurse into reguar subdirs.
|