Changeset 61 for trunk/doc/kBuilddocs.c


Ignore:
Timestamp:
Dec 14, 2003, 12:18:38 AM (22 years ago)
Author:
bird
Message:

More..

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/kBuilddocs.c

    r59 r61  
    11/* $Id$ */
    22/** @file
    3  * kBuild Documentation file with the sole purpose of giving doxygen
     3 * A kBuild Documentation file with the sole purpose of giving doxygen
    44 * something to chew on.
    55 */
    66
    77
    8 /** @page       kBuild          kBuild
    9  *
    10  * @section     kBuild_intro    Introduction
     8/** @mainpage                   kBuild
     9 *
     10 * @section     kBuild_intro            Introduction
    1111 *
    1212 * kBuild is a build system which intention is to simplify your makefiles
    13  * and to hide cross platform projects issues.
     13 * and to hide cross platform detail for projects.
    1414 *
    1515 * kBuild is layered in three tiers, first comes the instructions given in the
     
    3232 * and references to the tools to be used and such. The configuration will
    3333 * ask kBuild to load any tool configurations it needs. These configuration
    34  * files are named on the form 'tool.<toolname>.kMk'.
     34 * files are named on the form 'tool.[toolname].kMk'.
    3535 *
    3636 * The tool configuration contains callable macros and definitions for
     
    4141 *
    4242 *
    43  * @section     kBuild_makeref  Makefile Reference
     43 * @section     kBuild_makeref          Makefile Reference
    4444 *
    4545 * The make file must start with including a configuration file which sets up
     
    6767 *
    6868 *
     69 *
     70 * @subsection  kBuild_attributes   Target Attributes
     71 *
     72 * Target attributes are use to define how to build a target. Some attributes
     73 * have several specializations, like the .INCS attribute, a rule of thum is
     74 * that the more specialized attributes is given higher precedence when
     75 * ordering the result on a commandline or when used internally by kBuild.
     76 * For instance, concidering the gcc C compiler, kBuild will pass .CINCS
     77 * before .INCS.
     78 *
     79 * kBuild defines a wide range of target attributes. They might apply
     80 * differently to different main targets. See in the section for the main in
     81 * question for details on which attributes applicable to targets of that type.
     82 *
     83 * The attributes can be used on levels with different scope:
     84 *
     85 *      - The broadest scope is gained when using the attribute unqualified,
     86 *        applying it to all targets in that makefile.
     87 *
     88 *      - Qualifying the attribute with a target name, for instance like
     89 *        hello.CDEFS, applies that attribute to a target and all it's
     90 *        dependencies. The target name does not have to be a main target,
     91 *        allthough for only the main targets may be used without care to
     92 *        tool or platform specific suffixes or prefixes.
     93 *
     94 *      - Qualifying the attribute with a target name and a immediate
     95 *        dependant make that attribute apply to that dependant when
     96 *        made for that specific main target.
     97 *
     98 *
     99 * Possible target attributes:
     100 * <dl>
     101 *  <dt>.FLAGS
     102 *      <dd>Flags to pass to all tools. The flags are passed unchanged.
     103 *
     104 *  <dt>.CFLAGS
     105 *      <dd>Flags to pass to the compiler of C source files.
     106 *
     107 *  <dt>.CXXFLAGS
     108 *      <dd>Flags to pass to the compiler of C++ source files.
     109 *
     110 *  <dt>.AFLAGS
     111 *      <dd>Flags to pass to the compiler of assembly source files.
     112 *
     113 *  <dt>.JFLAGS
     114 *      <dd>Flags to pass to the compiler of java source files.
     115 *
     116 *  <dt>.RCFLAGS
     117 *      <dd>Flags to pass to the compiler of resource source files.
     118 *
     119 *  <dt>.HLPFLAGS
     120 *      <dd>Flags to pass to the compiler of help source files.
     121 *
     122 *  <dt>.IPFFLAGS
     123 *      <dd>Flags to pass to the compiler of book (OS/2 IPF) source files.
     124 *
     125 *  <dt>.LFLAGS
     126 *      <dd>Flags to pass to the linker.
     127 *
     128 *  <dt>.ARFLAGS
     129 *      <dd>Flags to pass to the librarian.
     130 *
     131 *
     132 *  <dt>.OPTS
     133 *      <dd>Symbolic options passed to compilers and linkers. kBuild defines
     134 *          (or will soon) a set of generic options used among all the tools
     135 *          which can be used for better cross tool interoperability.
     136 *
     137 *          Note that allthough generic symbolic options are a nice idea, tools
     138 *          have different capabilities, so only a very small subset might be
     139 *          valid for all tools or all tools in a tools group. kBuild will
     140 *          detect illegal options and complain about it.
     141 *
     142 *  <dt>.COPTS
     143 *      <dd>Symbolic options passed to the compiler of C source files.
     144 *
     145 *  <dt>.CXXOPTS
     146 *      <dd>Symbolic options passed to the compiler of C++ source files.
     147 *
     148 *  <dt>.AOPTS
     149 *      <dd>Symbolic options passed to the compiler of assmebly source files.
     150 *
     151 *  <dt>.JOPTS
     152 *      <dd>Symbolic options passed to the compiler of java source files.
     153 *
     154 *  <dt>.RCOPTS
     155 *      <dd>Symbolic options passed to the compiler of resource source files.
     156 *
     157 *  <dt>.HLPOPTS
     158 *      <dd>Symbolic options passed to the compiler of help source files.
     159 *
     160 *  <dt>.IPFOPTS
     161 *      <dd>Symbolic options passed to the compiler of book (OS/2 IPF) source files.
     162 *
     163 *  <dt>.LOPTS
     164 *      <dd>Symbolic options passed to the linker.
     165 *
     166 *  <dt>.AROPTS
     167 *      <dd>Symbolic options passed to the librarian.
     168 *
     169 *
     170 *  <dt>.DEFS
     171 *      <dd>Definitions to pass to compilers. The attribute contains a list
     172 *          of definitions with no -D or any other compiler option in front.
     173 *          If the definition have an value assigned use follow it by and
     174 *          equal sign and the value, no spaces before or after the equal sign.
     175 *
     176 *  <dt>.CDEFS
     177 *      <dd>Definitions to pass to the compiler of C source files.
     178 *
     179 *  <dt>.CXXDEFS
     180 *      <dd>Definitions to pass to the compiler of C++ source files.
     181 *
     182 *  <dt>.ADEFS
     183 *      <dd>Definitions to pass to the compiler of assmbly source files.
     184 *
     185 *  <dt>.RCDEFS
     186 *      <dd>Definitions to pass to the compiler of resource source files.
     187 *
     188 *
     189 *  <dt>.INCS
     190 *      <dd>Include path directives passed to compilers. The attribute contains
     191 *          a list of paths to directory which are to be searched for included
     192 *          files. The paths shall not be prefixed with any compiler options
     193 *          like -I, neither shall they be separated with ':' or ';'. Use space
     194 *          as separator between paths.
     195 *
     196 *  <dt>.CINCS
     197 *      <dd>Include path directives to pass to the compiler of C source files.
     198 *
     199 *  <dt>.CXXINCS
     200 *      <dd>Include path directives to pass to the compiler of C++ source files.
     201 *
     202 *  <dt>.AINCS
     203 *      <dd>Include path directives to pass to the compiler of assmbly source files.
     204 *
     205 *  <dt>.RCINCS
     206 *      <dd>Include path directives to pass to the compiler of resource source files.
     207 *
     208 *
     209 *  <dt>.INS
     210 *      <dd>For targets which are by default private defining this attribute
     211 *          cause that target to be installed.
     212 *
     213 *          Note! This attribute is not automatically inherited by subtargets,
     214 *          i.e. use on makefile scope means it applies to main targets, while
     215 *          using it on a target scope means that specific target and nothing
     216 *          else.
     217 *
     218 *  <dt>.INSDIR
     219 *      <dd>Which subdirectory under the installation root to put the target.
     220 *
     221 *  <dt>.PUB
     222 *      <dd>For targets which are by default private defining this attribute
     223 *          cause that target to be published.
     224 *          Note! Same as .INS note.
     225 *
     226 *  <dt>.PUBDIR
     227 *      <dd>Which subdirectory under the publish root to put the target.
     228 *
     229 *
     230 *  <dt>.NAME
     231 *      <dd>Alternative name under which to publish and install the target.
     232 *          Note! Same as .INS note.
     233 *
     234 *  <dt>.SUFF
     235 *      <dd>Suffix to append to the target name. Most subtargets have a default
     236 *          suffix and also some main targets do. This attribute set or
     237 *          overrides suffix of a target.
     238 *          Note! Same as .INS note.
     239 *          Note! Suffix differs from extension in that it includes any leading
     240 *          dot.
     241 *
     242 *  <dt>.PREF
     243 *      <dd>Prefix to append to the target name. Some targets (libraries for
     244 *          instance) have a default prefix. This attribute sets or overrides
     245 *          the prefix.
     246 *          Note! Same as .INS note.
     247 * </dl>
     248 *
     249 *
     250 *
     251 * @subsection  kBuild_makerefclues     Main Target Clues
     252 *
     253 * The main target clues are what tells kBuild what to do. This section will
     254 * detail with each of them in some detail.
     255 *
     256 *
     257 * @subsubsection  kBuild_PROGRAMS      The PROGRAMS Clue
     258 *
     259 * The PROGRAMS clue gives kBuild a list of executable image targets to be made.
     260 *
     261 *
     262 * @subsubsection  kBuild_DLLS          The DLLS Clue
     263 *
     264 * The DLLS clue gives kBuild a list of dynamic link library and shared object
     265 * library targets to be made
     266 *
     267 *
     268 * @subsubsection  kBuild_DRIVERS       The DRIVERS Clue
     269 *
     270 * The DRIVERS clue gives kBuild a list of driver module targets (OS kernel
     271 * modules) to be made.
     272 *
     273 *
     274 * @subsubsection  kBuild_LIBRARIES     The LIBRARIES Clue
     275 *
     276 * The LIBRARIES clue gives kBuild a list of object library targets to be made.
     277 *
     278 *
     279 * @subsubsection  kBuild_OBJECTS       The OBJECTS Clue
     280 *
     281 * The OBJECTS clue gives kBuild a list of object module targets to be made.
     282 *
     283 *
     284 * @subsubsection  kBuild_JARS          The JARS Clue
     285 *
     286 * The JARS clue gives kBuild a list of java archive targets to be made.
     287 *
     288 *
     289 * @subsubsection  kBuild_CLASSES       The CLASSES Clue
     290 *
     291 * The CLASSES clue gives kBuild a list of java class targets to be made.
     292 *
     293 *
     294 * @subsubsection  kBuild_OTHERS        The OTHERS Clue
     295 *
     296 * The OTHERS clue gives kBuild a list of other targets to be made.
     297 *
     298 *
     299 *
    69300 */
    70301
Note: See TracChangeset for help on using the changeset viewer.