一个makefile模板

BIN = ./bin
SRC = ./src
INC = ./include
OBJ = ./obj

SOURCE = $(wildcard ${SRC}/*.c)
OBJECT = $(patsubst %.c,${OBJ}/%.o,$(notdir ${SOURCE}))

TARGET = main
BIN_TARGET = ${BIN}/${TARGET}

CC = gcc
CFLAGS = -g -Wall -I${INC}

${BIN_TARGET}:${OBJECT} | $(BIN)
    $(CC) -o $@ ${OBJECT}
${OBJ}/%.o:${SRC}/%.c | $(OBJ)
    $(CC) $(CFLAGS) -o $@ -c $<
$(OBJ):
    mkdir -p $@
$(BIN):
    mkdir -p $@
.PHONY: clean $(OBJ) $(BIN)
clean:
    rm -rf $(BIN) $(OBJ)