Files
marigold_vector/makefile
2026-05-16 15:25:58 -05:00

53 lines
2.5 KiB
Makefile

.POSIX:
CC = gcc
AR = ar
ARFLAGS = rcs
CFLAGS = -std=c99 -Wall -Wextra -Werror -Wpedantic -Wconversion -Wuninitialized -Wunused -Wshadow -Wstrict-prototypes -Wpointer-arith -Wformat=2 -fanalyzer -Wstrict-aliasing=3 -Wlogical-op -Wduplicated-cond
LDFLAGS =
LDLIBS =
PREFIX = /usr/local
DESTDIR =
MODULE_DIR = source_code/MODULE_marigold_dynamic_array
INTERNAL_DIR = $(MODULE_DIR)/internal
TEST_DIR = $(MODULE_DIR)/tests
BUILD_DIR = build_output
OBJ_DIR = intermediate_code
.PHONY: all clean install test example lib
all: example test lib
clean:
rm -f $(OBJ_DIR)/*.o $(BUILD_DIR)/libmarigold_dynamic_array.a $(BUILD_DIR)/example $(BUILD_DIR)/test
lib: $(BUILD_DIR)/libmarigold_dynamic_array.a
example: $(BUILD_DIR)/example
test: $(BUILD_DIR)/test
$(BUILD_DIR)/libmarigold_dynamic_array.a: $(OBJ_DIR)/marigold_dynamic_array.o $(OBJ_DIR)/internal_marigold_dynamic_array.o
$(AR) $(ARFLAGS) $@ $(OBJ_DIR)/marigold_dynamic_array.o $(OBJ_DIR)/internal_marigold_dynamic_array.o
$(BUILD_DIR)/example: $(OBJ_DIR)/main.o $(OBJ_DIR)/marigold_dynamic_array.o $(OBJ_DIR)/internal_marigold_dynamic_array.o
$(CC) $(LDFLAGS) -o $@ $(OBJ_DIR)/main.o $(OBJ_DIR)/marigold_dynamic_array.o $(OBJ_DIR)/internal_marigold_dynamic_array.o
$(BUILD_DIR)/test: $(OBJ_DIR)/test_main.o $(OBJ_DIR)/marigold_dynamic_array.o $(OBJ_DIR)/internal_marigold_dynamic_array.o $(OBJ_DIR)/test_marigold_dynamic_array.o
$(CC) $(LDFLAGS) -o $@ $(OBJ_DIR)/test_main.o $(OBJ_DIR)/marigold_dynamic_array.o $(OBJ_DIR)/internal_marigold_dynamic_array.o $(OBJ_DIR)/test_marigold_dynamic_array.o
$(OBJ_DIR)/main.o: source_code/main.c $(MODULE_DIR)/marigold_dynamic_array.h
$(CC) $(CFLAGS) -c source_code/main.c -o $@
$(OBJ_DIR)/marigold_dynamic_array.o: $(MODULE_DIR)/marigold_dynamic_array.c $(MODULE_DIR)/marigold_dynamic_array.h $(INTERNAL_DIR)/internal_marigold_dynamic_array.h
$(CC) $(CFLAGS) -c $(MODULE_DIR)/marigold_dynamic_array.c -o $@
$(OBJ_DIR)/internal_marigold_dynamic_array.o: $(INTERNAL_DIR)/internal_marigold_dynamic_array.c $(INTERNAL_DIR)/internal_marigold_dynamic_array.h
$(CC) $(CFLAGS) -c $(INTERNAL_DIR)/internal_marigold_dynamic_array.c -o $@
$(OBJ_DIR)/test_main.o: source_code/test_main.c $(MODULE_DIR)/marigold_dynamic_array.h $(TEST_DIR)/test_marigold_dynamic_array.h
$(CC) $(CFLAGS) -c source_code/test_main.c -o $@
$(OBJ_DIR)/test_marigold_dynamic_array.o: $(TEST_DIR)/test_marigold_dynamic_array.c $(TEST_DIR)/test_marigold_dynamic_array.h $(MODULE_DIR)/marigold_dynamic_array.h
$(CC) $(CFLAGS) -c $(TEST_DIR)/test_marigold_dynamic_array.c -o $@