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 Build = xdc.module('ti.sdo.ipc.Build');
39 var tplt = "";
41 if ((Build.libType == Build.LibType_Custom) ||
42 (Build.libType == Build.LibType_Debug)) {
44 /* get the specified output directory, set in module$use() */
45 var outputDir = this.$private.outputDir;
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.ipc 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 + "/makefile.xdt");
70 }
72 /* expand the template */
73 tplt.genFile(outputDir + "/makefile", this, [Program.build.target]);
74 }
75 %%}