Add in the 1st version of ECP.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2832 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
172
EdkCompatibilityPkg/Sample/Tools/Source/VfrCompile/makefile
Normal file
172
EdkCompatibilityPkg/Sample/Tools/Source/VfrCompile/makefile
Normal file
@@ -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:
|
||||
|
Reference in New Issue
Block a user