diff options
Diffstat (limited to 'mingw32')
-rw-r--r-- | mingw32 | 45 |
1 files changed, 45 insertions, 0 deletions
@@ -0,0 +1,45 @@ +BIN = shader +SRC = shader.c +CC = gcc +CFLAGS = -Wall -std=c99 -MD +DBGFLAGS = -g -O0 +ifdef DEBUG + CFLAGS += $(DBGFLAGS) +else + CFLAGS += -O2 -march=native -mtune=native +endif +LDFLAGS = -lglew32 -lopengl32 -lglu32 -lm -lfreeglut -lmingw32 -lsdlmain -lsdl \ + -lsdl_image -mwindows + +OBJ_DIR = obj +DEPS_DIR = obj +BIN_DIR = . + +C_FILES = $(filter %.c, $(SRC)) +DEP_FILES = $(addprefix $(DEPS_DIR)\, $(addsuffix .d, $(notdir $(subst .c,,$(SRC))))) +OBJ_FILES = $(addprefix $(OBJ_DIR)\, $(addsuffix .o, $(notdir $(subst .c,,$(SRC))))) + +INCL = -I/include + +define C_template +$(1): $(2) + @mkdir -p $$(OBJ_DIR) + @mkdir -p $$(DEPS_DIR) + $$(CC) -c $$(CFLAGS) $$(INCL) $$< -o $$@ +endef + +all: $(BIN) + +$(foreach cfile, $(C_FILES), $(eval $(call C_template, $(OBJ_DIR)\$(notdir $(subst .c,,$(cfile))).o, $(cfile)))) + +$(BIN): $(OBJ_FILES) + @mkdir -p $(BIN_DIR) + $(CC) -o $(BIN_DIR)/$@ $(OBJ_FILES) $(LDFLAGS) + +.PHONY: clean + +clean: + rm -rf $(OBJ_DIR) + rm -f $(BIN_DIR)/$(BIN).exe stdout.txt stderr.txt + +-include $(DEP_FILES) |