CC:=clang
BUILD_DIR:=build

CFLAGS=      \
	-pthread \
	-Wall    \
	-MMD     \
	-g

LDFLAGS= \
	-lpthread

INCLUDES= \
	-Isrc \
	-Ilibraries

SRCS=                       \
	libraries/cJSON/cJSON.c \
	src/json_rpc.c          \
	src/main.c              \
	src/pawn_ls.c

OBJS=$(addprefix $(BUILD_DIR)/,$(addsuffix .o,$(basename $(SRCS))))
DEPS=$(addprefix $(BUILD_DIR)/,$(addsuffix .d,$(basename $(SRCS))))

BIN=$(BUILD_DIR)/bin/pawn_lsp

.PHONY: pawn_lsp clean

pawn_lsp: $(BIN)

$(BIN): $(OBJS)
	mkdir -p $(dir $@)
	$(CC) $(CFLAGS) $(LDFLAGS) $(INCLUDES) -o $(BIN) $(OBJS)

$(BUILD_DIR)/%.o: %.c
	mkdir -p $(dir $@)
	$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@

clean:
	rm -rf $(BUILD_DIR)

-include $(DEPS)

