+ To be able to use CPU reservations AQuoSA
+ (http://aquosa.sourceforge.net) has to be installed. If you cannot
+ use AQuoSA, the framework can also be compiled without CPU support
+ (echo CONFIG_AQUOSA=n >> config.omk) or can use cgroups (echo
+ CONFIG_CPUCG=y >> config.omk). Note, that cgroups support is not
+ well tested, but we plan to work on it.
+
+3) Compile it:
+
+ make
+
+4) Test it:
+
+ make test
+
+* DIRECTORY STRUCTURE
+
+ * build/* - configuration for different build targets
+
+ * build/aquosa - default build for linux
+
+ * build/marte - build for MarteOS. Not completely supported now.
+
+ * src - all sources
+
+ * src/forb - CORBA-like middle for interprocess and inter-node
+ communication.
+
+ * src/frsh - The core of resource reservation framework.
+
+ * src/frsh-include - FRSH API headers from FRESCOR project. Our FRSH
+ framework implements this API.
+
+ * src/fosa - Operating system adaptation layer
+
+ * src/ulut - library providing generic data types and algorithms
+ (AVL trees etc.).
+
+ * src/fna - Network adaptation layer = unified API for plugging in
+ different network protocols.
+
+ * src/fwp - Communication protocol and resource management for WiFi
+ (also works with Ethernet).
+
+* MISCELLANEOUS
+
+** Advantages of OMK make system
+
+ * It is not easy to test FRSH/FORB simultaneously on multiple
+ platforms. With OMK, you can have the same sources compiled for
+ multiple platforms/targets at the same time because it uses out
+ of source directory compilation.
+ * Automatic handling of dependencies. When a file is changed,
+ only the files dependent on it are rebuilt. Developers don't
+ have to care about this.
+ * With OMK it is easy to combine multiple components/libraries (from
+ different developers) together and compile them with the same
+ configuration (e.g. PLATFORM variable). The structure of leaf
+ makefiles (Makefile for every component) is very simple and *well
+ specified*. Because of this it is easy to combine components from
+ multiple developers.
+ * OMK already supports compilation for user-space
+ programs/libraries, Linux and RTLinux modules, RTEMS and
+ several other platforms. Now we have also added support for
+ Marte. OMK works under MinGW and Cygwin, so it can be used to
+ compile for OSE. In Pisa, they already use OMK for Aquosa.
+
+** Further remarks
+
+- If you are not interested in compilation of some component (e.g .
+ because it is currently in uncompilable state), you can simply
+ delete the link to it.
+
+- It might be possible that you will need to change some configuration
+ value from config.target. You can override any variable declared
+ there in config.omk - just create it and put variable definitions to
+ it. For example, if you have MARTE installed in a different
+ directory that the one specified in config.target, you can put the
+ following in config.omk:
+
+ MARTE_PATH=/path/to/marte/
+
+- FRSH/FORB support for Marte OS is not maintained. However, if you
+ want to try it, it is not necessary to set PATH variable to GNAT
+ compiler since OMK uses full paths to call the compiler.
+
+- Since we don't want to modify the Makefiles developed for Marte OS,
+ in order to compile only a part of the tree, you cannot simply run
+ make in the desired directory, but you have to specify -f flag with
+ the path to Makefile.rules. For this reason, we recommend using omk
+ script instead of make. The script can be obtained from
+ http://rtime.felk.cvut.cz/gitweb/omk.git/blob_plain/HEAD:/omk.
+
+** FAQ
+
+- How do I debug my Makefile.omk set-up ?
+
+ Just activate verbose compilation (V=1 or V=2):
+
+ make V=1
+
+ or
+
+ make -f /path/to/Makefile.rules binary-pass V=1
+
+- How do I get back syntax highlighting in Emacs while editing .omk files ?
+
+ Just add these lines to your $(HOME)/.emacs:
+
+ (setq auto-mode-alist
+ (append '(("\.omk$" . makefile-mode))
+ auto-mode-alist))