X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkCompatibilityPkg%2FSample%2FTools%2FSource%2FVfrCompile%2Fmakefile;fp=EdkCompatibilityPkg%2FSample%2FTools%2FSource%2FVfrCompile%2Fmakefile;h=d703b02f315d4a06b5f668e7de67450e0af9445d;hp=0000000000000000000000000000000000000000;hb=3eb9473ea9a949badfe06ae61d2d3fcfa53651c7;hpb=30d4a0c7ec19938196b1308006b990e0945150da 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: +