// Add #ifndef ${BaseName}_AUTOGENH\r
// #def ${BseeName}_AUTOGENH\r
//\r
- fileBuffer.append("#ifndef " + this.moduleId.getName().toUpperCase()\r
- + "_AUTOGENH\r\n");\r
- fileBuffer.append("#define " + this.moduleId.getName().toUpperCase()\r
- + "_AUTOGENH\r\n\r\n");\r
+ fileBuffer.append("#ifndef " + "_AUTOGENH_" + this.moduleId.getGuid().replaceAll("-", "_") +"\r\n");\r
+ fileBuffer.append("#define " + "_AUTOGENH_" + this.moduleId.getGuid().replaceAll("-", "_") +"\r\n\r\n");\r
\r
//\r
// Write the specification version and release version at the begine\r
// Write library class's related *.h file to autogen.h.\r
//\r
String[] libClassList = SurfaceAreaQuery\r
- .getLibraryClasses(CommonDefinition.AlwaysConsumed);\r
+ .getLibraryClasses(CommonDefinition.AlwaysConsumed,this.arch);\r
if (libClassList != null) {\r
libClassIncludeH = LibraryClassToAutogenH(libClassList);\r
item = libClassIncludeH.iterator();\r
}\r
\r
libClassList = SurfaceAreaQuery\r
- .getLibraryClasses(CommonDefinition.AlwaysProduced);\r
+ .getLibraryClasses(CommonDefinition.AlwaysProduced, this.arch);\r
if (libClassList != null) {\r
libClassIncludeH = LibraryClassToAutogenH(libClassList);\r
item = libClassIncludeH.iterator();\r
// Add #ifndef ${BaseName}_AUTOGENH\r
// #def ${BseeName}_AUTOGENH\r
//\r
- fileBuffer.append("#ifndef " + this.moduleId.getName().toUpperCase()\r
- + "_AUTOGENH\r\n");\r
- fileBuffer.append("#define " + this.moduleId.getName().toUpperCase()\r
- + "_AUTOGENH\r\n\r\n");\r
+ fileBuffer.append("#ifndef " + "_AUTOGENH_" + this.moduleId.getGuid().replaceAll("-", "_") + "\r\n");\r
+ fileBuffer.append("#define " + "_AUTOGENH_" + this.moduleId.getGuid().replaceAll("-", "_") + "\r\n\r\n");\r
\r
//\r
// Write EFI_SPECIFICATION_VERSION and EDK_RELEASE_VERSION\r
// Write library class's related *.h file to autogen.h\r
//\r
String[] libClassList = SurfaceAreaQuery\r
- .getLibraryClasses(CommonDefinition.AlwaysConsumed);\r
+ .getLibraryClasses(CommonDefinition.AlwaysConsumed, this.arch);\r
if (libClassList != null) {\r
libClassIncludeH = LibraryClassToAutogenH(libClassList);\r
item = libClassIncludeH.iterator();\r
}\r
\r
libClassList = SurfaceAreaQuery\r
- .getLibraryClasses(CommonDefinition.AlwaysProduced);\r
+ .getLibraryClasses(CommonDefinition.AlwaysProduced, this.arch);\r
if (libClassList != null) {\r
libClassIncludeH = LibraryClassToAutogenH(libClassList);\r
item = libClassIncludeH.iterator();\r
if (compDiagList != null && compDiagList.length != 0) {\r
if (drvBindList.length != compDiagList.length) {\r
throw new BuildException(\r
- "Different number of Driver Binding and Driver Configuration protocols!");\r
+ "Different number of Driver Binding and Driver Diagnosis protocols!");\r
}\r
\r
BitMask |= 0x04;\r
// libInstanceMap.\r
//\r
libClassConsmList = SurfaceAreaQuery\r
- .getLibraryClasses(CommonDefinition.AlwaysConsumed);\r
+ .getLibraryClasses(CommonDefinition.AlwaysConsumed, arch);\r
if (libClassConsmList != null) {\r
String[] classStr = new String[libClassConsmList.length];\r
for (int k = 0; k < libClassConsmList.length; k++) {\r
// Add library class and library instance map.\r
//\r
libClassDeclList = SurfaceAreaQuery\r
- .getLibraryClasses(CommonDefinition.AlwaysProduced);\r
+ .getLibraryClasses(CommonDefinition.AlwaysProduced, arch);\r
if (libClassDeclList != null) {\r
for (int j = 0; j < libClassDeclList.length; j++) {\r
if (this.libClassMap.containsKey(libClassDeclList[j])) {\r
* xpath\r
* @returns null if nothing is there\r
*/\r
- public static String[] getLibraryClasses(String usage) {\r
+ public static String[] getLibraryClasses(String usage, String arch) {\r
String[] xPath;\r
-\r
if (usage == null || usage.equals("")) {\r
xPath = new String[] { "/LibraryClass" };\r
} else {\r
}\r
\r
LibraryClassDocument.LibraryClass[] libraryClassList = (LibraryClassDocument.LibraryClass[]) returns;\r
- String[] libraryClassName = new String[libraryClassList.length];\r
+ List<String> libraryClassName = new ArrayList<String>();\r
for (int i = 0; i < libraryClassList.length; i++) {\r
- libraryClassName[i] = libraryClassList[i].getKeyword();\r
+ List archList = libraryClassList[i].getSupArchList();\r
+ \r
+ if (arch == null || contains(archList, arch)) {\r
+ libraryClassName.add(libraryClassList[i].getKeyword());\r
+ }\r
}\r
- return libraryClassName;\r
+ String[] libraryArray = new String[libraryClassName.size()];\r
+ for (int i = 0; i < libraryClassName.size(); i++) {\r
+ libraryArray[i] = libraryClassName.get(i);\r
+ }\r
+ return libraryArray;\r
}\r
\r
/**\r
@return boolean\r
**/\r
public static boolean contains(List list, String str) {\r
+ if (list == null || list.size()== 0) {\r
+ return true;\r
+ }\r
Iterator it = list.iterator();\r
while (it.hasNext()) {\r
String s = (String)it.next();\r