diff options
author | Kyle K <kylek389@gmail.com> | 2012-04-11 20:58:40 -0500 |
---|---|---|
committer | Kyle Kaminski <kyle@kkaminsk.com> | 2012-04-11 20:58:40 -0500 |
commit | 09011a62c843d5756291328c2042f7cc5f59dcff (patch) | |
tree | 44b66e969cb7c4256fc178749be8cdc0a66343c3 /Makefile | |
download | bst++-09011a62c843d5756291328c2042f7cc5f59dcff.tar.gz bst++-09011a62c843d5756291328c2042f7cc5f59dcff.tar.bz2 bst++-09011a62c843d5756291328c2042f7cc5f59dcff.zip |
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..40dc53a --- /dev/null +++ b/Makefile @@ -0,0 +1,44 @@ +BIN = bst +SRC = main.cpp +CC = g++ +CFLAGS = -Wall -std=gnu++98 -pedantic -MD +DBGFLAGS = -g -O0 +ifdef DEBUG + CFLAGS += $(DBGFLAGS) +else + CFLAGS += -O2 -march=native -mtune=native +endif +LDFLAGS = -lm + +OBJ_DIR = obj +DEPS_DIR = obj +BIN_DIR = bin + +CPP_FILES = $(filter %.cpp, $(SRC)) +DEP_FILES = $(addprefix $(DEPS_DIR)/, $(addsuffix .d, $(notdir $(subst .cpp,,$(SRC))))) +OBJ_FILES = $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(notdir $(subst .cpp,,$(SRC))))) + +INCL = -I/include + +define CPP_template +$(1): $(2) + @mkdir -p $$(OBJ_DIR) + @mkdir -p $$(DEPS_DIR) + $$(CC) -c $$(CFLAGS) $$(INCL) $$< -o $$@ +endef + +all: $(BIN) + +$(foreach cppfile, $(CPP_FILES), $(eval $(call CPP_template, $(OBJ_DIR)/$(notdir $(subst .cpp,,$(cppfile))).o, $(cppfile)))) + +$(BIN): $(OBJ_FILES) + @mkdir -p $(BIN_DIR) + $(CC) $(LDFLAGS) $(OBJ_FILES) -o $(BIN_DIR)/$@ + +.PHONY: clean + +clean: + rm -rf $(OBJ_DIR) + rm -f $(BIN_DIR)/$(BIN) + +-include $(DEP_FILES) |