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)