diff --git a/generator/build.sh b/generator/build.sh new file mode 100755 index 0000000..abcbd6f --- /dev/null +++ b/generator/build.sh @@ -0,0 +1,22 @@ +#! /bin/sh -e +mkdir -p "generated" +bison -b "generated/parser" "src/parser.yy" +flex -o "generated/lexer.yy.cc" "src/lexer.ll" +ld --relocatable --format=binary --output="generated/template-ArgGrammarDriver.cpp.data" "templates/ArgGrammarDriver.cpp" +ld --relocatable --format=binary --output="generated/template-ArgGrammarDriver.hpp.data" "templates/ArgGrammarDriver.hpp" +ld --relocatable --format=binary --output="generated/template-ArgGrammarParser.yy.data" "templates/ArgGrammarParser.yy" +ld --relocatable --format=binary --output="generated/template-ArgGrammarScanner.cpp.data" "templates/ArgGrammarScanner.cpp" +ld --relocatable --format=binary --output="generated/template-ArgGrammarScanner.hpp.data" "templates/ArgGrammarScanner.hpp" +ld --relocatable --format=binary --output="generated/template-ArgGrammarScanner.ll.data" "templates/ArgGrammarScanner.ll" +objcopy --rename-section .data=.rodata,alloc,load,readonly,data,contents "generated/template-ArgGrammarDriver.cpp.data" "build/template-ArgGrammarDriver.cpp.o" +objcopy --rename-section .data=.rodata,alloc,load,readonly,data,contents "generated/template-ArgGrammarDriver.hpp.data" "build/template-ArgGrammarDriver.hpp.o" +objcopy --rename-section .data=.rodata,alloc,load,readonly,data,contents "generated/template-ArgGrammarParser.yy.data" "build/template-ArgGrammarParser.yy.o" +objcopy --rename-section .data=.rodata,alloc,load,readonly,data,contents "generated/template-ArgGrammarScanner.cpp.data" "build/template-ArgGrammarScanner.cpp.o" +objcopy --rename-section .data=.rodata,alloc,load,readonly,data,contents "generated/template-ArgGrammarScanner.hpp.data" "build/template-ArgGrammarScanner.hpp.o" +objcopy --rename-section .data=.rodata,alloc,load,readonly,data,contents "generated/template-ArgGrammarScanner.ll.data" "build/template-ArgGrammarScanner.ll.o" +g++ -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 -I "src" -I "generated" -c "generated/lexer.yy.cc" -o "build/lexer.yy.o" +g++ -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 -I "src" -I "generated" -c "generated/parser.tab.cc" -o "build/parser.tab.o" +g++ -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 -I "src" -I "generated" -c "src/argument.cpp" -o "build/argument.o" +g++ -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 -I "src" -I "generated" -c "src/driver.cpp" -o "build/driver.o" +g++ -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 -I "src" -I "generated" -c "src/main.cpp" -o "build/main.o" +g++ build/argument.o build/driver.o build/lexer.yy.o build/main.o build/parser.tab.o build/template-ArgGrammarDriver.cpp.o build/template-ArgGrammarDriver.hpp.o build/template-ArgGrammarParser.yy.o build/template-ArgGrammarScanner.cpp.o build/template-ArgGrammarScanner.hpp.o build/template-ArgGrammarScanner.ll.o -lmstch -o "fcap"