TARGET := dns-keeper SRC_DIR := src BUILD_DIR := build CC := gcc CFLAGS := -O2 -Wall -Wextra -ffunction-sections -fdata-sections -flto CFLAGS += $(shell pkg-config --cflags libcurl) ifeq ($(STATIC),1) LDFLAGS := -Wl,--gc-sections -Wl,-s -flto -static \ $(shell pkg-config --static --libs libcurl) -lcjson -lpthread else LDFLAGS := -Wl,--gc-sections -Wl,-s -flto \ $(shell pkg-config --libs libcurl) -lcjson -lpthread endif SRCS := $(wildcard $(SRC_DIR)/*.c) OBJS := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRCS)) .PHONY: all clean all: $(BUILD_DIR)/$(TARGET) $(BUILD_DIR)/$(TARGET): $(OBJS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) $(BUILD_DIR)/%.o: $(SRC_DIR)/%.c | $(BUILD_DIR) $(CC) $(CFLAGS) -c $< -o $@ $(BUILD_DIR): mkdir -p $(BUILD_DIR) clean: rm -rf $(BUILD_DIR)