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)
