1    /* 
     2     *  Copyright (c) 2008 Texas Instruments and others.
     3     *  All rights reserved. This program and the accompanying materials
     4     *  are made available under the terms of the Eclipse Public License v1.0
     5     *  which accompanies this distribution, and is available at
     6     *  http://www.eclipse.org/legal/epl-v10.html
     7     * 
     8     *  Contributors:
     9     *      Texas Instruments - initial implementation
    10     * 
    11     * */
    12    requires xdc.services.global;
    13    requires xdc.services.intern.cmd;
    14    
    15    /*!
    16     *  ======== xdc.bld ========
    17     *  The XDC Build Model
    18     *
    19     *  This package contains the XDC Build Model and the interfaces necessary
    20     *  to extend the Build Model to handle new compiler tool chains.  The
    21     *  modules in this package (and the instances managed by these modules)
    22     *  form the Build Object Model (BOM).
    23     *
    24     *  This model enables build scripts to declare the contents of each release
    25     *  of a package.  Based on these manifests, the Build Engine generates
    26     *  makefiles that build the specified object files, libraries, and
    27     *  executables, and archive these files into specified release files.  In
    28     *  addition, the generated makefiles are also capable of running collections
    29     *  of executables with command line arguments (provided that the platforms
    30     *  support this); e.g., regression tests.
    31     *
    32     *  @a(NOTE) User supplied file names of source files, generated libraries and
    33     *           executables must be limited to portable POSIX file names. That
    34     *           means that only alphanumeric charaters, and '_', '.', and '-'
    35     *           are allowed.
    36     *
    37     *  @a(throws)
    38     *  `XDCException` exceptions are thrown for fatal errors. The following error
    39     *  codes are reported in the exception message:
    40     *
    41     *   @p(dlist)                            
    42     *      -  `xdc.bld.TARGET_CONFIG_ERROR`
    43     *           This error is reported whenever there is an  error in
    44     *           the target configuration file. Check the configuration script
    45     *           for errors. 
    46     *      -  `xdc.bld.ROOTDIR_NOT_SET`
    47     *           This error is reported when the `rootDir` property for a target
    48     *           has not been set in the target configuration script. Ensure
    49     *           that this property is set correctly in the configuration
    50     *           script.   
    51     *      -  `xdc.bld.PLATFORM_NOT_SET`
    52     *           This error is reported when either 1) the `platform` property for
    53     *           a target has not been set in the target specification or the 
    54     *           target configuration script (config.bld) or 2) the build script
    55     *           (package.bld) is setting the platform for a program to an
    56     *           invalid value.
    57     *      -  `xdc.bld.DUPLICATE_TARGET_ERROR`
    58     *           This error is reported when a same target is listed twice in 
    59     *           `Bld.targets`. Check `{@link xdc.bld.BuildEnvironment#targets}`
    60     *           to find out how `Bld.targets` is constructed. 
    61     */
    62    package xdc.bld [1,0,2] {
    63    
    64        /* interfaces to code gen tool chains (used by build engine) */
    65        interface ITarget, ITarget2;
    66    
    67        /* interface to user-supplied extensions that filter target commands */
    68        interface ITargetFilter;
    69    
    70        /* global build environment read by a build script */
    71        module    BuildEnvironment;
    72    
    73        /* package contents container populated by a build script */
    74        module    PackageContents;
    75    
    76        /* objects that can be added to the PackageContents container */
    77        module    Release;
    78        module    Library;
    79        module    Test;
    80        module    Object;
    81        module    Executable;
    82        module    Repository;
    83        module    Assembly;
    84        module    Script;
    85        
    86        /* each release has an optional script to post-process files
    87         * listed in a Manifest */
    88        module    Manifest;
    89    
    90        /* misc utils to simplify target development (ITarget implementations) */
    91        module    Utils;
    92    }
    93    /*
    94     *  @(#) xdc.bld; 1, 0, 2,290; 8-20-2010 17:20:47; /db/ztree/library/trees/xdc/xdc-v48x/src/packages/
    95     */
    96