]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Sample/Tools/Source/VfrCompile/makefile
Sync all bug fixes between EDK1.04 and EDK1.06 into EdkCompatibilityPkg.
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / VfrCompile / makefile
CommitLineData
3eb9473e 1#/*++\r
2# \r
3e99020d 3# Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
4b1e1121 4# This program and the accompanying materials \r
3eb9473e 5# are licensed and made available under the terms and conditions of the BSD License \r
6# which accompanies this distribution. The full text of the license may be found at \r
7# http://opensource.org/licenses/bsd-license.php \r
8# \r
9# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11# \r
12# Module Name:\r
13# \r
14# makefile\r
15# \r
16# Abstract:\r
17# \r
18# Makefile for building the EFI VFR compiler\r
19# \r
20#--*/ \r
21\r
22\r
23!IFNDEF EDK_SOURCE\r
24!ERROR EDK_SOURCE environmental variable not set \r
25!ENDIF\r
26\r
27#\r
28# Do this if you want to compile from this directory\r
29#\r
30!IFNDEF TOOLCHAIN\r
31TOOLCHAIN = TOOLCHAIN_MSVC\r
32!ENDIF\r
33\r
34!INCLUDE $(BUILD_DIR)\PlatformTools.env\r
35\r
36.SUFFIXES :\r
37\r
38TARGET_NAME = VfrCompile\r
39ANTLR_H = $(PCCTS_DIR)\h\r
3e99020d 40C_FLAGS_PCCTS = -I. -I$(ANTLR_H) /Zi /Fd$(EDK_TOOLS_OUTPUT)\$(TARGET_NAME)Obj /WX /Od /D _CRT_SECURE_NO_DEPRECATE $(VERSION_FLAGS) $(BUILD_STRING_FLAGS)\r
3eb9473e 41C_FLAGS_PCCTS = $(C_FLAGS_PCCTS) \r
42\r
43LINK_FLAGS_PCCTS =\r
44LIBS = "$(EDK_TOOLS_OUTPUT)\Common.lib"\r
45\r
46# \r
47# Define the EFI output and source directories.\r
48#\r
49ETO = $(EDK_TOOLS_OUTPUT)\r
50SRC = $(EDK_TOOLS_SOURCE)\$(TARGET_NAME)\r
51TARGET_EXE = $(ETO)\$(TARGET_NAME).exe\r
52\r
53#\r
54# Add deeper lookahead with -ck 3\r
55#\r
56ANTLR_FLAGS = -CC -e3 -ck 3\r
57DLG_FLAGS = -C2 -i -CC\r
58\r
59#\r
60# Define paths for include files\r
61#\r
62INC = -I $(SRC) \r
63INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include\Ia32\r
64INC = $(INC) -I $(EDK_SOURCE)\Foundation\Efi\Include\r
65INC = $(INC) -I $(EDK_SOURCE)\Foundation\Framework\Include\r
66INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include\IndustryStandard\r
67INC = $(INC) -I $(EDK_SOURCE)\Foundation\ \\r
68 -I $(EDK_SOURCE)\Foundation\Core\Dxe \\r
69 -I $(EDK_SOURCE)\Foundation\Efi \\r
70 -I $(EDK_SOURCE)\Foundation\Framework\r
71INC = $(INC) -I $(EDK_TOOLS_SOURCE)\Common\r
72INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include \r
73\r
74DLG_FILE = Parser.dlg\r
75SCAN_FILE = DLGLexer\r
76PARSER_FILE = EfiVfrParser\r
77\r
78#\r
79# Create a list of include dependencies \r
80#\r
81INC_DEPS = $(INC_DEPS) $(SRC)\EfiVfr.h\r
82INC_DEPS = $(INC_DEPS) $(EDK_SOURCE)\Foundation\Framework\Include\EfiInternalFormRepresentation.h\r
83\r
84#\r
85# This is the grammer file for our project\r
86#\r
87GRAMMER_FILE = $(SRC)\$(TARGET_NAME).g\r
88\r
89#\r
90# If we utilize a separate token file, define it here.\r
91#\r
92#TOKEN_FILE = \r
93\r
94 \r
95OBJECTS = $(ETO)\$(TARGET_NAME).obj \\r
96 $(ETO)\$(PARSER_FILE).obj \\r
97 $(ETO)\AParser.obj \\r
98 $(ETO)\DLexerBase.obj \\r
99 $(ETO)\ATokenBuffer.obj \\r
100 $(ETO)\$(SCAN_FILE).obj \\r
101 $(ETO)\VfrServices.obj\r
102\r
103#\r
104# Per the Language Translation Using PCCTS and C++ Reference Guide, page 109,\r
105# these are the outputs of ANTLR and DLG\r
106# \r
107ANTLR_SPAWN = $(ETO)\$(TARGET_NAME).cpp \\r
108 $(ETO)\$(PARSER_FILE).cpp \\r
109 $(ETO)\$(PARSER_FILE).h \\r
110 $(ETO)\$(DLG_FILE) \\r
111 $(ETO)\tokens.h \r
112\r
113DLG_SPAWN = $(ETO)\$(SCAN_FILE).cpp \\r
114 $(ETO)\$(SCAN_FILE).h\r
115\r
116\r
117#\r
118# Default target\r
119#\r
120all : $(TARGET_EXE)\r
121\r
122#\r
123# All antlr-generated files depend on the .g grammer file. Use the -o\r
124# option to emit them to the appropriate output directory.\r
125#\r
126$(ANTLR_SPAWN) : $(GRAMMER_FILE) $(INC_DEPS)\r
127 $(ANTLR) $(ANTLR_FLAGS) -o $(ETO) $(GRAMMER_FILE)\r
128\r
129$(ETO)\$(TARGET_NAME).obj : $(ETO)\$(TARGET_NAME).cpp $(DLG_SPAWN) $(INC_DEPS)\r
130 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\$(TARGET_NAME).cpp\r
131\r
132$(ETO)\$(SCAN_FILE).obj : $(ETO)\$(SCAN_FILE).cpp $(DLG_SPAWN) $(INC_DEPS)\r
133 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\$(SCAN_FILE).cpp\r
134\r
135$(ETO)\$(PARSER_FILE).obj : $(ETO)\$(PARSER_FILE).cpp $(ETO)\$(PARSER_FILE).h $(DLG_SPAWN) $(INC_DEPS)\r
136 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\$(PARSER_FILE).cpp\r
137\r
138$(DLG_SPAWN) : $(ETO)\$(DLG_FILE) $(INC_DEPS)\r
139 $(DLG) $(DLG_FLAGS) -o $(ETO) $(ETO)\$(DLG_FILE)\r
140\r
141$(ETO)\AParser.obj : $(ANTLR_H)/AParser.cpp\r
142 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)/AParser.cpp\r
143\r
144$(ETO)\ATokenBuffer.obj : $(ANTLR_H)/ATokenBuffer.cpp\r
145 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)/ATokenBuffer.cpp\r
146\r
147$(ETO)\DLexerBase.obj : $(ANTLR_H)/DLexerBase.cpp\r
148 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)/DLexerBase.cpp\r
149\r
150$(ETO)\VfrServices.obj : $(SRC)\VfrServices.cpp $(SRC)\VfrServices.h $(INC_DEPS)\r
151 $(CC) -c $(C_FLAGS_PCCTS) $(INC) /Fo$@ $(SRC)\VfrServices.cpp\r
152\r
153#\r
154# Add Binary Build description for this tools.\r
155#\r
156\r
157!IF (("$(EFI_BINARY_TOOLS)" == "YES") && EXIST($(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe))\r
158$(TARGET_EXE): $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe\r
159 copy $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe $(TARGET_EXE) /Y\r
160 if exist $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb \\r
161 copy $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb /Y\r
162!ELSE\r
163$(TARGET_EXE) : $(OBJECTS) $(LIBS)\r
164 $(LINK) $(MSVS_LINK_LIBPATHS) $(LIBS) /DEBUG /OUT:$(TARGET_EXE) $(LINK_FLAGS_PCCTS) $(OBJECTS) /PDB:$*.pdb\r
95d675b5 165!IF ("$(EFI_BINARY_BUILD)" == "YES")\r
3eb9473e 166 if not exist $(EFI_PLATFORM_BIN)\Tools mkdir $(EFI_PLATFORM_BIN)\Tools\r
167 if exist $(TARGET_EXE) copy $(TARGET_EXE) $(EFI_PLATFORM_BIN)\tools\$(TARGET_NAME).exe /Y\r
168 if exist $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb \\r
169 copy $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb /Y\r
170!ENDIF\r
95d675b5 171!ENDIF\r
3eb9473e 172\r
173clean:\r
174 \r