summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-03-25 19:07:20 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-03-25 19:07:20 -0400
commit8bab21d24ece666a9af89efbd461b722a4a7f1b2 (patch)
tree6de53ff0bb101994f004ff66c72b5d5f2b7f2979
parent1ca38045a0be0b6121e7a1b75dc80dde5a955898 (diff)
config: add OPTLEVEL makefile variable
-rw-r--r--Makefile44
-rw-r--r--config.mk2
2 files changed, 24 insertions, 22 deletions
diff --git a/Makefile b/Makefile
index a6aedb9..f6bc04a 100644
--- a/Makefile
+++ b/Makefile
@@ -76,9 +76,9 @@ options:
%.gchpp: %.h
$(CXX) -std=c++23 $(CXXFLAGS) -x c++-header -c $< -o $@
%.o: %.c
- $(CC) -std=c2x $(CFLAGS) -g -O3 -c $< -o $@
+ $(CC) -std=c2x $(CFLAGS) -g $(OPTLEVEL) -c $< -o $@
%.so: %.cpp
- $(CXX) -std=c++23 $(CXXFLAGS) -g -O3 -c $< -o $@
+ $(CXX) -std=c++23 $(CXXFLAGS) -g $(OPTLEVEL) -c $< -o $@
$(OBJ): config.mk
$(PPOBJ): config.mk
@@ -138,64 +138,64 @@ build: pkbktarr
test/test-pkmacros: test/pkmacros.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkmacros-cpp: test/pkmacros.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkmem-types: test/pkmem-types.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkmem-types-cpp: test/pkmem-types.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkmem: test/pkmem.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkmem-cpp: test/pkmem.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkstr: test/pkstr.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkstr-cpp: test/pkstr.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkev: test/pkev.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkev-cpp: test/pkev.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkarr: test/pkarr.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkarr-cpp: test/pkarr.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkstn: test/pkstn.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkstn-cpp: test/pkstn.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pktmr: test/pktmr.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pktmr-cpp: test/pktmr.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkuuid: test/pkuuid.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkuuid-cpp: test/pkuuid.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkbktarr: test/pkbktarr.o
- $(CC) -g -O3 -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CC) -g $(OPTLEVEL) -std=c2x $(CFLAGS) -o $@ $^ $(LDFLAGS)
test/test-pkbktarr-cpp: test/pkbktarr.so
- $(CXX) -g -O3 -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
+ $(CXX) -g $(OPTLEVEL) -std=c++23 $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
test: pkmacros pkmem-types pkmem pkstr pkev pkarr
test: test/test-pkmacros test/test-pkmacros-cpp
diff --git a/config.mk b/config.mk
index 83c26be..cee3077 100644
--- a/config.mk
+++ b/config.mk
@@ -29,6 +29,8 @@ CFLAGS += -Wall -Wextra -pedantic $(INCS) $(SHARED_FLAGS)
CXXFLAGS += -Wall -Wextra -pedantic $(INCS) $(SHARED_FLAGS)
LDFLAGS = $(LIBS)
+OPTLEVEL ?= -O3
+
# compiler and linker
CC ?= /usr/bin/clang
CXX ?= /usr/bin/clang++