Files
libsm64/Makefile
T
2020-10-19 17:17:28 -06:00

46 lines
1.1 KiB
Makefile

default: all
CC := cc
CFLAGS := -g -Wall -fPIC
LDFLAGS := -lm -shared
SRC_DIRS := src src/engine src/game src/mario src/tools
BUILD_DIR := build
DIST_DIR := dist
ALL_DIRS := $(addprefix $(BUILD_DIR)/,$(SRC_DIRS))
BIN_FILE := $(DIST_DIR)/libsm64.so
LIB_H_FILE := $(DIST_DIR)/include/libsm64.h
C_IMPORTED := src/mario/geo.inc.c src/mario/model.inc.c
H_IMPORTED := $(C_IMPORTED:.c=.h)
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)
DUMMY != mkdir -p src/mario
DUMMY != mkdir -p $(ALL_DIRS)
DUMMY != mkdir -p $(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
$(BUILD_DIR)/%.o: %.c $(IMPORTED)
@$(CC) $(CFLAGS) -MM -MP -MT $@ -MF $(BUILD_DIR)/$*.d $<
$(CC) -c $(CFLAGS) -o $@ $<
$(BIN_FILE): $(O_FILES)
$(CC) $(LDFLAGS) -o $@ $^
$(LIB_H_FILE): src/libsm64.h
cp -f $< $@
all: $(BIN_FILE) $(LIB_H_FILE)
clean:
rm -rf $(BUILD_DIR) $(DIST_DIR) src/mario
-include $(DEP_FILES)