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
Commits on Source (1743)
Makefile
Makefile.in
config.guess
config.h.in
config.log
config.status
config.h
config.lt
config.sub
configure
configure
aclocal.m4
autom4te.cache
depcomp
install-sh
missing
mkinstalldirs
libtool
dune-common.pc
semantic.cache
configure.lineno
stamp-h1
dune-common-*.tar.gz
dune-common-?.?
ltmain.sh
.libs/
.deps/
*.la
*.o
*.lo
test-driver
dependencies.m4
dune.css
build-cmake/
# ignore all build folders
/build*/
# ignore backup files
*~
# ignore Python files
*.pyc
---
debian:9--gcc:
image: duneci/base:9
script: duneci-standard-test
debian:9--clang:
image: duneci/base:9
script: duneci-standard-test --opts=/duneci/opts.clang
debian:8--gcc:
image: duneci/base:8
script: duneci-standard-test
debian:8-backports--clang:
image: duneci/base:8-backports
script: duneci-standard-test --opts=/duneci/opts.clang
ubuntu:16.04--gcc:
image: duneci/base:16.04
script: duneci-standard-test
ubuntu:16.04--clang:
image: duneci/base:16.04
script: duneci-standard-test --opts=/duneci/opts.clang
Benjamin Bykowski <benjamin.bykowski@rwth-aachen.de> Convex Function <329364@wright.mathepool.rwth-aachen.de>
......@@ -2,7 +2,7 @@
project("dune-common" C CXX)
# general stuff
cmake_minimum_required(VERSION 2.8.6)
cmake_minimum_required(VERSION 3.1.0)
# make sure our own modules are found
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/modules")
......@@ -16,12 +16,15 @@ include(DuneMacros)
# start a dune project with information from dune.module
dune_project()
dune_enable_all_packages(
MODULE_LIBRARIES dunecommon
)
# add subdirectories to execute CMakeLists.txt there
add_subdirectory("lib")
add_subdirectory("share")
add_subdirectory("dune")
add_subdirectory("bin")
add_subdirectory("m4")
add_subdirectory("am")
add_subdirectory("doc")
add_subdirectory("cmake/modules")
add_subdirectory("cmake/scripts")
......
Contributing to the Dune Core Modules
=====================================
You've squashed an annoying bug or implemented a nifty new feature in DUNE?
And you're willing to share your improvements with the community? This page
explains how to get those changes to us and what to take care of.
Take a look at the DUNE coding style
------------------------------------
Your work will enjoy much smoother sailing if you take a look at the [Coding
Style](https://dune-project.org/dev/codingstyle/) and try to stick to it with
your changes. We understand that everyone has their personal preferences and
that there is no such thing as the *right* coding style (in the end, it's a
matter of taste), but DUNE is a pretty large project, and a consistent way of
doing things really helps a lot when trying to find your way around a body of
code as big as DUNE.
Make sure to install the Whitespace Hook before starting to work, because
our repositories enforce certain rules about whitespace and will not accept
commits that violate those rules. And a developer will be much more motivated
to merge your patch if doing so does not involve fixing a bunch of tab-based
indentations that you inadvertently added as part of your changes
Use Git to your advantage
-------------------------
We know, Git can be a bit daunting at first, but trust us, it's really worth
investing half an hour to learn the basics! Even though you don't have any
commit rights to the DUNE repositories, Git still allows you to create local
commits on your machine, avoiding the usual ugly business of creating backup
copies, copying around code in files, commenting and uncommenting variants etc.
And when you're done and send the changes to us, we can simply import those
commits into our repositories. That saves a lot of time and when your changes
can be applied in five minutes using two or three commands, chances are a
developer will much more easily find the time to do so. Git is really popular,
so there are tons of tutorials all over the web. Here are some pointers:
* http://try.github.io/ is a very quick, hands-down introduction
to Git that allows you to try out Git directly in your browser.
Requires a GitHub account to continue at some point, though.
* http://git-scm.com/book is a very well-written and detailed resource
for all things Git. Chapter 2 is a great introduction to Git that also explains
a little bit how Git works, which really helps to reduce the number of
*WTF just happened?* moments. ;-)
* http://eagain.net/articles/git-for-computer-scientists/ is a short and
sweet explanation of what Git does at a fundamental level - just the thing for
scientists! ;-)
* http://git-scm.com/doc/ext is a collection of both introductory and
more in-depth Git resources.
Whatever you do, make sure to set your Git identity so that the commits tell us who authored them!
Getting the changes to us
-------------------------
You should get your changes to us in the following way:
* Get an account for [our GitLab instance](http://gitlab.dune-project.org).
* Fork the core module that you want to contribute to, just
as you would do on GitHub.
* Push your changes to your fork on some branch.
* Open a merge request using the branch you pushed your changes
to as the source branch and the master of the core module repository
as the target branch. GitLab will usually ask you about opening
a merge request if you browse it right after pushing to some branch.
* Follow the discussion on the merge request to see what improvements
should be done to the branch before merging.
If you have any questions or complaints about this workflow of
contributing to Dune, please rant on the
[dune-devel mailing list](mailto:dune-devel@dune-project.org).
This diff is collapsed.
LICENSE.md
\ No newline at end of file
......@@ -14,8 +14,8 @@ list of available modules.
To compile the modules Dune has to check several components of
your system and whether prerequisites within the modules are met. For
the ease of users we have designed a custom build system on top of the
automake tools. Run
the ease of users we have designed a custom build system on top of CMake.
Run
./dune-common/bin/dunecontrol all
......@@ -37,7 +37,7 @@ need to run
to install Dune (you may need root-permissions for the install
part depending on the prefix set)
A more comprehensive introduction to the build system can be found in [2].
A more comprehensive introduction to the build system can be found in [0].
Passing options to the build process
------------------------------------
......@@ -45,50 +45,31 @@ Passing options to the build process
Using the dunecontrol script the following atomic commands can be
executed:
- autogen (runs autogen in each module, only needed when downloaded
via svn)
- configure (runs the configure tests for each module
- exec (executes a command in each module directory)
- make (runs make for each module)
- update (updates the svn version)
- configure (runs the CMake configuration tests for each module)
- exec (executes a command in each module source directory)
- bexec (executes a command in each module build directory)
- make (builds each module)
- update (updates the Git or Subversion version)
The composite command all simply runs autogen, configure and make for
The composite command all simply runs configure and make for
each module.
As it is often not convenient (and for the target all impossible) to
specify the options for each command as parameters after the call, one
can pass the options via file specified by the --opts=<file>
option. For each atomic command one specify the options via a ine
<COMMANY_UPPERCASE>_FLAGS=<flags> # e.g.: MAKE_FLAGS=install
The available options for make and svn are the natural ones. The
configure commands available can be found by issuing
dunecontrol --only=dune-common configure --help
and for autogen by
dunecontrol --only=dune-common autogen --help
(In the svn version this has to be calles after running autogen.)
As it is often not convenient to specify the desired options after
the duncontroll call, one can pass the options via a file specified
by the --opts=<file> option. Specify the options via the variable
CMAKE_FLAGS=<flags>
An example of an options file is
# use a special compiler (g++ version 3.4) and install to a custom
# directory, default is /usr/local/bin
CONFIGURE_FLAGS="CXX=g++-3.4 --prefix='/tmp/Hu Hu'"
# Set the default target of make to install. Now the call above will
# not just build the DUNE modules but also install it
MAKE_FLAGS=install
# The default versions of automake and autogen are not sufficient
# therefore we need to specify what versions to use
AUTOGEN_FLAGS="--ac=2.59 --am=1.9
# use a special compiler (g++ version 5.0),
# install to a custom directory, default is /usr/local/bin,
# disable the external library SuperLU,
# and use Ninja-build instead of make as the build-tool
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=g++-5 -DCMAKE_INSTALL_PREFIX='/tmp/HuHu' -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU=true -GNinja"
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
0. https://www.dune-project.org/doc/installation
1. https://dune-project.org/releases/
This diff is collapsed.
# $Id$
# we need the module file to be able to build via dunecontrol
EXTRA_DIST= CMakeLists.txt dune.module dune-common-config.cmake.in dune-common-version.cmake.in
# don't follow the full GNU-standard
# we need automake 1.9 or newer
AUTOMAKE_OPTIONS = foreign 1.9
SUBDIRS = cmake dune lib doc bin m4 am
# use configured compiler for "make distcheck"
DISTCHECK_CONFIGURE_FLAGS = CXX="$(CXX)" CC="$(CC)" --enable-parallel=@ENABLE_PARALLEL@ MPICC="$(MPICC)"
include $(top_srcdir)/am/global-rules
include $(top_srcdir)/am/top-rules
# Distribute and install config.h.cmake
configdir = $(datadir)/dune-common
dist_config_DATA = config.h.cmake
Preparing the SVN-sources
=========================
Additional to the software mentioned in README you'll need the
following programs installed on your system:
automake >= 1.5
autoconf >= 2.50
libtool
For the documentation to build you'll need doxygen, wml, convert and latex
installed.
Dune also features a self-test. As some components (e.g. Albert,
UG) depend on external libraries their self-tests will only run if
those libraries are found. The paths to their installation prefix
would then need to be passed via --with-...= parameters to configure.
Important! If you don't want to develop Dune itself you won't need to
provide external components! The Dune-library and -headers are
independent of other libraries, instead the applications can choose
which parts to use.
$Id$
......@@ -5,7 +5,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.
......@@ -23,14 +23,17 @@ Dependencies
dune-common depends on the following software packages
- pkg-config
- icc (C/C++) >= 7.0 or GNU C, C++ >=3.4
- GNU C, C++ >=4.9
these might also work:
icc (C/C++) >= 16.0
Clang >= 3.8
The following software is recommend but optional:
The following software is recommended but optional:
- MPI (either OpenMPI, lam, or mpich suffice)
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 +43,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
> Athe 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]
implications of this library please see their [licence page][licence]
See the file COPYING for full copying permissions.
......@@ -60,12 +63,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
0. https://www.dune-project.org/doc/installation
1. https://dune-project.org/releases/
2. https://dune-project.org/buildsystem/
3. http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license
[installation]: https://www.dune-project.org/doc/installation
[licence]: http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license
\ No newline at end of file
Makefile
Makefile.in
semantic.cache
\ No newline at end of file
install(PROGRAMS
checklog
documentation
doxygen
global-rules
headercheck
inkscape.am
latex
no-check-without-lib
sourcescheck
top-rules
webstuff
DESTINATION ${CMAKE_INSTALL_DATADIR}/am
)
# $Id$
EXTRA_DIST = CMakeLists.txt 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; \
DTAG=$(DOXYGENTAG); \
if test -f $(srcdir)/$(DOXYGENTAG); then DTAG=$(srcdir)/$(DOXYGENTAG); fi; \
if ! test -e "$$DTAG" || \
test x"`find $(top_srcdir) \( $(DOXYGEN_DEPENDON) \) -a -cnewer $$DTAG -print`" != x; \
then \
echo Running doxygen. This may take a while... ; \
$(DOXYGEN) Doxyfile > doxygen.log <&-; \
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; \
touch $(DOXYGENTAG) ; \
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: