Build: Enable builds without SMP support
authorChris Ring <cring@ti.com>
Wed, 11 Sep 2013 03:54:08 +0000 (20:54 -0700)
committerChris Ring <cring@ti.com>
Wed, 11 Sep 2013 21:17:16 +0000 (14:17 -0700)
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.

ipc-bios.bld
ipc-bios.mak
products.mak

index 1a7026b5791ab33b4588dfcbc4e302a7bc8914be..b2e455f19c6c1bc86f7f7e7abc7cac45f6eab30b 100644 (file)
@@ -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/");
index f4072cd4df6e2aeed9729cccd139f5c408c269ef..de0628e20244c1aa0b6860e66ac69a85cdb4a626 100644 (file)
@@ -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)\" \
index e418d2f0d0a130d80521f718d491f4e6cb0827b8..58418dfad4a1f4d979309549acce12aa4049c251 100644 (file)
@@ -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 ?=