CC = Gcc
CFLAGS = -Wall -Wextra -Werror
NAME = libft.a
INCLUDE = ./includes
DIR = ./srcs
SRCS = ft_putchar.c ft_swap.c ft_putstr.c ft_strlen.c ft_strcmp.c
OBJS = $(SRCS:.c=.o)
OBJECTS = $(patsubst %.o, srcs/%.o, $(OBJS))
all : $(NAME)
$(DIR)/%.o : $(DIR)/%.c
$(CC) $(CFLAGS) -I $(INCLUDE) -c $^ -o $@
$(NAME) : $(OBJECTS)
ar rcs $@ $^
clean:
rm -f $(OBJECTS)
fclean: clean
rm -f $(NAME)
re: fclean all
.PHONY: all clean fclean re
컴파일 옵션들을 정하고 소스파일, 오브젝트파일, 헤더파일 등의 경로를 정해놓고 디렉토리에서 make만 써서 빠르게 컴파일하고, 소스파일들을 관리할 수 있게 해주는 고마운 기능
목적파일 : 의존파일
$@ : 목적파일
$^ : 의존파일 모두
$< : 의존파일 중 맨 처음거
처음엔 고마운줄도 모르고 어려워서 힘들었는데 한번 써보니까 이후 과제부터 계속 사용했다.
좋은 정보 감사합니다