DobleSpiel/makefile
ehrnspergersi95041 6600b12893 numbers.c und tests dazu.
Makefile angepasst, aber mein Clion spackt gerade, weshalb ich es nicht ausführen kann.
2025-12-15 10:20:01 +01:00

90 lines
2.8 KiB
Makefile

CC = gcc
CFLAGS = -g -Wall -lm
ifeq ($(OS),Windows_NT)
include makefile_windows.variables
else
UNAME = $(shell uname)
ifeq ($(UNAME),Linux)
include makefile_linux.variables
else
include makefile_mac.variables
endif
endif
raylibfolder = ./raylib
unityfolder = ./unity
# --------------------------
# Initiales Programm bauen (zum ausprobieren)
# --------------------------
doble_initial:
$(CC) -o doble_initial $(BINARIES)/libdoble_complete.a
# --------------------------
# Selbst implementiertes Programm bauen
# --------------------------
program_obj_files = main.o stack.o bintree.o numbers.o timer.o highscore.o
doble : $(program_obj_files)
$(CC) $(CFLAGS) $^ -o doble
# --------------------------
# Unit Tests
# --------------------------
TEST_STACK_EXEC = runtest_stack.exe
TEST_NUMBERS_EXEC = runtest_numbers.exe # NEU: Ausführbare Datei für numbers-Tests
.PHONY: unitTests
unitTests: $(TEST_STACK_EXEC) $(TEST_NUMBERS_EXEC)
@echo "=========================================="
@echo "--- Starte ALLE Unit Tests ---"
@echo "=========================================="
@echo "\n--- Starte Stack Unit Tests ---"
@echo "Versuche auszuführen: $(TEST_STACK_EXEC)"
$(TEST_STACK_EXEC)
@echo "--- Stack Unit Tests abgeschlossen ---\n"
@echo "--- Starte Numbers Unit Tests ---"
@echo "Versuche auszuführen: $(TEST_NUMBERS_EXEC)"
$(TEST_NUMBERS_EXEC)
@echo "--- Numbers Unit Tests abgeschlossen ---"
# --- Regeln für Stack-Tests (Unverändert) ---
$(TEST_STACK_EXEC): test_stack.o stack.o
$(CC) $(CFLAGS) -I$(unityfolder) test_stack.o stack.o $(unityfolder)/unity.c -o $@ $(BINARIES)/libdoble_complete.a
test_stack.o: test_stack.c
$(CC) -c $(CFLAGS) -I$(unityfolder) $< -o $@
# --- Regeln für Numbers-Tests (Nach Muster gebaut, ohne NUMBERS_TEST_OBJ) ---
# Linken des Numbers-Test-Executables. Die Abhängigkeiten sind explizit gelistet.
$(TEST_NUMBERS_EXEC): numbersTests.o numbers.o bintree.o stack.o
# Linkt Test-Objekt, die Implementierung und Abhängigkeiten (bintree, stack) + Unity + Bibliothek
$(CC) $(CFLAGS) -I$(unityfolder) numbersTests.o numbers.o bintree.o stack.o $(unityfolder)/unity.c -o $@ $(BINARIES)/libdoble_complete.a
# Kompilierung der Numbers-Test-Datei.
numbersTests.o: numbersTests.c
$(CC) -c $(CFLAGS) -I$(unityfolder) $< -o $@
# --------------------------
# Generische Regel für .o-Dateien (Beibehalten)
# --------------------------
%.o: %.c
$(CC) -c $(CFLAGS) $< -o $@
# --------------------------
# Clean
# --------------------------
clean:
ifeq ($(OS),Windows_NT)
del /f *.o *.exe doble $(TEST_STACK_EXEC) $(TEST_NUMBERS_EXEC)
else
rm -f *.o *.exe doble $(TEST_STACK_EXEC) $(TEST_NUMBERS_EXEC)
endif
# --- PHONY-Ziele am Ende (Erweitert und bereinigt) ---
.PHONY: doble_initial doble unitTests $(TEST_STACK_EXEC) $(TEST_NUMBERS_EXEC) clean