.DEFAULT_GOAL := all include config.mk # === BUILD ENVIRONMENT === BIN := bin BUILD := build LIB := lib PATHS := $(BUILD) $(BIN) $(LIB) # Macro definitions define mkbin $(addprefix $(BIN)/,$1) endef define mkbuild $(addprefix $(BUILD)/,$1) endef define mklib $(addprefix $(LIB)/,$1) endef all: $(PATHS) $(BIN)/pw-test $(BIN)/pw-test: $(call mklib, main.c) $(CC) $(CFLAGS) -o $(BUILD)/pw-test.o -c $^ $(LD) -o $@ $(BUILD)/pw-test.o $(PATHS): mkdir -p $@ .PHONY: clean clean: rm -rf $(PATHS)