From 2f64f3327f15937f389ac121365158bfc18f5ca1 Mon Sep 17 00:00:00 2001 From: whaffman Date: Tue, 19 Aug 2025 23:13:21 +0200 Subject: [PATCH] initial commit --- .gitignore | 0 Makefile | 45 +++++++++++++++++++++++++++++++++++++++++++++ common.mk | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 common.mk diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b532113 --- /dev/null +++ b/Makefile @@ -0,0 +1,45 @@ +# **************************************************************************** # +# # +# :::::::: # +# Makefile :+: :+: # +# +:+ # +# By: whaffman +#+ # +# +#+ # +# Created: 2025/03/21 14:50:00 by whaffman #+# #+# # +# Updated: 2025/03/21 14:58:40 by whaffman ######## odam.nl # +# # +# **************************************************************************** # + +EX = $(shell find . -maxdepth 1 -type d -name 'ex*' -exec basename {} \;) + +all: + for ex in $(EX); do \ + $(MAKE) -C $$ex; \ + done + +clean: + for ex in $(EX); do \ + $(MAKE) -C $$ex clean; \ + done + +fclean: + for ex in $(EX); do \ + $(MAKE) -C $$ex fclean; \ + done + +re: + for ex in $(EX); do \ + $(MAKE) -C $$ex re; \ + done + +run: + @for ex in $(EX); do \ + echo "Running tests in $$ex:"; \ + $(MAKE) -sC $$ex fclean; \ + $(MAKE) -sC $$ex run; \ + $(MAKE) -sC $$ex fclean; \ + echo "Finished tests in $$ex"; \ + echo ""; \ + done + +.PHONY: all clean fclean re run \ No newline at end of file diff --git a/common.mk b/common.mk new file mode 100644 index 0000000..2e13a39 --- /dev/null +++ b/common.mk @@ -0,0 +1,41 @@ +# **************************************************************************** # +# # +# :::::::: # +# common.mk :+: :+: # +# +:+ # +# By: whaffman +#+ # +# +#+ # +# Created: 2025/03/21 15:00:16 by whaffman #+# #+# # +# Updated: 2025/03/21 15:04:44 by whaffman ######## odam.nl # +# # +# **************************************************************************** # + +INC = -I./inc +VPATH = src +SRC = $(notdir $(wildcard src/*.cpp)) +OBJ = $(SRC:.cpp=.o) +CC = c++ +CFLAGS = -Wall -Wextra -Werror -std=c++11 -MMD + +all: $(NAME) + +-include $(OBJ:.o=.d) + +run: all + ./$(NAME) + +$(NAME): $(OBJ) + $(CC) $(CFLAGS) $(OBJ) -o $(NAME) + +%.o: %.cpp + $(CC) $(CFLAGS) $(INC) -c $< -o $@ + +clean: + rm -f $(OBJ) + +fclean: clean + rm -f $(NAME) + +re: fclean all + +.PHONY: all clean fclean re run