First usable generator source.
Still issues with usage rules and error reporting, but functional.
This commit is contained in:
20
generator/Tupfile
Normal file
20
generator/Tupfile
Normal file
@@ -0,0 +1,20 @@
|
||||
LEXER = flex
|
||||
PARSER = bison
|
||||
CXX = g++
|
||||
CXXFLAGS = -pedantic -std=c++17 -Wall -Wno-unused-parameter -Wno-reorder -Wno-sign-compare -Wno-address -Wno-noexcept-type -Wno-unknown-attributes -Wno-unknown-warning-option
|
||||
CPPFLAGS =
|
||||
LDFLAGS =
|
||||
LIBS = -lmstch
|
||||
|
||||
SRC_DIR = src
|
||||
GEN_DIR = generated
|
||||
TEMPL_DIR = templates
|
||||
BUILD_DIR = build
|
||||
PROG = fcap
|
||||
|
||||
: foreach $(SRC_DIR)/*.yy |> $(PARSER) -b "$(GEN_DIR)/%B" "%f" |> "$(GEN_DIR)/%B.tab.cc" | "$(GEN_DIR)/%B.tab.hh"
|
||||
: foreach $(SRC_DIR)/*.ll | $(GEN_DIR)/*.hh |> $(LEXER) -o "%o" "%f" |> "$(GEN_DIR)/%B.yy.cc"
|
||||
: foreach $(TEMPL_DIR)/*.* |> ld --relocatable --format=binary --output="%o" "%f" |> "$(GEN_DIR)/template-%b.data"
|
||||
: foreach $(GEN_DIR)/*.data |> objcopy --rename-section .data=.rodata,alloc,load,readonly,data,contents "%f" "%o" |> "$(BUILD_DIR)/%B.o"
|
||||
: foreach $(GEN_DIR)/*.cc $(SRC_DIR)/*.cpp | $(GEN_DIR)/*.hh |> $(CXX) $(CPPFLAGS) $(CXXFLAGS) -I "$(SRC_DIR)" -I "$(GEN_DIR)" -c "%f" -o "%o" |> "$(BUILD_DIR)/%B.o"
|
||||
: $(BUILD_DIR)/*.o |> $(CXX) %f $(LDFLAGS) $(LIBS) -o "%o" |> "$(PROG)"
|
||||
Reference in New Issue
Block a user