Skip to content
Snippets Groups Projects
Commit 8b2a4ca3 authored by Jonathan Schöbel's avatar Jonathan Schöbel
Browse files

docs: added compilation section

parent a6a6a049
No related branches found
No related tags found
No related merge requests found
......@@ -82,29 +82,6 @@ todo.txt:
General:
Compilation:
For compilation make is used.
The project implements a library and a small demo program,
which depends on the library.
For compiling and linking libtool is used, this way it also
supports both static and dynamic linking.
When compiling only the central header file can be included,
which takes care of including the other header files in the
right order. To prevent accidental inclusion, there are header
inclusion guards. If you need to include special stuff and also
depend on the internals, which is discouraged, the macro
SEFHT_COMPILATION has to be defined. This is also done, when
compiling the library itself, but also for compiling the tests,
as they also test a lot of implementation details. This is
needed, to distinguish a proper working function from a function
just pretending and doing nothing, or worse a function, that
results in corrupt data, which might not be detected by calling
other exported methods, which might not fail, or are themselves
buggy. Testing the later would defy the concept of unittests.
Thus, the easiest way to test for a proper working function,
is to test for the internal state.
To also save the instructions for the call, which are a lot of
overhead now, link time optimization is turned on. (-flto)
Error handling:
Error handling is done by the status structure. The name was
......
......@@ -35,6 +35,7 @@ guide for users of SeFHT, for those another manual will be written.
@menu
* Introduction::
* Overview::
* Index::
@end menu
......@@ -164,6 +165,52 @@ the future, as SeDOMA is more pronounceable, which is why it was called
that way.
@node Overview
@chapter Overview
@node Dependencies
@section Dependencies and Build Environment
@subsection Language, Build Tools, etc.
SeFHT is a library written in C. Compilation is coordinated by make.
The projects makes uses of the GNU Autotools, namely
Autoconf, Automake and Libtool. Documentation is created using
GNU Texinfo. The used testing framework is check.
For static code analysis splint is used, but not very actively.
The project implements a library and a small demo program (sefht_demo),
which uses some base functionality of the library.
@subsection Compilation
For compiling and linking libtool is used, this way the correct flags
for both static and dynamic linking are added depending on the platform.
This can be configured using configure.
When compiling against libsefht, only the central header file
(sefht/sefht.h) should be included. It takes care of including other
header files in the right order.
To prevent accidental inclusion, there are header inclusion guards.
To disable these inclusion guards, the macro SEFHT_COMPILATION is
defined. If another program does this, then it can be depended on the
internals, which is discouraged.
This macro is also defined for compiling the tests, as they also test a
lot of implementation details. This is done, to distinguish a proper
working function from a function just pretending and doing nothing,
or worse a function, that results in corrupt data, which might not be
detected by calling other exported methods, which might not fail, or
are themselves buggy.
Testing the later would defy the concept of unittests. Thus, the
easiest way to test for a proper working function, is to test for the
internal state.
@subsection Compilation flags
As there are some wrapper functions, inlining across compilation units
is desired, so link time optimization is turned on. (-flto)
@node Index
@unnumbered Index
......
......@@ -36,8 +36,8 @@ FILE_NAME_3=84;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fp
FILE_NAME_4=73;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2FMakefile.am;0;8
FILE_NAME_5=19;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Fmain.c;0;8
FILE_NAME_6=85;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2FMakefile.am;0;8
FILE_NAME_7=6799;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fsefht.texi;0;8
FILE_NAME_8=31034;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fcommit_messages.txt;0;8
FILE_NAME_7=8642;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fsefht.texi;0;8
FILE_NAME_8=3883;None;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fdocs%2Fcommit_messages.txt;0;8
FILE_NAME_9=1867;Make;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2FMakefile.am;0;8
FILE_NAME_10=18;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2Fsefht%2Fcms.c;0;8
FILE_NAME_11=18;C;0;EUTF-8;1;1;0;%2Fhome%2Fjonathan%2FDokumente%2Fprojekte%2Fprgm%2Finternet%2Fweb%2FSeFHT%2Fsrc%2Flib%2Fsefht%2Fcms.h;0;8
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment