opm-simulators/doc/handbook/new-folder.tex
Andreas Lauser 84becd65d2 remove the code of the IMPET ("decoupled") models
there was no interest in using them and the maintainance burden grew
pretty large as the Dumux and eWoms code-bases continued to diverge.
2013-07-08 20:36:22 +02:00

89 lines
3.1 KiB
TeX

\chapter{Creating a new directory for source code}
In this section, we describe how setting up a new directory for source
code. In fact, it is very easy to create a new directory, but getting
\Dune build system to recognize the new folder takes some steps which
will be explained in more detail below:
\begin{itemize}
\item Create new directory with content. Quite often an existing
directory can be used as a base for the new one.
\item Adapt \texttt{Makefile.am} in the new directory and add this
direcory to the \texttt{SUBDIRS} list of the \texttt{Makefile.am} in
the directory above the one which you just created.
\item Adapt \texttt{configure.ac} in the \eWoms base directory (the
directory to which you checked out or unpacked the \eWoms source
code, probably \texttt{ewoms})
\item Run the command \texttt{automake} in the \eWoms base directory.
\item Re-compile \eWoms by typing \texttt{make} in the \eWoms base
directory.
\end{itemize}
\noindent In more detail:
\textbf{First} of all, the new directory including all relevant files
needs to be created (see section \ref{tutorial-coupled} for a
description of how to define problems).
\textbf{Second}, a new \texttt{Makefile.am} for the new directory
needs to be created. It is good practice to simply copy and modify an
existing file. For example, the file \texttt{tutorial/Makefile.am}
looks as follows:
\begin{verbatim}
# programs just to build when "make check" is used
check_PROGRAMS = tutorial_coupled
noinst_HEADERS= *.hh
EXTRA_DIST = CMakeLists.txt
tutorial_coupleddir = $(datadir)/ewoms/tutorial
tutorial_coupled_SOURCES = tutorial_coupled.cc
tutorial_coupled_DATA = $(tutorial_coupled_SOURCES)
include $(top_srcdir)/am/global-rules
\end{verbatim}
All occurrences of \texttt{tutorial\_coupled} need to be replaced by
the name of the new project, e.g. \texttt{new\_project}. At least if
the name of the source file as well as the name of the new project are
\texttt{new\_project}.
\textbf{Third}: In the parent directory of the directory which you
created, there is also a \texttt{Makefile.am}. In this file the
sub-directories are listed. As you introduced a new sub-directory, it
needs to be included there. In this case, the name of the new
directory is \texttt{new\_project}.
\begin{verbatim}
...
SUBDIRS = doc ewoms m4 test tutorial new_project
...
\end{verbatim}
\textbf{Fourth}: In \eWoms base directory there is a file
\texttt{configure.ac}. In this file, the respective Makefiles are
listed. After a line reading
\texttt{AC\_CONFIG\_FILES([Makefile}
\noindent a line, declaring a new Makefile, needs to be added. The
Makefile itself will be generated automatically from the
\texttt{Makefile.am} file which you just generated. For keeping track
of the included files, it is adviced to insert new Makefiles in
alphabetical order. The new line could read:
\texttt{new\_project/Makefile}
\textbf{Fifth}: Run the command \texttt{automake} in the \eWoms base
directory.
\textbf{Sixth}: Re-compile \eWoms as described in Section \ref{install}.
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "ewoms-handbook"
%%% End: