]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/Source/TianoTools/build.xml
Updated to handle cygwin/gcc and moved msvc,gcc property settings to the TianoTools...
[mirror_edk2.git] / Tools / Source / TianoTools / build.xml
CommitLineData
878ddf1f 1<?xml version="1.0" encoding="utf-8" ?> \r
2<!--\r
3Copyright (c) 2006, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11-->\r
af1dd46d 12<project default="all" basedir="." name="C_Code">\r
878ddf1f 13<!-- Copyright (c) 2006, Intel Corporation -->\r
14<!-- Filename: Tools/Source/build.xml -->\r
15\r
16 <taskdef resource="net/sf/antcontrib/antlib.xml"/>\r
af1dd46d 17\r
18 <property name="ReallyVerbose" value="false"/>\r
878ddf1f 19 <property environment="env" />\r
af1dd46d 20\r
878ddf1f 21 <property name="WORKSPACE" value="${env.WORKSPACE}" />\r
22 <property name="WORKSPACE_DIR" value="${WORKSPACE}" />\r
23 <property name="PACKAGE" value="Tools" />\r
24 <property name="PACKAGE_DIR" value="${WORKSPACE}/Tools/Source/TianoTools" />\r
25 <property name="LIB_DIR" value="${PACKAGE_DIR}/Library" />\r
26 <property name="BIN_DIR" value="${WORKSPACE}/Tools/bin" />\r
27 <property name="BUILD_MODE" value="PACKAGE" />\r
4df60ea5 28 <property name="Libs" \r
af1dd46d 29 value="Common/build.xml CustomizedCompress/build.xml PeCoffLoader/build.xml String/build.xml"/>\r
878ddf1f 30\r
31 <import file="${WORKSPACE_DIR}/Tools/Conf/BuildMacro.xml" />\r
32\r
33 <path id="classpath">\r
34 <fileset dir="${WORKSPACE}/Tools/Jars" includes="*.jar"/>\r
19924945 35 <fileset dir="${env.XMLBEANS_HOME}/lib" includes="*.jar"/>\r
878ddf1f 36 </path>\r
37\r
af1dd46d 38 <taskdef classpathref="classpath" resource="GenBuild.tasks" />\r
39 <taskdef classpathref="classpath" resource="net/sf/antcontrib/antlib.xml" />\r
878ddf1f 40\r
af1dd46d 41 <taskdef classpathref="classpath" resource="cpptasks.tasks"/>\r
42 <typedef classpathref="classpath" resource="cpptasks.types"/>\r
878ddf1f 43\r
af1dd46d 44 <target name="all" depends="init, Tools">\r
45 <echo message="The EDK II C Tools build complete!"/>\r
46 </target>\r
47 \r
48 <target name="init">\r
49 <echo message="EDK C Code Tools, build initialization"/>\r
878ddf1f 50 <mkdir dir="${BIN_DIR}" />\r
51 <mkdir dir="${LIB_DIR}" />\r
af1dd46d 52\r
53 <condition property="HostArch" value="X64">\r
54 <os arch="amd64"/>\r
55 </condition>\r
56 <condition property="HostArch" value="Ia32">\r
57 <or>\r
58 <os arch="x86"/>\r
59 <os arch="i386"/>\r
60 </or>\r
61 </condition>\r
62 <condition property="HostArch" value="Ia32">\r
63 <os arch="i386"/>\r
64 </condition> \r
65\r
878ddf1f 66 <if>\r
67 <os family="unix" />\r
68 <then>\r
af1dd46d 69 <echo message="OS Family UNIX, ${HostArch}" />\r
878ddf1f 70 </then>\r
71 <elseif>\r
72 <os family="dos" />\r
73 <then>\r
af1dd46d 74 <echo message="OS Family DOS, ${HostArch}" />\r
878ddf1f 75 </then>\r
76 </elseif>\r
77 <elseif>\r
78 <os family="mac" />\r
79 <then>\r
af1dd46d 80 <echo message="OS Family OS X, ${HostArch}" />\r
878ddf1f 81 </then>\r
82 </elseif>\r
83 <else>\r
af1dd46d 84 <fail message="OS Family Unsupported, ${HostArch}" />\r
878ddf1f 85 </else>\r
86 </if>\r
87\r
dce914c0 88 <if>\r
af1dd46d 89 <not>\r
90 <isset property="ToolChain" />\r
91 </not>\r
dce914c0 92 <then>\r
af1dd46d 93 <if>\r
94 <isset property="env.TOOL_CHAIN" />\r
95 <then>\r
96 <property name="ToolChain" value="${env.TOOL_CHAIN}"/>\r
97 </then>\r
98 <else>\r
99 <!-- Default Tool Chain is Microsoft Visual Studio -->\r
100 <property name="ToolChain" value="msvc"/>\r
101 </else>\r
102 </if>\r
dce914c0 103 </then>\r
104 </if>\r
105\r
5225ad33 106 <condition property="linux" value="true">\r
107 <os name="Linux"/>\r
108 </condition>\r
109 \r
af1dd46d 110 <condition property="intel_win">\r
111 <and>\r
112 <os family="dos"/>\r
113 <equals arg1="${ToolChain}" arg2="intel"/>\r
114 </and>\r
115 </condition>\r
116 \r
117 <condition property="intel_linux">\r
118 <and>\r
119 <os name="Linux"/>\r
120 <equals arg1="${ToolChain}" arg2="intel"/>\r
121 </and>\r
122 </condition>\r
123 \r
124 <condition property="intel_mac">\r
125 <and>\r
126 <os family="mac"/>\r
127 <equals arg1="${ToolChain}" arg2="intel"/>\r
128 </and>\r
129 </condition>\r
130 \r
131 <condition property="gcc">\r
132 <and>\r
133 <equals arg1="${ToolChain}" arg2="gcc"/>\r
134 </and>\r
135 </condition>\r
136\r
460fa4a2 137 <condition property="cygwin">\r
138 <and>\r
139 <os family="dos"/>\r
af1dd46d 140 <equals arg1="${ToolChain}" arg2="gcc"/>\r
460fa4a2 141 </and>\r
142 </condition>\r
143 \r
c7c42e40 144 <condition property="x86_64_linux">\r
145 <and>\r
146 <os name="Linux"/>\r
147 <equals arg1="${HostArch}" arg2="x64"/>\r
148 </and>\r
149 </condition>\r
150 \r
5225ad33 151 <condition property="windows" value="true">\r
152 <os family="Windows"/>\r
153 </condition>\r
154 \r
155 <condition property="OSX" value="true">\r
156 <os family="Mac"/>\r
157 </condition>\r
af1dd46d 158\r
159 <condition property="cyglinux">\r
160 <or>\r
161 <istrue value="linux"/>\r
162 <istrue value="${cygwin}"/>\r
163 </or>\r
164 </condition>\r
165\r
166 <!-- msft is a family, used by both Microsoft and Intel Windows compiler tool chains -->\r
167 <condition property="msft">\r
168 <isfalse value="${gcc}"/>\r
169 </condition>\r
170\r
171 <if>\r
172 <istrue value="${ReallyVerbose}"/>\r
173 <then>\r
174 <echo message="Test property msvc: ${msvc}"/> \r
175 <echo message="Test property gcc: ${gcc}"/> \r
176 <echo message="Test property intel_win: ${intel_win}"/> \r
177 <echo message="Test property intel_linux: ${intel_linux}"/> \r
178 <echo message="Test property intel_mac: ${intel_mac}"/> \r
179 <echo message="Test property msft: ${msft}"/> \r
180 <echo message="Test property cygwin: ${cygwin}"/> \r
181 <echo message="Test property cyglinux: ${cyglinux}"/> \r
182 <echo message="Test property windows: ${windows}"/> \r
183 <echo message="Test property linux: ${linux}"/> \r
184 <echo message="Test property OSX: ${OSX}"/> \r
185 <echo message="Test property x86_64_linux: ${x86_64_linux}"/> \r
186 </then>\r
187 </if>\r
188\r
189 <property name="haveLibtool" value="false"/>\r
190 <if>\r
191 <and>\r
192 <not>\r
193 <isset property="env.CYGWIN_HOME"/>\r
194 </not>\r
195 <isset property="cygwin"/>\r
196 </and>\r
197 <then>\r
198 <fail message="You must set the environment variable: CYGWIN_HOME"/>\r
199 </then>\r
200 </if>\r
201\r
202 <if>\r
203 <istrue value="${gcc}"/>\r
204 <then>\r
205 <property name="ext_static" value=".a"/>\r
206 <property name="ext_dynamic" value=".so"/>\r
207 <if>\r
208 <istrue value="${cygwin}"/>\r
209 <then>\r
210 <property name="ext_exe" value=".exe"/>\r
211 </then>\r
212 <else>\r
213 <property name="ext_exe" value=""/>\r
214 </else>\r
215 </if>\r
216 </then>\r
217 <else>\r
218 <property name="ext_static" value=".lib"/>\r
219 <property name="ext_dynamic" value=".dll"/>\r
220 <property name="ext_exe" value=".exe"/>\r
221 </else>\r
222 </if>\r
878ddf1f 223 </target>\r
af1dd46d 224\r
225 <target name="Libraries" depends="init">\r
878ddf1f 226 <subant target="" inheritall="true">\r
227 <fileset dir="${PACKAGE_DIR}" \r
4df60ea5 228 includes="${Libs}"/>\r
878ddf1f 229 </subant>\r
230 </target>\r
231\r
232 <target name="Tools" depends="Libraries">\r
233 <subant target="" inheritall="true">\r
234 <fileset dir="${PACKAGE_DIR}" includes="*/build.xml"\r
4df60ea5 235 excludes="${Libs}"/>\r
878ddf1f 236 </subant>\r
237 </target>\r
238\r
af1dd46d 239 <target name="clean" depends="init">\r
878ddf1f 240 <subant target="clean" inheritall="true">\r
241 <fileset dir="${PACKAGE_DIR}" includes="*/build.xml"/>\r
242 </subant>\r
243 </target>\r
244\r
af1dd46d 245 <target name="cleanall" depends="init">\r
878ddf1f 246 <subant target="cleanall" inheritall="true">\r
247 <fileset dir="${PACKAGE_DIR}" includes="*/build.xml"/>\r
248 </subant>\r
249 <delete dir="${LIB_DIR}"/>\r
250 </target>\r
251</project>\r