Build: Add build support for IPU platforms in SMP-mode
[gstreamer-omap:sysbios-rpmsg.git] / src / config.bld
1 /*
2  * Copyright (c) 2011-2012, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * *  Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  *
12  * *  Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * *  Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 /*
33  *  ======== config.bld ========
34  *  Sample Build configuration script
35  */
36
37 /* Exported tools locations to supercede defaults */
38 var arm_cgtools_rootdir = java.lang.System.getenv("TMS470CGTOOLPATH");
39 var c6x_cgtools_rootdir = java.lang.System.getenv("C6000CGTOOLPATH");
40 var build_smp = java.lang.System.getenv("BUILD_SMP");
41
42 /* Setup for C64T target */
43 var C64T = xdc.useModule('ti.targets.elf.C64T');
44 C64T.rootDir = c6x_cgtools_rootdir;
45 C64T.ccOpts.suffix += " -mi10 -mo -pds=71";
46 C64T.lnkOpts.prefix += " -e=ti_sysbios_family_c64p_Hwi0";
47 /* Set default platform and list of all interested platforms for c64T */
48 C64T.platforms = [
49                     "ti.platform.omap4430.dsp",
50                     "ti.platform.omap54xx.dsp",
51                 ];
52 C64T.platform = C64T.platforms[0];
53
54 /* Setup for M3 and M4 targets. M4 targets are still built in M3 mode. */
55 var M3 = xdc.useModule('ti.targets.arm.elf.M3');
56 M3.rootDir = arm_cgtools_rootdir;
57 M3.ccOpts.suffix += " --embed_inline_assembly -ms -pds=71";
58 M3.lnkOpts.prefix += " --retain=.resource_table";
59 M3.lnkOpts.prefix += " --cinit_compression=off";
60
61 /* Default platforms for M3 in non-SMP mode */
62 var regPlatforms = [
63                         "ti.platform.omap4430.core0",
64                         "ti.platform.omap4430.core1",
65                         "ti.platform.omap54xx.core0",
66                         "ti.platform.omap54xx.core1",
67                    ];
68
69 /* Default platforms for M3 in SMP mode */
70 var smpPlatforms = [
71                         "ti.platform.omap4430.ipu",
72                         "ti.platform.omap54xx.ipu",
73                    ];
74
75 /* Set default platform and list of all interested platforms for M3 */
76 if (build_smp == null || build_smp == "0") {
77     /* Helps boot times, plus unmasks issues w/ uninit'd vars */
78     M3.lnkOpts.prefix +=  " --zero_init=off";
79     M3.platforms = regPlatforms;
80 }
81 else {
82     M3.platforms = smpPlatforms;
83 }
84 M3.platform = M3.platforms[0];
85
86 if (c6x_cgtools_rootdir != null && c6x_cgtools_rootdir != "" &&
87     (build_smp == null || build_smp == "0")) {
88     Build.targets.$add(C64T);
89 }
90 if (arm_cgtools_rootdir != null && arm_cgtools_rootdir != "") {
91     Build.targets.$add(M3);
92 }
93
94 /* Eliminate profiles that aren't 'debug' or 'release' */
95 for (var t = 0; t < Build.targets.length; t++) {
96     for (prof in Build.targets[t].profiles) {
97         if ((prof != "debug") && (prof != "release")) {
98             delete Build.targets[t].profiles[prof];
99         }
100     }
101 }