<?xml version="1.0" encoding="utf-8" ?> | |
<!-- | |
Copyright (c) 2006, Intel Corporation | |
All rights reserved. This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
--> | |
<project default="all" basedir="." name="C_Code"> | |
<!-- Copyright (c) 2006, Intel Corporation --> | |
<!-- Filename: Tools/Source/build.xml --> | |
<taskdef resource="net/sf/antcontrib/antlib.xml"/> | |
<property name="ReallyVerbose" value="false"/> | |
<property environment="env" /> | |
<property name="WORKSPACE" value="${env.WORKSPACE}" /> | |
<property name="WORKSPACE_DIR" value="${WORKSPACE}" /> | |
<property name="PACKAGE" value="Tools" /> | |
<property name="PACKAGE_DIR" value="${WORKSPACE}/Tools/CCode/Source" /> | |
<property name="LIB_DIR" value="${PACKAGE_DIR}/Library" /> | |
<property name="BIN_DIR" value="${WORKSPACE}/Tools/bin" /> | |
<property name="BUILD_MODE" value="PACKAGE" /> | |
<property name="Libs" | |
value="Common/build.xml CustomizedCompress/build.xml PeCoffLoader/build.xml String/build.xml"/> | |
<import file="${WORKSPACE_DIR}/Tools/Conf/BuildMacro.xml" /> | |
<path id="classpath"> | |
<fileset dir="${WORKSPACE}/Tools/Jars" includes="*.jar"/> | |
<fileset dir="${env.XMLBEANS_HOME}/lib" includes="*.jar"/> | |
</path> | |
<taskdef classpathref="classpath" resource="net/sf/antcontrib/antlib.xml" /> | |
<target name="all" depends="initArch, init, Tools"> | |
<echo message="The EDK II C Tools build complete!"/> | |
</target> | |
<target name="init"> | |
<echo message="EDK C Code Tools, build initialization"/> | |
<taskdef classpathref="classpath" resource="GenBuild.tasks" /> | |
<taskdef classpathref="classpath" resource="cpptasks.tasks"/> | |
<typedef classpathref="classpath" resource="cpptasks.types"/> | |
<mkdir dir="${BIN_DIR}" /> | |
<mkdir dir="${LIB_DIR}" /> | |
</target> | |
<target name="initArch"> | |
<condition property="HostArch" value="X64"> | |
<os arch="amd64"/> | |
</condition> | |
<condition property="HostArch" value="Ia32"> | |
<or> | |
<os arch="x86"/> | |
<os arch="i386"/> | |
</or> | |
</condition> | |
<condition property="HostArch" value="Ia32"> | |
<os arch="i386"/> | |
</condition> | |
<if> | |
<os family="unix" /> | |
<then> | |
<echo message="OS Family UNIX, ${HostArch}" /> | |
</then> | |
<elseif> | |
<os family="dos" /> | |
<then> | |
<echo message="OS Family DOS, ${HostArch}" /> | |
</then> | |
</elseif> | |
<elseif> | |
<os family="mac" /> | |
<then> | |
<echo message="OS Family OS X, ${HostArch}" /> | |
</then> | |
</elseif> | |
<else> | |
<fail message="OS Family Unsupported, ${HostArch}" /> | |
</else> | |
</if> | |
<if> | |
<not> | |
<isset property="ToolChain" /> | |
</not> | |
<then> | |
<if> | |
<isset property="env.TOOL_CHAIN" /> | |
<then> | |
<property name="ToolChain" value="${env.TOOL_CHAIN}"/> | |
</then> | |
<else> | |
<!-- Default Tool Chain is Microsoft Visual Studio --> | |
<property name="ToolChain" value="msvc"/> | |
</else> | |
</if> | |
</then> | |
</if> | |
<if> | |
<equals arg1="${ToolChain}" arg2="gcc" /> | |
<then> | |
<exec executable="gcc" outputproperty="host.gcc.ver"> | |
<arg line="-E" /> | |
<arg line="-P" /> | |
<arg line="-x c" /> | |
<arg line="gcc.ver" /> | |
</exec> | |
<if> | |
<contains string="${host.gcc.ver}" substring="4" /> | |
<then> | |
<property name="ExtraArgus" value="-Wno-pointer-sign" /> | |
</then> | |
</if> | |
</then> | |
</if> | |
<condition property="linux" value="true"> | |
<os name="Linux"/> | |
</condition> | |
<condition property="intel_win"> | |
<and> | |
<os family="dos"/> | |
<equals arg1="${ToolChain}" arg2="intel"/> | |
</and> | |
</condition> | |
<condition property="intel_linux"> | |
<and> | |
<os name="Linux"/> | |
<equals arg1="${ToolChain}" arg2="intel"/> | |
</and> | |
</condition> | |
<condition property="intel_mac"> | |
<and> | |
<os family="mac"/> | |
<equals arg1="${ToolChain}" arg2="intel"/> | |
</and> | |
</condition> | |
<condition property="gcc"> | |
<and> | |
<equals arg1="${ToolChain}" arg2="gcc"/> | |
</and> | |
</condition> | |
<condition property="cygwin"> | |
<and> | |
<os family="dos"/> | |
<equals arg1="${ToolChain}" arg2="gcc"/> | |
</and> | |
</condition> | |
<condition property="x86_64_linux"> | |
<and> | |
<os name="Linux"/> | |
<equals arg1="${HostArch}" arg2="X64"/> | |
</and> | |
</condition> | |
<condition property="windows" value="true"> | |
<os family="Windows"/> | |
</condition> | |
<condition property="OSX" value="true"> | |
<os family="Mac"/> | |
</condition> | |
<condition property="cyglinux"> | |
<or> | |
<istrue value="${linux}"/> | |
<istrue value="${cygwin}"/> | |
</or> | |
</condition> | |
<!-- msft is a family, used by both Microsoft and Intel Windows compiler tool chains --> | |
<condition property="msft"> | |
<isfalse value="${gcc}"/> | |
</condition> | |
<if> | |
<istrue value="${ReallyVerbose}"/> | |
<then> | |
<echo message="Test property msvc: ${msvc}"/> | |
<echo message="Test property gcc: ${gcc}"/> | |
<echo message="Test property intel_win: ${intel_win}"/> | |
<echo message="Test property intel_linux: ${intel_linux}"/> | |
<echo message="Test property intel_mac: ${intel_mac}"/> | |
<echo message="Test property msft: ${msft}"/> | |
<echo message="Test property cygwin: ${cygwin}"/> | |
<echo message="Test property cyglinux: ${cyglinux}"/> | |
<echo message="Test property windows: ${windows}"/> | |
<echo message="Test property linux: ${linux}"/> | |
<echo message="Test property OSX: ${OSX}"/> | |
<echo message="Test property x86_64_linux: ${x86_64_linux}"/> | |
</then> | |
</if> | |
<property name="haveLibtool" value="false"/> | |
<if> | |
<and> | |
<not> | |
<isset property="env.CYGWIN_HOME"/> | |
</not> | |
<isset property="cygwin"/> | |
</and> | |
<then> | |
<fail message="You must set the environment variable: CYGWIN_HOME"/> | |
</then> | |
</if> | |
<if> | |
<istrue value="${gcc}"/> | |
<then> | |
<property name="ext_static" value=".a"/> | |
<property name="ext_dynamic" value=".so"/> | |
<if> | |
<istrue value="${cygwin}"/> | |
<then> | |
<property name="ext_exe" value=".exe"/> | |
</then> | |
<else> | |
<property name="ext_exe" value=""/> | |
</else> | |
</if> | |
</then> | |
<else> | |
<property name="ext_static" value=".lib"/> | |
<property name="ext_dynamic" value=".dll"/> | |
<property name="ext_exe" value=".exe"/> | |
</else> | |
</if> | |
</target> | |
<target name="Libraries" depends="initArch, init"> | |
<subant target="" inheritall="true"> | |
<fileset dir="${PACKAGE_DIR}" | |
includes="${Libs}"/> | |
</subant> | |
</target> | |
<target name="Tools" depends="Libraries"> | |
<subant target="" inheritall="true"> | |
<fileset dir="${PACKAGE_DIR}" includes="*/build.xml" | |
excludes="${Libs}"/> | |
</subant> | |
</target> | |
<target name="clean" depends="initArch"> | |
<subant target="clean" inheritall="true"> | |
<fileset dir="${PACKAGE_DIR}" includes="*/build.xml"/> | |
</subant> | |
</target> | |
<target name="cleanall" depends="initArch"> | |
<subant target="cleanall" inheritall="true"> | |
<fileset dir="${PACKAGE_DIR}" includes="*/build.xml"/> | |
</subant> | |
<delete dir="${LIB_DIR}"/> | |
</target> | |
</project> |