diff options
| author | TazyFoundSoup <gardendistrict0x0@outlook.com> | 2026-05-22 09:43:59 +1000 |
|---|---|---|
| committer | TazyFoundSoup <gardendistrict0x0@outlook.com> | 2026-05-22 09:43:59 +1000 |
| commit | 77aa9a3259ddfd6c64534d63424d5b0fa3010900 (patch) | |
| tree | 3744ec77c3cbe164457d1e421fd4bf7dceff4c02 /Makefile | |
| parent | 4d42b317f4970bd08f9b81fcc184fc015736ff58 (diff) | |
refactor: move benches to include directory
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 46 |
1 files changed, 30 insertions, 16 deletions
@@ -2,17 +2,18 @@ CC ?= gcc AR ?= ar OUTDIR = build -BENCH_OUT = $(OUTDIR)/bench LIB = libtinyff.a -ALL_CFLAGS = -Wall -Wextra -Werror -std=c11 -Iinclude --coverage +ALL_CFLAGS = -Wall -Wextra -Werror -std=c11 -Iinclude DEBUG_FLAGS = -g -O0 -fno-omit-frame-pointer RELEASE_FLAGS = -O2 SANFLAGS = -fsanitize=address,undefined -g -O1 +COVERAGE_FLAGS = -fprofile-instr-generate -fcoverage-mapping +COVERAGE_LDFLAGS = -fprofile-instr-generate -fcoverage-mapping + SRC = $(shell find src -name "*.c") -BENCH_SRC = $(shell find bench/src -name "*.c") ifeq ($(USE_HOSTED),1) ALL_CFLAGS += -DUSE_HOSTED -Iinclude/bridges @@ -20,8 +21,7 @@ SRC += $(shell find src/bridges -name "*.c") endif ifeq ($(USE_BENCH),1) -ALL_CFLAGS += -DUSE_BENCH -Ibench -SRC += $(shell find bench/src -name "*.c") +ALL_CFLAGS += -DUSE_BENCH endif OBJ = $(patsubst %.c,$(OUTDIR)/%.o,$(SRC)) @@ -37,7 +37,7 @@ $(OUTDIR)/%.o: %.c $(CC) $(ALL_CFLAGS) $(CFLAGS) -c $< -o $@ clean: - rm -rf $(OUTDIR) png_test coverage coverage.info .coverage + rm -rf $(OUTDIR) coverage coverage.info png_test bench_png debug: CFLAGS = $(DEBUG_FLAGS) debug: $(OUTDIR)/$(LIB) @@ -51,26 +51,40 @@ asan: clean $(OUTDIR)/$(LIB) test-png: clean $(MAKE) USE_HOSTED=1 debug - $(CC) $(ALL_CFLAGS) $(DEBUG_FLAGS) -DUSE_HOSTED tests/format/image/png/png_open.c -o $(OUTDIR)/png_test -L$(OUTDIR) -ltinyff && ./$(OUTDIR)/png_test + $(CC) $(ALL_CFLAGS) $(DEBUG_FLAGS) \ + -DUSE_HOSTED \ + tests/format/image/png/png_open.c \ + -o $(OUTDIR)/png_test \ + -L$(OUTDIR) -ltinyff + ./$(OUTDIR)/png_test test: test-png gdb: debug gdb -x debug/.gdbinit $(OUTDIR)/$(TEST) -bench: $(OUTDIR)/$(LIB) - mkdir -p $(BENCH_OUT) - $(CC) $(ALL_CFLAGS) $(RELEASE_FLAGS) $(BENCH_SRC) -o $(BENCH_OUT)/bench -L$(OUTDIR) -ltinyff - $(BENCH_OUT)/bench +bench: clean + $(MAKE) USE_HOSTED=1 USE_BENCH=1 release + $(CC) $(ALL_CFLAGS) $(RELEASE_FLAGS) \ + -DUSE_HOSTED -DUSE_BENCH \ + bench/src/format/image/png.c \ + -o $(OUTDIR)/bench_png \ + -L$(OUTDIR) -ltinyff + ./$(OUTDIR)/bench_png coverage: clean - $(MAKE) USE_HOSTED=1 debug - $(CC) $(ALL_CFLAGS) $(DEBUG_FLAGS) -DUSE_HOSTED tests/format/image/png/png_open.c -o $(OUTDIR)/png_test -L$(OUTDIR) -ltinyff + $(MAKE) USE_HOSTED=1 CFLAGS="$(COVERAGE_FLAGS)" LDFLAGS="$(COVERAGE_LDFLAGS)" debug + + $(CC) $(ALL_CFLAGS) $(DEBUG_FLAGS) $(COVERAGE_FLAGS) \ + -DUSE_HOSTED \ + tests/format/image/png/png_open.c \ + -o $(OUTDIR)/png_test \ + -L$(OUTDIR) -ltinyff $(COVERAGE_LDFLAGS) + ./$(OUTDIR)/png_test || true + lcov --capture --directory . --output-file coverage.info lcov --remove coverage.info '/usr/*' --output-file coverage.info --ignore-errors unused genhtml coverage.info --output-directory coverage - lcov --list coverage.info - @echo "" - @echo "HTML report generated at coverage/index.html" + .PHONY: all clean debug release asan test test-png gdb bench coverage
\ No newline at end of file |
