Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jakub.both/dune-common
  • samuel.burbulla/dune-common
  • patrick.jaap/dune-common
  • tobias.leibner/dune-common
  • alexander.mueller/dune-common
  • pipping/dune-common
  • Xinyun.Li/dune-common
  • felix.schindler/dune-common
  • simon.praetorius/dune-common
  • ani.anciaux-sedrakian/dune-common
  • henrik.stolzmann/dune-common
  • matthew.t.collins/dune-common
  • liam.keegan/dune-common
  • felix.mueller/dune-common
  • ansgar/dune-common
  • dominic/dune-common
  • lars.lubkoll/dune-common
  • exadune/dune-common
  • felix.gruber/dune-common
  • govind.sahai/dune-common
  • michael.sghaier/dune-common
  • core/dune-common
  • kilian.weishaupt/dune-common
  • markus.blatt/dune-common
  • joscha.podlesny/dune-common
  • tobias.meyer.andersen/dune-common
  • andreas.thune/dune-common
  • lars.bilke/dune-common
  • daniel.kienle/dune-common
  • lukas.renelt/dune-common
  • smuething/dune-common
  • stephan.hilb/dune-common
  • tkoch/dune-common
  • nils.dreier/dune-common
  • rene.milk/dune-common
  • lasse.hinrichsen/dune-common
  • yunus.sevinchan/dune-common
  • lisa_julia.nebel/dune-common
  • claus-justus.heine/dune-common
  • lorenzo.cerrone/dune-common
  • eduardo.bueno/dune-common
41 results
Show changes
<!--
SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
-->
DUNE-library
============
......@@ -5,7 +10,7 @@ DUNE, the Distributed and Unified Numerics Environment is a modular toolbox
for solving partial differential equations with grid-based methods.
The main intention is to create slim interfaces allowing an efficient use of
legacy and/or new libraries. Using C++ techniques DUNE allows to use very
legacy and/or new libraries. Using C++ techniques DUNE allows one to use very
different implementation of the same concept (i.e. grid, solver, ...) under
a common interface with a very low overhead.
......@@ -13,7 +18,7 @@ DUNE was designed with flexibility in mind. It supports easy discretization
using methods, like Finite Elements, Finite Volume and also Finite
Differences. Through separation of data structures DUNE allows fast Linear
Algebra like provided in the ISTL module, or usage of external libraries
like blas.
like BLAS.
This package contains the basic DUNE common classes.
......@@ -22,15 +27,23 @@ Dependencies
dune-common depends on the following software packages
- pkg-config
- icc (C/C++) >= 7.0 or GNU C, C++ >=3.4
- CMake >= 3.16
- Compiler (C, C++): GNU >= 10 or Clang >= 13
- Library: GNU libstdc++ >= 10 or Clang libc++ >= 13
Other compilers may also work, but they must support C++20 to the same extent as
the above. For an overview of the C++20 features supported by these versions, see
https://en.cppreference.com/w/cpp/compiler_support. For compiling the Python
bindings, libc++ is not currently supported.
The following software is recommend but optional:
The following software is recommended but optional:
- pkg-config
- MPI (either OpenMPI, lam, or mpich suffice)
- Python >= 3.7 (interpreter and development kit for building the python bindings)
For a full explanation of the DUNE installation process please read
the installation notes [0]. The following introduction is meant for
the [installation notes][installation]. The following introduction is meant for
the impatient.
License
......@@ -40,19 +53,19 @@ The DUNE-library and headers are licensed under version 2 of the GNU
General Public License, with the so-called "runtime exception", as
follows:
As a special exception, you may use the DUNE source files as part
of a software library or application without restriction.
Specifically, if other files instantiate templates or use macros or
inline functions from one or more of the DUNE source files, or you
compile one or more of the DUNE source files and link them with
other files to produce an executable, this does not by itself cause
the resulting executable to be covered by the GNU General Public
License. This exception does not however invalidate any other
reasons why the executable file might be covered by the GNU General
Public License.
> As a special exception, you may use the DUNE source files as part
> of a software library or application without restriction.
> Specifically, if other files instantiate templates or use macros or
> inline functions from one or more of the DUNE source files, or you
> compile one or more of the DUNE source files and link them with
> other files to produce an executable, this does not by itself cause
> the resulting executable to be covered by the GNU General Public
> License. This exception does not however invalidate any other
> reasons why the executable file might be covered by the GNU General
> Public License.
This licence clones the one of the libstc++ library. For further
implications of this library please see their licence page [3]
This license clones the one of the libstdc++ library. For further
implications of this library please see their [license page][license]
See the file COPYING for full copying permissions.
......@@ -60,12 +73,15 @@ Installation
------------
Short installation instructions can be found in file INSTALL. For the
full instructions please see [0].
full instructions please see [here][installation].
Links
-----
0. http://www.dune-project.org/doc/installation-notes.html
1. http://www.dune-project.org/download.html
2. http://dune-project.org/doc/buildsystem/buildsystem.pdf
3. http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license
0. https://www.dune-project.org/installation/installation-faq/
1. https://dune-project.org/releases/
2. https://dune-project.org/doc/buildsystem/
3. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license
[installation]: https://www.dune-project.org/installation/installation-buildsrc
[license]: https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license
Please see the Dune bugtracker at www.dune-project.org for things to do.
Makefile
Makefile.in
semantic.cache
\ No newline at end of file
# $Id$
EXTRA_DIST = inkscape.am webstuff global-rules sourcescheck \
no-check-without-lib latex checklog doxygen top-rules \
headercheck documentation
amdir = $(datadir)/dune-common/am
am_DATA = $(EXTRA_DIST)
include $(top_srcdir)/am/global-rules
# -*- Makefile -*-
# $Id$
#
# check-log
#
# This file implements the build-rules needed by the automated tests.
# "make check-log" will build the whole package and run all tests. For
# each test a log file under $(topsrc_dir)/check-log is created which
# contains the name of the test and what kind of test it was (build,
# lib, run, ...). If a test fails this is logged, but all other tests
# are still run.
#
# make OPTIONS:
# LOG_TIMING - specific command to measure the time needed for each test
# example: "make LOG_TIMING='time -p' check-log"
#
# IMPLEMENTATION: check-log depends on different targets for different
# kinds of tests. These can run idividually by calling check-log-XXX.
# Possible variants are (in order of dependence)
# - libs (build all libraries)
# - build (build all applications and tests)
# - test (run each test from $(TESTS))
# - sources (run sourcescheck in each directory)
# - headers (run headercheck for each header)
# - dir (create dir entries for database, no actual tests are run)
#
LOG_FILE = $(top_srcdir)/check-log.log
LOG_DIR = $(top_srcdir)/check-log
LOG_STORE = $(SHELL) $(DUNE_COMMON_ROOT)/bin/check-log-store $(LOG_FILE) $(LOG_DIR)
LOG_TIMING =
LOG_SET_OPTIONS = \
path=`test "$(subdir)" = "." && \
echo "/@PACKAGE_NAME@" || echo "/@PACKAGE_NAME@/$(subdir)"`; \
ppath=`dirname $$path`; \
dir=`basename $$path`
$(DUNE_COMMON_ROOT)/bin/check-log-store: $(DUNE_COMMON_ROOT)/bin/check-log-store.in
cd $(DUNE_COMMON_ROOT)/bin/ && $(MAKE) check-log-store
check-log: $(DUNE_COMMON_ROOT)/bin/check-log-store
check-log:
rm -f $(LOG_FILE)
check-log: check-log-libs
check-log: check-log-build
check-log: check-log-test
check-log: check-log-sources
check-log: check-log-headers
check-log: check-log-dir
check-log-libs: check-log-libs-recursive
check-log-build: check-log-build-recursive
check-log-test: check-log-test-recursive
check-log-sources: check-log-sources-recursive
check-log-headers: check-log-headers-recursive
check-log-dir: check-log-dir-recursive
check-log-headers-am:
$(LOG_SET_OPTIONS); \
list=`echo $(headercheck_PATTERN)`; \
test "$$list" != "$(headercheck_PATTERN)" || exit 0; \
for f in $$list; do \
echo "$(headercheck_IGNORE)" | tr ' ' '\n' | grep -q "$$f"; \
if echo "$(headercheck_IGNORE)" | tr ' ' '\n' | grep -q "$$f"; then continue; fi; \
$(LOG_TIMING) ($(MAKE) headercheck-am SILENT=0 HEADER=$$f; \
$(MAKE) headercheck-am SILENT=0 HEADER=$$f NO_CONFIG_H=1) > $(LOG_FILE) 2>&1; \
$(LOG_STORE) "headercheck" "$$f" "$$path"; \
done
check-log-sources-am:
$(LOG_SET_OPTIONS); \
$(LOG_TIMING) $(MAKE) sourcescheck-am > $(LOG_FILE) 2>&1; \
$(LOG_STORE) "sources" "Makefile.am" "$$path"
check-log-libs-am:
$(LOG_SET_OPTIONS); \
for lib in $(LTLIBRARIES); do \
$(LOG_TIMING) ($(MAKE) $$lib) > $(LOG_FILE) 2>&1; \
$(LOG_STORE) "lib" "$$lib" "$$path"; \
done;
check-log-build-am:
$(LOG_SET_OPTIONS); \
for target in $(check_PROGRAMS) $(PROGRAMS); do \
$(LOG_TIMING) ($(MAKE) $$target) > $(LOG_FILE) 2>&1; \
$(LOG_STORE) "build" "$$target" "$$path"; \
done;
check-log-test-am:
@LOG () { \
echo "$$1" > $(LOG_FILE).2; \
cat $(LOG_FILE) >> $(LOG_FILE).2; \
mv $(LOG_FILE).2 $(LOG_FILE); \
}; \
$(LOG_SET_OPTIONS); \
for tst in $(TESTS); do \
if test -f ./$$tst; then dir=./; \
elif test -f $$tst; then dir=; \
else dir="$(srcdir)/"; fi; \
echo "TEST $${dir}$$tst"; \
if $(LOG_TIMING) $(TESTS_ENVIRONMENT) $${dir}$$tst > $(LOG_FILE) 2>&1; then \
case " $(XFAIL_TESTS) " in \
*" $$tst "*) \
LOG "ERROR: XPASS ($$tst)"; \
$(LOG_STORE) "run" "$$tst" "$$path" 1 0; \
;; \
*) \
LOG "SUCCESS: PASS ($$tst)"; \
$(LOG_STORE) "run" "$$tst" "$$path" 0 0; \
;; \
esac; \
elif test $$? -ne 77; then \
case " $(XFAIL_TESTS) " in \
*" $$tst "*) \
LOG "SUCCESS: XFAIL ($$tst)"; \
$(LOG_STORE) "run" "$$tst" "$$path" 0 0; \
;; \
*) \
LOG "ERROR: FAIL ($$tst)"; \
$(LOG_STORE) "run" "$$tst" "$$path" 1 0; \
;; \
esac; \
else \
LOG "WARNING: SKIP ($$tst)"; \
$(LOG_STORE) "run" "$$tst" "$$path" 0 1; \
fi; \
done;
check-log-dir-am:
$(LOG_SET_OPTIONS); \
$(LOG_STORE) "dir" "$$dir" "$$ppath"
check-log-libs-recursive \
check-log-build-recursive \
check-log-test-recursive \
check-log-sources-recursive \
check-log-headers-recursive \
check-log-dir-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
.PHONY: check-log \
check-log-lib check-log-lib-am check-log-lib-recursive \
check-log-build check-log-build-am check-log-build-recursive \
check-log-test check-log-test-am check-log-test-recursive \
check-log-sources check-log-sources-am check-log-sources-recursive \
check-log-dir check-log-dir-am check-log-dir-recursive
# -*- Makefile -*-
# $Id: global-rules 5267 2008-09-10 10:45:42Z christi $
maintainer-clean-local: doc-clean-am
###
# build doc / web-install recursively
doc-clean-am: clean-am doc-clean-documentation doc-clean-local
doc-am: doc-all-documentation doc-local
web-install-am: web-install-local
doc-local:
doc-clean-local:
web-install-local:
web-install: web-install-recursive
doc: doc-recursive
doc-clean: doc-clean-recursive
web-install-recursive \
doc-clean-recursive \
doc-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $(subdir)/$$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
install-data-local: install-documentation
uninstall-local: uninstall-documentation
####
# "implementations"
doc-all-documentation: $(DOCFILES)
doc-clean-documentation:
-test -z "$(DOCFILES)" || rm -f $(DOCFILES)
install-documentation: $(DOCFILES) install-documentation-local
@$(NORMAL_INSTALL)
test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)"
@list='$(DOCFILES) $(DOCFILES_EXTRA)'; test -n "$(docdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \
done
uninstall-documentation: uninstall-documentation-local
@$(NORMAL_UNINSTALL)
@list='$(DOCFILES) $(DOCFILES_EXTRA)'; test -n "$(docdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(docdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(docdir)" && rm -f $$files
.PHONY: uninstall-documentation uninstall-documentation-local \
install-documentation install-documentation-local \
doc-clean-am doc-am web-install-am \
doc-local doc-clean-local web-install-local \
web-install doc doc-clean \
web-install-recursive doc-clean-recursive doc-recursive
# -*-makefile-automake-*-
doxygendir = $(docdir)/doxygen
####
# doxygen style files
if DUNEWEB
if WML
DUNEWEBDOXY = @DUNEWEBDIR@/doc/doxygen
# themeing doxygen
DOXYGENHEADER = doxy-header.html
DOXYGENFOOTER = doxy-footer.html
doxy-header.html: BASEDIR=../../..
doxy-footer.html: BASEDIR=../../..
doxy-header.html: WMLOPTS=
doxy-footer.html: WMLOPTS=
doxy-header.html: @DUNEWEBDIR@/doc/doxygen/doxy-header.wml
$(WMLCMD) -I @DUNEWEBDIR@/doc/doxygen/ @DUNEWEBDIR@/doc/doxygen/doxy-header.wml -o $(abs_builddir)/doxy-header.html
doxy-footer.html: @DUNEWEBDIR@/doc/doxygen/doxy-footer.wml
$(WMLCMD) -I @DUNEWEBDIR@/doc/doxygen/ @DUNEWEBDIR@/doc/doxygen/doxy-footer.wml -o $(abs_builddir)/doxy-footer.html
endif # WML
endif # DUNEWEB
####
# how to build doxygen documentation
# EXTRAINSTALL in the html subdirectory
DOXYGENHTMLFILES = *.html *.css *.png *.gif
DOXYGENINSTALL = $(DOXYGENHTMLFILES) ../doxygen.log ../doxyerr.log
if DOXYGEN
if BUILD_DOCS
# disable dependency tracking when working without doxygen/documentation
DOXYGENTAG = doxygen-tag
endif # BUILD_DOCS
DUNEDOXYNIZE=@DUNE_COMMON_ROOT@/bin/dunedoxynize
$(srcdir)/Doxyfile.in: FORCE
if test -f $(srcdir)/Doxylocal && test $(srcdir)/Doxylocal -nt $(srcdir)/Doxyfile.in; then \
cd $(top_srcdir) && $(DUNEDOXYNIZE); \
fi
# build doxygen when 'make doc' is called
# what files does the doxygen-generated stuff depend on (find-syntax)
DOXYGEN_DEPENDON = -name \*.cc -o -name \*.hh -o -name \*.png -o -name Doxyfile -o -name modules
# check dependency ourself to be robust
$(DOXYGENTAG): FORCE Doxyfile $(DOXYGENHEADER) $(DOXYGENFOOTER)
set -e; \
if ! test -e "$(DOXYGENTAG)" || \
test x"`find $(top_srcdir) \( $(DOXYGEN_DEPENDON) \) -a -cnewer $(DOXYGENTAG) -print`" != x; \
then \
echo Running doxygen. This may take a while... ; \
$(DOXYGEN) Doxyfile > doxygen.log <&-; \
touch $(DOXYGENTAG) ; \
if test "$$DOXYQUIET" != "1" && test -f doxyerr.log; \
then cat doxyerr.log; fi; \
if test -x "$(DUNEWEBDOXY)/update-doxygen.css"; \
then $(DUNEWEBDOXY)/update-doxygen.css $(abs_builddir)/html; fi; \
fi
doc-doxygen: $(DOXYGENTAG) $(DOXYGENHEADER) $(DOXYGENFOOTER)
else
doc-doxygen:
endif # DOXYGEN
doc-local: doc-doxygen
doxygen-html-install:
set -e; \
OLDPWD=$$PWD; \
dir=$(abs_srcdir); \
if test -f $(abs_builddir)/$(DOXYGENTAG); then dir=$(abs_builddir); fi; \
cd "$$dir/html/"; \
list=`echo $(DOXYGENHTMLFILES)`; \
cd "$$OLDPWD"; \
for p in $$list; do \
if test -f "$$dir/html/$$p"; then $(instcmd) $$dir/html/$$p $(instdir); fi; \
done;
####
# how to store doxygen in the tarball
if BUILD_DOCS
if DOXYGEN
doxygen-dist-install: $(DOXYGENTAG)
set -e; mkdir $(distdir)/html; \
$(MAKE) doxygen-html-install instcmd="cp -fp" instdir="$(distdir)/html"
set -e; dir=$(abs_srcdir); \
if test -f $(abs_builddir)/$(DOXYGENTAG); then dir=$(abs_builddir); fi; \
cp $$dir/$(DOXYGENTAG) $(distdir)/$(DOXYGENTAG)
dist-hook: doxygen-dist-install
####
# how to install doxygen
install-doxygen: $(DOXYGENTAG)
set -e; $(mkinstalldirs) $(DESTDIR)/$(doxygendir); \
pwd; \
$(MAKE) doxygen-html-install instcmd="$(install_sh_DATA)" instdir="$(DESTDIR)/$(doxygendir)"
uninstall-doxygen:
rm -rf $(DESTDIR)/$(doxygendir)
# add doxygen to documentation-installation
install-documentation-local: install-doxygen
uninstall-documentation-local: uninstall-doxygen
endif # DOXYGEN
endif # BUILD_DOCS
####
# howto install doxygen in the web page
include $(top_srcdir)/am/webstuff
if DUNEWEB
# how to install the doxygen documentation for the web site
web-install-doxygen:
if test -d $(DUNEWEBDIR) && test -r $(DUNEWEBDIR)/Make.global ; then \
pushd html; \
$(MAKE) -f $(DUNEWEBDIR)/Make.global \
EXTRAINSTALL="$(DOXYGENINSTALL)" CURDIR="$(CURDIR)/@DUNE_MOD_NAME@-html" install ; \
popd; \
fi
else
web-install-doxygen:
endif # DUNEWEB
web-install-local: web-install-doxygen
####
# how to clean the doxygen stuff
doc-clean-local: doxygen-doc-clean
dist-clean-local: doxygen-dist-clean
doxygen-dist-clean:
rm -f doxygen.log doxyerr.log $(DOXYGENTAG)
doxygen-doc-clean:
rm -rf html $(DOXYGENTAG) $(DOXYGENHEADER) $(DOXYGENFOOTER) *~
rm -f doxyerr.log doxygen.log
test ! -f Doxylocal || rm -f Doxygen.in
# nice trick from the GNU make infopage to force a rule to run
FORCE:
# -*- Makefile -*-
# $Id$
#
# this file should be included into any Makefile.am so that we can
# easily introduce new global rules. DO NOT OVERUSE!
#
# add "sourcescheck"-target testing if all source files are mentioned
include $(top_srcdir)/am/sourcescheck
# check consistency of the headers (see FS#394)
include $(top_srcdir)/am/headercheck
# add "check-log"-target to create automated build logs
include $(top_srcdir)/am/checklog
# add "doc"-target to create and clean documentation
include $(top_srcdir)/am/documentation
# -*- Makefile -*-
# $Id: sourcescheck 5183 2008-04-27 17:37:08Z christi $
headercheck_PATTERN = *.hh
# set
# headercheck_IGNORE = foo.hh
# to ignore foo.hh
hctest.o: hctest.cc
$(CXX) -I$(top_builddir) -I$(top_srcdir) -DHEADERCHECK \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) \
$(DUNEMPICPPFLAGS) $(ALL_PKG_CPPFLAGS) -c -o $@ $<
headercheck:
@if test "x$V" = "x"; then \
SILENTSTR='V=$(AM_DEFAULT_VERBOSITY)' ; \
fi; \
if test "x$SILENT" = "x1"; then \
SILENTSTR='V=0' ; \
fi; \
if test "x$SILENT" = "x0"; then \
SILENTSTR='V=1' ; \
fi; \
if test x"$$HEADER" = "x"; then \
$(MAKE) $$SILENTSTR $(AM_MAKEFLAGS) headercheck-recursive; \
else \
$(MAKE) $$SILENTSTR $(AM_MAKEFLAGS) headercheck-am; \
fi
headercheck-am:
@if test x"$$HEADER" != "x"; then \
list="$$HEADER"; \
else \
pushd "$(srcdir)" > /dev/null; \
list=`echo $(headercheck_PATTERN)`; \
popd > /dev/null; \
fi; \
test -z "$$NO_CONFIG_H" && NO_CONFIG_H=0; \
test "$$list" != "$(headercheck_PATTERN)" || exit 0; \
for f in $$list; do \
echo "$(headercheck_IGNORE)" | tr ' ' '\n' | grep -q "$$f"; \
if echo "$(headercheck_IGNORE)" | tr ' ' '\n' | grep -q "$$f"; then continue; fi; \
HEADER="$(subdir)/$$f"; \
echo "checking $$HEADER"; \
CCFILE=hctest.cc; \
OFILE=hctest.o; \
LOGFILE=hctest.log; \
rm -f $$CCFILE; \
test $$NO_CONFIG_H -ne 0 && echo " without config.h" \
|| echo "#include <config.h>" > $$CCFILE; \
echo "#include <$${HEADER}>" >> $$CCFILE; \
echo "#include <$${HEADER}>" >> $$CCFILE; \
echo "int main () { return 0; }" >> $$CCFILE; \
make $$OFILE > $$LOGFILE 2>&1; \
SUCCESS=$$?; \
if ! (test $$SUCCESS -eq 0 && test -e $$OFILE); then \
echo "Error in $$HEADER"; \
test $V -ne 1 && echo "run with V=1 to show details" || cat $$LOGFILE; \
fi; \
warnings=`grep 'warning' $$LOGFILE`; \
FOUNDWARNINGS=$$?; \
if ( test $$FOUNDWARNINGS -eq 0 && test -e $$OFILE ); then \
echo "Warnings in $$HEADER"; \
test $V -ne 1 && echo "run with V=1 to show details" || cat $$LOGFILE; \
fi; \
rm -f $$OFILE; \
rm -f $$CCFILE; \
rm -f $$LOGFILE; \
test $$SUCCESS -eq 0 || exit $$SUCCESS; \
done
headercheck-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $(subdir)/$$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
.PHONY: headercheck headercheck-recursive headercheck-am
# vim:set filetype=automake:
if INKSCAPE
.svg.png:
$(INKSCAPE) -e $@ $<
endif INKSCAPE
# -*- makefile -*-
# $Id$
# Rules for latex stuff
# rerun TEX if log-file suggests that
.tex.dvi:
export TEXINPUTS=.:$(abs_builddir):${TEXINPUTS}:; \
set -e; builddir=$$PWD; \
pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
while grep 'Rerun to get' $*.log > /dev/null ; do \
pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
done; \
if grep '^\\bibdata{' *.aux > /dev/null \
&& grep '^\\citation{' *.aux > /dev/null; \
then \
BSTINPUTS=.:$(srcdir):${BSTINPUTS}: BIBINPUTS=.:$(srcdir):${BIBINPUTS}: $(BIBTEX) $* || exit $$?; \
pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
while grep 'Rerun to get' $*.log > /dev/null ; do \
pushd $(srcdir); $(TEX) -output-directory=$$builddir </dev/null $*; popd; \
done ; \
fi
.dvi.pdf:
export TEXINPUTS=.:$(abs_builddir):${TEXINPUTS}:; \
pushd $(srcdir); \
$(DVIPDF) $(abs_builddir)/$*.dvi $(abs_builddir)/$*.pdf; \
popd
.dvi.ps:
export TEXINPUTS=.:$(abs_builddir):${TEXINPUTS}:; \
pushd $(srcdir); \
$(DVIPS) $(abs_builddir)/$*.dvi -o $(abs_builddir)/$*.ps; \
popd
TEXCLEANFILES = *.aux *.bbl *.blg *.log *.out *.toc *.dvi
clean-local: latex-clean
doc-clean-local: latex-doc-clean
latex-clean:
-test -z "$(TEXCLEANFILES)" || rm -f $(TEXCLEANFILES)
-rm -rf auto
latex-doc-clean: latex-clean
-rm -f *.pdf *.ps
# -*- Makefile -*-
# $Id$
# many tests need parts of libdune. Telling the tests to use
# previously build partial libs is possible but difficult to maintain:
# the SUBDIRS have to be very carefully defined for this to work...
# Additionally, testing with a partial lib is unrealistic.
#
# As users may try to use "make check" without a full build we
# generate a meaningful error message instead of silently failing on a
# lib-dependency
# add a new dependency to automake-internal rule
check-am: libcheck
libcheck: libcheck-FORCE
@if test ! -f $(top_builddir)/lib/libdune.la ; then \
echo ; \
echo ' libdune not built, checks will not work yet!' ; \
echo ' Run a full make to fix this' ; \
echo ; \
exit 1; \
fi
libcheck-FORCE:
.PHONY: libcheck libcheck-FORCE
# -*- Makefile -*-
# $Id$
sourcescheck_IGNORE = aclocal.m4 dependencies.m4
sourcescheck_LIST = $(SOURCES) $(DIST_SOURCES) $(HEADERS) $(DIST_HEADERS) \
$(sourcescheck_NOSOURCES) $(dist_noinst_DATA) $(EXTRA_DIST)
sourcescheck: sourcescheck-recursive
# @(for f in $(sourcescheck_LIST) fnord; do echo $$f; done) | \
# grep '\.[hc][hc]$$' | sort | uniq > header_CHECK.install
sourcescheck-am:
@echo $(sourcescheck_LIST) | tr ' ' '\n' | \
grep '\.[hcm][hc4]$$' | sort | uniq > header_CHECK.install
@(ls $(srcdir); echo $(sourcescheck_DUMMY)) | \
grep '\.[hcm][hc4]$$' | sort | uniq > header_CHECK.present
@RESULT=0; \
if diff header_CHECK.* | grep ^[\<\>] -q; then \
echo "==== WARNING ===="; \
echo "Directory: $(srcdir)"; \
echo "Files present but not installed:"; \
diff -u header_CHECK.install header_CHECK.present | \
grep -v ^+++ | grep ^+; \
echo "Files listed for install but not present:"; \
diff -u header_CHECK.install header_CHECK.present | \
grep -v ^--- | grep ^-; \
echo "==== END ===="; \
RESULT=1; \
fi; \
rm -f header_CHECK.install header_CHECK.present; \
exit $$RESULT
sourcescheck-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
echo "Making $$target in $$subdir"; \
if test "$$subdir" = "."; then \
dot_seen=yes; \
local_target="$$target-am"; \
else \
local_target="$$target"; \
fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
done; \
if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
fi; test -z "$$fail"
.PHONY: sourcescheck sourcescheck-recursive sourcescheck-am
# -*-makefile-*-
ACLOCAL_AMFLAGS=@ACLOCAL_AMFLAGS@
DUNECONTROL=@DUNE_COMMON_ROOT@/bin/dunecontrol
sourcescheck_NOSOURCES = aclocal.m4 dependencies.m4
all-am: dependencies.m4
@DUNE_MOD_NAME@.m4: dune.module
cd $(srcdir) && $(DUNECONTROL) --only=@DUNE_MOD_NAME@ m4create
moduledir = $(libdir)/dunecontrol/@DUNE_MOD_NAME@
module_DATA = dune.module
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = @DUNE_MOD_NAME@.pc
maintainer-clean-local: top-clean
# we use LT_OUTPUT, thus we might have a config.lt file -- remove it!
distclean-libtool:
-rm -f libtool config.lt
.PHONY: distclean-libtool
top-clean:
rm -f dependencies.m4
# -*- makefile -*-
# $Id$
## rules to create HTML-pages from wml-files with additional magic to
## possibly use the layout of the Dune-homepage
# if DUNEWEBDIR is set to the dune-web directory the layout and
# install-stuff from that place will be used
# CURDIR should be defined in the same way as in dune-web
####
# how to run wml
if DUNEWEB
WMLCMD = cd $(DUNEWEBDIR) && @WML@ --nocd -DROOT=$(BASEDIR)
else
WMLCMD = cd $(DUNE_COMMON_ROOT)/doc && @WML@ --nocd
endif
####
# how to build html files
if WML
.wml.html:
if test "`dirname $<`" == "."; then \
input="$(abs_srcdir)/$<"; else \
input="$<"; fi; \
$(WMLCMD) -I $(abs_srcdir) $$input -o $(abs_builddir)/$@
endif
####
# howto install into the webpage
if DUNEWEB
web-install-default: doc
if test -d $(DUNEWEBDIR) && test -r $(DUNEWEBDIR)/Make.global ; then \
for DIR in $(SUBDIRS) ; do \
$(MAKE) -C $$DIR web-install || exit 1; \
done ; \
$(MAKE) -f $(DUNEWEBDIR)/Make.global \
EXTRAINSTALL="$(EXTRAINSTALL)" CURDIR="$(CURDIR)" install ; \
fi
else
web-install-default:
endif
####
# how to clean up
web-build: $(PAGES)
web-clean:
-test -z $(PAGES) || rm -f $(PAGES)
doc-clean-local: web-clean
web-install-local: web-install-default
doc-local: web-build
Makefile
Makefile.in
.deps
semantic.cache
check-log-store
*.swp
# SPDX-FileCopyrightInfo: Copyright © DUNE Project contributors, see file LICENSE.md in module root
# SPDX-License-Identifier: LicenseRef-GPL-2.0-only-with-DUNE-exception
install(PROGRAMS
dune-add-spdx
dune-ctest
duneproject
dunecontrol
dunepackaging.py
dune-git-whitespace-hook
DESTINATION ${CMAKE_INSTALL_BINDIR})
# $Id$
# put scripts into dist-tarball
EXTRA_DIST = duneproject dunecontrol \
dunedoxynize \
mpi-config dune-autogen \
xfail-compile-tests
# ... and install some
bin_SCRIPTS = dunedoxynize duneproject dunecontrol mpi-config dune-autogen
include $(top_srcdir)/am/global-rules
#!/bin/bash
#
# patch the include statement into all Makefile.am files
#
set -e
# always start in $top_srcdir
if ! test -f configure.ac; then
echo "Wrong Directory"
echo "run from \$top_srcdir"
exit 1
fi
# list of files to patch
FILES=`find . -name Makefile.am`
# snippet to patch into Makefile.am
SNIP='include $(top_srcdir)/am/sourcescheck'
# create the grep regexp from the snip
REGEXP="^$(echo $SNIP | sed -e 's/[\$\/\(\)]/./g')\$"
# enable / disable verbose mode
VERBOSE=0
for f in $FILES; do
# only patch files that don't have the patch yet
if ! grep -q "$REGEXP" $f; then
echo patching $f
# normalize end of file
while test "$(tail -1 $f)" != ""; do
echo >> $f
done
echo $SNIP >> $f
else
if test x$VERBOSE = x1; then
echo $f already patched
fi
fi
done
#!/bin/sh
set -e
# DB format
#
# <tag> <revision> <host> <mode> <module> <path> <errors> <warnings> <log>
# parameter:
# $(LOG_FILE) $(LOG_DIR) "build" "$$target" "$$path"
host="@hostid@"
tag="@tag@"
revision="@revision@"
logfile="$1"
logdir="$2"
mode="$3"
module="`basename $4`"
path="$5"
errors="$6"
warnings="$7"
test -d $logdir || mkdir $logdir
storelog=`tempfile -d $logdir`
trap "rm -f $storelog" EXIT
if true; then
echo "TAG: $tag"
echo "REVISION: $revision"
echo "HOST: $host"
echo "MODE: $mode"
echo "MODULE: $module"
echo "PATH: $path"
if test "x$errors" != x; then
echo "ERRORS: $errors"
fi
if test "x$warnings" != x; then
echo "WARNINGS: $warnings"
fi
echo "LOG:"
cat $logfile
fi > $storelog
trap - EXIT