# **************************************************************************** # # # # ::: :::::::: # # Makefile :+: :+: :+: # # +:+ +:+ +:+ # # By: ngoulios <ngoulios@student.hive.fi> +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2024/11/12 17:11:59 by ngoulios #+# #+# # # Updated: 2024/11/14 22:36:43 by ngoulios ### ########.fr # # # # **************************************************************************** # # **************************************************************************** # # Project Settings # # **************************************************************************** # NAME = push_swap CC = cc CFLAGS = -Wall -Wextra -Werror -I./include # **************************************************************************** # # Directories # # **************************************************************************** # SRC_DIR = src OBJ_DIR = obj LIBFT_DIR = lib/libft # **************************************************************************** # # Source Files # # **************************************************************************** # SRCS = $(wildcard $(SRC_DIR)/**/*.c) $(wildcard $(SRC_DIR)/*.c) # Add root files OBJS = $(SRCS:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o) HEADER = include/push_swap.h LIBFT = $(LIBFT_DIR)/libft.a # **************************************************************************** # # Makefile Rules # # **************************************************************************** # all: $(NAME) $(NAME): $(OBJS) $(LIBFT) $(CC) $(CFLAGS) -o $(NAME) $(OBJS) -L$(LIBFT_DIR) -lft # Rule for creating object files $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(HEADER) @mkdir -p $(dir $@) # Ensure subdirectories exist $(CC) $(CFLAGS) -c $< -o $@ $(OBJ_DIR): mkdir -p $(OBJ_DIR) $(LIBFT): @echo "Compiling libft..." $(MAKE) -C $(LIBFT_DIR) clean: rm -rf $(OBJ_DIR) $(MAKE) -C $(LIBFT_DIR) clean fclean: clean rm -f $(NAME) $(MAKE) -C $(LIBFT_DIR) fclean re: fclean all .PHONY: all clean fclean re