diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..311e873 --- /dev/null +++ b/Makefile @@ -0,0 +1,48 @@ +CC := clang +INCLUDES := -I./include -Ideps/glfw-3.3.8/include/GLFW +CFLAGS := -Wall -Wextra -O2 $(INCLUDES) +LDFLAGS := -lglfw3 + +# Directories +SRC_DIR := new_src +BUILD_DIR := build +OBJ_DIR := $(BUILD_DIR)/objs +SHADER_DIR := assets/shaders +SHADER_OUT_DIR := $(BUILD_DIR)/shaders + +# Source files +SRCS := $(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/**/*.c) +OBJS := $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(SRCS)) + +# Library outputs +STATIC_LIB := $(BUILD_DIR)/libceleritas.a +SHARED_LIB := $(BUILD_DIR)/libceleritas.so + +## Makefile notes +# $@ - target of current rule +# $^ - prerequisites of current rule separated by spaces +# $< - first prerequisite file only + +$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c + @mkdir -p $(OBJ_DIR) + $(CC) $(CFLAGS) -c $< -o $@ + +$(SHARED_LIB): $(OBJS) + @mkdir -p $(BUILD_DIR) + $(CC) -shared -o $@ $^ $(LDFLAGS) + +$(STATIC_LIB): $(OBJS) + @mkdir -p $(BUILD_DIR) + ar rcs $@ $^ + +shared: $(SHARED_LIB) + +static: $(STATIC_LIB) + +.PHONY: all +all: shared static + + +.PHONY: clean +clean: + rm -rf $(BUILD_DIR) |