Clean up makefile so build lib doesnt build test

This commit is contained in:
jaburns
2020-10-19 22:58:32 -06:00
parent 16af13ea8b
commit f6aec6d58e
3 changed files with 40 additions and 22 deletions
+21 -13
View File
@@ -4,7 +4,7 @@ CC := cc
CFLAGS := -g -Wall -fPIC
LDFLAGS := -lm -shared
SRC_DIRS := src src/engine src/game src/mario src/tools test
SRC_DIRS := src src/engine src/game src/mario src/tools
BUILD_DIR := build
DIST_DIR := dist
ALL_DIRS := $(addprefix $(BUILD_DIR)/,$(SRC_DIRS))
@@ -20,21 +20,18 @@ IMPORTED := $(C_IMPORTED) $(H_IMPORTED)
C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) $(C_IMPORTED)
O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o))
DEP_FILES := $(O_FILES:.o=.d)
TEST_OBJS := build/test/context.o build/test/level.o build/test/main.o
DUMMY != mkdir -p src/mario
DUMMY != mkdir -p $(ALL_DIRS)
DUMMY != mkdir -p $(DIST_DIR)/include
TEST_SRCS := test/main.c test/context.c test/level.c
TEST_OBJS := $(foreach file,$(TEST_SRCS),$(BUILD_DIR)/$(file:.c=.o))
DUMMY != mkdir -p $(ALL_DIRS) build/test src/mario $(DIST_DIR)/include
$(filter-out src/mario/geo.inc.c,$(IMPORTED)): src/mario/geo.inc.c
src/mario/geo.inc.c: ./import-mario-geo.py
./import-mario-geo.py
test/level.c test/level.h: ./import-test-collision.py
./import-test-collision.py
test/main.c: test/level.h
$(BUILD_DIR)/%.o: %.c $(IMPORTED)
@$(CC) $(CFLAGS) -MM -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(CC) -c $(CFLAGS) -o $@ $<
@@ -45,17 +42,28 @@ $(LIB_FILE): $(O_FILES)
$(LIB_H_FILE): src/libsm64.h
cp -f $< $@
test/level.c test/level.h: ./import-test-collision.py
./import-test-collision.py
test/main.c: test/level.h
$(BUILD_DIR)/test/%.o: test/%.c
@$(CC) $(CFLAGS) -MM -MP -MT $@ -MF $(BUILD_DIR)/test/$*.d $<
$(CC) -c $(CFLAGS) -o $@ $<
$(TEST_FILE): $(LIB_FILE) $(TEST_OBJS)
$(CC) -o $@ $(TEST_OBJS) $(LIB_FILE) -lGLEW -lGL -lSDL2 -lSDL2main -lm
lib: $(LIB_FILE)
test: $(TEST_FILE)
lib: $(LIB_FILE) $(LIB_H_FILE)
test: $(TEST_FILE) $(LIB_H_FILE)
run: test
./$(TEST_FILE)
clean:
rm -rf $(BUILD_DIR) $(DIST_DIR) src/mario test/level.?
rm -rf $(BUILD_DIR) $(DIST_DIR) src/mario test/level.? $(TEST_FILE)
-include $(DEP_FILES)