1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-06-01 02:45:43 +02:00
qmckl/Makefile.am

180 lines
5.5 KiB
Makefile
Raw Normal View History

2021-05-10 23:56:26 +02:00
# QMCkl - Quantum Monte Carlo kernel library
#
# BSD 3-Clause License
2021-05-11 11:45:49 +02:00
#
2021-05-10 23:56:26 +02:00
# Copyright (c) 2020, TREX Center of Excellence
# All rights reserved.
2021-05-11 11:45:49 +02:00
#
2021-05-10 23:56:26 +02:00
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
2021-05-11 11:45:49 +02:00
#
2021-05-10 23:56:26 +02:00
# 1. Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
2021-05-11 11:45:49 +02:00
#
2021-05-10 23:56:26 +02:00
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
2021-05-11 11:45:49 +02:00
#
2021-05-10 23:56:26 +02:00
# 3. Neither the name of the copyright holder nor the names of its
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
2021-05-11 11:45:49 +02:00
#
2021-05-10 23:56:26 +02:00
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ACLOCAL_AMFLAGS = -I m4
VERSION_MAJOR = @VERSION_MAJOR@
VERSION_MINOR = @VERSION_MINOR@
VERSION_PATCH = @VERSION_PATCH@
2021-05-11 11:45:49 +02:00
SUBDIRS =
2021-05-12 01:51:26 +02:00
CLEANFILES = qmckl.mod
2021-05-12 00:22:51 +02:00
EXTRA_DIST =
2021-05-10 23:56:26 +02:00
pkgconfigdir = $(libdir)/pkgconfig
2021-05-12 00:22:51 +02:00
pkgconfig_DATA = pkgconfig/qmckl.pc
2021-05-11 11:45:49 +02:00
qmckl_h = $(srcdir)/include/qmckl.h
include_HEADERS = $(qmckl_h)
2021-05-12 23:18:22 +02:00
qmckl_f = share/qmckl/fortran/qmckl_f.f90
test_qmckl_f = tests/qmckl_f.f90
2021-05-12 02:16:45 +02:00
test_qmckl_fo = tests/qmckl_f.o
2021-05-12 23:18:22 +02:00
src_qmckl_f = src/qmckl_f.f90
src_qmckl_fo = src/qmckl_f.o
header_tests = tests/chbrclf.h tests/n2.h
2021-05-11 16:41:03 +02:00
2021-05-11 11:45:49 +02:00
fortrandir = $(datadir)/$(PACKAGE_NAME)/fortran/
2021-05-12 01:51:26 +02:00
dist_fortran_DATA = $(qmckl_f)
2021-05-11 11:45:49 +02:00
2021-05-11 16:41:03 +02:00
AM_CPPFLAGS = -I$(srcdir)/src -I$(srcdir)/include
2021-05-11 12:56:41 +02:00
2021-05-11 16:41:03 +02:00
lib_LTLIBRARIES = src/libqmckl.la
2021-05-19 00:28:56 +02:00
src_libqmckl_la_SOURCES = $(qmckl_h) $(src_qmckl_f) $(C_FILES) $(F_FILES) $(H_PRIVATE_FUNC_FILES) $(H_PRIVATE_TYPE_FILES) $(header_tests)
2021-05-11 12:56:41 +02:00
2021-05-12 02:16:45 +02:00
export qmckl_f qmckl_h srcdir
2021-05-11 11:45:49 +02:00
2021-05-19 00:28:56 +02:00
CLEANFILES+=$(test_qmckl_f) $(src_qmckl_f) $(test_qmckl_o) $(src_qmckl_o)
2021-05-12 00:22:51 +02:00
2021-05-12 02:16:45 +02:00
htmlize_el=share/doc/qmckl/html/htmlize.el
2021-05-11 11:45:49 +02:00
2021-05-12 02:16:45 +02:00
include generated.mk
2021-05-11 11:45:49 +02:00
2021-05-12 01:51:26 +02:00
ln_s_verbose = $(ln_s_verbose_@AM_V@)
ln_s_verbose_ = $(ln_s_verbose_@AM_DEFAULT_V@)
ln_s_verbose_0 = @echo " LN_S $<";
2021-05-12 00:22:51 +02:00
htmldir = $(docdir)/html
2021-05-12 02:47:55 +02:00
dist_html_DATA = $(HTML_FILES) \
share/doc/qmckl/html/index.html \
$(srcdir)/share/doc/qmckl/html/qmckl.css
2021-05-12 00:22:51 +02:00
textdir = $(docdir)/text
2021-05-12 01:51:26 +02:00
dist_text_DATA = $(TEXT_FILES)
2021-05-12 00:22:51 +02:00
2021-05-12 01:51:26 +02:00
$(test_qmckl_fo): $(test_qmckl_f)
2021-05-12 02:16:45 +02:00
$(test_qmckl_f): $(srcdir)/$(qmckl_f)
cp $(srcdir)/$(qmckl_f) $(test_qmckl_f)
2021-05-11 11:45:49 +02:00
2021-05-12 01:51:26 +02:00
$(src_qmckl_fo): $(src_qmckl_f)
2021-05-12 02:16:45 +02:00
$(src_qmckl_f): $(srcdir)/$(qmckl_f)
cp $(srcdir)/$(qmckl_f) $(src_qmckl_f)
2021-05-10 23:56:26 +02:00
2021-05-12 02:16:45 +02:00
share/doc/qmckl/html/index.html: share/doc/qmckl/html/README.html
$(ln_s_verbose)cd share/doc/qmckl/html/ && \
2021-05-13 00:02:13 +02:00
rm -rf index.html && \
$(LN_S) README.html index.html
2021-05-12 00:22:51 +02:00
2021-05-10 23:56:26 +02:00
2021-05-12 02:47:55 +02:00
html: $(dist_html_DATA)
text: $(dist_text_DATA)
2021-05-12 02:16:45 +02:00
doc: html text
2021-05-10 23:56:26 +02:00
2021-05-12 01:51:26 +02:00
if QMCKL_DEVEL
dist_src_DATA = $(ORG_FILES) $(TANGLED_FILES) $(EXPORTED_FILES)
2021-05-19 00:28:56 +02:00
BUILT_SOURCES = $(C_FILES) $(F_FILES) $(FH_FUNC_FILES) $(FH_TYPE_FILES) $(H_FUNC_FILES) $(H_TYPE_FILES) $(H_PRIVATE_FUNC_FILES) $(H_PRIVATE_TYPE_FILES) $(qmckl_f) $(qmckl_h) $(header_tests)
2021-05-12 01:51:26 +02:00
2021-05-19 00:28:56 +02:00
CLEANFILES += $(BUILT_SOURCES) $(C_TEST_FILES) $(F_TEST_FILES) $(TANGLED_FILES) $(C_TEST_FILES) $(F_TEST_FILES) $(qmckl_f) $(qmckl_h) $(HTML_FILES) $(TEXT_FILES) share/doc/qmckl/html/index.html $(EXPORTED_FILES) $(header_tests)
2021-05-12 01:51:26 +02:00
EXTRA_DIST += \
tools/build_doc.sh \
2021-05-12 23:18:22 +02:00
tools/build_makefile.py \
2021-05-12 01:51:26 +02:00
tools/build_qmckl_f.sh \
tools/build_qmckl_h.sh \
tools/config_doc.el \
tools/config_tangle.el \
tools/init.el \
tools/install_htmlize.sh \
tools/lib.org \
tools/tangle.sh \
2021-05-12 02:41:29 +02:00
tools/theme.setup
2021-05-12 01:51:26 +02:00
## Silent
## ======
export_verbose = $(export_verbose_@AM_V@)
export_verbose_ = $(export_verbose_@AM_DEFAULT_V@)
2021-05-12 02:41:29 +02:00
export_verbose_0 = @echo " DOC $@";
2021-05-12 01:51:26 +02:00
tangle_verbose = $(tangle_verbose_@AM_V@)
tangle_verbose_ = $(tangle_verbose_@AM_DEFAULT_V@)
tangle_verbose_0 = @echo " TANGLE $<";
cat_h_verbose = $(cat_h_verbose_@AM_V@)
cat_h_verbose_ = $(cat_h_verbose_@AM_DEFAULT_V@)
cat_h_verbose_0 = @echo " HEADER $@";
## Rules
## =====
SUFFIXES = .f90 .h .org .c _f.f90 _func.h _type.h _private_func.h _private_type.h
$(qmckl_h): $(H_FUNC_FILES) $(H_TYPE_FILES)
$(cat_h_verbose)$(srcdir)/tools/build_qmckl_h.sh
$(qmckl_f): $(FH_FUNC_FILES) $(FH_TYPE_FILES)
$(cat_h_verbose)$(srcdir)/tools/build_qmckl_f.sh
$(htmlize_el):
$(srcdir)/tools/install_htmlize.sh $(htmlize_el)
2021-05-19 01:35:34 +02:00
tests/chbrclf.h: $(qmckl_h)
tests/n2.h: $(qmckl_h)
2021-05-19 01:35:34 +02:00
2021-05-12 23:18:22 +02:00
generated.mk: $(ORG_FILES)
2021-06-03 01:32:50 +02:00
$(PYTHON) $(srcdir)/tools/build_makefile.py
2021-05-12 23:18:22 +02:00
2021-05-19 01:49:41 +02:00
cppcheck: cppcheck.out
cppcheck.out: $(qmckl_h)
cd src/ && \
cppcheck --addon=cert -q --error-exitcode=0 \
2021-06-03 01:48:26 +02:00
--enable=all --suppress="unusedStructMember"\
--suppress="unusedFunction" \
--suppress="missingIncludeSystem" \
2021-05-19 01:49:41 +02:00
--language=c --std=c99 -rp --platform=unix64 \
-I../include *.c *.h 2>../$@
.PHONY: cppcheck
2021-05-12 01:51:26 +02:00
endif