SRC_DIR := src/common OBJ_DIR := obj RAMEN_OBJ_DIR := ramen_obj MSG_OBJ_DIR := msg_obj BIN_DIR := bin RAMEN_DIR := src/ramen MSG_DIR := src/msg RAMEN_EXE := $(BIN_DIR)/ramen MSG_EXE := $(BIN_DIR)/msg SRC := $(wildcard $(SRC_DIR)/*.c) OBJ := $(SRC:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) CFLAGS := -Wall -lcrypto -lssl CFLAGS += $(NIX_CFLAGS_COMPILE) RAMEN_SRC := $(wildcard $(RAMEN_DIR)/*.c) RAMEN_OBJ := $(RAMEN_SRC:$(RAMEN_DIR)/%.c=$(RAMEN_OBJ_DIR)/%.o) MSG_SRC := $(wildcard $(MSG_DIR)/*.c) MSG_OBJ := $(MSG_SRC:$(MSG_DIR)/%.c=$(MSG_OBJ_DIR)/%.o) DESTDIR := /usr/local/bin LDFLAGS := LDLIBS := LDFLAGS += $(NIX_LDFLAGS_COMPILE) .PHONY: all clean install all: $(RAMEN_EXE) $(MSG_EXE) $(RAMEN_EXE): $(OBJ) $(RAMEN_OBJ) | $(BIN_DIR) $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(RAMEN_OBJ_DIR)/%.o: $(RAMEN_DIR)/%.c | $(RAMEN_OBJ_DIR) $(CC) $(CFLAGS) -c $< -o $@ $(MSG_EXE): $(OBJ) $(MSG_OBJ) | $(BIN_DIR) $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@ $(MSG_OBJ_DIR)/%.o: $(MSG_DIR)/%.c | $(MSG_OBJ_DIR) $(CC) $(CFLAGS) -c $< -o $@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR) $(CC) $(CFLAGS) -c $< -o $@ $(BIN_DIR) $(OBJ_DIR) $(MSG_OBJ_DIR) $(RAMEN_OBJ_DIR): mkdir -p $@ clean: @$(RM) -rv $(BIN_DIR) $(OBJ_DIR) $(MSG_OBJ_DIR) $(RAMEN_OBJ_DIR) result install: install -m 755 $(BIN_DIR)/ramen $(DESTDIR) install -mm 755 $(BIN_DIR)/msg $(DESTDIR) -include $(OBJ:.o=.d)