CC = gcc # https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html # https://stackoverflow.com/a/3376483 CFLAGS = \ -Wall \ -Wextra \ -Wfloat-equal \ -Wundef \ -Wshadow \ -Wpointer-arith \ -Wcast-align \ -Waggregate-return \ -Wcast-qual \ -Wswitch-default \ -Wswitch-enum \ -Wconversion \ -Wunreachable-code \ -std=c11 # -Werror \ NAME = program TARGET_DIR = ./target SRC = $(wildcard lib/*.c) build: mkdir -p $(TARGET_DIR) $(CC) $(CFLAGS) -o $(TARGET_DIR)/$(NAME) $(SRC) main.c build_test: mkdir -p $(TARGET_DIR) $(CC) $(CFLAGS) -o $(TARGET_DIR)/$(NAME)_test $(SRC) tests.c run: build $(TARGET_DIR)/$(NAME) test: build_test $(TARGET_DIR)/$(NAME)_test clean: rm -r $(TARGET_DIR)