CC=			cc

AR=			ar

ARFLAGS=	rcs

HEADER=		libft.h

CFLAGS=		-Wall \
			-Wextra \
			-Werror

NAME=		libft.a

SRC=		ft_isdigit.c \
			ft_isalpha.c \
			ft_isalnum.c \
			ft_isascii.c \
			ft_isprint.c \
			ft_strlen.c \
			ft_memset.c \
			ft_bzero.c \
			ft_memcpy.c \
			ft_memmove.c \
			ft_strlcpy.c \
			ft_strlcat.c \
			ft_toupper.c \
			ft_tolower.c \
			ft_strchr.c \
			ft_strrchr.c \
			ft_strncmp.c \
			ft_memcmp.c \
			ft_memchr.c \
			ft_strnstr.c \
			ft_atoi.c \
			ft_calloc.c \
			ft_strdup.c \
			ft_substr.c \
			ft_strjoin.c \
			ft_strtrim.c \
			ft_split.c \
			ft_itoa.c \
			ft_strmapi.c \
			ft_striteri.c \
			ft_putchar_fd.c \
			ft_putstr_fd.c \
			ft_putendl_fd.c \
			ft_putnbr_fd.c

BONUS_SRC=	ft_lstnew_bonus.c \
			ft_lstadd_front_bonus.c \
			ft_lstsize_bonus.c \
			ft_lstlast_bonus.c \
			ft_lstadd_back_bonus.c \
			ft_lstdelone_bonus.c \
			ft_lstclear_bonus.c \
			ft_lstiter_bonus.c \
			ft_lstmap_bonus.c

OBJ=		$(SRC:.c=.o)

BONUS_OBJ=	$(BONUS_SRC:.c=.o)

DEP=		$(SRC:.c=.d)

BONUS_DEP=	$(BONUS_SRC:.c=.d)

ALL_OBJ=	$(OBJ) $(BONUS_OBJ)

ALL_DEP=	$(DEP) $(BONUS_DEP)


%.o:		%.c
			$(CC) -MMD -MP -o $@ -c $< $(CFLAGS) -I$(HEADER)

all:		$(NAME)

$(NAME):	$(OBJ)
			$(AR) $(ARFLAGS) $(NAME) $(OBJ)

bonus:
			$(MAKE) $(NAME) SRC="$(SRC) $(BONUS_SRC)"

clean:	
			rm -f $(ALL_OBJ) $(ALL_DEP)

fclean:		clean
			rm -f $(NAME)

re:			fclean all

-include	$(DEP)

.PHONY:		all clean fclean re bonus
