diff options
author | Johnny Richard <johnny@johnnyrichard.com> | 2021-04-17 01:27:27 +0200 |
---|---|---|
committer | Johnny Richard <johnny@johnnyrichard.com> | 2021-10-28 02:22:57 +0200 |
commit | 1f9826faefa2b1a1bddac3f3413a6d6055ee49bf (patch) | |
tree | c5c7322b7629211dab22d2f50c83e7263d52db2b /Makefile | |
parent | d8336885a4c053544fe3491335da0f76afffdfb9 (diff) |
Add microunit test framework
Signed-off-by: Johnny Richard <johnny@johnnyrichard.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 42 |
1 files changed, 31 insertions, 11 deletions
@@ -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) |