diff --git a/src/c_examples/Makefile b/src/c_examples/Makefile new file mode 100644 index 0000000..acd88d3 --- /dev/null +++ b/src/c_examples/Makefile @@ -0,0 +1,70 @@ +# Makefile für Code-Beispiele + +CC = gcc +CXX = g++ +CFLAGS = -Wall -Wextra -std=c99 -g +CXXFLAGS = -Wall -Wextra -std=c++17 -g + +MODULES = module1 module2 module3 module4 module5 module6 module7 module8 + +.PHONY: all clean test cpp + +all: $(MODULES) + +module1: module1_memory.c + $(CC) $(CFLAGS) -o $@ $< + @echo "✅ Built: $@" + +module2: module2_datatypes.c + $(CC) $(CFLAGS) -o $@ $< + @echo "✅ Built: $@" + +module3: module3_controlflow.c + $(CC) $(CFLAGS) -o $@ $< + @echo "✅ Built: $@" + +module4: module4_functions.c + $(CC) $(CFLAGS) -o $@ $< -lm + @echo "✅ Built: $@" + +module5: module5_datastructures.c + $(CC) $(CFLAGS) -o $@ $< + @echo "✅ Built: $@" + +module6: module6_pointers.c + $(CC) $(CFLAGS) -o $@ $< -lm + @echo "✅ Built: $@" + +module7: module7_oop_in_c.c + $(CC) $(CFLAGS) -o $@ $< -lm + @echo "✅ Built: $@" + +module8: module8_modularization.c + $(CC) $(CFLAGS) -o $@ $< -lm + @echo "✅ Built: $@" + +cpp: cpp_comparison/module7_oop_in_cpp.cpp cpp_comparison/module8_stl.cpp + $(CXX) $(CXXFLAGS) -o cpp_oop cpp_comparison/module7_oop_in_cpp.cpp + $(CXX) $(CXXFLAGS) -o cpp_stl cpp_comparison/module8_stl.cpp + @echo "✅ Built C++ examples" + +test: all + @echo "\n🧪 Running tests..." + @for mod in $(MODULES); do \ + echo "\n--- Testing $$mod ---"; \ + ./$$mod || exit 1; \ + done + @echo "\n✅ All tests passed!" + +clean: + rm -f $(MODULES) cpp_oop cpp_stl + @echo "🧹 Cleaned build artifacts" + +help: + @echo "Available targets:" + @echo " make all - Build all C modules" + @echo " make module1 - Build specific module (1-8)" + @echo " make cpp - Build C++ comparison examples" + @echo " make test - Build and run all modules" + @echo " make clean - Remove build artifacts" + @echo " make help - Show this help"