git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11094 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			175 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#/*++
 | 
						|
#  
 | 
						|
#  Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
 | 
						|
#  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) $(BUILD_STRING_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 ("$(EFI_BINARY_BUILD)" == "YES")
 | 
						|
  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
 | 
						|
!ENDIF
 | 
						|
 | 
						|
clean:
 | 
						|
  
 |