CC = clang
CFLAGS = -I./include -fPIC -Wall -Wextra -O2 -fvisibility=hidden
LDFLAGS = -lssl -lcrypto

BUILD_DIR = build
SRC_DIR = src

LIBRARY = libircc.so

SRCS = $(shell find $(SRC_DIR) -name '*.c')
OBJS = $(patsubst %.c,$(BUILD_DIR)/%.o,$(SRCS))

.PHONY: libircc

all: $(BUILD_DIR) libircc

$(BUILD_DIR):
	mkdir -p $(BUILD_DIR)

libircc: $(LIBRARY)

$(LIBRARY): $(OBJS)
	$(CC) -shared -o $@ $^

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

clean:
	rm -f $(OBJS) $(LIBRARY)