SRCS = $(wildcard src/*.c) BINS = $(patsubst src/%.c,bin/%,$(SRCS)) CFLAGS = CC = gcc $(CFLAGS) all: build build: $(BINS) .SECONDEXPANSION: $(BINS): $$(patsubst bin/%,src/%.c,$$@) @mkdir -pv bin $(CC) -o $@ $(patsubst bin/%,src/%.c,$@) clean: rm -f $(BINS) rmdir bin