- 论坛徽章:
- 0
|
- # Readme:
- # use: make config
- # use: make dir
- # use: make
- # use: make clean
- # use: make rebuild
- # use: make cleanall
- # use: make test
- # use: make
- # firs of all, use "make config" or "make dir" to
- # build a source files struct. and then,
- # put your source files into the DIR src
- # link libs to the DIR lib
-
- SHELL=/bin/sh
- CC=gcc
- CXX=g++
- MAKE=make
- MAKE_DIR=$(PWD)
- SRC_DIR=$(MAKE_DIR)/src/
- OBJ_DIR=$(MAKE_DIR)/obj/
- LIB_DIR=$(MAKE_DIR)/lib/
- DEBUG_DIR=$(MAKE_DIR)/debug/
- RELEASE_DIR=$(MAKE_DIR)/release/
- OUTPUT_DIR=
- LIB=-L$(MAKE_DIR)/lib/
- OUTPUT_FILE=out
- OUT=
- vpath %.c $(SRC_DIR)
- #vpath %.o $(OBJ_DIR)
- vpath %.d $(OBJ_DIR)
- DEBUG=1
- SRC_FILES:=$(wildcard $(SRC_DIR)*.c)
- SRC_FILES:=$(notdir $(SRC_FILES))
- OBJ_FILES:=$(patsubst %.c,%.o,$(SRC_FILES) )
- DEP_FILES:=$(patsubst %.c,%.d,$(SRC_FILES) )
- #SRC_FILES:=$(addprefix $(SRC_DIR),$(SRC_FILES))
- #OBJ_FILES:=$(addprefix $(OBJ_DIR),$(OBJ_FILES))
- DEP_FILES:=$(addprefix $(OBJ_DIR),$(DEP_FILES))
- FLAG_DEBUG=-g
- FLAG_COMPLE=-c
- FLAG_LINK=
- ifeq ($(DEBUG),1)
- OUTPUT_DIR:=$(DEBUG_DIR)
- FLAG_COMPLE:=$(FLAG_COMPLE) $(FLAG_DEBUG)
- FLAG_LINK:=
- else
- OUTPUT_DIR:=$(RELEASE_DIR)
- FLAG_COMPLE:=$(FLAG_COMPLE)
- FLAG_LINK:=
- endif
- OUT=$(OUTPUT_DIR)$(OUTPUT_FILE)
- $(OUT): $(OBJ_FILES)
- @echo 1
- @$(CC) $^ -o $@
- %.o:%.c %.d
- @echo 2.1
- @$(CC) $(FLAG_COMPLE) $< -o $@
- $(OBJ_DIR)%.d:%.c
- @echo 3
- @$(CC) $< -MM -MD -o $@
- # if the system-libs will always update, please ues this instead for
- # $(CC) $< -M -o $@
- -include $(DEP_FILES)
- config: dir
- dir:
- mkdir -p $(SRC_DIR)
- mkdir -p $(OBJ_DIR)
- mkdir -p $(LIB_DIR)
- mkdir -p $(DEBUG_DIR)
- mkdir -p $(RELEASE_DIR)
- clean:
- rm -f $(OBJ_DIR)* *.d *.o
- rm -f $(OUT)
- clear
- rebuild: clean all
- cleanall:
- rm -f $(OBJ_DIR)*
- rm -f $(RELEASE_DIR)*
- rm -f $(DEBUG_DIR)*
- test:
- $(OUT)
- .PHONY: all config rebuild
- #.SUFFIXES:
复制代码 |
|