]> git.dkaiser.de - 42/cpp01.git/commitdiff
Add Makefile for ex00
authorDominik Kaiser <dkaiser@student.42heilbronn.de>
Mon, 10 Feb 2025 09:24:42 +0000 (10:24 +0100)
committerDominik Kaiser <dkaiser@student.42heilbronn.de>
Mon, 10 Feb 2025 09:24:42 +0000 (10:24 +0100)
ex00/Makefile [new file with mode: 0644]

diff --git a/ex00/Makefile b/ex00/Makefile
new file mode 100644 (file)
index 0000000..3fbccee
--- /dev/null
@@ -0,0 +1,50 @@
+################################################################################
+################################## VARIABLES ###################################
+################################################################################
+
+NAME    := BraiiiiiiinnnzzzZ
+
+CC      =  c++
+CFLAGS  =  -Wall -Wextra -Werror -std=c++17
+HEADERS =  -I.
+
+SRC     := main.cpp Zombie.cpp newZombie.cpp randomChump.cpp
+
+OBJ_DIR := _obj
+OBJ     := $(addprefix $(OBJ_DIR)/, $(SRC:%.cpp=%.o))
+
+################################################################################
+#################################### RULES #####################################
+################################################################################
+
+all: $(NAME)
+
+$(NAME): $(OBJ)
+       @$(CC) $(CFLAGS) $^ -o $@ $(HEADERS)
+       @echo "[$(NAME)] Created binary."
+
+$(OBJ_DIR)/%.o: %.cpp
+       @if [ ! -d "$(dir $@)" ]; then \
+               mkdir -p $(dir $@); \
+       fi
+       @$(CC) $(CFLAGS) -c $< -o $@ $(HEADERS)
+       @echo "[$(NAME)] Compiled $<."
+
+clean:
+       @if [ -d "$(OBJ_DIR)" ]; then \
+               rm -rf $(OBJ_DIR); \
+               echo "[$(NAME)] Removed object files."; \
+       fi
+
+fclean: clean
+       @if [ -f "$(NAME)" ]; then \
+               rm -f $(NAME); \
+               echo "[$(NAME)] Removed binary."; \
+       fi
+
+re:    fclean all
+
+.PHONY: all clean fclean re
+
+################################################################################
+################################################################################