]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/VfrCompile/GNUmakefile
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / BaseTools / Source / C / VfrCompile / GNUmakefile
1 ## @file
2 # GNU/Linux makefile for 'VfrCompile' module build.
3 #
4 # Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
5 # SPDX-License-Identifier: BSD-2-Clause-Patent
6 #
7
8 MAKEROOT ?= ..
9
10 APPNAME = VfrCompile
11
12 LIBS = -lCommon
13
14 TOOL_INCLUDE = -I Pccts/h
15
16 #OBJECTS = VfrSyntax.o VfrServices.o DLGLexer.o EfiVfrParser.o ATokenBuffer.o DLexerBase.o AParser.o
17 OBJECTS = AParser.o DLexerBase.o ATokenBuffer.o EfiVfrParser.o VfrLexer.o VfrSyntax.o \
18 VfrFormPkg.o VfrError.o VfrUtilityLib.o VfrCompiler.o
19 ifeq ($(CXX), llvm)
20 VFR_CPPFLAGS = -Wno-deprecated-register -DPCCTS_USE_NAMESPACE_STD $(BUILD_CPPFLAGS)
21 else
22 VFR_CPPFLAGS = -DPCCTS_USE_NAMESPACE_STD $(BUILD_CPPFLAGS)
23 endif
24 # keep BUILD_OPTFLAGS last
25 VFR_CXXFLAGS = $(BUILD_OPTFLAGS)
26
27 # keep EXTRA_LDFLAGS last
28 VFR_LFLAGS = $(EXTRA_LDFLAGS)
29
30 LINKER = $(BUILD_CXX)
31
32 EXTRA_CLEAN_OBJECTS = EfiVfrParser.cpp EfiVfrParser.h VfrParser.dlg VfrTokens.h VfrLexer.cpp VfrLexer.h VfrSyntax.cpp tokens.h
33
34 MAKEROOT ?= ../..
35
36 include $(MAKEROOT)/Makefiles/header.makefile
37
38 APPLICATION = $(MAKEROOT)/bin/$(APPNAME)
39
40 .PHONY:all
41 all: $(MAKEROOT)/bin $(APPLICATION)
42
43 $(APPLICATION): $(OBJECTS)
44 $(LINKER) -o $(APPLICATION) $(VFR_LFLAGS) $(OBJECTS) -L$(MAKEROOT)/libs $(LIBS)
45
46 VfrCompiler.o: ../Include/Common/BuildVersion.h
47
48 include $(MAKEROOT)/Makefiles/footer.makefile
49
50 VfrSyntax.cpp EfiVfrParser.cpp EfiVfrParser.h VfrParser.dlg VfrTokens.h: Pccts/antlr/antlr VfrSyntax.g
51 Pccts/antlr/antlr -CC -e3 -ck 3 -k 2 -fl VfrParser.dlg -ft VfrTokens.h -o . VfrSyntax.g
52
53 VfrLexer.cpp VfrLexer.h: Pccts/dlg/dlg VfrParser.dlg
54 Pccts/dlg/dlg -C2 -i -CC -cl VfrLexer -o . VfrParser.dlg
55
56 Pccts/antlr/antlr:
57 BIN_DIR='.' $(MAKE) -C Pccts/antlr
58
59 Pccts/dlg/dlg:
60 BIN_DIR='.' $(MAKE) -C Pccts/dlg
61
62 ATokenBuffer.o: Pccts/h/ATokenBuffer.cpp
63 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
64
65 DLexerBase.o: Pccts/h/DLexerBase.cpp
66 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
67
68 AParser.o: Pccts/h/AParser.cpp
69 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
70
71 VfrSyntax.o: VfrSyntax.cpp
72 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
73
74 clean: localClean
75
76 localClean:
77 BIN_DIR='.' $(MAKE) -C Pccts/antlr clean
78 BIN_DIR='.' $(MAKE) -C Pccts/dlg clean
79 rm -f $(EXTRA_CLEAN_OBJECTS)
80