@copying
Manual for Ocera Make System (OMK) version $Id$
-Copyright @copyright{} 2007, 2008 Michal Sojka, Pavel Píša
+Copyright @copyright{} 2007, 2008 Michal Sojka, Pavel Pisa
@end copying
@titlepage
@end example
@end defvar
+@defvar lib_LOADLIBES
+ This variable contains a list of libraries which needs to be linked to
+ to all programs or shared libraries in this directory.
+@end defvar
+
@defvar LOADLIBES
- This variable contains a list of libraries all programs in this
- directory needs to be linked to.
+ This variable contains a list linker switches to load additional
+ libraries. You usually specify here -L and -l switches.
+
+ Note: The value of this variable is not used used by OMK for any purpose
+ other than linker invocation. Therefore dependency handling of shared
+ libraries does not work if the library is specified in LOADLIBES
+ instead of lib_LOADLIBES.
@end defvar
@defvar INCLUDES
You can instruct OMK to descend to a (sub)directory by setting the
@code{SUBDIRS} variable in @file{Makefile.omk}.
+@anchor{SUBDIRS}
@defvar SUBDIRS
This variable contains a list of directories, in which compilation
must be also invoked. Usually, names of subdirectories are used, but
Compilation is invoked in these directories before it is invoked in
the current directory.
+
+ See also @ref{AUTOMATIC_SUBDIRS}.
@end defvar
@c TODO: Write tests for this.
+@anchor{ALL_OMK_SUBDIRS}
@defvar ALL_OMK_SUBDIRS
This variable is set by OMK and can be used as the value of
@code{SUBDIRS} variable. It contains a list of all direct
@end example
@end defvar
+@anchor{AUTOMATIC_SUBDIRS}
+@defvar AUTOMATIC_SUBDIRS
+ If this variable is set to @samp{y} and @code{SUBDIRS} is not assigned
+ in @file{Makefile.omk}, then @code{SUBDIRS} is assigned a default
+ value @code{$(ALL_OMK_SUBDIRS)}.
+@end defvar
+
@node Dependency Tracking, Configuration and Conditional Compilation, Multiple Directories, OMK User's Manual
@section Dependency Tracking
@node Common Variables, , Using Configuration Parameters, Configuration and Conditional Compilation
@subsection Common Variables
-It is common practice to use @file{config.omk} to store project-wide
-settings. Here is the list of variables, which are commonly set here
-(but they can also be set elsewhere, e.g. in @file{Makefile.omk}).
+It is common practice to use @file{config.target} or @file{config.omk}
+to store project-wide settings. Here is the list of variables, which are
+commonly set here (but they can also be set elsewhere, e.g. in
+@file{Makefile.omk}).
You can easily ``reconfigure'' your project by changing the
@file{config.omk} file. It is useful to have several configurations
@node OMK Development, Variable Index, Original README, Top
@chapter OMK Development
+This section is far from complete. Its purpose is to document internals
+of @file{Makefile.rules} as well as other things needed only by people
+who hack OMK itself.
+
+@section Passes
+
+A pass is created by instantiation of @code{omk_pass_template} with
+@var{pass-name} as one of arguments. This defines several targets which
+are described here:
+@table @code
+@item @var{pass-name}
+Target used to invoke the individual pass either from command line or
+from inside of @file{Makefile.rules}.
+
+@item @var{pass-name}-submakes
+Invoked recursively from @var{pass-name}. The reason for this is the
+fact that
+
+@item @var{pass-name}-this-dir
+This target calls make recursively once again with @var{pass-name}-local
+target, which does the real-work. Make's working directory is set to the
+corresponding directory in @file{_build} tree and the -local
+
+@item @var{pass-name}-@var{dirname}-subdir
+This target is responsible for recursive invocation of @command{make} in
+subdirectories specified in @code{@ref{SUBDIRS}} variable.
+@end table
@node Variable Index, , OMK Development, Top
@unnumbered Variable Index