Updates to enable Yocto parallel build
[keystone-rtos/fault_mgmt.git] / build / buildlib.xs
index 195ba15c5873a5580f6801289874acc5315a974d..d6d3811864ea4c0f8926c127b7a2fb67fde2412c 100644 (file)
@@ -7,7 +7,7 @@
  *  This file contains common routines that are used by the Fault Management 
  *  component.
  *
- * Copyright (C) 2012-2014, Texas Instruments, Inc.
+ * Copyright (C) 2012-2015, Texas Instruments, Inc.
  *****************************************************************************/
 
 /**************************************************************************
@@ -114,6 +114,8 @@ function createMake(makefile)
       
       makefile.writeLine("\n# Output for prebuilt generated libraries");
       makefile.writeLine("export LIBDIR ?= ./lib");
+      /* use sectti.exe from path */
+      makefile.writeLine("export SECTTI ?= sectti");
 
       /* Create INCDIR from XDCPATH */
     
@@ -463,21 +465,22 @@ function buildLibrary (device, libOptions, libName, target, libFiles)
     /* Create the Epilogue; which executes after all the builds are completed. 
      * This is used to generate the benchmark information for the built library. 
      * Also add the benchmarking information file to the package. */
-     /*
-    Pkg.makeEpilogue += ".libraries: benchmarking_"  + device + "_" + target.suffix + "\n";
-    Pkg.makeEpilogue += "benchmarking_" + device + "_" + target.suffix + ":";
-    Pkg.makeEpilogue += "\n\t ofd6x -x " + lldFullLibraryPath + ".a" + target.suffix + " > tmp.xml";
-    Pkg.makeEpilogue += "\n\t sectti tmp.xml > " + lldFullLibraryPath + ".a" + target.suffix +  "_size.txt";
-    Pkg.makeEpilogue += "\n\t $(RM) tmp.xml\n\n";
+
+    /* Put the temp file in object directory since javascript doesn't have a built in tmpname, 
+     * and don't want --jobs=# with # > 1 to result in collisions */
+    var libFullName = lldFullLibraryPath + ".a" + target.suffix;
+    var tempFile = libFullName + ".xml";
+    Pkg.makeEpilogue += ".libraries: " + libFullName +  "_size.txt\n";
+    Pkg.makeEpilogue += libFullName +  "_size.txt: " + libFullName + "\n";
+        Pkg.makeEpilogue += "\n\t $(C6X_GEN_INSTALL_PATH)/bin/ofd6x -x " + libFullName + " > " + tempFile;
+        Pkg.makeEpilogue += "\n\t $(SECTTI) " + tempFile + " > " + libFullName +  "_size.txt";
+        Pkg.makeEpilogue += "\n\t $(RM) " + tempFile + "\n\n";
     Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + "_size.txt";
-    */
-    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullBuildPath + ".a" + target.suffix + ".mk";
-    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix;
+    Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + ".mk";
 
     /* We need to clean after ourselves; extend the 'clean' target to take care of this. */
-    Pkg.makeEpilogue += "clean::\n";
-    Pkg.makeEpilogue += "\t$(RM) " + lldFullBuildPath + ".a" + target.suffix + "_size.txt\n";
-    Pkg.makeEpilogue += "\t$(RMDIR) " + "$(LIBDIR)/" + device.toString() + " \n\n";
+    Pkg.makeEpilogue += "clean::\n\t";
+    Pkg.makeEpilogue += "$(RM) " + lldFullLibraryPath + ".a" + target.suffix + "_size.txt\n\n";
 
     return lib;
 }