30 lines
456 B
Makefile
30 lines
456 B
Makefile
PROJECT = example
|
|
|
|
CFLAGS += -Wall -Wextra -pedantic -Werror -std=c23
|
|
|
|
# For Debug Build
|
|
CFLAGS += -g -O0
|
|
|
|
# For Release Build
|
|
#CFLAGS += -O3 -DNDEBUG
|
|
|
|
SOURCES = $(wildcard *.c)
|
|
OBJECTS = $(SOURCES:.c=.o)
|
|
DEPENDS = $(SOURCES:.c=.d)
|
|
DEPFLAGS = -MMD -MP
|
|
|
|
$(PROJECT): $(OBJECTS)
|
|
$(CC) $(OBJECTS) -o $@
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) $(DEPFLAGS) -c $< -o $@
|
|
|
|
-include $(DEPENDS)
|
|
|
|
.PHONY: clean all
|
|
|
|
all: $(PROJECT)
|
|
|
|
clean:
|
|
rm -f $(PROJECT) $(OBJECTS) $(DEPENDS)
|