forked from IndianFuzzyLanguage/IFL
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
54 lines (42 loc) · 1.01 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
SRC_DIR=src
BIN_DIR=bin
OBJ_DIR=obj
STATIC_LIB=$(BIN_DIR)/libifl.a
TARGET=$(STATIC_LIB)
DEPENDENCY_DIR=dependency
CJSON=cJSON
CJSON_SRC_DIR=$(DEPENDENCY_DIR)/$(CJSON)
CJSON_DIR=$(BIN_DIR)/$(CJSON)
CJSON_LIB=$(CJSON_DIR)/libcjson.a
DEPENDENCY=$(CJSON_LIB)
SRCS=$(wildcard $(SRC_DIR)/*.c)
OBJS=$(addprefix $(OBJ_DIR)/,$(SRCS:.c=.o))
CC = gcc
AR = ar
RM = rm
ifeq ($(NOSAN),1)
SAN_CFLAGS=
else
SAN_CFLAGS= -fsanitize=address
endif
CFLAGS = -g -ggdb -O0 -Wall -Werror $(SAN_CFLAGS) -fstack-protector-all
LFLAGS =
INC = -I ./src -I ./include -I $(CJSON_DIR)
CFLAGS += $(INC)
.PHONY: all clean init_setup
all: init_setup $(TARGET)
$(CJSON_LIB):$(CJSON_SRC_DIR)
@echo "Building cJSON..."
@mkdir -p $(CJSON_DIR)
@cd $(CJSON_DIR) && cmake ../../$(CJSON_SRC_DIR) > /dev/null
init_setup: $(DEPENDENCY)
@mkdir -p $(OBJ_DIR)/$(SRC_DIR)
@mkdir -p $(BIN_DIR)
$(OBJ_DIR)/%.o:%.c
$(CC) $(CFLAGS) -o $@ -c $^
$(STATIC_LIB): $(OBJS)
$(AR) r $@ $^
clean:
@$(RM) -rf $(OBJS)
@$(RM) -rf $(TARGET)
@$(RM) -rf $(OBJ_DIR) $(BIN_DIR)