release = no cover = no CC = gcc CPP = g++ LD = ld AR = ar CP = cp ifeq ($(release), no) CFLAGS += -Wall -Werror -g -fPIC else CFLAGS += -Wall -Werror -O3 -fPIC endif LIB_DIR = ./lib CSRC_DIR = ./src OBJ_DIR = ./obj CSRCS = $(wildcard $(CSRC_DIR)/*.c) COBJS := $(patsubst %.c, $(OBJ_DIR)/%.o, $(notdir $(CSRCS))) TARGET_LIB = $(OBJ_DIR)/libjson.a all : chkobjdir $(TARGET_LIB) chkobjdir: @if test ! -d $(OBJ_DIR); \ then \ mkdir $(OBJ_DIR);\ fi $(OBJ_DIR)/%.o : $(CSRC_DIR)/%.c @echo "COMPILE $<" @$(CC) -fPIC $(CFLAGS) -c $< -o $@ $(TARGET_LIB) : $(COBJS) @echo "AR $(TARGET_LIB)" @$(AR) cr $(TARGET_LIB) $(COBJS) @$(CP) $(TARGET_LIB) $(LIB_DIR) .PHONY:clean clean: @echo "CLEAN $(TARGET_LIB)" @rm -rf $(TARGET_LIB) $(OBJ_DIR)