From: Dominik Kaiser Date: Wed, 8 May 2024 12:35:09 +0000 (+0200) Subject: Setup Makefile X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=be271413ef350cab23a31aae1d85c2948cc9c14f;p=42%2Fso_long.git Setup Makefile --- diff --git a/Makefile b/Makefile index e69de29..073316f 100644 --- a/Makefile +++ b/Makefile @@ -0,0 +1,47 @@ +NAME := so_long + +CC = cc +CFLAGS = -Wall -Wextra -Werror +HEADERS = -Iinclude -Ilibft +LIBS = -Llibft -lft + +VPATH := src +SRC = main.c + +OBJ_DIR := obj +OBJ := $(addprefix $(OBJ_DIR)/, $(SRC:%.c=%.o)) + + +all: $(NAME) + +$(NAME): $(OBJ) | libft + @$(CC) $(CFLAGS) $(HEADERS) $^ -o $@ $(LIBS) + @echo "[$(NAME)] Created binary." + +$(OBJ_DIR)/%.o: %.c + @if [ ! -d "$(OBJ_DIR)" ]; then \ + mkdir $(OBJ_DIR); \ + fi + @$(CC) $(CFLAGS) $(HEADERS) -c $< -o $@ + @echo "[$(NAME)] Compiled $<." + +libft: + @make -C libft + +clean: + @make -C libft clean + @if [ -d "$(OBJ_DIR)" ]; then \ + rm -rf $(OBJ_DIR); \ + echo "[$(NAME)] Removed object files."; \ + fi + +fclean: clean + @make -C libft fclean + @if [ -f "$(NAME)" ]; then \ + rm -f $(NAME); \ + echo "[$(NAME)] Removed binary."; \ + fi + +re: fclean all + +.PHONY: all libft clean fclean re