+The build process is managed by a large relative complex @file{Makefile} and
+a bunch of more specific Makefile-stubs (@file{*.mk} in the @file{mkfiles}
+directory).
+
+
+
+@subsection make-stubs
+All stubs are included by the main Makefile automatically, so the addition of
+algorithms should not require modifications to the Makefile.
+
+Because all stubs are included by the main Makefile you can use all features
+of your make system when writing them. Currently we use GNU make and we
+recommend using GNU make when building the crypto library.
+
+Each algorithm implementation has its own stub. A stub looks like the following:
+@verbatim
+# Makefile for AES
+ALGO_NAME := AES128_C
+
+# comment out the following line for removement of AES from the build process
+BLOCK_CIPHERS += $(ALGO_NAME)
+
+$(ALGO_NAME)_DIR := aes/
+$(ALGO_NAME)_INCDIR := gf256mul/ bcal/
+$(ALGO_NAME)_OBJ := aes_enc.o aes_dec.o aes_sbox.o aes_invsbox.o \
+ aes_keyschedule.o gf256mul.o aes128_enc.o aes128_dec.o
+$(ALGO_NAME)_TEST_BIN := main-aes128-test.o $(CLI_STD) $(BCAL_STD) \
+ bcal_aes128.o
+$(ALGO_NAME)_NESSIE_TEST := test nessie
+$(ALGO_NAME)_PERFORMANCE_TEST := performance
+@end verbatim
+
+The most important thing is defining an unambiguous name for the implementation,
+in this case it is AES128_C.
+The next step is chaining the implementation into a category. Uncategorized
+implementations will be ignored. So if you want to exclude an implementation
+from the build process you can simply comment out the line which chains it into
+a category.
+
+The following lines declare ''Attributes'' of the implementation.
+@table @var
+@item _DIR
+ defines the directory where the implementation resides
+@item _INCDIR
+ defines directorys to search for additional files
+@item _OBJ
+ defines the names of the objects which shoud be considered the implementations
+ core
+@item _TESTBIN
+ defines the names of the objects required to build the test suit
+@item _NESSIE_TEST
+ (currently unused) defines the string which should be send to the test system
+ to perform nessie standard tests
+@item _NESSIE_TEST
+ (currently unused) defines the string which should be send to the test system
+ to perform a performance tests
+@item _DEF
+ defines macros to use while compiling
+@end table
+