.PHONY:			all clean fclean re

LIBFT = libft.a

NAME = libftprintf.a

SRCS =  ft_printf.c ft_parser.c ft_parser_utils.c	\
		ft_put_c.c ft_put_d.c ft_put_d_utilc.c		\
		ft_put_p.c ft_put_s.c ft_put_u.c ft_put_x.c \
		ft_put_u_included.c ft_put_u_utilc.c					\
		ft_put_x_included.c ft_put_x_utilc.c					\
		ft_put_p_included.c ft_put_p_utilc.c					\
		putmaket_utils.c ft_put_d_undersize.c

OBJ_DIR = ./obj/

CC = gcc

CFLAGS = -Wall -Wextra -Werror

OBJS = $(SRCS:%.c=%.o)

OBJS_FILES = $(addprefix $(OBJ_DIR), $(OBJS))

PATH_PUT_UTILS = put_d put_p put_u put_x

PATH_MAKER = $(addprefix srcs/putchar_maker/, $(PATH_PUT_UTILS))

vpath %.c srcs srcs/parser srcs/putchar_maker $(PATH_MAKER)

vpath %.a ./libft

all : $(NAME)

$(NAME): $(LIBFT) $(OBJS_FILES)
	ar -rcs $(NAME) $(filter %.o, $^)

$(LIBFT): ./libft/src/*.c
	$(MAKE) all -C ./libft
	cp libft/libft.a $(NAME)

$(OBJ_DIR)%.o: %.c ft_printf.h
	$(CC) $(CFLAGS) -I. -c $< -o $@

clean :
	@$(MAKE) clean -C ./libft
	rm -rf $(OBJS_FILES)

fclean : clean
	make fclean -C ./libft
	rm -rf $(NAME)

re : fclean all
