From 1f9826faefa2b1a1bddac3f3413a6d6055ee49bf Mon Sep 17 00:00:00 2001 From: Johnny Richard Date: Sat, 17 Apr 2021 01:27:27 +0200 Subject: Add microunit test framework Signed-off-by: Johnny Richard --- Makefile | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 6c615f3..2433900 100644 --- a/Makefile +++ b/Makefile @@ -1,20 +1,25 @@ -TARGET ?= blast_attack -SOURCE_DIR ?= ./src -BUILD_DIR ?= ./build - -CFLAGS := -Wall -OBJS := $(BUILD_DIR)/main.o \ - $(BUILD_DIR)/controller.o +TARGET ?= blast_attack +SOURCE_DIR ?= ./src +TEST_DIR ?= ./test +LIB_DIR ?= ./lib +BUILD_DIR ?= ./build + +CFLAGS := -Wall +CFLAGS_TEST := -Isrc -Ithird_party -Llib -lmunit +SRCS := $(wildcard $(SOURCE_DIR)/*.c) +SRCS_TEST := $(wildcard $(TEST_DIR)/*.c) +OBJS := $(patsubst $(SOURCE_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRCS)) +TESTS := $(patsubst $(TEST_DIR)/%-test.c, $(TEST_DIR)/%, $(SRCS_TEST)) ifeq ($(OS),Windows_NT) CC := gcc CFLAGS += -lmingw32 -lSDL2main -lSDL2 \ -IG:\dev\mingw\include\SDL2 else - CFLAGS += -Wall $(shell pkg-config sdl2 --cflags --libs) + CFLAGS += $(shell pkg-config sdl2 --cflags --libs) endif -.PHONY: build clean run $(TARGET) +.PHONY: build clean run test $(TARGET) all: $(TARGET) @@ -24,12 +29,27 @@ $(TARGET): $(BUILD_DIR) $(OBJS) $(BUILD_DIR): @mkdir -p $@ +$(LIB_DIR): + @mkdir -p $@ + $(BUILD_DIR)/%.o: $(SOURCE_DIR)/%.c $(CC) $(CFLAGS) -c $< -o $@ +$(TEST_DIR)/%-test: $(BUILD_DIR)/%.o $(TEST_DIR)/%-test.c + $(CC) $(CFLAGS) $(CFLAGS_TEST) $? -o $@ + +$(TEST_DIR)/%: $(TEST_DIR)/%-test + ./$@-test + +test: lib/libmunit.so $(BUILD_DIR) $(TESTS) + +lib/libmunit.so: $(LIB_DIR) third_party/munit/munit.c + $(CC) -Wall -Werror -fpic -c third_party/munit/munit.c -shared -o lib/libmunit.so + clean: - @rm -rf $(OBJS) + @rm -rf $(BUILD_DIR) + @rm -rf $(LIB_DIR) @rm $(TARGET) -run: +run: all ./$(TARGET) -- cgit v1.2.3