makefile 模板

来自:
  • yfkiss
  • (夜风)

  



C/C++ code



######################################################################
#    makefile 模版 
#
######################################################################

###################项目路径和程序名称#################################
DIR=$(shell pwd)
BIN_DIR=$(DIR)/bin
LIB_DIR=$(DIR)/lib
SRC_DIR=$(DIR)/src
INCLUDE_DIR=$(DIR)/include
OBJ_DIR=$(DIR)/obj
DEPS_DIR=$(DIR)/deps
#PROGRAM=$(BIN_DIR)/test
PROGRAM=$(BIN_DIR)/test

###################OBJ文件及路径############################################
EXTENSION=cpp
OBJS=$(patsubst $(SRC_DIR)/%.$(EXTENSION), $(OBJ_DIR)/%.o,$(wildcard $(SRC_DIR)/*.$(EXTENSION)))
DEPS=$(patsubst $(OBJ_DIR)/%.o, $(DEPS_DIR)/%.d, $(OBJS))

###################include头文件路径##################################
INCLUDE=\
        -I$(INCLUDE_DIR)
        
###################lib文件及路径######################################

###################编译选项及编译器###################################
CC=g++
CFLAGS=-Wall -W -g 
LDFLAGS=

###################编译目标###########################################
.PHONY: all clean rebuild

all:$(OBJS) 
    @echo $(DEPS_DIR)
    $(CC) -o $(PROGRAM) $(OBJS) $(LDFLAGS) 


$(DEPS_DIR)/%.d: $(SRC_DIR)/%.$(EXTENSION)
    $(CC) -MM $(INCLUDE) $(CFLAGS) $< | sed -e 1's,^,$(OBJ_DIR)/,' > $@

sinclude $(DEPS)

$(OBJ_DIR)/%.o:$(SRC_DIR)/%.$(EXTENSION) 
    $(CC) $< -o $@ -c $(CFLAGS) $(INCLUDE) 

rebuild: clean all

clean:
    rm -rf $(OBJS)  $(PROGRAM)

你可能感兴趣的:(makefile 模板)