diff options
| -rw-r--r-- | Makefile | 47 |
1 files changed, 47 insertions, 0 deletions
@@ -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 |
