# **************************************************************************** # # # # ::: o_ :::::: ::: # # Makefile :+: / :+::+: :+: # # +:+ > +:++:+ +:+ # # By: whaffman +#+ +:+ +#++#++:++#++ # # +#+ +#+#+ +#++#+ +#+ \o/ # # Created: 2024/10/15 11:48:46 by whaffman #+#+# #+#+# #+# #+# | # # Updated: 2024/11/04 13:26:31 by whaffman ### ### ### ### / \ # # # # **************************************************************************** # NAME = push_swap SRC_PATH = src INC_PATH = inc LIBFT_INC_PATH = libft/inc LIBFT = libft/libft.a OBJ_PATH = obj VPATH = $(SRC_PATH) SOURCES = push_swap.c OBJECTS = $(addprefix $(OBJ_PATH)/, $(SOURCES:.c=.o)) CC = cc RM = rm -rf INCLUDES = -I./$(INC_PATH) -I./$(LIBFT_INC_PATH) CFLAGS = -Wall -Wextra -Werror LDFLAGS = -L./libft LDLIBS = -lft all: $(NAME) $(LIBFT): @echo "Make Libft and add the archive to lib and the header to inc" @$(MAKE) -sC libft $(NAME): $(OBJECTS) @echo "Linking the object files in the executable." @$(CC) $(CFLAGS) $(OBJECTS) $(LDFLAGS) $(LDLIBS) -o $(NAME) $(OBJ_PATH): @mkdir -p $@ $(OBJ_PATH)/%.o: %.c $(LIBFT) | $(OBJ_PATH) @echo "Compiling $@." @$(CC) $(CFLAGS) $(INCLUDES) -c $< -o $@ clean: @echo "Delete object files and the object path" @$(RM) $(OBJECTS) $(OBJ_PATH) @$(MAKE) -sC libft clean fclean: clean @echo "Delete the executable and the library" @$(RM) $(NAME) @$(MAKE) -sC libft fclean re: fclean all run: all @$(eval ARG = $(shell shuf -i 0-100 -n 5)) ./$(NAME) $(ARG) .PHONY: all bonus clean fclean re