summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5f825c0)
raw | patch | inline | side by side (parent: 5f825c0)
author | Aravind Batni <aravindbr@ti.com> | |
Mon, 19 Oct 2015 21:41:53 +0000 (17:41 -0400) | ||
committer | Aravind Batni <aravindbr@ti.com> | |
Mon, 19 Oct 2015 21:41:53 +0000 (17:41 -0400) |
12 files changed:
.gitignore | [new file with mode: 0644] | patch | blob |
Settings.xdc.xdt | [changed mode: 0644->0755] | patch | blob | history |
build/buildlib.xs | [changed mode: 0644->0755] | patch | blob | history |
config.bld | [changed mode: 0644->0755] | patch | blob | history |
device/Module.xs | [changed mode: 0644->0755] | patch | blob | history |
device/c6657/src/device_mcbsp_loopback.c | [new file with mode: 0644] | patch | blob |
device/c674x/src/device_mcbsp_loopback.c | [moved from device/c674x/device_mcbsp_loopback.c with 100% similarity] | patch | blob | history |
device/k2g/src/device_mcbsp_loopback.c | [moved from device/k2g/device_mcbsp_loopback.c with 100% similarity] | patch | blob | history |
mcbspver.h | [new file with mode: 0644] | patch | blob |
package.bld | [changed mode: 0644->0755] | patch | blob | history |
package.xs | [changed mode: 0644->0755] | patch | blob | history |
src/Module.xs | [changed mode: 0644->0755] | patch | blob | history |
diff --git a/.gitignore b/.gitignore
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,27 @@
+*.sw?
+*~
+*.bak
+*.orig
+.dlls
+.executables
+.interfaces
+.libraries
+.xdcenv.mak
+Settings.h
+Settings.xdc
+build/c674?/
+build/c66/
+build/k2?/
+build/c6657/
+docs/Doxyfile
+docs/doxygen/
+docs/mcbsplldDocs.chm
+lib/
+/makefile
+package.mak
+package/
+packages/
+analysis/
+test/*/c66/bios/src
+Debug/
+Release/
diff --git a/Settings.xdc.xdt b/Settings.xdc.xdt
--- a/Settings.xdc.xdt
+++ b/Settings.xdc.xdt
module Settings
{
+ /*! This is the McBSP Version */
config string mcbspVersionString = `packageVersion`;
+
+ /*! This variable is to control the device type selection.
+ * By default this variable is set to NULL.
+ *
+ * To use MCBSP for the selected device, add the following lines to config
+ * file and set the deviceType correctly:
+ *
+ * var hlink = xdc.useModule ('ti.drv.mcbsp.Settings');
+ * hlink.deviceType = "k2g";
+ *
+ * If this is not set, then hyperlink will use device independent
+ * library where user must supply compiled device_mcbsp_loopback.obj
+ */
+ metaonly config string deviceType = "";
}
diff --git a/build/buildlib.xs b/build/buildlib.xs
--- a/build/buildlib.xs
+++ b/build/buildlib.xs
* Copyright (C) 2012, Texas Instruments, Inc.
*****************************************************************************/
-/**************************************************************************
- * FUNCTION NAME : createMiniPkg
- **************************************************************************
- * DESCRIPTION :
- * The function is responsible for creating the mini tar package
- * The MINI package has the following files:-
- * - Driver Source Files.
- * - Header files (exported and internal driver files)
- * - Simple Makefiles.
- **************************************************************************/
-function createMiniPkg(pkgName)
-{
- /* Get the package Name. */
- var packageRepository = xdc.getPackageRepository(Pkg.name);
- var packageBase = xdc.getPackageBase(Pkg.name);
- var packageName = packageBase.substring(packageRepository.length + 1);
-
- /* Convert the Package name by replacing back slashes with forward slashes. This is required because
- * otherwise with long names the tar is unable to change directory. */
- var newPkgName = new java.lang.String(packageRepository);
- var newPkgRep = newPkgName.replace('\\', '/');
-
- /* Step1: Create the MINI Package and add the simple Big and Little Endian Makefiles to the package */
- Pkg.makeEpilogue += "release: mini_pkg\n";
- Pkg.makeEpilogue += "mini_pkg:\n";
- Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -cf packages/" + pkgName + "_mini.tar " + packageName + "simpleC66LE.mak " + packageName + "simpleC66BE.mak\n";
-
- /* Step2: Add the exported header files to the package */
- var includeFiles = libUtility.listAllFiles (".h", ".", false);
- for (var k = 0 ; k < includeFiles.length; k++)
- Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -rf packages/" + pkgName + "_mini.tar " + packageName + includeFiles[k] + "\n";
-
- /* Step3: Add the internal header files to the package */
- includeFiles = libUtility.listAllFiles (".h", "include", true);
- for (var k = 0 ; k < includeFiles.length; k++)
- Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -rf packages/" + pkgName + "_mini.tar " + packageName + includeFiles[k] + "\n";
-
- includeFiles = libUtility.listAllFiles (".h", "device", true);
- for (var k = 0 ; k < includeFiles.length; k++)
- Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -rf packages/" + pkgName + "_mini.tar " + packageName + includeFiles[k] + "\n";
-
- /* Step4: Add the device McBSP file (Example file) which illustrates McBSP device initialization. */
- var deviceSrcFiles = libUtility.listAllFiles (".c", "device", true);
- for (var k = 0 ; k < deviceSrcFiles.length; k++)
- Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -rf packages/" + pkgName + "_mini.tar " + packageName + deviceSrcFiles[k] + "\n";
-
- /* Step5: Add the driver source files to the package; the filter should have generated a source listing */
- Pkg.makeEpilogue += "\t tar -C " + "\"" + newPkgRep + "\"" + " -T src.lst -rf packages/" + pkgName + "_mini.tar " + "\n";
-
- /* Ensure that we clean up the mini package */
- Pkg.makeEpilogue += "clean::\n";
- Pkg.makeEpilogue += "\t $(RM) packages/" + pkgName + "_mini.tar\n";
-}
-
/**************************************************************************
* FUNCTION NAME : listAllFiles
**************************************************************************
* present in a directory and any directory inside it.
**************************************************************************/
function listAllFiles(ext, dir, recurse)
-{
+{
var srcFile = [];
var d;
recurse = true;
if (dir == undefined)
- d = ".";
+ d = ".";
else
- d = dir;
+ d = dir;
/* Get access to the current directory. */
var file = new java.io.File(d);
}
}
}
+
return srcFile;
}
return null;
}
+
function createMake(makefile)
{
/* Create the main make file */
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 */
makefile.writeLine("export ROOTDIR := "+pkgroot);
makefile.writeLine("\n# INCLUDE Directory");
- makefile.writeLine("export INCDIR := "+getxdcpath+";$(ROOTDIR)");
+ makefile.writeLine("export INCDIR := "+getxdcpath+";$(ROOTDIR);$(C6X_GEN_INSTALL_PATH)/include");
makefile.writeLine("\n# Common Macros used in make");
makefile.writeLine("\nifndef RM");
return makefile;
}
-function createLibMake(makelibname,targetname, objectPath)
+function createLibMake(device, makelibname,targetname, objectPath)
{
var tooldir;
var stringname=String(targetname).replace("(xdc.bld.ITarget.Module)","");
libmakefile.writeLine("#");
libmakefile.writeLine("empty =");
libmakefile.writeLine("space =$(empty) $(empty)");
-
+
if(stringname.match("ti.targets"))
{
java.lang.System.exit(1);
}
-
+
libmakefile.writeLine("INCS = -I. -I$(strip $(subst ;, -I,$(subst $(space),\\$(space),$(INCDIR))))");
libmakefile.writeLine("OBJEXT = o"+targetname.suffix);
libmakefile.writeLine("AOBJEXT = s"+targetname.suffix);
/* libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+" -Dxdc_target_types__=ti/targets/std.h -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");*/
libmakefile.writeLine("INTERNALDEFS = -D"+stringname.replace(/\./g,"_")+" -DMAKEFILE_BUILD -eo.$(OBJEXT) -ea.$(AOBJEXT) -fr=$(@D) -fs=$(@D) -ppa -ppd=$@.dep");
libmakefile.writeLine("INTERNALLINKDEFS = -o $@ -m $@.map");
- libmakefile.writeLine("OBJDIR = $(LIBDIR)");
+ libmakefile.writeLine("OBJDIR = $(LIBDIR)/" + device.toString() + "/obj");
+ libmakefile.writeLine("DEVOBJDIR = $(LIBDIR)/" + device.toString() + "/obj");
return libmakefile;
}
-function makeAddObjects(srcString, makefilename, srcfiles, flags,fileExt, targetName)
+function makeAddObjects(srcString, makefilename, srcfiles, flags,fileExt, targetName, objDir)
{
var sourcestring = (srcString + fileExt).toString().toUpperCase();
var compileflagstring = sourcestring + "FLAGS";
@@ -390,8 +341,8 @@ function makeAddObjects(srcString, makefilename, srcfiles, flags,fileExt, target
makefilename.writeLine(compileflagstring+" = "+compileflags +" \n");
makefilename.writeLine("# Make Rule for the "+srcString+" Files");
- makefilename.writeLine(objectliststring +" = $(patsubst %."+fileExt+", $(OBJDIR)/%.$(OBJEXT), $(" + sourcestring + "))");
- makefilename.writeLine("\n$("+objectliststring+"): $(OBJDIR)/%.$(OBJEXT): %."+fileExt);
+ makefilename.writeLine(objectliststring +" = $(patsubst %."+fileExt+", "+objDir+"/%.$(OBJEXT), $(" + sourcestring + "))");
+ makefilename.writeLine("\n$("+objectliststring+"): "+objDir+"/%.$(OBJEXT): %."+fileExt);
if(fileExt == "c")
{
makefilename.writeLine("\t-@echo cl"+targetName.suffix +" $< ...");
@@ -436,24 +387,60 @@ function makeAddObjects(srcString, makefilename, srcfiles, flags,fileExt, target
* Utility function which will build a specific library
**************************************************************************/
var makefilelocal;
-function buildLibrary (libOptions, libName, target, libFiles)
+function buildLibrary (socName, isSoc, libOptions, libName, target, libFiles)
{
- var lldFullLibraryPath = "./lib/" + libName;
- var lldFullLibraryPathMake = "$(LIBDIR)/" + libName;
+ var targetDir;
+ var objExtDir;
+
+ if (target.name == "A15F")
+ {
+ targetDir = "armv7";
+ }
+ else if (target.name == "A9F")
+ {
+ targetDir = "armv7";
+ }
+ else if (target.name == "A8F")
+ {
+ targetDir = "armv7";
+ }
+ else if (target.name == "M4")
+ {
+ targetDir = "m4";
+ }
+ else
+ {
+ targetDir = "c66";
+ }
+
+ /* Derive the operating system and soc names */
+ if (isSoc == "true") {
+ var libNameExp = libName+"."+socName;
+ targetDir = socName+"/"+targetDir;
+ objExtDir = "soc";
+ }
+ else {
+ var libNameExp = libName;
+ objExtDir = "all";
+ }
+
+ var lldFullLibraryPath = "./lib/" + targetDir +"/" + libNameExp;
+ var lldFullBuildPath = "./build/" + targetDir +"/" + libNameExp;
+ var lldFullLibraryPathMake = "$(LIBDIR)/" + targetDir +"/" + libNameExp;
/* Create Main make file in the root of package folder */
makefilelocal = createMake(makefilelocal);
/* Write the rule to make library in main makefile */
- lib = lldFullLibraryPath+".a"+target.suffix;
+ lib = lldFullBuildPath+".a"+target.suffix;
libMake = lldFullLibraryPathMake+".a"+target.suffix;
- var objectPath= "./package/lib/"+lldFullLibraryPath;
+ var objectPath= "./package/"+lldFullBuildPath;
makefilelocal.writeLine("\n\n# Make rule to create "+libMake+" library");
makefilelocal.writeLine(".libraries: "+ libMake);
makefilelocal.writeLine(libMake+": FORCE\n\t$(MAKE) -f "+lib+".mk $@");
/* Create Library make file in the lib folder */
- var makefilelib= createLibMake(lib+".mk",target,objectPath);
+ var makefilelib= createLibMake(socName, lib+".mk",target,objectPath);
/* Rule to clean library in main makefile */
makefilelocal.writeLine("# Rule to clean "+libMake+" library");
}
if(cfiles.length > 0)
{
- makeAddObjects("COMMONSRC",makefilelib,cfiles,libOptions,"c",target);
+ makeAddObjects("COMMONSRC",makefilelib,cfiles,libOptions,"c",target, "$(OBJDIR)");
librule += " $(COMMONSRCCOBJS)";
}
if(afiles.length > 0)
{
- makeAddObjects("COMMONSRC",makefilelib,afiles,libOptions,"asm",target);
- librule += " $(COMMONSRCSOBJS)";
+ makeAddObjects("COMMONSRC",makefilelib,afiles,libOptions,"asm",target, "$(OBJDIR)");
+ librule += " $(COMMONSRCASMOBJS)";
}
if(safiles.length > 0)
{
- makeAddObjects("COMMONSRC",makefilelib,safiles,libOptions,"sa",target);
+ makeAddObjects("COMMONSRC",makefilelib,safiles,libOptions,"sa",target, "$(OBJDIR)");
librule += " $(COMMONSRCSAOBJS)";
}
makefilelib.writeLine(librule);
makefilelib.writeLine("\t@echo archiving $? into $@ ...");
- makefilelib.writeLine("\t$(ARIN) $@ $?");
- makefilelib.close();
-
- /* Create the library file and add all the objects to the file. */
- var lib = Pkg.addLibrary(lldFullLibraryPath, target, libOptions);
-
- lib.addObjects (libFiles);
+ makefilelib.writeLine("\tif [ ! -d $(LIBDIR)/"+targetDir+" ]; then $(MKDIR) $(LIBDIR)/"+targetDir+" ; fi;");
+ makefilelib.writeLine("\t$(ARIN) $@ $?");
+ makefilelib.close();
/* 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_" + target.suffix + "\n";
- Pkg.makeEpilogue += "benchmarking_" + target.suffix + ":";
- Pkg.makeEpilogue += "\n\t ofd6x.exe -x " + lldFullLibraryPath + ".a" + target.suffix + " > tmp.xml";
- Pkg.makeEpilogue += "\n\t sectti.exe 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";
+ if ( java.lang.String(target.name).contains('66') )
+ {
+ 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";
+ }
+ else if (target.name == "M4")
+ {
+ Pkg.makeEpilogue += "\n\t $(TOOLCHAIN_PATH_M4)/bin/armofd -x " + libFullName + " > " + tempFile;
+ Pkg.makeEpilogue += "\n\t $(SECTTI) " + tempFile + " > " + libFullName + "_size.txt";
+ Pkg.makeEpilogue += "\n\t $(RM) " + tempFile + "\n\n";
+ }
+ else
+ {
+ Pkg.makeEpilogue += "\n\t $(TOOLCHAIN_PATH_A15)/bin/$(CROSS_TOOL_PRFX)size " + libFullName + " > " + libFullName + "_size.txt";
+ }
Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + "_size.txt";
- Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix + ".mk";
+ Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullBuildPath + ".a" + target.suffix + ".mk";
+ Pkg.otherFiles[Pkg.otherFiles.length++] = lldFullLibraryPath + ".a" + target.suffix;
/* We need to clean after ourselves; extend the 'clean' target to take care of this. */
- Pkg.makeEpilogue += "clean::\n\t";
- Pkg.makeEpilogue += "$(RM) " + lldFullLibraryPath + ".a" + target.suffix + "_size.txt\n\n";
+ Pkg.makeEpilogue += "\nclean::\n";
+ Pkg.makeEpilogue += "\t$(RM) " + lldFullBuildPath + ".a" + target.suffix + "_size.txt\n";
+ Pkg.makeEpilogue += "\t$(RMDIR) " + "$(LIBDIR)/" + targetDir + "/ \n\n";
return lib;
}
diff --git a/config.bld b/config.bld
--- a/config.bld
+++ b/config.bld
/* Get the Tools Base directory from the Environment Variable. */
var toolsBaseDir = java.lang.System.getenv("XDCCGROOT");
+/* Get the extended debug flags */
+var extDbgFlags = java.lang.System.getenv("EXTDBGFLAGS");
/* Get the base directory for the MCBSP Driver Package */
var mcbspDriverPath = new java.io.File(".//").getPath();
/* Read the part number from the environment variable. */
var mcbspLLDPartNumber = java.lang.System.getenv("PARTNO");
+/* Get the base directory for the hyplnk LLD Package */
+var mcbsplldPath = new java.io.File(".//").getPath();
+/* Include Path */
+var mcbsplldIncPath = " -i" + mcbsplldPath;
/* Configure the MCBSP Release Version Information */
-var mcbspDriverReleaseVersion = [01,00,00,02];
+var mcbspDriverReleaseVersion = (""+Pkg.version.replace(/\s/g, "")).split(',');
/* C66 ELF compiler configuration for Little Endian Mode. */
var C66LE = xdc.useModule('ti.targets.elf.C66');
C66LE.rootDir = toolsBaseDir;
C66LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
+if(extDbgFlags)
+ C66LE.ccOpts.prefix = C66LE.ccOpts.prefix + " " + extDbgFlags;
/* C6740 elf compiler configuration for Little Endian Mode. */
var C67LE = xdc.useModule('ti.targets.elf.C674');
C67LE.rootDir = toolsBaseDir;
C67LE.ccOpts.prefix = "-mo -o3 -q -k -eo.o";
+if(extDbgFlags)
+ C67LE.ccOpts.prefix = C67LE.ccOpts.prefix + " " + extDbgFlags;
/* C66 ELF compiler configuration for Big Endian Mode. */
var C66BE = xdc.useModule('ti.targets.elf.C66_big_endian');
C66BE.rootDir = toolsBaseDir;
C66BE.ccOpts.prefix = "-mo -o3 -q -k -eo.o -DBIGENDIAN";
+if(extDbgFlags)
+ C66BE.ccOpts.prefix = C66BE.ccOpts.prefix + " " + extDbgFlags;
-/* Check if we need to run the STATIC Analysis or not? */
-var coverityAnalysis = java.lang.System.getenv("STATIC_ANALYZE");
-/* Setup the Coverity Filters to perform Static Analysis. */
-if (coverityAnalysis == "ON") {
- var coverityInstallPath = java.lang.System.getenv("STATIC_ANALYZE_PATH");
- var cfgBase = xdc.getPackageBase("tisb.coverity.filters") + "cfg";
- var coverityFilter = [
+/* device name (k2?) is inserted between first an second element of this
+ list to construct device file name for each device */
+var deviceConstruct = [ "device/", "/src/device_mcbsp_loopback.c" ];
+
+/* Create the SoC List */
+var socs = {
+ /* device independent libraries */
+ all :
{
- moduleName: "tisb.coverity.filters.Coverity",
- params: {
- cfgDir: cfgBase, // The Coverity configuration file directory
- rootDir: coverityInstallPath,
- outDir: xdc.csd() + "cov_out",
- analyzeLibs: true
- }
+ /* Build this library */
+ build: "true",
+ /* SoC lib disabled as this is device independent lib */
+ socDevLib: "false",
+ /* Library options */
+ copts: "",
+ /* target lists, kept blank now, would be updated based on argument lists */
+ targets: []
+ },
+ k2g :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains k2g */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* Library options */
+ copts: " -DDEVICE_K2G -DSOC_K2G",
+ /* target list */
+ targets: [ C66LE, C66BE ]
+ },
+ c674x :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains c674x */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_C674X",
+ /* target list */
+ targets: [ C66LE, C66BE ]
+ },
+ c6657 :
+ {
+ /* this variable would be reinitialized to true, if XDCARGS contains c6657 */
+ build: "false",
+ /* SoC lib enabled */
+ socDevLib: "true",
+ /* Library options */
+ copts: " -DSOC_C6657",
+ /* target list */
+ targets: [ C66LE, C66BE ]
},
- ];
+};
- /* Run the coverity filters on the LE Build only. */
- C66LE.profiles["release"].filters = coverityFilter;
+/**************************************************************************
+ * FUNCTION NAME : merge
+ **************************************************************************
+ * DESCRIPTION :
+ * The function is used to merge two arrarys
+ **************************************************************************/
+function merge() {
+ var args = arguments;
+ var hash = {};
+ var arr = [];
+ for (var i = 0; i < args.length; i++) {
+ for (var j = 0; j < args[i].length; j++) {
+ if (hash[args[i][j]] !== true) {
+ arr[arr.length] = args[i][j];
+ hash[args[i][j]] = true;
+ }
+ }
+ }
+ return arr;
}
-/* Check if we need to create the Makefiles? */
-var miniBuild = java.lang.System.getenv("MINI_PACKAGE");
-if (miniBuild == "ON")
+/* Grab input from XDCARGS */
+var buildArguments = [];
+
+/* Construct the build arguments */
+for (var tmp=0; arguments[tmp] != undefined; tmp++)
{
- var makeC66LEFilter = {
- moduleName: "build.filter.Make",
- params: {
- makefileName: "simpleC66LE.mak",
+
+ /* If no arguments are provided, override for building all */
+ if ( ( arguments.length == 1) && (arguments[tmp].equals("./config.bld")) )
+ buildArguments[buildArguments.length++] = "all";
+ else
+ buildArguments[buildArguments.length++] = arguments[tmp];
+}
+
+/* Build targets on this build */
+var build_targets = [];
+var soc_names = Object.keys(socs);
+
+for (var i=0; i < buildArguments.length; i++ ) {
+ /* Build it for all targets */
+ if (buildArguments[i] == "all") {
+ for (var j = 0; j < soc_names.length; j++) {
+ build_targets = merge (build_targets.slice(0), socs[soc_names[j]].targets.slice(0));
+ /* Set build to "true" for that SoC */
+ socs[soc_names[j]].build = "true";
}
- };
- C66LE.profiles["release"].filters[C66LE.profiles["release"].filters.length++] = makeC66LEFilter;
-
- var makeC66BEFilter = {
- moduleName: "build.filter.Make",
- params: {
- makefileName: "simpleC66BE.mak",
+ }
+ else {
+ /* Skip the first argument, which is ./config.bld to get to next SoCs */
+ if (i == 0) continue;
+ /* Set that build to true if it is found in supported build socs */
+ for (j = 0; j < soc_names.length; j++) {
+ if (buildArguments[i] == soc_names[j]) {
+ socs[buildArguments[i]].build = "true";
+ build_targets = merge (build_targets.slice(0), socs[buildArguments[i]].targets.slice(0));
+ break;
+ }
}
- };
- C66BE.profiles["release"].filters[C66BE.profiles["release"].filters.length++] = makeC66BEFilter;
+ }
}
-/* List all the build targets here. */
-Build.targets = [ C66LE ];
-
+/* Update the Build target generated list */
+socs["all"].targets = build_targets;
+Build.targets = build_targets;
diff --git a/device/Module.xs b/device/Module.xs
--- a/device/Module.xs
+++ b/device/Module.xs
var configFiles = libUtility.listAllFiles (".c", "device", true);
for (var k = 0 ; k < configFiles.length; k++)
Pkg.otherFiles[Pkg.otherFiles.length++] = configFiles[k];
+
+ /* Add all the .h files to the release package. */
+ var configFiles = libUtility.listAllFiles (".h", "device", true);
+ for (var k = 0 ; k < configFiles.length; k++)
+ Pkg.otherFiles[Pkg.otherFiles.length++] = configFiles[k];
}
diff --git a/device/c6657/src/device_mcbsp_loopback.c b/device/c6657/src/device_mcbsp_loopback.c
--- /dev/null
@@ -0,0 +1,180 @@
+/*\r
+ * mcbsp_device.c\r
+ *\r
+ * This file contains MCBSP IP related EVM (platform) specific routines\r
+ * implementation. This file contains the board specific code for enabling \r
+ * the use of mcbsp driver, and may contain related device pre-driver \r
+ * initialization routines. The file is provided as a sample configuration \r
+ * and should be modified by customers for their own platforms and \r
+ * configurations.\r
+ *\r
+ * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/\r
+ *\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * Redistributions of source code must retain the above copyright\r
+ * notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * Redistributions in binary form must reproduce the above copyright\r
+ * notice, this list of conditions and the following disclaimer in the\r
+ * documentation and/or other materials provided with the\r
+ * distribution.\r
+ *\r
+ * Neither the name of Texas Instruments Incorporated nor the names of\r
+ * its contributors may be used to endorse or promote products derived\r
+ * from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+*/\r
+\r
+/* MCBSP Driver Includes. */\r
+#include <ti/drv/mcbsp/mcbsp_types.h>\r
+#include <ti/drv/mcbsp/mcbsp_drv.h>\r
+#include <ti/drv/mcbsp/mcbsp_osal.h>\r
+\r
+/* CSL MCBSP Register Layer */\r
+#include <ti/csl/cslr_mcbsp.h>\r
+\r
+/* CSL Chip Functional Layer */\r
+#include <ti/csl/csl_chip.h>\r
+\r
+\r
+/*============================================================================*/\r
+/* IMPORTED VARIABLES */\r
+/*============================================================================*/\r
+\r
+extern Mcbsp_HwInfo Mcbsp_deviceInstInfo[CSL_MCBSP_PER_CNT];\r
+extern Mcbsp_TempBuffer Mcbsp_muteBuf[CSL_MCBSP_PER_CNT];\r
+\r
+#ifdef MCBSP_LOOPJOB_ENABLE\r
+extern Mcbsp_TempBuffer Mcbsp_loopDstBuf[CSL_MCBSP_PER_CNT];\r
+extern Mcbsp_TempBuffer Mcbsp_loopSrcBuf[CSL_MCBSP_PER_CNT];\r
+#endif /* MCBSP_LOOPJOB_ENABLE */\r
+\r
+/* ========================================================================== */\r
+/* MODULE FUNCTIONS */\r
+/* ========================================================================== */\r
+/**\r
+ * \brief Initializes McBSP driver's data structures\r
+ *\r
+ * This function initializes the McBSP driver's data structures\r
+ * including instance objects and channel objects. This is the \r
+ * MCBSP Driver Initialization API which needs to be invoked by \r
+ * the users to initialize the MCBSP peripheral. This call is \r
+ * *mandatory* and should be called before calling any of the \r
+ * other driver API's. This can be modified by customers for \r
+ * their application and configuration.\r
+ *\r
+ * \return None\r
+ */\r
+void McbspDevice_init(void)\r
+{\r
+ int32_t devId = 0;\r
+ void *key;\r
+\r
+ /* Begin Critical Section before accessing shared resources. */\r
+ key = Mcbsp_osalEnterMultipleCoreCriticalSection ();\r
+\r
+ /* Invalidate the Cache Contents */\r
+ Mcbsp_osalBeginMemAccess ((void *)Mcbsp_deviceInstInfo, sizeof(Mcbsp_deviceInstInfo));\r
+\r
+ /* initialize the loop job buffers and the mute buffers for all instances */\r
+#ifdef MCBSP_LOOPJOB_ENABLE\r
+ Mcbsp_osalBeginMemAccess ((void *)Mcbsp_loopDstBuf, sizeof(Mcbsp_loopDstBuf));\r
+ Mcbsp_osalBeginMemAccess ((void *)Mcbsp_loopSrcBuf, sizeof(Mcbsp_loopSrcBuf));\r
+ memset((void *)Mcbsp_loopDstBuf,0x0,\r
+ sizeof(Mcbsp_TempBuffer) * CSL_MCBSP_PER_CNT);\r
+ memset((void *)Mcbsp_loopSrcBuf,0x0,\r
+ sizeof(Mcbsp_TempBuffer) * CSL_MCBSP_PER_CNT);\r
+#endif /* MCBSP_LOOPJOB_ENABLE */\r
+ Mcbsp_osalBeginMemAccess ((void *)Mcbsp_muteBuf, sizeof(Mcbsp_muteBuf));\r
+ memset((void *)Mcbsp_muteBuf,0x0,\r
+ sizeof(Mcbsp_TempBuffer) * CSL_MCBSP_PER_CNT);\r
+\r
+ /* initialize the information for all the device instances */\r
+ for (devId = 0; devId < CSL_MCBSP_PER_CNT; devId++)\r
+ {\r
+ if (0 == devId)\r
+ {\r
+ /* instance 0 initialisation */\r
+ Mcbsp_deviceInstInfo[devId].obj.instNum = (uint32_t)devId;\r
+ Mcbsp_deviceInstInfo[devId].obj.regs =\r
+ (CSL_McbspRegsOvly)CSL_Mcbsp0_CFG_DATA_REGS;\r
+ Mcbsp_deviceInstInfo[devId].obj.fifoRegs =\r
+ (CSL_BfifoRegsOvly)CSL_Mcbsp0_FIFO_CFG_REGS;\r
+ Mcbsp_deviceInstInfo[devId].obj.dataAddress =\r
+ (CSL_BdataRegsOvly)CSL_Mcbsp0_FIFO_DATA_REGS;\r
+ Mcbsp_deviceInstInfo[devId].obj.edmaTxEventNum =\r
+ (uint32_t)CSL_EDMA3CC2_XEVT0_MCBSP_A;\r
+ Mcbsp_deviceInstInfo[devId].obj.edmaRxEventNum =\r
+ (uint32_t)CSL_EDMA3CC2_REVT0_MCBSP_A;\r
+ Mcbsp_deviceInstInfo[devId].obj.cpuTxEventNum =\r
+ (uint32_t)CSL_INTC0_XEVT0;\r
+ Mcbsp_deviceInstInfo[devId].obj.cpuRxEventNum =\r
+ (uint32_t)CSL_INTC0_REVT0;\r
+ }\r
+ else if (1 == devId)\r
+ {\r
+ /* instance 1 initialisation */\r
+ Mcbsp_deviceInstInfo[devId].obj.instNum = (uint32_t)devId;\r
+ Mcbsp_deviceInstInfo[devId].obj.regs =\r
+ (CSL_McbspRegsOvly)CSL_Mcbsp1_CFG_DATA_REGS;\r
+ Mcbsp_deviceInstInfo[devId].obj.fifoRegs =\r
+ (CSL_BfifoRegsOvly)CSL_Mcbsp1_FIFO_CFG_REGS;\r
+ Mcbsp_deviceInstInfo[devId].obj.dataAddress =\r
+ (CSL_BdataRegsOvly)CSL_Mcbsp1_FIFO_DATA_REGS;\r
+ Mcbsp_deviceInstInfo[devId].obj.edmaTxEventNum =\r
+ (uint32_t)CSL_EDMA3CC2_XEVT1_MCBSP_B;\r
+ Mcbsp_deviceInstInfo[devId].obj.edmaRxEventNum =\r
+ (uint32_t)CSL_EDMA3CC2_REVT1_MCBSP_B;\r
+ Mcbsp_deviceInstInfo[devId].obj.cpuTxEventNum =\r
+ (uint32_t)CSL_INTC0_XEVT1;\r
+ Mcbsp_deviceInstInfo[devId].obj.cpuRxEventNum =\r
+ (uint32_t)CSL_INTC0_REVT1;\r
+ }\r
+ else\r
+ {\r
+ /* do nothing */\r
+ }\r
+#ifdef MCBSP_LOOPJOB_ENABLE\r
+ /* align the buffers to the cache line size */\r
+ Mcbsp_loopSrcBuf[devId].scratchBuffer = (uint32_t *)\r
+ (((uint32_t)Mcbsp_loopSrcBuf[devId].scratchBuf + 0x7F) & ~0x7F);\r
+\r
+ Mcbsp_loopDstBuf[devId].scratchBuffer = (uint32_t *)\r
+ (((uint32_t)Mcbsp_loopDstBuf[devId].scratchBuf + 0x7F) & ~0x7F);\r
+\r
+ Mcbsp_osalEndMemAccess ((void *)Mcbsp_loopSrcBuf, sizeof(Mcbsp_loopSrcBuf));\r
+ Mcbsp_osalEndMemAccess ((void *)Mcbsp_loopDstBuf, sizeof(Mcbsp_loopDstBuf));\r
+#endif /* MCBSP_LOOPJOB_ENABLE */\r
+ Mcbsp_muteBuf[devId].scratchBuffer = (uint32_t *)\r
+ (((uint32_t)Mcbsp_muteBuf[devId].scratchBuf + 0x7F) & ~0x7F);\r
+ Mcbsp_osalEndMemAccess ((void *)Mcbsp_muteBuf, sizeof(Mcbsp_muteBuf));\r
+ }\r
+\r
+ /* Writeback Global Objects */\r
+ Mcbsp_osalEndMemAccess ((void *)Mcbsp_deviceInstInfo, sizeof(Mcbsp_deviceInstInfo));\r
+\r
+ /* End Critical Section */\r
+ Mcbsp_osalExitMultipleCoreCriticalSection (key);\r
+\r
+ return;\r
+}\r
+\r
+/* ========================================================================== */\r
+/* END OF FILE */\r
+/* ========================================================================== */\r
similarity index 100%
rename from device/c674x/device_mcbsp_loopback.c
rename to device/c674x/src/device_mcbsp_loopback.c
rename from device/c674x/device_mcbsp_loopback.c
rename to device/c674x/src/device_mcbsp_loopback.c
similarity index 100%
rename from device/k2g/device_mcbsp_loopback.c
rename to device/k2g/src/device_mcbsp_loopback.c
rename from device/k2g/device_mcbsp_loopback.c
rename to device/k2g/src/device_mcbsp_loopback.c
diff --git a/mcbspver.h b/mcbspver.h
--- /dev/null
+++ b/mcbspver.h
@@ -0,0 +1,68 @@
+#ifndef _MCBSPVER_H
+#define _MCBSPVER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ============================================================= */
+/**
+ * @file mcbspver.h
+ *
+ * path ti/drv/mcbsp/mcbspver.h
+ *
+ * @brief MCBSP Driver Version Definitions
+ *
+ * ============================================================
+ * Copyright (c) Texas Instruments Incorporated 2012
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+/**
+ * @brief This is the MCBSP Driver Version. Versions numbers are encoded in the following
+ * format:
+ * 0xAABBCCDD -> Arch (AA); API Changes (BB); Major (CC); Minor (DD)
+ */
+#define MCBSP_DRV_VERSION_ID (0x01000002)
+
+/**
+ * @brief This is the version string which describes the MCBSP driver along with the
+ * date and build information.
+ */
+#define MCBSP_DRV_VERSION_STR "MCBSP Driver Revision: 01.00.00.02"
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _MCBSPVER_H */
diff --git a/package.bld b/package.bld
--- a/package.bld
+++ b/package.bld
print ("Tools Directory : " + toolsBaseDir);
print ("RTSC File Name : " + mcbspRTSCFileName);
print ("MCBSP Driver LLD Path : " + mcbspDriverPath);
-print ("Coverity Analysis : " + (coverityAnalysis == "ON" ? "ON" : "OFF"));
print ("CC LE opts : " + C66LE.ccOpts.prefix);
print ("CC BE opts : " + C66BE.ccOpts.prefix);
print ("****************************************************************");
var tplt = xdc.loadTemplate("./mcbspver.h.xdt");
tplt.genFile("./mcbspver.h",mcbspDriverReleaseVersion);
-/*********************************************************************
- *********************** INSTALL-JAMMER Support **********************
- * In order to create the InstallJammer Application; we need to UNTAR
- * the package into a temporary directory. This is required because
- * currently the InstallJammer does not support the TAR Files and thus
- * creating an UNTAR of the file. So to work-around the problem we will
- * do the following in the EPILOGUE Section:-
- * (a) Create a temporary directory called 'tmp'
- * (b) UNTAR the package into 'tmp'
- * (c) Run the INSTALL Jammer on 'tmp'
- * (d) Remove the 'tmp' directory.
- *
- * This can be done only after the 'release' package has been created.
- * Thus all of this work is being done in the EPILOGUE.
- *********************************************************************/
-if (mcbspDriverInstallType == "SETUP")
-{
- /* Create the Install Jammer Version Variable. This is used inside the
- * MPI File to create the Final executable.
- * The format supported is as follows:-
- * - setupwin32_mcbsp_<device>_<version>.exe
- */
- var InstallJammerVersion = "-DVersion " + mcbspLLDPartNumber + "_" +
- mcbspDriverReleaseVersion[0] + "_" + mcbspDriverReleaseVersion[1] + "_" +
- mcbspDriverReleaseVersion[2] + "_" + mcbspDriverReleaseVersion[3];
-
- /* This is the location where the tmp directory is located; this is used as
- * the input directory for the Install Jammer. */
- var PackageBaseDir = " -DPackageBaseDir " + mcbspDriverPath + "./tmp";
-
- /* This is the location where the MCBSP LLD will be installed by default. */
- var WinInstallDir = " -DWinInstallDir C:/Program Files/Texas Instruments/mcbsp" + "_" +
- mcbspLLDPartNumber + "_" +
- mcbspDriverReleaseVersion[0] + "_" + mcbspDriverReleaseVersion[1] + "_" +
- mcbspDriverReleaseVersion[2] + "_" + mcbspDriverReleaseVersion[3];
-
- /* Create the actual EPILOGUE Section for the INSTALLER */
- Pkg.makeEpilogue += "release: install_application\n";
- Pkg.makeEpilogue += "install_application:\n";
- Pkg.makeEpilogue += "\t @echo -------------------------------------------------------\n";
- Pkg.makeEpilogue += "\t @echo Creating the Install\n";
- Pkg.makeEpilogue += "\t @echo -------------------------------------------------------\n";
- Pkg.makeEpilogue += "\t -$(MKDIR) tmp\n";
- Pkg.makeEpilogue += "\t -$(MKDIR) tmp/packages\n";
- Pkg.makeEpilogue += "\t -$(MKDIR) tmp/eclipse\n";
- Pkg.makeEpilogue += "\t -$(CP) -R eclipse tmp\n";
- Pkg.makeEpilogue += "\t tar -xf ./packages/" + mcbspRTSCFileName + ".tar" + " -Ctmp/packages \n";
- Pkg.makeEpilogue += "\t installjammer " + InstallJammerVersion + PackageBaseDir + WinInstallDir +
- " --output-dir packages/ --build install/mcbsplld.mpi\n";
- Pkg.makeEpilogue += "\t -$(RMDIR) /S /Q tmp\n\n";
-
- /* We need to clean after ourselves; extend the 'clean' target to take care of this. */
- Pkg.makeEpilogue += "clean::\n";
- Pkg.makeEpilogue += "\t $(RM) packages/*.exe\n";
- Pkg.makeEpilogue += "\t $(RM) packages/*.bin\n";
- Pkg.makeEpilogue += "\t $(RMDIR) /S /Q eclipse\n";
- Pkg.makeEpilogue += "\t $(RMDIR) /S /Q tmp\n";
-}
-
-/***************************************************************************
- ********************************* MINI Package ****************************
- ***************************************************************************/
-/* Check if we need to create the mini package? */
-if (miniBuild == "ON")
-{
- /* Create the MINI RTSC Package */
- var libUtility = xdc.loadCapsule ("build/buildlib.xs");
- libUtility.createMiniPkg(mcbspRTSCFileName);
-}
-
+
diff --git a/package.xs b/package.xs
--- a/package.xs
+++ b/package.xs
function getLibs(prog)
{
- var suffix;
+ var suffix = prog.build.target.suffix;
- /* find a compatible suffix */
- if ("findSuffix" in prog.build.target) {
- suffix = prog.build.target.findSuffix(this);
+ var name = this.$name + ".a" + suffix;
+
+ /* Read LIBDIR variable */
+ var lib = java.lang.System.getenv("LIBDIR");
+
+ /* If NULL, default to "lib" folder */
+ if (lib == null)
+ {
+ lib = "./lib";
+ } else {
+ print ("\tSystem environment LIBDIR variable defined : " + lib);
}
- else {
- suffix = prog.build.target.suffix;
+
+ /* Device types supported */
+ var deviceTypes = [
+ 'k2g',
+ 'c674x',
+ 'c6657'
+ ];
+
+ /* Search for the supported devices (defined in config.bld) */
+ for each(var device in deviceTypes)
+ {
+ if (this.Settings.deviceType.equals(device))
+ {
+ lib = lib + "/" + device;
+ break;
+ }
}
- var name = this.$name + ".a" + suffix;
- var lib = "";
+ /* Get target folder, if applicable */
+ if ( java.lang.String(suffix).contains('66') )
+ lib = lib + "/c66";
- lib = "lib/" + name;
+ /* Get library name with path */
+ lib = lib + "/" + name;
if (java.io.File(this.packageBase + lib).exists()) {
- return lib;
+ print ("\tLinking with library " + this.$name + ":" + lib);
+ return lib;
}
- /* could not find any library, throw exception */
- throw Error("Library not found: " + name);
+ /* Could not find any library, throw exception */
+ throw new Error("\tLibrary not found: " + this.packageBase + lib);
}
/*
diff --git a/src/Module.xs b/src/Module.xs
--- a/src/Module.xs
+++ b/src/Module.xs
**************************************************************************/
function modBuild()
{
- /* Build the libraries for all the targets specified. */
- for (var targets=0; targets < Build.targets.length; targets++)
+
+ /* Build the device independent libraries for all the targets specified. */
+ for (var targets=0; targets < socs["all"].targets.length; targets++)
{
+ var targetFiles = mcbsplldFile.slice(); /* make copy */
var libOptions = {
+ copts: socs["all"].copts,
+ incs: mcbsplldIncPath,
};
+ libUtility.buildLibrary ("", "false", libOptions, Pkg.name, socs["all"].targets[targets], targetFiles);
+ }
+
+
+ /* Build library targets for device dependent SoCs */
+ for (var soc=0; soc < soc_names.length; soc++)
+ {
+ var dev = socs[soc_names[soc]];
- libUtility.buildLibrary (libOptions, "ti.drv.mcbsp", Build.targets[targets], mcbsplldFile);
+ /* do not proceed if this SoC is not configured to be built */
+ if (dev.build == "false")
+ continue;
+
+ if (dev.socDevLib == "true")
+ {
+ var targetFiles_soc = mcbsplldFile.slice(); /* make copy */
+ targetFiles_soc.push (deviceConstruct[0]+soc_names[soc]+deviceConstruct[1]);
+ /* Build the libraries for all the targets specified. */
+ for (var targets=0; targets < dev.targets.length; targets++)
+ {
+ var libOptions = {
+ copts: dev.copts,
+ incs: mcbsplldIncPath,
+ };
+ libUtility.buildLibrary (soc_names[soc], "true", libOptions, Pkg.name, dev.targets[targets], targetFiles_soc);
+ }
+ }
+
+
}
/* Add all the .c files to the release package. */
- var testFiles = libUtility.listAllFiles (".c", "src");
+ var testFiles = libUtility.listAllFiles (".c", "src", true);
for (var k = 0 ; k < testFiles.length; k++)
Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
/* Add all the .h files to the release package. */
- var testFiles = libUtility.listAllFiles (".h", "src");
- for (var k = 0 ; k < testFiles.length; k++)
- Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
-
- /* Add all the .c files in the device directory to the release package also */
- var testFiles = libUtility.listAllFiles (".c", "device");
+ var testFiles = libUtility.listAllFiles (".h", "src", true);
for (var k = 0 ; k < testFiles.length; k++)
Pkg.otherFiles[Pkg.otherFiles.length++] = testFiles[k];
}