]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ipc/ipcdev.git/blob - packages/ti/sdo/utils/Build.xdt
K3: Add support for K3 AM65XX device
[ipc/ipcdev.git] / packages / ti / sdo / utils / Build.xdt
1 %%{
2 /*
3  * Copyright (c) 2013-2018, Texas Instruments Incorporated
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * *  Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  *
13  * *  Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  *
17  * *  Neither the name of Texas Instruments Incorporated nor the names of
18  *    its contributors may be used to endorse or promote products derived
19  *    from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
28  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
31  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32  */
33 %%}
34 %%{
35 /*
36  *  ======== Build.xdt ========
37  */
38 var BIOS = xdc.module("ti.sysbios.BIOS");
39 var Build = xdc.module("ti.sdo.utils.Build");
40 var tplt = "";
42 if (((BIOS.libType == BIOS.LibType_Custom) ||
43     (BIOS.libType == BIOS.LibType_Debug)) &&
44     (Build.$private.outputDir != undefined)) {
46     if (Build.doBuild) {
47         /* generate makefile from template
48          * $args[0] = the RTSC target, so the makefile knows how to
49          *            run the compiler and archiver
50          */
51         print("generating custom ti.sdo.utils library makefile ...");
53         if (Program.build.target.$name.match(/gnu/) &&
54             (Program.build.target.name.match(/M3/) ||
55              Program.build.target.name.match(/M4/) ||
56              Program.build.target.name.match(/M4F/) ||
57              Program.build.target.name.match(/A15/) ||
58              Program.build.target.name.match(/A9/)  ||
59              Program.build.target.name.match(/A8/)  ||
60              Program.build.target.name.match(/A53F/))) {
62             tplt = xdc.loadTemplate(this.$package.packageBase +
63                     "/makefile_gccArmLto.xdt");
64         }
65         else if (Program.build.target.$name.match(/iar/)) {
66             throw new Error("IAR not supported by IPC");
67         }
68         else {
69             tplt = xdc.loadTemplate(this.$package.packageBase +
70                     "/makefile.xdt");
71         }
72     }
73     else {
74         /* Getting here means that this module should not have been
75          * instructed to build anything. It's too late to abort, so
76          * generate a makefile which will not actually build anything.
77          */
78         tplt = xdc.loadTemplate(this.$package.packageBase +
79                 "/makefile_null.xdt");
80     }
82     /* use the output directory computed when Build was "used" */
83     tplt.genFile(Build.$private.outputDir + "/makefile", this,
84             [Program.build.target]);
85 }
86 %%}