summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Ring <cring@ti.com>2013-09-10 20:54:08 -0700
committerChris Ring <cring@ti.com>2013-09-11 14:17:16 -0700
commit75cf36aa6fcc129ad6dfdd8e7fc8f3faf7ad2324 (patch)
tree975df0fdee6c65d5b0ebe2929b2f56b49841a416
parent7610394a7901b753ea4f2ba938ce96a42964420b (diff)
downloadipc-75cf36aa6fcc129ad6dfdd8e7fc8f3faf7ad2324.tar.gz
Build: Enable builds without SMP support
Some customers (including the TI RTOS SDK) do not use SMP BIOS and therefore don't require the libraries. To improve build times and reduce the disk size for these users, a new variable, BIOS_SMPENABLED, was created in products.mak. Its default value is 1 (enabled), which maintains the behavior of previous releases. Setting it to 0 disables the build of SMP-enabled libraries. Note that some platforms require SMP libraries to be built, otherwise their test executables may fail to build. This resolves SDOCM00103413.
-rw-r--r--ipc-bios.bld23
-rw-r--r--ipc-bios.mak1
-rw-r--r--products.mak5
3 files changed, 21 insertions, 8 deletions
diff --git a/ipc-bios.bld b/ipc-bios.bld
index 1a7026b..b2e455f 100644
--- a/ipc-bios.bld
+++ b/ipc-bios.bld
@@ -113,15 +113,8 @@ var lnkOpts = {
" --cinit_compression=off"
};
-/* Enable building SMP-BIOS enabled libraries for targets that support it */
-if (Pkg.name.match(/^ti\.sdo\.(ipc|utils)/)) {
- xdc.module("ti.targets.arm.elf.M3").profiles["smp"] =
- xdc.module("ti.targets.arm.elf.M3").profiles["debug"];
- xdc.module("ti.targets.arm.elf.M4").profiles["smp"] =
- xdc.module("ti.targets.arm.elf.M4").profiles["debug"];
-}
-
var platform = "";
+var smpEnabled = true;
/* initialize local vars with those set in xdcpaths.mak (via XDCARGS) */
for (arg = 0; arg < arguments.length; arg++) {
@@ -135,6 +128,11 @@ for (arg = 0; arg < arguments.length; arg++) {
platform = configParts[0].split("=")[1];
continue;
}
+ else if (configParts[0].split("=")[0] == "BIOS_SMPENABLED") {
+ // print("FOUND SMP_ENABLED ARG - " + configParts[0]);
+ smpEnabled = configParts[0].split("=")[1].match(/^1$/);
+ continue;
+ }
/*
* Get the compiler's installation directory.
* For "ti.targets.elf.C674=/vendors/c6x/7.2.0", we get "/vendors/c6x/7.2.0"
@@ -227,6 +225,15 @@ for (arg = 0; arg < arguments.length; arg++) {
Build.targets.$add(target);
}
+if (smpEnabled) {
+ /* Enable building SMP-BIOS enabled libraries for targets that support it */
+ if (Pkg.name.match(/^ti\.sdo\.(ipc|utils)/)) {
+ xdc.module("ti.targets.arm.elf.M3").profiles["smp"] =
+ xdc.module("ti.targets.arm.elf.M3").profiles["debug"];
+ xdc.module("ti.targets.arm.elf.M4").profiles["smp"] =
+ xdc.module("ti.targets.arm.elf.M4").profiles["debug"];
+ }
+}
/* lib/ is a generated directory that 'xdc clean' should remove */
Pkg.generatedFiles.$add("lib/");
diff --git a/ipc-bios.mak b/ipc-bios.mak
index f4072cd..de0628e 100644
--- a/ipc-bios.mak
+++ b/ipc-bios.mak
@@ -73,6 +73,7 @@ include ./products.mak
#
XDCARGS= \
PLATFORM=\"$(PLATFORM)\" \
+ BIOS_SMPENABLED=\"$(BIOS_SMPENABLED)\" \
ti.targets.C28_large=\"$(ti.targets.C28_large)\" \
ti.targets.C28_float=\"$(ti.targets.C28_float)\" \
ti.targets.C64P=\"$(ti.targets.C64P)\" \
diff --git a/products.mak b/products.mak
index e418d2f..58418df 100644
--- a/products.mak
+++ b/products.mak
@@ -91,6 +91,11 @@ DEVICE ?= _device_
XDC_INSTALL_DIR ?= $(DEPOT)/_your_xdctools_install_
BIOS_INSTALL_DIR ?= $(DEPOT)/_your_bios_install_
+# Do you want to build SMP-enabled libraries (if supported for your target)?
+# Set to either 0 (disabled) or 1 (enabled)
+#
+BIOS_SMPENABLED=1
+
# Path to various cgtools
#
ti.targets.C28_large ?=