# **************************************************************************** #
# #
# ::: :::::::: #
# Makefile :+: :+: :+: #
# +:+ +:+ +:+ #
# By: seongwki <seongwki@student.42.kr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2022/01/11 01:13:45 by seongwki #+# #+# #
# Updated: 2022/02/04 23:39:12 by seongwki ### ########.fr #
# #
# **************************************************************************** #
NAME = libft.a
#변수 설정
CC = gcc #컴파일러. (내장 변수)
CFLAGS = -Wall -Wextra -Werror #컴파일러 옵션. (내장 변수)
AR = ar rcs #ar : 라이브러리(아카이브 파일) 만들기 r: 파일 만들기 c: 새로운 라이브러리를 만들 때 주의 표시 하지 않기 s:함수의 인덱스 추가
RM = rm -f
FILES = ft_isalpha \
ft_isdigit \
ft_isalnum \
ft_isascii \
ft_isprint \
ft_strlen \
ft_memset \
ft_bzero \
ft_memcpy \
ft_memmove \
ft_strlcpy \
ft_strlcat \
ft_toupper \
ft_tolower \
ft_strchr \
ft_strrchr \
ft_strncmp \
ft_memchr \
ft_memcmp \
ft_strnstr \
ft_atoi \
ft_calloc \
ft_strdup \
ft_substr \
ft_strjoin \
ft_strtrim \
ft_split\
ft_itoa\
ft_strmapi\
ft_striteri\
ft_putchar_fd\
ft_putstr_fd\
ft_putendl_fd\
ft_putnbr_fd
SRCS_DIR = ./
SRCS = $(addprefix $(SRCS_DIR), $(addsuffix .c, $(FILES))) # ./파일.c
OBJS_DIR = ./
OBJS = $(addprefix $(OBJS_DIR), $(addsuffix .o, $(FILES))) # ./파일.o
#확장자 규칙 구현. c를 o로 만들어라
.c.o: $(SRCS)
$(CC) $(CFLAGS) -c -o $@ $< # 자동 변수 사용
# $@ : 현재의 목표 파일. (.c.o)
# $^ : depend의 첫 번째 파일 이름
$(NAME): $(OBJS)
$(AR) $@ $^
all: $(NAME)
clean:
$(RM) $(OBJS)
fclean: clean
$(RM) $(NAME) #실행파일도 삭제
re: fclean all #fclean 실행 후 다시 make
.PHONY: all clean fclean re # 동명의 파일이 있더라도 실행시킨다.