From f75c06ca3eab58e8552029eb69ba698933819d13 Mon Sep 17 00:00:00 2001 From: Ian Piumarta Date: Tue, 21 May 2024 09:12:30 +0900 Subject: [PATCH] Target minproto-opt built with TYPECODES and DELOPT enabled. Target release profiles with -O to disable backtrace. --- Makefile | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 7c2d4ed..e9a08ec 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,11 @@ +UNAME_S := $(shell uname -s) +ifeq ($(UNAME_S),Darwin) + # LLVM stupidity: PGO flags, filenames, and process are all incompatible with GCC + CC := /opt/local/bin/gcc-mp-12 +endif + GFLAGS += -Wall -Wno-unused -g -OFLAGS += $(GFLAGS) -O3 -DNDEBUG +OFLAGS += $(GFLAGS) -O3 -DNDEBUG -DTYPECODES=1 -DDELOPT=1 PFLAGS += $(OFLAGS) -pg CFLAGS += -D_GNU_SOURCE -I/opt/local/include LDLIBS += -L/opt/local/lib @@ -21,6 +27,14 @@ all : $(MAIN) %.c : %.leg leg -o $@ $< +tests : .FORCE + $(MAKE) clean all GFLAGS="-Wno-unused -g -DTYPECODES=1 -DELOPT=1" + -./$(MAIN) test.txt > test.out 2>&1 + @diff test.ref test.out && echo '\012--- PASSED ---' + $(MAKE) clean all GFLAGS="-Wno-unused -g -DTYPECODES=0 -DELOPT=0" + -./$(MAIN) test.txt > test.out 2>&1 + @diff test.ref test.out && echo '\012--- PASSED ---' + test : $(MAIN) ./$(MAIN) test.txt 2>&1 | tee test.out @diff test.ref test.out && echo '\012--- PASSED ---' @@ -45,9 +59,9 @@ profile : $(MAIN)-prof release : .FORCE rm -f *.gcda $(MAKE) clean all GFLAGS="-DNDEBUG -DTYPECODES=1 -DDELOPT=1 -O3 -fprofile-correction -fprofile-generate" - ./$(MAIN) profile-generate.txt profile-generate.txt profile-generate.txt profile-generate.txt + ./$(MAIN) -O profile-generate.txt profile-generate.txt profile-generate.txt profile-generate.txt $(MAKE) clean all GFLAGS="-DNDEBUG -DTYPECODES=1 -DDELOPT=1 -O3 -fprofile-correction -fprofile-use" - ./$(MAIN) profile-generate.txt + ./$(MAIN) -O profile-generate.txt FILES = Makefile $(MAIN).leg bench.txt test.txt test2.txt