45 lines
812 B
Makefile
45 lines
812 B
Makefile
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)
|