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