2025-12-15 12:04:55 +01:00

65 lines
1.6 KiB
Makefile

CC = gcc
FLAGS = -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 = stack.o bintree.o numbers.o timer.o highscore.o
doble : main.o $(program_obj_files)
$(CC) $(FLAGS) $^ -o doble
# HINWEIS: Hier war ein Tippfehler im Original (obj_filesobj_files), ich habe ihn korrigiert:
$(program_obj_files): %.o: %.c
$(CC) -c $(FLAGS) $^ -o $@
# --------------------------
# Unit Tests
# --------------------------
# Name des Test-Programms
TEST_BIN = test_runner
# Das Target 'unitTests' baut das Test-Programm und führt es aus
unitTests: unittest.o unittestTree.o stack.o numbers.o
@echo "--- Erstelle Test-Executable ---"
$(CC) $(FLAGS) unittest.o unittestTree.o stack.o numbers.o -o $(TEST_BIN)
@echo "--- Starte Tests ---"
./$(TEST_BIN)
# Regel, um unittest.c zu kompilieren
unittest.o: test_stack.c
$(CC) -c $(FLAGS) test_stack.c -o unittest.o
unittestTree.o: test_numbers.c
$(CC) -c $(FLAGS) test_numbers.c -o unittestTree.o
# --------------------------
# Clean
# --------------------------
clean:
ifeq ($(OS),Windows_NT)
del /f *.o doble $(TEST_BIN)
else
rm -f *.o doble $(TEST_BIN)
endif