]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Sample/Tools/Source/VfrCompile/makefile
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Sample / Tools / Source / VfrCompile / makefile
diff --git a/EdkCompatibilityPkg/Sample/Tools/Source/VfrCompile/makefile b/EdkCompatibilityPkg/Sample/Tools/Source/VfrCompile/makefile
new file mode 100644 (file)
index 0000000..d703b02
--- /dev/null
@@ -0,0 +1,172 @@
+#/*++\r
+#  \r
+#  Copyright (c) 2004 - 2007, Intel Corporation                                                         \r
+#  All rights reserved. This program and the accompanying materials                          \r
+#  are licensed and made available under the terms and conditions of the BSD License         \r
+#  which accompanies this distribution.  The full text of the license may be found at        \r
+#  http://opensource.org/licenses/bsd-license.php                                            \r
+#                                                                                            \r
+#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+#  \r
+#  Module Name:\r
+#  \r
+#    makefile\r
+#  \r
+#  Abstract:\r
+#  \r
+#    Makefile for building the EFI VFR compiler\r
+#    \r
+#--*/  \r
+\r
+\r
+!IFNDEF EDK_SOURCE\r
+!ERROR EDK_SOURCE environmental variable not set \r
+!ENDIF\r
+\r
+#\r
+# Do this if you want to compile from this directory\r
+#\r
+!IFNDEF TOOLCHAIN\r
+TOOLCHAIN = TOOLCHAIN_MSVC\r
+!ENDIF\r
+\r
+!INCLUDE $(BUILD_DIR)\PlatformTools.env\r
+\r
+.SUFFIXES :\r
+\r
+TARGET_NAME       = VfrCompile\r
+ANTLR_H           = $(PCCTS_DIR)\h\r
+C_FLAGS_PCCTS     = -I. -I$(ANTLR_H) /Zi /Fd$(EDK_TOOLS_OUTPUT)\$(TARGET_NAME)Obj /WX /Od /D _CRT_SECURE_NO_DEPRECATE $(VERSION_FLAGS)\r
+C_FLAGS_PCCTS     = $(C_FLAGS_PCCTS)  \r
+\r
+LINK_FLAGS_PCCTS  =\r
+LIBS              = "$(EDK_TOOLS_OUTPUT)\Common.lib"\r
+\r
+# \r
+# Define the EFI output and source directories.\r
+#\r
+ETO               = $(EDK_TOOLS_OUTPUT)\r
+SRC               = $(EDK_TOOLS_SOURCE)\$(TARGET_NAME)\r
+TARGET_EXE        = $(ETO)\$(TARGET_NAME).exe\r
+\r
+#\r
+# Add deeper lookahead with -ck 3\r
+#\r
+ANTLR_FLAGS       = -CC -e3 -ck 3\r
+DLG_FLAGS         = -C2 -i -CC\r
+\r
+#\r
+# Define paths for include files\r
+#\r
+INC = -I $(SRC) \r
+INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include\Ia32\r
+INC = $(INC) -I $(EDK_SOURCE)\Foundation\Efi\Include\r
+INC = $(INC) -I $(EDK_SOURCE)\Foundation\Framework\Include\r
+INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include\IndustryStandard\r
+INC = $(INC) -I $(EDK_SOURCE)\Foundation\         \\r
+             -I $(EDK_SOURCE)\Foundation\Core\Dxe \\r
+             -I $(EDK_SOURCE)\Foundation\Efi      \\r
+             -I $(EDK_SOURCE)\Foundation\Framework\r
+INC = $(INC) -I $(EDK_TOOLS_SOURCE)\Common\r
+INC = $(INC) -I $(EDK_SOURCE)\Foundation\Include \r
+\r
+DLG_FILE          = Parser.dlg\r
+SCAN_FILE         = DLGLexer\r
+PARSER_FILE       = EfiVfrParser\r
+\r
+#\r
+# Create a list of include dependencies \r
+#\r
+INC_DEPS = $(INC_DEPS) $(SRC)\EfiVfr.h\r
+INC_DEPS = $(INC_DEPS) $(EDK_SOURCE)\Foundation\Framework\Include\EfiInternalFormRepresentation.h\r
+\r
+#\r
+# This is the grammer file for our project\r
+#\r
+GRAMMER_FILE  = $(SRC)\$(TARGET_NAME).g\r
+\r
+#\r
+# If we utilize a separate token file, define it here.\r
+#\r
+#TOKEN_FILE    = \r
+\r
+    \r
+OBJECTS =       $(ETO)\$(TARGET_NAME).obj \\r
+                $(ETO)\$(PARSER_FILE).obj \\r
+                $(ETO)\AParser.obj \\r
+                $(ETO)\DLexerBase.obj \\r
+                $(ETO)\ATokenBuffer.obj \\r
+                $(ETO)\$(SCAN_FILE).obj  \\r
+                $(ETO)\VfrServices.obj\r
+\r
+#\r
+# Per the Language Translation Using PCCTS and C++ Reference Guide, page 109,\r
+# these are the outputs of ANTLR and DLG\r
+#                \r
+ANTLR_SPAWN =   $(ETO)\$(TARGET_NAME).cpp \\r
+                $(ETO)\$(PARSER_FILE).cpp \\r
+                     $(ETO)\$(PARSER_FILE).h \\r
+                $(ETO)\$(DLG_FILE) \\r
+                $(ETO)\tokens.h \r
+\r
+DLG_SPAWN =     $(ETO)\$(SCAN_FILE).cpp \\r
+                $(ETO)\$(SCAN_FILE).h\r
+\r
+\r
+#\r
+# Default target\r
+#\r
+all : $(TARGET_EXE)\r
+\r
+#\r
+# All antlr-generated files depend on the .g grammer file. Use the -o\r
+# option to emit them to the appropriate output directory.\r
+#\r
+$(ANTLR_SPAWN) : $(GRAMMER_FILE) $(INC_DEPS)\r
+       $(ANTLR) $(ANTLR_FLAGS) -o $(ETO) $(GRAMMER_FILE)\r
+\r
+$(ETO)\$(TARGET_NAME).obj : $(ETO)\$(TARGET_NAME).cpp $(DLG_SPAWN) $(INC_DEPS)\r
+       $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\$(TARGET_NAME).cpp\r
+\r
+$(ETO)\$(SCAN_FILE).obj : $(ETO)\$(SCAN_FILE).cpp $(DLG_SPAWN) $(INC_DEPS)\r
+       $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\$(SCAN_FILE).cpp\r
+\r
+$(ETO)\$(PARSER_FILE).obj : $(ETO)\$(PARSER_FILE).cpp $(ETO)\$(PARSER_FILE).h $(DLG_SPAWN) $(INC_DEPS)\r
+  $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(INC) $(ETO)\$(PARSER_FILE).cpp\r
+\r
+$(DLG_SPAWN) : $(ETO)\$(DLG_FILE) $(INC_DEPS)\r
+       $(DLG) $(DLG_FLAGS) -o $(ETO) $(ETO)\$(DLG_FILE)\r
+\r
+$(ETO)\AParser.obj : $(ANTLR_H)/AParser.cpp\r
+       $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)/AParser.cpp\r
+\r
+$(ETO)\ATokenBuffer.obj : $(ANTLR_H)/ATokenBuffer.cpp\r
+       $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)/ATokenBuffer.cpp\r
+\r
+$(ETO)\DLexerBase.obj : $(ANTLR_H)/DLexerBase.cpp\r
+       $(CC) -c $(C_FLAGS_PCCTS) /Fo$@ $(ANTLR_H)/DLexerBase.cpp\r
+\r
+$(ETO)\VfrServices.obj : $(SRC)\VfrServices.cpp $(SRC)\VfrServices.h $(INC_DEPS)\r
+       $(CC) -c $(C_FLAGS_PCCTS) $(INC) /Fo$@ $(SRC)\VfrServices.cpp\r
+\r
+#\r
+# Add Binary Build description for this tools.\r
+#\r
+\r
+!IF (("$(EFI_BINARY_TOOLS)" == "YES") && EXIST($(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe))\r
+$(TARGET_EXE): $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe\r
+  copy $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).exe $(TARGET_EXE) /Y\r
+  if exist $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb \\r
+  copy $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb /Y\r
+!ELSE\r
+$(TARGET_EXE) : $(OBJECTS) $(LIBS)\r
+       $(LINK) $(MSVS_LINK_LIBPATHS) $(LIBS) /DEBUG /OUT:$(TARGET_EXE) $(LINK_FLAGS_PCCTS) $(OBJECTS) /PDB:$*.pdb\r
+  if not exist $(EFI_PLATFORM_BIN)\Tools mkdir $(EFI_PLATFORM_BIN)\Tools\r
+  if exist $(TARGET_EXE) copy $(TARGET_EXE) $(EFI_PLATFORM_BIN)\tools\$(TARGET_NAME).exe /Y\r
+  if exist $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb \\r
+  copy $(EDK_TOOLS_OUTPUT)\$(TARGET_NAME).pdb $(EFI_PLATFORM_BIN)\Tools\$(TARGET_NAME).pdb /Y\r
+!ENDIF\r
+\r
+clean:\r
+  \r