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)
