1    /*
     2     *  Copyright 2020 by Texas Instruments Incorporated.
     3     *
     4     */
     5    
     6    /*
     7     * Copyright (c) 2020, Texas Instruments Incorporated
     8     * All rights reserved.
     9     *
    10     * Redistribution and use in source and binary forms, with or without
    11     * modification, are permitted provided that the following conditions
    12     * are met:
    13     *
    14     * *  Redistributions of source code must retain the above copyright
    15     *    notice, this list of conditions and the following disclaimer.
    16     *
    17     * *  Redistributions in binary form must reproduce the above copyright
    18     *    notice, this list of conditions and the following disclaimer in the
    19     *    documentation and/or other materials provided with the distribution.
    20     *
    21     * *  Neither the name of Texas Instruments Incorporated nor the names of
    22     *    its contributors may be used to endorse or promote products derived
    23     *    from this software without specific prior written permission.
    24     *
    25     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    26     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    27     * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    28     * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    29     * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    30     * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    31     * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    32     * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    33     * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    34     * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    35     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    36     */
    37    
    38    /*!
    39     *  ======== ITarget.xdc ========
    40     *  Common settings for all clang Arm targets
    41     */
    42    metaonly interface ITarget inherits ti.targets.arm.elf.IArm {
    43    
    44        override readonly config string rts = "ti.targets.arm.rtsarm";
    45        override config String stdInclude   = "ti/targets/arm/clang/std.h";
    46    
    47        override readonly config xdc.bld.ITarget.Model model = {
    48            endian: "little",
    49            codeModel: "thumb2",
    50            shortEnums: true
    51        };
    52    
    53        override readonly config xdc.bld.ITarget2.Command ar = {
    54            cmd:  "tiarmar -c",
    55            opts: "-q"
    56        };
    57    
    58        /*!
    59         *  ======== ccOpts ========
    60         *  User configurable compiler options.
    61         */
    62        override config xdc.bld.ITarget2.Options ccOpts = {
    63            prefix: "",
    64            suffix: ""
    65        };
    66    
    67        /*!
    68         *  ======== ccConfigOpts ========
    69         *  User configurable compiler options for the generated config C file.
    70         */
    71        override config xdc.bld.ITarget2.Options ccConfigOpts = {
    72            prefix: "$(ccOpts.prefix)",
    73            suffix: "$(ccOpts.suffix)"
    74        };
    75    
    76        /*!
    77         *  ======== asmOpts ========
    78         *  User configurable assembler options.
    79         */
    80        override config xdc.bld.ITarget2.Options asmOpts = {
    81            prefix: "",
    82            suffix: ""
    83        };
    84    
    85        /*!
    86         *  ======== lnkOpts ========
    87         *  Linker options
    88         */
    89        override config xdc.bld.ITarget2.Options lnkOpts = {
    90            prefix: "-Wl,-q -Wl,-u,_c_int00",
    91            suffix: "-Wl,-w -Wl,-c -Wl,-m,$(XDCCFGDIR)/$@.map"
    92        };
    93    
    94        override readonly config xdc.bld.ITarget2.Command vers = {
    95            cmd:  "tiarmclang",
    96            opts: "--version"
    97        };
    98    
    99        override config string includeOpts = "";
   100    
   101        /*
   102         *  ======== profiles ========
   103         */
   104        override config xdc.bld.ITarget.OptionSet profiles[string] = [
   105            ["debug", {
   106                compileOpts: {
   107                    copts: "-g",
   108                    defs:  "-D_DEBUG_=1"
   109                }
   110            }],
   111            ["release", {
   112                compileOpts: {
   113                    copts: "-g -Oz"
   114                }
   115            }],
   116            ["coverage", {
   117                compileOpts: {
   118                    copts: "-g -fprofile-instr-generate -fcoverage-mapping"
   119                },
   120                linkOpts: "-fprofile-instr-generate -fcoverage-mapping"
   121            }],
   122        ];
   123    }
   124    /*
   125     *  @(#) ti.targets.arm.clang; 1, 0, 0,; 9-3-2020 14:51:19; /db/ztree/library/trees/xdctargets/xdctargets-w19/src/ xlibrary
   126    
   127     */
   128