53 lines
2.5 KiB
Makefile
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 $@
|