]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Sample/Tools/Source/UefiVfrCompile/makefile
b266cfe03c06d37648c0cad69f74f6d0e32ce480
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / UefiVfrCompile / makefile
1 #/*++
2 #
3 # Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
4 # 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 # Module Name:
13 #
14 # makefile
15 #
16 # Abstract:
17 #
18 # Makefile for building the EFI VFR compiler
19 #
20 #--*/
21
22
23 !IFNDEF EDK_SOURCE
24 !ERROR EDK_SOURCE environmental variable not set
25 !ENDIF
26
27 !IFNDEF TOOLCHAIN
28 TOOLCHAIN = TOOLCHAIN_MSVC
29 !ENDIF
30
31 !INCLUDE $(BUILD_DIR)\PlatformTools.env
32
33 .SUFFIXES :
34
35 TARGET_NAME = VfrCompile
36
37 ETO = $(EDK_TOOLS_OUTPUT)
38 SRC = $(EDK_TOOLS_SOURCE)\Uefi$(TARGET_NAME)
39 TARGET_EXE = $(ETO)\$(TARGET_NAME).exe
40
41
42
43 INC = -I $(SRC) \
44 -I $(EDK_SOURCE)\Foundation\Include\Ia32 \
45 -I $(EDK_SOURCE)\Foundation\Efi\Include \
46 -I $(EDK_SOURCE)\Foundation\Framework\Include \
47 -I $(EDK_SOURCE)\Foundation\Include\IndustryStandard \
48 -I $(EDK_SOURCE)\Foundation\ \
49 -I $(EDK_SOURCE)\Foundation\Core\Dxe \
50 -I $(EDK_SOURCE)\Foundation\Efi \
51 -I $(EDK_SOURCE)\Foundation\Framework \
52 -I $(EDK_TOOLS_SOURCE)\Common \
53 -I $(EDK_SOURCE)\Foundation\Include
54
55 ANTLR_FLAGS = -CC -e3 -ck 3 -k 2
56 DLG_FLAGS = -C2 -i -CC
57 LINK_FLAGS_PCCTS = /DEBUG /PDB:$*.pdb
58 C_FLAGS_PCCTS = -I. -I$(ANTLR_H) /WX /Od /EHsc /Zi /Fd$(ETO)\$(TARGET_NAME)Obj /D _CRT_SECURE_NO_DEPRECATE $(VERSION_FLAGS) \
59 $(BUILD_STRING_FLAGS) /D PCCTS_USE_NAMESPACE_STD #/D CVFR_VARDATATYPEDB_DEBUG /D CIFROBJ_DEUBG /D VFREXP_DEBUG
60
61 VFR_GRAMMER_FILE = $(SRC)\VfrSyntax.g
62
63 VFR_ANTLR_SPAWN = $(ETO)\VfrSyntax.cpp \
64 $(ETO)\EfiVfrParser.cpp \
65 $(ETO)\EfiVfrParser.h \
66 $(ETO)\VfrParser.dlg \
67 $(ETO)\VfrTokens.h
68
69 VFR_DLG_SPAWN = $(ETO)\VfrLexer.cpp \
70 $(ETO)\VfrLexer.h
71
72 ANTLR_H = $(PCCTS_DIR)\h
73
74 HEADER_FILES = $(SRC)\VfrFormPkg.h \
75 $(SRC)\EfiVfr.h \
76 $(SRC)\VfrCompiler.h \
77 $(SRC)\VfrError.h \
78 $(SRC)\VfrUtilityLib.h
79
80 OBJECTS = $(ETO)\AParser.obj \
81 $(ETO)\DLexerBase.obj \
82 $(ETO)\ATokenBuffer.obj \
83 $(ETO)\VfrSyntax.obj \
84 $(ETO)\EfiVfrParser.obj \
85 $(ETO)\VfrLexer.obj \
86 $(ETO)\VfrFormPkg.obj \
87 $(ETO)\VfrError.obj \
88 $(ETO)\VfrUtilityLib.obj \
89 $(ETO)\VfrCompiler.obj
90
91 all : $(TARGET_EXE)
92
93 $(VFR_ANTLR_SPAWN) : $(VFR_GRAMMER_FILE)
94 $(ANTLR) $(ANTLR_FLAGS) -fl VfrParser.dlg -ft VfrTokens.h -o $(ETO) $(VFR_GRAMMER_FILE)
95
96 $(VFR_DLG_SPAWN) : $(ETO)\VfrParser.dlg
97 $(DLG) $(DLG_FLAGS) -cl VfrLexer -o $(ETO) $(ETO)\VfrParser.dlg
98
99 $(ETO)\VfrSyntax.obj : $(ETO)\VfrSyntax.cpp $(VFR_DLG_SPAWN)
100 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\VfrSyntax.cpp
101
102 $(ETO)\EfiVfrParser.obj : $(ETO)\EfiVfrParser.cpp $(ETO)\EfiVfrParser.h $(VFR_DLG_SPAWN)
103 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\EfiVfrParser.cpp
104
105
106 $(ETO)\AParser.obj : $(ANTLR_H)\AParser.cpp
107 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)\AParser.cpp
108
109 $(ETO)\ATokenBuffer.obj : $(ANTLR_H)\ATokenBuffer.cpp
110 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)\ATokenBuffer.cpp
111
112 $(ETO)\DLexerBase.obj : $(ANTLR_H)\DLexerBase.cpp
113 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)\DLexerBase.cpp
114
115 $(ETO)\VfrLexer.obj : $(ETO)\VfrLexer.cpp $(VFR_DLG_SPAWN)
116 $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\VfrLexer.cpp
117
118 $(ETO)\VfrFormPkg.obj : $(SRC)\VfrFormPkg.cpp $(HEADER_FILES)
119 $(CC) -c $(C_FLAGS_PCCTS) $(INC) /Fo$@ $(SRC)\VfrFormPkg.cpp
120
121 $(ETO)\VfrError.obj : $(SRC)\VfrError.cpp $(HEADER_FILES)
122 $(CC) -c $(C_FLAGS_PCCTS) $(INC) /Fo$@ $(SRC)\VfrError.cpp
123
124 $(ETO)\VfrUtilityLib.obj : $(SRC)\VfrUtilityLib.cpp $(HEADER_FILES)
125 $(CC) -c $(C_FLAGS_PCCTS) $(INC) /Fo$@ $(SRC)\VfrUtilityLib.cpp
126
127 $(ETO)\VfrCompiler.obj : $(SRC)\VfrCompiler.cpp $(HEADER_FILES)
128 $(CC) -c $(C_FLAGS_PCCTS) $(INC) /Fo$@ $(SRC)\VfrCompiler.cpp
129
130 #
131 # Add Binary Build description for this tools.
132 #
133
134 !IF (("$(EFI_BINARY_TOOLS)" == "YES") && EXIST($(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe))
135 $(TARGET_EXE): $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe
136 copy $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe $(TARGET_EXE) /Y
137 if exist $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb \
138 copy $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb /Y
139 !ELSE
140 $(TARGET_EXE) : $(OBJECTS) $(HEADER_FILES)
141 $(LINK) $(MSVS_LINK_LIBPATHS) $(LINK_FLAGS_PCCTS) /OUT:$(TARGET_EXE) $(OBJECTS)
142 !IF ("$(EFI_BINARY_BUILD)" == "YES")
143 if not exist $(EFI_PLATFORM_BIN)\Tools mkdir $(EFI_PLATFORM_BIN)\Tools
144 if exist $(TARGET_EXE) copy $(TARGET_EXE) $(EFI_PLATFORM_BIN)\tools\$(TARGET_NAME).exe /Y
145 if exist $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb \
146 copy $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb /Y
147 !ENDIF
148 !ENDIF
149
150 clean: