]> git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/C/VfrCompile/GNUmakefile
9273589ff805b05b2aed12a97be4cdc49469b20d
[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 # This program and the accompanying materials
6 # are licensed and made available under the terms and conditions of the BSD License
7 # which accompanies this distribution. The full text of the license may be found at
8 # http://opensource.org/licenses/bsd-license.php
9 #
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 #
13
14 MAKEROOT ?= ..
15
16 APPNAME = VfrCompile
17
18 LIBS = -lCommon
19
20 TOOL_INCLUDE = -I Pccts/h
21
22 #OBJECTS = VfrSyntax.o VfrServices.o DLGLexer.o EfiVfrParser.o ATokenBuffer.o DLexerBase.o AParser.o
23 OBJECTS = AParser.o DLexerBase.o ATokenBuffer.o EfiVfrParser.o VfrLexer.o VfrSyntax.o \
24 VfrFormPkg.o VfrError.o VfrUtilityLib.o VfrCompiler.o
25
26 VFR_CPPFLAGS = -DPCCTS_USE_NAMESPACE_STD $(BUILD_CPPFLAGS)
27
28 # keep BUILD_OPTFLAGS last
29 VFR_CXXFLAGS = $(BUILD_OPTFLAGS)
30
31 # keep EXTRA_LDFLAGS last
32 VFR_LFLAGS = $(EXTRA_LDFLAGS)
33
34 LINKER = $(BUILD_CXX)
35
36 EXTRA_CLEAN_OBJECTS = EfiVfrParser.cpp EfiVfrParser.h VfrParser.dlg VfrTokens.h VfrLexer.cpp VfrLexer.h VfrSyntax.cpp tokens.h
37
38 MAKEROOT ?= ../..
39
40 include $(MAKEROOT)/Makefiles/header.makefile
41
42 APPLICATION = $(MAKEROOT)/bin/$(APPNAME)
43
44 .PHONY:all
45 all: $(MAKEROOT)/bin $(APPLICATION)
46
47 $(APPLICATION): $(OBJECTS)
48 $(LINKER) -o $(APPLICATION) $(VFR_LFLAGS) $(OBJECTS) -L$(MAKEROOT)/libs $(LIBS)
49
50 VfrCompiler.o: ../Include/Common/BuildVersion.h
51
52 include $(MAKEROOT)/Makefiles/footer.makefile
53
54 VfrSyntax.cpp EfiVfrParser.cpp EfiVfrParser.h VfrParser.dlg VfrTokens.h: Pccts/antlr/antlr VfrSyntax.g
55 Pccts/antlr/antlr -CC -e3 -ck 3 -k 2 -fl VfrParser.dlg -ft VfrTokens.h -o . VfrSyntax.g
56
57 VfrLexer.cpp VfrLexer.h: Pccts/dlg/dlg VfrParser.dlg
58 Pccts/dlg/dlg -C2 -i -CC -cl VfrLexer -o . VfrParser.dlg
59
60 Pccts/antlr/antlr:
61 BIN_DIR='.' $(MAKE) -C Pccts/antlr
62
63 Pccts/dlg/dlg:
64 BIN_DIR='.' $(MAKE) -C Pccts/dlg
65
66 ATokenBuffer.o: Pccts/h/ATokenBuffer.cpp
67 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
68
69 DLexerBase.o: Pccts/h/DLexerBase.cpp
70 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
71
72 AParser.o: Pccts/h/AParser.cpp
73 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
74
75 VfrSyntax.o: VfrSyntax.cpp
76 $(BUILD_CXX) -c $(VFR_CPPFLAGS) $(INC) $(VFR_CXXFLAGS) $? -o $@
77
78 clean: localClean
79
80 localClean:
81 BIN_DIR='.' $(MAKE) -C Pccts/antlr clean
82 BIN_DIR='.' $(MAKE) -C Pccts/dlg clean
83 rm -f $(EXTRA_CLEAN_OBJECTS)
84