debug_builddir = $(CURDIR)/debug debug_target = $(debug_builddir)/wg_quicker release_builddir = $(CURDIR)/release release_target = $(release_builddir)/wg_quicker CFLAGS = -g ALL_CFLAGS += -std=c11 ALL_CFLAGS += -Wall ALL_CFLAGS += -DLOG_LEVEL_DEBUG ALL_CFLAGS += $(CFLAGS) source += wg_quicker.c source += lstring.c source += wireguard.c include += log.h include += types.h include += lstring.h include += wireguard.h all: debug clean: @rm -Rf $(debug_builddir) @rm -Rf $(release_builddir) debug: $(debug_target) release: $(release_target) .PHONY: all clean run release debug $(debug_target): $(source) $(include) Makefile @echo Modified files: $? @mkdir -p $(debug_builddir) @$(CC) -o $@ $(ALL_CFLAGS) $(source) $(release_target): $(source) $(include) Makefile @echo Modified files: $? @mkdir -p $(release_builddir) @$(CC) -o $@ -DRELEASE $(ALL_CFLAGS) $(source)