69,369
社区成员
发帖
与我相关
我的任务
分享
INCLUDE_DIR = ./include
SRC_DIR = ./src
OBJ_DIR = ./obj
SRCS = $(wildcard SRC_DIR/*.c)
OBJS = $(addprefix OBJ_DIR, $(patsubst %.c, %.o, $(notdir $(SOURCES))))
INCLUDES = $(INCLUDE_DIR)/test.h
.PHONY : all clean MKDIR
all : $(MKDIR) $(OBJS)
gcc -o main $(OBJS)
MKDIR :
mkdir $(OBJ_DIR)
$(OBJ_DIR)/%.o : $(SRC_DIR)/%.c
gcc -o $@ -c $^
clean :
rm -rf main $(OBJ_DIR)
INCLUDE_DIR = ./include
SRC_DIR = ./src
OBJ_DIR = ./obj
LIB_DIR = ./lib
#OUTPUT = libtest.a
OUTPUT = main
#SRCS = $(wildcard $(SRC_DIR)/*.c)
SRCS = $(SRC_DIR)/main.c
OBJS = $(addprefix $(OBJ_DIR)/, $(patsubst %.c, %.o, $(notdir $(SRCS))))
LIBS = $(wildcard $(LIB_DIR)/*.a)
INCLUDES = $(INCLUDE_DIR)/test.h
MKDIR = mkdir
CC = gcc
CFLAGS = -I $(INCLUDE_DIR)
LDFLAGS = -L $(LIB_DIR)
AR = ar
ARFLAGS = cqs
RM = rm
RMFLAGS = -rf
.PHONY : all clean MKDIR
all : $(OBJ_DIR) $(OUTPUT)
$(OBJ_DIR) :
$(MKDIR) $@
#$(OUTPUT) : $(OBJS)
# $(AR) $(ARFLAGS) $@ $(OBJS)
$(OUTPUT) : $(OBJS) $(LIBS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
$(OBJ_DIR)/%.o : $(SRC_DIR)/%.c $(INCLUDES)
$(CC) $(CFLAGS) -o $@ -c $<
clean :
$(RM) $(RMFLAGS) $(OBJ_DIR) $(OUTPUT)
# Makefile for vod
CC = gcc
LIB_PATH := ./lib
SRC_PATH := ./src
INC_PATH := ./inc
MXML_INC_PATH := ./lib/mxml
ALL_INC_PATH := -I$(INC_PATH) -I$(MXML_INC_PATH)
CFLAGS := -Wall -g $(ALL_INC_PATH)
LIB_ALL = -lpthread -L$(LIB_PATH) -lmxml
SRC_FILES = $(wildcard $(SRC_PATH)/*.c)
OBJ_FILES = $(patsubst %.c, %.o, $(SRC_FILES))
TARG_OBJ = vod
DEPS_FILE = makefile.deps
all:$(TARG_OBJ) $(DEPS_FILE)
$(TARG_OBJ):$(OBJ_FILES)
$(CC) -o $@ $^ $(LIB_ALL)
$(DEPS_FILE):$(SRC_FILES)
$(CC) -MM $(ALL_INC_PATH) $^ > $(DEPS_FILE)
-include $(DEPS_FILE)
.PHONY:libs
libs:
cd $(LIB_PATH)&&$(MAKE)
.PHONY:cleanlibs
cleanlibs:
cd $(LIB_PATH)&&$(MAKE) clean
.PHONY:clean
clean:
-rm -f $(OBJ_FILES) $(DEPS_FILE)