diff --git a/Makefile b/Makefile index 89b761f..eb9ebd0 100644 --- a/Makefile +++ b/Makefile @@ -6,10 +6,12 @@ PID_DIR = /var/run # ############################ -SRC := $(wildcard *.c) -TARGET := bcastfwd -CFLAGS := -O2 -Wall -Wno-unused-result -MMD -I. -LDFLAGS := +SRC = $(wildcard *.c) +TARGET = bcastfwd +BUILD_DIR = build +CFLAGS = -O2 -g -pipe -Wall -Wno-unused-result +CFLAGS += -MMD -MF $(BUILD_DIR)/$(*D)/$(*F).d +LDFLAGS = # ############################ @@ -23,15 +25,16 @@ endif all: $(TARGET) -$(TARGET): $(SRC:%.c=%.o) +$(TARGET): $(patsubst %,$(BUILD_DIR)/%, $(SRC:.c=.o)) @echo " Linking file: $@" @$(CC) $(LDFLAGS) $^ -o $@ -%.o: %.c +$(BUILD_DIR)/%.o: %.c $(MAKEFILE_LIST) @echo " Building file: $<" + @$(shell test -d $(BUILD_DIR)/$(*D) || mkdir -p $(BUILD_DIR)/$(*D)) @$(CC) $(CFLAGS) -o $@ -c $< -install: all +install: $(TARGET) install -D -m 755 -s $(TARGET) $(DESTDIR)$(BINARY_DIR)/$(TARGET) install -D -m 644 $(TARGET).conf $(DESTDIR)$(CONFIG_DIR)/$(NEWCONF) sed -i -e "s:^logfile .*$$:logfile $(LOG_DIR)/$(TARGET).log:" \ @@ -40,6 +43,6 @@ install: all install -d -m 755 $(DESTDIR)$(LOG_DIR) clean: - rm -rf *.d *.o $(TARGET) + rm -rf $(BUILD_DIR) $(TARGET) -include $(shell find . -name \*.d 2> /dev/null) +include $(shell find $(BUILD_DIR) -name \*.d 2> /dev/null)