CFLAGS = -std=c17 -fsanitize=address,undefined -Wmissing-declarations -Wall -Wextra -MMD EXEC = test1 ifdef DEBUG CFLAGS += -O0 -g else CFLAGS += -O3 -DNDEBUG endif CXXFLAGS = $(subst -std=c17,-std=c++20,$(CFLAGS)) # Test for C++20 support CXX20_SUPPORT := $(shell echo "int main(){}" | $(CXX) -std=c++20 -x c++ -c - -o /dev/null 2>/dev/null && echo yes || echo no) ifeq ($(CXX20_SUPPORT),yes) all: $(EXEC) test1: test1.cpp $(CXX) $(CXXFLAGS) -o $@ $@.cpp -L../../src -ltomlc17 test: all @echo @echo ========================= @echo == cpp test @echo ========================= ./test1 else all: @echo "Skipped because C++20 not available" test: @echo "Skipped because C++20 not available" endif -include test1.d clean: rm -f *.o *.d $(EXEC) distclean: clean format: clang-format -i *.cpp .PHONY: all clean distclean format test