| # Copyright (c) 2019-2024, Arm Limited. All rights reserved. |
| # |
| # SPDX-License-Identifier: BSD-3-Clause |
| |
| CXX = g++ |
| INCLUDES = -I /usr/include -I . -I ./parser -I ./template -I ./assets -I ./calls -I ./boilerplate -I ./utility -I ./crypto_model |
| override CXXFLAGS += -std=gnu++17 -Werror=return-type -O0 -g $(INCLUDES) |
| |
| sources = $(wildcard assets/*.cpp) \ |
| $(wildcard crypto_model/*.cpp) \ |
| $(wildcard boilerplate/*.cpp) \ |
| $(wildcard calls/*.cpp) \ |
| $(wildcard template/*.cpp) \ |
| $(wildcard utility/*.cpp) \ |
| $(wildcard *.cpp) |
| |
| objs = $(sources:.cpp=.o) |
| depends = $(sources:.cpp=.d) |
| |
| generated_sources = parser/tf_fuzz_grammar.tab.cpp parser/tf_fuzz_grammar.lex.c |
| generated_objs = parser/tf_fuzz_grammar.tab.o parser/tf_fuzz_grammar.lex.o |
| generated_includes = parser/tf_fuzz_grammar.tab.hpp |
| |
| .PHONY: default |
| default: $(generated_includes) tfz; |
| |
| # Automatically gather prerequisites |
| # [GNU Make manual, section 4.14] |
| |
| include $(depends) |
| |
| %.d: %.cpp $(generated_includes) $(generated_sources) |
| @set -e; rm -f $@; \ |
| $(CXX) -M -MM $(CXXFLAGS) $< > $@.$$$$; \ |
| sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ |
| rm -f $@.$$$$ |
| |
| tfz: $(generated_includes) $(generated_objs) $(objs) Makefile |
| $(CXX) $(CXXFLAGS) -o tfz $(generated_objs) $(objs) |
| |
| parser/tf_fuzz_grammar.tab.hpp: parser/tf_fuzz_grammar.y class_forwards.hpp \ |
| boilerplate/boilerplate.hpp utility/gibberish.hpp utility/string_ops.hpp \ |
| tf_fuzz.hpp utility/data_blocks.hpp utility/variables.hpp \ |
| utility/find_or_create_asset.hpp assets/psa_asset.hpp \ |
| assets/sst_asset.hpp assets/crypto_asset.hpp calls/psa_call.hpp \ |
| template/template_line.hpp Makefile |
| rm -f parser/tf_fuzz_grammar.tab.hpp parser/tf_fuzz_grammar.tab.cpp \ |
| parser/tf_fuzz_grammar.tab.o |
| bison --verbose -d parser/tf_fuzz_grammar.y -o \ |
| parser/tf_fuzz_grammar.tab.cpp |
| |
| parser/tf_fuzz_grammar.tab.cpp: parser/tf_fuzz_grammar.y class_forwards.hpp \ |
| boilerplate/boilerplate.hpp utility/gibberish.hpp utility/string_ops.hpp \ |
| tf_fuzz.hpp utility/data_blocks.hpp utility/variables.hpp \ |
| utility/find_or_create_asset.hpp assets/psa_asset.hpp \ |
| assets/sst_asset.hpp assets/crypto_asset.hpp calls/psa_call.hpp \ |
| template/template_line.hpp Makefile |
| rm -f parser/tf_fuzz_grammar.tab.hpp parser/tf_fuzz_grammar.tab.cpp \ |
| parser/tf_fuzz_grammar.tab.o |
| bison --verbose -d parser/tf_fuzz_grammar.y -o \ |
| parser/tf_fuzz_grammar.tab.cpp |
| |
| parser/tf_fuzz_grammar.lex.c: parser/tf_fuzz_grammar.l \ |
| parser/tf_fuzz_grammar.tab.hpp Makefile |
| lex --outfile=parser/tf_fuzz_grammar.lex.c parser/tf_fuzz_grammar.l |
| |
| parser/tf_fuzz_grammar.lex.o: parser/tf_fuzz_grammar.lex.c Makefile |
| $(CXX) $(CXXFLAGS) -c -o $@ \ |
| parser/tf_fuzz_grammar.lex.c |
| |
| parser/tf_fuzz_grammar.tab.o: parser/tf_fuzz_grammar.lex.o \ |
| parser/tf_fuzz_grammar.tab.cpp parser/tf_fuzz_grammar.tab.hpp Makefile |
| $(CXX) $(CXXFLAGS) -c -o $@ \ |
| parser/tf_fuzz_grammar.tab.cpp |
| |
| .PHONY: clean |
| clean: |
| rm -f tfz *.d **/*.d *.d* **/*.d* $(objs) $(generated_objs) $(generated_includes) $(generated_sources) |
| rm -rf parser/tf_fuzz_grammar.lex.c parser/tf_fuzz_grammar.output |
| rm -f `find regression -name "stdout_stderr"` |
| rm -f `find regression -name "test.c"` |
| rm -f demo/tossThis* |