]>
Commit | Line | Data |
---|---|---|
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 | |
31 | TOOLCHAIN = TOOLCHAIN_MSVC\r | |
32 | !ENDIF\r | |
33 | \r | |
34 | !INCLUDE $(BUILD_DIR)\PlatformTools.env\r | |
35 | \r | |
36 | .SUFFIXES :\r | |
37 | \r | |
38 | TARGET_NAME = VfrCompile\r | |
39 | ANTLR_H = $(PCCTS_DIR)\h\r | |
3e99020d | 40 | C_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 | 41 | C_FLAGS_PCCTS = $(C_FLAGS_PCCTS) \r |
42 | \r | |
43 | LINK_FLAGS_PCCTS =\r | |
44 | LIBS = "$(EDK_TOOLS_OUTPUT)\Common.lib"\r | |
45 | \r | |
46 | # \r | |
47 | # Define the EFI output and source directories.\r | |
48 | #\r | |
49 | ETO = $(EDK_TOOLS_OUTPUT)\r | |
50 | SRC = $(EDK_TOOLS_SOURCE)\$(TARGET_NAME)\r | |
51 | TARGET_EXE = $(ETO)\$(TARGET_NAME).exe\r | |
52 | \r | |
53 | #\r | |
54 | # Add deeper lookahead with -ck 3\r | |
55 | #\r | |
56 | ANTLR_FLAGS = -CC -e3 -ck 3\r | |
57 | DLG_FLAGS = -C2 -i -CC\r | |
58 | \r | |
59 | #\r | |
60 | # Define paths for include files\r | |
61 | #\r | |
62 | INC = -I $(SRC) \r | |
63 | INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include\Ia32\r | |
64 | INC = $(INC) -I $(EDK_SOURCE)\Foundation\Efi\Include\r | |
65 | INC = $(INC) -I $(EDK_SOURCE)\Foundation\Framework\Include\r | |
66 | INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include\IndustryStandard\r | |
67 | INC = $(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 | |
71 | INC = $(INC) -I $(EDK_TOOLS_SOURCE)\Common\r | |
72 | INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include \r | |
73 | \r | |
74 | DLG_FILE = Parser.dlg\r | |
75 | SCAN_FILE = DLGLexer\r | |
76 | PARSER_FILE = EfiVfrParser\r | |
77 | \r | |
78 | #\r | |
79 | # Create a list of include dependencies \r | |
80 | #\r | |
81 | INC_DEPS = $(INC_DEPS) $(SRC)\EfiVfr.h\r | |
82 | INC_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 | |
87 | GRAMMER_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 | |
95 | OBJECTS = $(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 | |
107 | ANTLR_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 | |
113 | DLG_SPAWN = $(ETO)\$(SCAN_FILE).cpp \\r | |
114 | $(ETO)\$(SCAN_FILE).h\r | |
115 | \r | |
116 | \r | |
117 | #\r | |
118 | # Default target\r | |
119 | #\r | |
120 | all : $(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 |
173 | clean:\r | |
174 | \r |