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 # Es benötigt unittest.o und stack.o (damit der Stack getestet werden kann) unitTests: unittest.o stack.o @echo "--- Erstelle Test-Executable ---" $(CC) $(FLAGS) unittest.o stack.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 # -------------------------- # Clean # -------------------------- clean: ifeq ($(OS),Windows_NT) del /f *.o doble $(TEST_BIN) else rm -f *.o doble $(TEST_BIN) endif