git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1252
6f19259b-4bc3-4df7-8a09-
765794883524
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-->\r
<project name="common">\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-->\r
<project name="common">\r
+ <!--\r
+ Macro for intialize some properties. This Macro build will be called before source file build. \r
+ -->\r
+ <macrodef name="Build_Init">\r
+ <sequential>\r
+ <var name="OBJECTS" value="" />\r
+ <var name="SDB_FILES" value="" />\r
+ </sequential>\r
+ </macrodef>\r
+\r
+\r
<!--\r
macro definitions for building files with different types\r
-->\r
<!--\r
macro definitions for building files with different types\r
-->\r
</cc>\r
</sequential>\r
</OnDependency>\r
</cc>\r
</sequential>\r
</OnDependency>\r
+ <var name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" />\r
</sequential>\r
</macrodef>\r
\r
</sequential>\r
</macrodef>\r
\r
</cc>\r
</sequential>\r
</OnDependency>\r
</cc>\r
</sequential>\r
</OnDependency>\r
+ <var name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" />\r
</sequential>\r
</macrodef>\r
\r
</sequential>\r
</macrodef>\r
\r
</cc>\r
</sequential>\r
</OnDependency>\r
</cc>\r
</sequential>\r
</OnDependency>\r
+ <var name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" />\r
</sequential>\r
</macrodef>\r
\r
</sequential>\r
</macrodef>\r
\r
</cc>\r
</sequential>\r
</OnDependency>\r
</cc>\r
</sequential>\r
</OnDependency>\r
+ <var name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" />\r
</sequential>\r
</macrodef>\r
\r
</sequential>\r
</macrodef>\r
\r
</cc>\r
</sequential>\r
</OnDependency>\r
</cc>\r
</sequential>\r
</OnDependency>\r
+ <var name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" />\r
</sequential>\r
</macrodef>\r
\r
</sequential>\r
</macrodef>\r
\r
\r
<OnDependency>\r
<sourcefiles>\r
\r
<OnDependency>\r
<sourcefiles>\r
- <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+ <file list="${OBJECTS}" />\r
</sourcefiles>\r
<targetfiles>\r
<file name="${BIN_DIR}/@{FILENAME}.lib"/>\r
</sourcefiles>\r
<targetfiles>\r
<file name="${BIN_DIR}/@{FILENAME}.lib"/>\r
outputFile="${BIN_DIR}/@{FILENAME}.lib">\r
<argument value="${SLINK_FLAGS}"/>\r
\r
outputFile="${BIN_DIR}/@{FILENAME}.lib">\r
<argument value="${SLINK_FLAGS}"/>\r
\r
- <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+ <argument value="${OBJECTS}"/>\r
</command>\r
</cc>\r
</sequential>\r
</command>\r
</cc>\r
</sequential>\r
</cc>\r
</sequential>\r
</OnDependency>\r
</cc>\r
</sequential>\r
</OnDependency>\r
+ <var name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Strings.obj" />\r
</sequential>\r
</macrodef>\r
\r
</sequential>\r
</macrodef>\r
\r
<delete file="${PLATFORM_DIR}/@{FILENAME}.i" />\r
</sequential>\r
</OnDependency>\r
<delete file="${PLATFORM_DIR}/@{FILENAME}.i" />\r
</sequential>\r
</OnDependency>\r
+ <var name="OBJECTS" value="${OBJECTS} ${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}.obj" />\r
</sequential>\r
</macrodef>\r
\r
</sequential>\r
</macrodef>\r
\r
<OnDependency>\r
<sourcefiles>\r
<file list="${LIBS}"/>\r
<OnDependency>\r
<sourcefiles>\r
<file list="${LIBS}"/>\r
- <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+ <file list="${OBJECTS}"/>\r
</sourcefiles>\r
<targetfiles>\r
<file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
</sourcefiles>\r
<targetfiles>\r
<file name="${DEST_DIR_DEBUG}/@{FILEPATH}/@{FILENAME}.dll"/>\r
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">\r
<argument value="${SLINK_FLAGS}"/>\r
\r
outputFile="${DEST_DIR_OUTPUT}/@{FILEPATH}/@{FILENAME}Local.lib">\r
<argument value="${SLINK_FLAGS}"/>\r
\r
- <fileset casesensitive="on" dir="${DEST_DIR_OUTPUT}" includes="**/*.obj"/>\r
+ <argument value="${OBJECTS}"/>\r
</command>\r
</cc>\r
<cc userdefine="on">\r
</command>\r
</cc>\r
<cc userdefine="on">\r
// MODULE or BASE_NAME, GUID or FILE_GUID, VERSION, MODULE_TYPE\r
// MODULE_DIR, MODULE_RELATIVE_DIR\r
// SUBSYSTEM, ENTRYPOINT, EBC_TOOL_LIB_PATH\r
// MODULE or BASE_NAME, GUID or FILE_GUID, VERSION, MODULE_TYPE\r
// MODULE_DIR, MODULE_RELATIVE_DIR\r
// SUBSYSTEM, ENTRYPOINT, EBC_TOOL_LIB_PATH\r
- // LIBS, OBJECTS, SDB_FILES\r
//\r
setModuleCommonProperties(archList[k]);\r
\r
//\r
setModuleCommonProperties(archList[k]);\r
\r
getProject().setProperty("ENTRYPOINT", "_ModuleEntryPoint");\r
}\r
\r
getProject().setProperty("ENTRYPOINT", "_ModuleEntryPoint");\r
}\r
\r
- //\r
- // LIBS, OBJECTS, SDB_FILES\r
- //\r
getProject().setProperty("OBJECTS", "");\r
getProject().setProperty("OBJECTS", "");\r
- getProject().setProperty("SDB_FILES", "");\r
- getProject().setProperty("LIBS", "");\r
}\r
\r
private void getCompilerFlags(String target, String toolchain, FpdModuleIdentification fpdModuleId) throws EdkException {\r
}\r
\r
private void getCompilerFlags(String target, String toolchain, FpdModuleIdentification fpdModuleId) throws EdkException {\r
\r
FileProcess fileProcess = new FileProcess();\r
fileProcess.init(project, includes, document);\r
\r
FileProcess fileProcess = new FileProcess();\r
fileProcess.init(project, includes, document);\r
+ \r
+ //\r
+ // Initialize some properties by user\r
+ //\r
+ Element initEle = document.createElement("Build_Init");\r
+ root.appendChild(initEle);\r
\r
String moduleDir = project.getProperty("MODULE_DIR");\r
//\r
\r
String moduleDir = project.getProperty("MODULE_DIR");\r
//\r