X-Git-Url: https://git.ti.com/gitweb?p=keystone-rtos%2Fmcbsp-lld.git;a=blobdiff_plain;f=build%2Fbuildlib.xs;h=779aa9fe9668774b2e8bc56cf1fac98344bf6be6;hp=fe03505a326361aa5441f2103a06cb5e91313c94;hb=a6524a7cf6ad1f4f482f555400ba819866501440;hpb=e330acc7a4732bd3b89ecfd7ecab615d320abd2c diff --git a/build/buildlib.xs b/build/buildlib.xs index fe03505..779aa9f 100755 --- a/build/buildlib.xs +++ b/build/buildlib.xs @@ -7,7 +7,7 @@ * This file contains common routines that are used by the various McBSP * driver components. * - * Copyright (C) 2012, Texas Instruments, Inc. + * Copyright (C) 2011-2016, Texas Instruments, Inc. *****************************************************************************/ /************************************************************************** @@ -110,8 +110,6 @@ function createMake(makefile) var file = xdc.module('xdc.services.io.File'); - var xdcTargetType = java.lang.System.getenv("XDCTARGET"); - var toolsBaseDir = java.lang.System.getenv("XDCCGROOT"); makefile.writeLine("\n# Output for prebuilt generated libraries"); makefile.writeLine("export LIBDIR ?= ./lib"); @@ -157,7 +155,7 @@ function createMake(makefile) makefile.writeLine("export ROOTDIR := "+pkgroot); makefile.writeLine("\n# INCLUDE Directory"); - makefile.writeLine("export INCDIR := "+getxdcpath+";$(ROOTDIR);$(C6X_GEN_INSTALL_PATH)/include"); + makefile.writeLine("export INCDIR := "+getxdcpath+";$(ROOTDIR)"); makefile.writeLine("\n# Common Macros used in make"); makefile.writeLine("\nifndef RM"); @@ -217,25 +215,53 @@ function createMake(makefile) function createLibMake(device, makelibname,targetname, objectPath) { var tooldir; + var cmdprefix; + var targetDir; var stringname=String(targetname).replace("(xdc.bld.ITarget.Module)",""); - if(stringname.match("ARM11")) - { - tooldir="TI_ARM11_GEN_INSTALL_PATH"; - } - else - { - tooldir="C6X_GEN_INSTALL_PATH"; - } + switch(stringname) { case String(C66LE): + tooldir="C6X_GEN_INSTALL_PATH"; + cmdprefix=""; + targetDir="c66/release"; targetname=C66LE; break; case String(C66BE): + tooldir="C6X_GEN_INSTALL_PATH"; + cmdprefix=""; + targetDir="c66/release"; targetname=C66BE; break; - case String(C67LE): - targetname=C67LE; + case String(A15LE): + tooldir="TOOLCHAIN_PATH_A15"; + cmdprefix="CROSS_TOOL_PRFX"; + targetDir="a15/release"; + targetname=A15LE; + break; + case String(A9LE): + tooldir="TOOLCHAIN_PATH_A9"; + cmdprefix="CROSS_TOOL_PRFX"; + targetDir="a9/release"; + targetname=A9LE; + break; + case String(A8LE): + tooldir="TOOLCHAIN_PATH_A8"; + cmdprefix="CROSS_TOOL_PRFX"; + targetDir="a8/release"; + targetname=A8LE; + break; + case String(M4LE): + tooldir="TOOLCHAIN_PATH_M4"; + cmdprefix=""; + targetDir="m4/release"; + targetname=M4LE; + break; + case String(C674LE): + tooldir="C6X_GEN_INSTALL_PATH"; + cmdprefix=""; + targetDir="c674/release"; + targetname=C674LE; break; } @@ -267,40 +293,75 @@ function createLibMake(device, makelibname,targetname, objectPath) libmakefile.writeLine("empty ="); libmakefile.writeLine("space =$(empty) $(empty)"); - if(stringname.match("ti.targets")) + if ((targetname.name == "A15F") || (targetname.name == "A9F") || (targetname.name == "A8F")) { + + if(stringname.match("gnu.targets")) + { + libmakefile.writeLine("CC = $("+tooldir+")/bin/$("+cmdprefix+")gcc"); + libmakefile.writeLine("AC = $("+tooldir+")/bin/$("+cmdprefix+")as"); + libmakefile.writeLine("ARIN = $("+tooldir+")/bin/$("+cmdprefix+")ar"); + libmakefile.writeLine("LD = $("+tooldir+")/bin/$("+cmdprefix+")gcc"); + } + else + { + print("Error: Non-GNU targets are not currently supported "); + java.lang.System.exit(1); - var rtslibtemp = targetname.lnkOpts.suffix.toString().split("/"); - var rtslib; - for(n=0;n> $@.dep; \\"); - makefilename.writeLine(" $(RM) $@.pp "); + if ((targetName.name == "A15F") || (targetName.name == "A9F") || (targetName.name == "A8F")) + { + makefilename.writeLine("\t$(RM) $@.dep"); + makefilename.writeLine("\t$(CC) $(CFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< -o $@"); + /* + TBD + */ + } + else + { + makefilename.writeLine("\t$(RM) $@.dep"); + makefilename.writeLine("\t$(CC) $(CFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fc $< "); + makefilename.writeLine("\t-@$(CP) $@.dep $@.pp; \\"); + makefilename.writeLine(" $(SED) -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\\\$$//' \\"); + makefilename.writeLine(" -e '/^$$/ d' -e 's/$$/ :/' < $@.pp >> $@.dep; \\"); + makefilename.writeLine(" $(RM) $@.pp "); + } } else if(fileExt == "asm") { - makefilename.writeLine("\t$(AC) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fa $< "); + makefilename.writeLine("\t$(AC) $(ASFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) -fa $< "); } else if(fileExt == "sa") { - makefilename.writeLine("\t$(AC) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< "); + makefilename.writeLine("\t$(AC) $(ASFLAGS_INTERNAL) $("+compileflagstring+") $(INTERNALDEFS) $(INCS) $< "); } + makefilename.writeLine("\n#Create Empty rule for dependency"); makefilename.writeLine("$("+objectliststring+"):"+makefilename.$private.fd); makefilename.writeLine(makefilename.$private.fd+":"); @@ -394,19 +467,23 @@ function buildLibrary (socName, isSoc, libOptions, libName, target, libFiles) if (target.name == "A15F") { - targetDir = "armv7"; + targetDir = "a15/release"; } else if (target.name == "A9F") { - targetDir = "armv7"; + targetDir = "a9/release"; } else if (target.name == "A8F") { - targetDir = "armv7"; + targetDir = "a8/release"; } else if (target.name == "M4") { - targetDir = "m4"; + targetDir = "m4/release"; + } + else if (target.name == "C674") + { + targetDir = "c674"; } else { @@ -494,7 +571,7 @@ function buildLibrary (socName, isSoc, libOptions, libName, target, libFiles) makefilelib.writeLine(librule); makefilelib.writeLine("\t@echo archiving $? into $@ ..."); makefilelib.writeLine("\tif [ ! -d $(LIBDIR)/"+targetDir+" ]; then $(MKDIR) $(LIBDIR)/"+targetDir+" ; fi;"); - makefilelib.writeLine("\t$(ARIN) $@ $?"); + makefilelib.writeLine("\t$(ARIN) $(ARFLAGS_INTERNAL) $@ $?"); makefilelib.close(); /* Create the Epilogue; which executes after all the builds are completed.