]> git.proxmox.com Git - mirror_edk2.git/blob - Tools/Source/TianoTools/VfrCompile/build.xml
A couple of cleanups in the TianoTools build.
[mirror_edk2.git] / Tools / Source / TianoTools / VfrCompile / build.xml
1 <?xml version="1.0" ?>
2 <!--
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 -->
12 <project default="GenTool" basedir=".">
13 <!--
14 EDK VfrCompile Tool
15 Copyright (c) 2006, Intel Corporation
16 -->
17 <property name="ToolName" value="VfrCompile"/>
18 <property name="FileSet" value="*.cpp"/>
19 <property name="FileSetPccts" value="ATokenBuffer.cpp DLexerBase.cpp AParser.cpp"/>
20 <taskdef resource="cpptasks.tasks"/>
21 <typedef resource="cpptasks.types"/>
22 <taskdef resource="net/sf/antcontrib/antlib.xml"/>
23
24 <property name="LINK_OUTPUT_TYPE" value="static"/>
25 <property name="BUILD_DIR" value="${PACKAGE_DIR}/${ToolName}/tmp"/>
26
27 <target name="GenTool" depends="init, Antlr, Dlg, Tool">
28 <echo message="Building the EDK Tool: ${ToolName}"/>
29 </target>
30
31 <target name="init">
32 <echo message="The EDK Tool: ${ToolName}"/>
33 <mkdir dir="${BUILD_DIR}"/>
34 <if>
35 <equals arg1="${GCC}" arg2="cygwin"/>
36 <then>
37 <echo message="Cygwin Family"/>
38 <property name="ToolChain" value="gcc"/>
39 </then>
40 <elseif>
41 <os family="dos"/>
42 <then>
43 <echo message="Windows Family"/>
44 <property name="ToolChain" value="msvc"/>
45 </then>
46 </elseif>
47 <elseif>
48 <os family="unix"/>
49 <then>
50 <echo message="UNIX Family"/>
51 <property name="ToolChain" value="gcc"/>
52 </then>
53 </elseif>
54
55 <else>
56 <echo>
57 Unsupported Operating System
58 Please Contact Intel Corporation
59 </echo>
60 </else>
61 </if>
62 <if>
63 <equals arg1="${ToolChain}" arg2="msvc"/>
64 <then>
65 <property name="ext_static" value=".lib"/>
66 <property name="ext_dynamic" value=".dll"/>
67 <property name="ext_exe" value=".exe"/>
68 </then>
69 <elseif>
70 <equals arg1="${ToolChain}" arg2="gcc"/>
71 <then>
72 <property name="ext_static" value=".a"/>
73 <property name="ext_dynamic" value=".so"/>
74 <property name="ext_exe" value=""/>
75 </then>
76 </elseif>
77 </if>
78 <condition property="CheckDepends">
79 <uptodate targetfile="${WORKSPACE}/Tools/bin/VfrCompile${ext_exe}">
80 <srcfiles dir="${WORKSPACE}/Tools/Source/TianoTools/VfrCompile"
81 includes="EfiVfrParser.cpp DLGLexer.cpp VfrCompile.cpp VfrCompile.g VfrServices.cpp parser.dlg"/>
82 </uptodate>
83 </condition>
84
85 <condition property="gxx_extra_libs" value="stdc++ System gcc_s.10.4 gcc">
86 <os family="mac"/>
87 </condition>
88
89 <condition property="gxx_extra_libs" value="stdc++">
90 <os name="linux"/>
91 </condition>
92
93 <condition property="gxx_extra_libs" value="stdc++">
94 <os family="windows"/>
95 </condition>
96
97 </target>
98
99 <target name="Antlr" depends="init" unless="CheckDepends">
100 <exec dir="${basedir}/${ToolName}" executable="${env.FRAMEWORK_TOOLS_PATH}/antlr" failonerror="TRUE">
101 <arg line="-CC -e3 -ck 3 -o . VfrCompile.g"/>
102 </exec>
103 </target>
104
105 <target name="Dlg" depends="Antlr" unless="CheckDepends">
106 <exec dir="${basedir}/${ToolName}" executable="${env.FRAMEWORK_TOOLS_PATH}/dlg" failonerror="TRUE">
107 <arg line="-C2 -i -CC -o . parser.dlg"/>
108 </exec>
109 </target>
110
111 <target name="Tool" depends="init, Dlg">
112 <cc name="${ToolChain}" objdir="${BUILD_DIR}"
113 outfile="${BIN_DIR}/${ToolName}"
114 outtype="executable"
115 optimize="speed">
116
117 <fileset dir="${basedir}/${ToolName}"
118 includes="${FileSet}" />
119
120 <fileset dir="${basedir}/Pccts/h"
121 includes="${FileSetPccts}" />
122
123 <includepath path="${PACKAGE_DIR}/Pccts/h"/>
124 <includepath path="${PACKAGE_DIR}/Include"/>
125 <includepath path="${PACKAGE_DIR}/Include/${HostArch}"/>
126 <includepath path="${PACKAGE_DIR}/Common"/>
127 <libset dir="${LIB_DIR}" libs="CommonTools"/>
128 <syslibset libs="${gxx_extra_libs}" if="gcc"/>
129 </cc>
130 </target>
131
132 <target name="clean" depends="init">
133 <echo message="Removing Intermediate Files Only"/>
134 <delete>
135 <fileset dir="${BUILD_DIR}" includes="*.obj"/>
136 </delete>
137 </target>
138
139 <target name="cleanall" depends="init">
140 <echo message="Removing Object Files and the Executable: ${ToolName}${ext_exe}"/>
141 <delete dir="${BUILD_DIR}">
142 <fileset dir="${BIN_DIR}" includes="${ToolName}${ext_exe}"/>
143 </delete>
144 </target>
145
146 </project>