opm-simulators/doc/handbook/new-folder.tex
Andreas Lauser 9aad4c3a7e handbook: finish update for the 2.2 release
at least content-wise. there are still quite a few language issues
left to be dealt with...
2012-10-17 16:24:38 +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} and
\ref{tutorial-decoupled} for 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_decoupled tutorial_coupled
noinst_HEADERS= *.hh
EXTRA_DIST = CMakeLists.txt
tutorial_coupleddir = $(datadir)/dumux/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 dumux 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: