# **************************************************************************** # # # # ::: o_ :::::: ::: # # Makefile :+: / :+::+: :+: # # +:+ > +:++:+ +:+ # # By: whaffman +#+ +:+ +#++#++:++#++ # # +#+ +#+#+ +#++#+ +#+ \o/ # # Created: 2024/10/15 11:48:46 by whaffman #+#+# #+#+# #+# #+# | # # Updated: 2024/11/07 15:28:08 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:src/util:src/moves:src/sort SOURCES = push_all_but_3_b.c push_all_but_lis.c push.c put_at_index_asc.c \ reverse_rotate.c rotate_a.c rotate_a_to.c rotate_a_to_top.c \ rotate_b.c rotate.c shortest_rotate.c swap.c push_swap.c \ best_merge_a.c b_merge_a.c common_rotations.c count_moves_merge_a.c \ sort3.c sortmore.c count_gt.c error.c free_state.c ft_abs.c \ ft_lstat.c ft_max.c has_duplicates.c index_of.c initialise_state.c \ is_sorted.c lis_indices.c lis_lengths.c \ longest_incremental_subsequence.c new_element.c print_stack.c \ print_state.c stack_min.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 -g 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-1000 -n 100)) @./$(NAME) $(ARG) | ./checker_linux $(ARG) @./$(NAME) $(ARG) | wc -l debug: CFLAGS += -DDEBUG -g debug: fclean @echo $(CFLAGS) @$(MAKE) -C libft debug @$(MAKE) -s .PHONY: all bonus clean fclean re