33 lines
558 B
Makefile
33 lines
558 B
Makefile
|
|
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' \
|
|
> $@
|
|
|
|
|