SDOCM00114108 IPC custom build failure with XDCtools core product
[ipc/ipcdev.git] / packages / ti / sdo / ipc / makefile_gccArmLto.xdt
index 3876d175db6da842f7a853db90270c80c964e06a..a482c8cb77aec6d74b1279154c250cffb626556a 100644 (file)
 %%}
 %%{
     var File = xdc.module("xdc.services.io.File");
-
     var BIOS = xdc.module("ti.sysbios.BIOS");
-
     var Build = xdc.module("ti.sdo.ipc.Build");
-
     var TARGET = $args[0];
-
     var XDCROOT = String(environment['xdc.rootDir'] + '/packages/').replace(/\\/g, "/");
 
-    var XOPTS = '-I "' + XDCROOT + '"'
-       + " -Dxdc_target_types__=" + File.getDOSPath(TARGET.$package.packageRepository) + TARGET.stdInclude
+    var XOPTS = '-I "' + XDCROOT + '"' + " -Dxdc_target_types__="
+        + File.getDOSPath(TARGET.$package.packageRepository) + TARGET.stdInclude
        + " -Dxdc_target_name__=" + TARGET.name;
 
     var CGEN = TARGET.rootDir.replace(/\\/g, "/");
 vpath % `File.getDOSPath(this.$package.packageRepository) + "ti/sdo/"`
 vpath %.c `XDCROOT`
 
-CCOPTS    = `Build.getCCOpts(TARGET.$name)`
-
-XDC_ROOT  = `XDCROOT`
+CCOPTS = `Build.getCCOpts(TARGET.$name)`
 
 BUILD_DEFS = `Build.getDefs()`
 
-BIOS_INC  = -I"`xdc.getPackageRepository("ti.sysbios")`"
-
-IPC_INC    = -I"`xdc.getPackageRepository("ti.sdo.ipc")`"
-
-UTILS_INC    = -I"`xdc.getPackageRepository("ti.sdo.utils")`"
-
+%%{
+    /* convert package path into include path */
+    var incs = new Array();
+    incs.push("-I" + this.$package.packageRepository.replace(/\/$/, ""));
+
+    for each (var repo in xdc.curPath().split(';')) {
+        /* skip empty repo, relative paths, and xdctools itself */
+        if ((repo == "") || repo.match(/^\./) || repo.match(/xdctools/)) {
+            continue;
+        }
+
+        /* add repo if not already present in array */
+        var i;
+        for (i = 0; i < incs.length; i++) {
+            if (incs[i] == "-I" + repo) {
+                break;
+            }
+        }
+        if (i == incs.length) {
+            incs.push("-I" + repo);
+        }
+    }
+%%}
+INCS = `incs.join(" ")`
 
 CC = `CGEN`/`TARGET.ccBin.cmd` $(CCOPTS) -I `CGEN`/arm-none-eabi/include
 ASM = `CGEN`/`TARGET.asmBin.cmd` $(CCOPTS) -I `CGEN`/arm-none-eabi/include
@@ -96,12 +108,12 @@ endef
 
 define ASSEMBLE
        @echo asm`TARGET.suffix` $< ...
-       @$(ASM) $(BUILD_DEFS) `XOPTS` $(BIOS_INC) $<
+       @$(ASM) $(BUILD_DEFS) `XOPTS` $(INCS) $<
 endef
 
 define COMPILE
        @echo cl`TARGET.suffix` $< ...
-       @$(CC) $(BUILD_DEFS) `XOPTS` $(BIOS_INC) $(IPC_INC) $(UTILS_INC) $<
+       @$(CC) $(BUILD_DEFS) `XOPTS` $(INCS) $<
 endef
 
 %var LIB = "ipc.a" + TARGET.suffix;