EXECUTABLE = helloworld-c-make CFLAGS = -std=c17 -Wall -Wextra -pedantic -pedantic-errors -O2 SOURCE_FILES = \ src/main.c OBJECT_FILES = $(patsubst src/%.c, build/%.o, $(SOURCE_FILES)) HEADER_FILES = $(shell find src/ -name *.h) all: build/$(EXECUTABLE) build/compile_flags.txt build/$(EXECUTABLE): $(OBJECT_FILES) $(CC) -o $@ $(LDFLAGS) $^ build/%.o: src/%.c $(HEADER_FILES) build-folder $(CC) -c -o $@ $(CFLAGS) $< build-folder: mkdir -p build/ clean: rm -rf build/ build/compile_flags.txt: echo -xc $(CFLAGS) \ | tr ' ' '\n' \ > $@