summaryrefslogtreecommitdiff
path: root/ex03/Makefile
diff options
context:
space:
mode:
authorDominik Kaiser2025-02-10 12:02:09 +0100
committerDominik Kaiser2025-02-10 12:02:09 +0100
commit5d5fe99ae155c42023b6696f719d7a537798ee41 (patch)
tree2b576ef361e783cc61033057394d70fe30ba6787 /ex03/Makefile
parent6bd5ae5bfc004765b617e1b39111ed565a75b4e3 (diff)
downloadcpp01-5d5fe99ae155c42023b6696f719d7a537798ee41.tar.gz
cpp01-5d5fe99ae155c42023b6696f719d7a537798ee41.zip
Setup ex03
Diffstat (limited to 'ex03/Makefile')
-rw-r--r--ex03/Makefile50
1 files changed, 50 insertions, 0 deletions
diff --git a/ex03/Makefile b/ex03/Makefile
new file mode 100644
index 0000000..5359067
--- /dev/null
+++ b/ex03/Makefile
@@ -0,0 +1,50 @@
+################################################################################
+################################## VARIABLES ###################################
+################################################################################
+
+NAME := unnecessary_violence
+
+CC = c++
+CFLAGS = -Wall -Wextra -Werror -std=c++17
+HEADERS = -I.
+
+SRC := main.cpp Weapon.cpp HumanA.cpp HumanB.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
+
+################################################################################
+################################################################################