# **************************************************************************** # # LE - / # # / # # Makefile .:: .:/ . .:: # # +:+:+ +: +: +:+:+ # # By: rbousset +:+ +: +: +:+ # # #+# #+ #+ #+# # # Created: 2019/12/11 13:14:43 by rbousset #+# ## ## #+# # # Updated: 2019/12/11 18:34:05 by rbousset ### #+. /#+ ###.fr # # / # # / # # **************************************************************************** # default: all #==============================================================================# #--------------------------------- Shell --------------------------------------# #==============================================================================# SHELL := /bin/sh #==============================================================================# #------------------------------ Directories -----------------------------------# #==============================================================================# INCS_DIR = inc/ SRCS_DIR = src/ OBJS_DIR = obj/ #==============================================================================# #--------------------------------- Files --------------------------------------# #==============================================================================# INCS = libft.h #------------------------------------------------------------------------------# OBJS = $(patsubst ${SRCS_DIR}%.c,${OBJS_DIR}%.o,${SRCS}) #------------------------------------------------------------------------------# SRCS = ${SRCS_DIR}ft_memset.c SRCS += ${SRCS_DIR}ft_bzero.c SRCS += ${SRCS_DIR}ft_memcpy.c SRCS += ${SRCS_DIR}ft_memccpy.c SRCS += ${SRCS_DIR}ft_memmove.c SRCS += ${SRCS_DIR}ft_memchr.c SRCS += ${SRCS_DIR}ft_memlchr.c SRCS += ${SRCS_DIR}ft_memcmp.c SRCS += ${SRCS_DIR}ft_strlen.c SRCS += ${SRCS_DIR}ft_isalpha.c SRCS += ${SRCS_DIR}ft_isdigit.c SRCS += ${SRCS_DIR}ft_isalnum.c SRCS += ${SRCS_DIR}ft_isascii.c SRCS += ${SRCS_DIR}ft_isprint.c SRCS += ${SRCS_DIR}ft_ischarset.c SRCS += ${SRCS_DIR}ft_tolower.c SRCS += ${SRCS_DIR}ft_toupper.c SRCS += ${SRCS_DIR}ft_strchr.c SRCS += ${SRCS_DIR}ft_strrchr.c SRCS += ${SRCS_DIR}ft_strncmp.c SRCS += ${SRCS_DIR}ft_strlcpy.c SRCS += ${SRCS_DIR}ft_strlcat.c SRCS += ${SRCS_DIR}ft_strnstr.c SRCS += ${SRCS_DIR}ft_atoi.c SRCS += ${SRCS_DIR}ft_calloc.c SRCS += ${SRCS_DIR}ft_realloc.c SRCS += ${SRCS_DIR}ft_strdup.c SRCS += ${SRCS_DIR}ft_substr.c SRCS += ${SRCS_DIR}ft_strjoin.c SRCS += ${SRCS_DIR}ft_strtrim.c SRCS += ${SRCS_DIR}ft_split.c SRCS += ${SRCS_DIR}ft_itoa.c SRCS += ${SRCS_DIR}ft_itoa_base.c SRCS += ${SRCS_DIR}ft_strmapi.c SRCS += ${SRCS_DIR}ft_putchar_fd.c SRCS += ${SRCS_DIR}ft_putstr_fd.c SRCS += ${SRCS_DIR}ft_putendl_fd.c SRCS += ${SRCS_DIR}ft_putnbr_fd.c SRCS += ${SRCS_DIR}ft_lstnew.c SRCS += ${SRCS_DIR}ft_lstadd_front.c SRCS += ${SRCS_DIR}ft_lstsize.c SRCS += ${SRCS_DIR}ft_lstlast.c SRCS += ${SRCS_DIR}ft_lstadd_back.c SRCS += ${SRCS_DIR}ft_lstdelone.c SRCS += ${SRCS_DIR}ft_lstclear.c SRCS += ${SRCS_DIR}ft_lstiter.c SRCS += ${SRCS_DIR}ft_lstmap.c SRCS += ${SRCS_DIR}ft_putchar.c SRCS += ${SRCS_DIR}ft_putnchar.c SRCS += ${SRCS_DIR}ft_putstr.c SRCS += ${SRCS_DIR}ft_putendl.c SRCS += ${SRCS_DIR}ft_putnbr.c SRCS += ${SRCS_DIR}ft_putnbr_base.c SRCS += ${SRCS_DIR}ft_strnlen.c SRCS += ${SRCS_DIR}ft_strcat.c SRCS += ${SRCS_DIR}ft_strcmp.c SRCS += ${SRCS_DIR}ft_isspace.c SRCS += ${SRCS_DIR}ft_sqrt.c SRCS += ${SRCS_DIR}ft_intlen.c SRCS += ${SRCS_DIR}ft_intlen_base.c SRCS += ${SRCS_DIR}ft_nstr.c SRCS += ${SRCS_DIR}ft_kernel_panic.c SRCS += ${SRCS_DIR}get_next_line.c #==============================================================================# #-------------------------------- Compiler ------------------------------------# #==============================================================================# CC = gcc CFLAGS = -Wall CFLAGS += -Wextra CFLAGS += -Werror CFLAGS += ${DEBUG} CFLAGS += ${FSANITIZE} #------------------------------------------------------------------------------# DEBUG = -Og -ggdb FSANITIZE = -fsanitize=address #------------------------------------------------------------------------------# NAME = libft.a #==============================================================================# #-------------------------------- Library -------------------------------------# #==============================================================================# AR = ar rcs #==============================================================================# #--------------------------------- UNIX ---------------------------------------# #==============================================================================# MKDIR = mkdir -p RM = rm -rf #==============================================================================# #--------------------------------- Rules --------------------------------------# #==============================================================================# ${OBJS_DIR}%.o: ${SRCS_DIR}%.c ${INCS_DIR}${INCS} @${MKDIR} ${OBJS_DIR} ${CC} ${CFLAGS} -I${INCS_DIR} -o $@ -c $< #------------------------------------------------------------------------------# ${NAME}: ${OBJS} ${AR} ${NAME} ${OBJS} #------------------------------------------------------------------------------# all: @$(MAKE) --no-print-directory -j5 ${NAME} #------------------------------------------------------------------------------# clean: ${RM} ${OBJS_DIR} #------------------------------------------------------------------------------# fclean: clean ${RM} ${NAME} #------------------------------------------------------------------------------# re: fclean all #------------------------------------------------------------------------------# build: ${OBJS} ${CC} ${CFLAGS} -Iinc/ -o a.out ${OBJS} ${SRCS_DIR}main.c #------------------------------------------------------------------------------# .PHONY: all clean clean fclean re default #==============================================================================# #-------------------------------- Colors --------------------------------------# #==============================================================================# _END = \033[0m _BOLD = \033[1m _UNDER = \033[4m #------------------------------------------------------------------------------# _NBLACK = \033[0;30m _NRED = \033[0;31m _NGREEN = \033[0;32m _NYELLOW = \033[0;33m _NBLUE = \033[0;34m _NMAGENTA = \033[0;35m _NCYAN = \033[0;36m _NWHITE = \033[0;37m #------------------------------------------------------------------------------# _BBLACK = \033[1;30m _BRED = \033[1;31m _BGREEN = \033[1;32m _BYELLOW = \033[1;33m _BBLUE = \033[1;34m _BMAGENTA = \033[1;35m _BCYAN = \033[1;36m _BWHITE = \033[1;37m #------------------------------------------------------------------------------# _IBLACK = \033[1;40m _IRED = \033[1;41m _IGREEN = \033[1;42m _IYELLOW = \033[1;43m _IBLUE = \033[1;44m _IMAGENTA = \033[1;45m _ICYAN = \033[1;46m _IWHITE = \033[1;47m #==================================== EOF =====================================#