Files
Rens Pastoor 517087ccc1 C ordening
2025-05-27 23:26:28 +02:00

63 lines
1.6 KiB
Makefile

PROD_DIR := ./product
SHARED_DIR := ./shared
TEST_DIR := ./test
UNITY_FOLDER :=./Unity
BUILD_DIR :=./build
PROD_EXEC = main
PROD_DIRS := $(PROD_DIR) $(SHARED_DIR)
PROD_FILES := $(wildcard $(patsubst %,%/*.c, $(PROD_DIRS)))
HEADER_PROD_FILES := $(wildcard $(patsubst %,%/*.h, $(PROD_DIRS)))
PROD_INC_DIRS=-I$(PROD_DIR) -I$(SHARED_DIR)
TEST_EXEC = main_test
TEST_DIRS := $(TEST_DIR) $(SHARED_DIR) $(UNITY_FOLDER)
TEST_FILES := $(wildcard $(patsubst %,%/*.c, $(TEST_DIRS)))
HEADER_TEST_FILES := $(wildcard $(patsubst %,%/*.h, $(TEST_DIRS)))
TEST_INC_DIRS=-I$(TEST_DIR) -I$(SHARED_DIR) -I$(UNITY_FOLDER)
CC=gcc
SYMBOLS=-Wall -Werror -g -O0 -std=c99
TEST_SYMBOLS=$(SYMBOLS) -DTEST -DUNITY_USE_MODULE_SETUP_TEARDOWN
.PHONY: clean test
all: $(PROD_EXEC) $(TEST_EXEC)
$(PROD_EXEC): Makefile $(PROD_FILES) $(HEADER_FILES)
$(CC) $(PROD_INC_DIRS) $(SYMBOLS) $(PROD_FILES) -o $(BUILD_DIR)/$(PROD_EXEC)
$(TEST_EXEC): Makefile $(TEST_FILES) $(HEADER_FILES)
$(CC) $(TEST_INC_DIRS) $(TEST_SYMBOLS) $(TEST_FILES) -o $(BUILD_DIR)/$(TEST_EXEC)
run: $(PROD_EXEC)
@./$(BUILD_DIR)/$(PROD_EXEC) encode Makefile a.tmp
@./$(BUILD_DIR)/$(PROD_EXEC) channel a.tmp b.tmp
@./$(BUILD_DIR)/$(PROD_EXEC) decode b.tmp c.tmp
cmp Makefile c.tmp
test: $(TEST_EXEC)
@./$(BUILD_DIR)/$(TEST_EXEC)
encode_test : $(TEST_EXEC)
@./$(BUILD_DIR)/$(TEST_EXEC) encode
channel_test : $(TEST_EXEC)
@./$(BUILD_DIR)/$(TEST_EXEC) channel
decode_test : $(TEST_EXEC)
@./$(BUILD_DIR)/$(TEST_EXEC) decode
parity_test : $(TEST_EXEC)
@./$(BUILD_DIR)/$(TEST_EXEC) parity
testio : $(TEST_EXEC)
@./$(BUILD_DIR)/$(TEST_EXEC) io
clean:
rm -f $(BUILD_DIR)/$(PROD_EXEC)
rm -f $(BUILD_DIR)/$(TEST_EXEC)