Makefile
NAME = libft.a
AR = ar
ARFLAGS = crs
CC = gcc
CFLAG = -Wall -Wextra -Werror
RM = rm
RMFLAG = -f
INCLUDES = ./libft.h
SRC_PART1 = \
./ft_memset.c \
./ft_bzero.c \
./ft_memcpy.c \
./ft_memccpy.c \
./ft_memmove.c \
./ft_memchr.c \
./ft_memcmp.c \
./ft_calloc.c \
./ft_strlen.c \
./ft_strlcpy.c \
./ft_strlcat.c \
./ft_strchr.c \
./ft_strrchr.c \
./ft_strncmp.c \
./ft_strnstr.c \
./ft_strdup.c \
./ft_isdigit.c \
./ft_atoi.c \
./ft_isalpha.c \
./ft_isalnum.c \
./ft_isascii.c \
./ft_isprint.c \
./ft_toupper.c \
./ft_tolower.c
SRC_PART2 = \
./ft_substr.c \
./ft_strjoin.c \
./ft_strtrim.c \
./ft_split.c \
./ft_itoa.c \
./ft_strmapi.c \
./ft_putchar_fd.c \
./ft_putstr_fd.c \
./ft_putendl_fd.c \
./ft_putnbr_fd.c
SRCS = \
$(SRC_PART1) \
$(SRC_PART2)
OBJS = $(SRCS:.c=.o)
SRC_BONUS = \
./ft_lstnew.c \
./ft_lstadd_front.c \
./ft_lstsize.c \
./ft_lstlast.c \
./ft_lstadd_back.c \
./ft_lstdelone.c \
./ft_lstclear.c \
./ft_lstiter.c \
./ft_lstmap.c
OBJS_BONUS = $(SRC_BONUS:.c=.o)
all : $(NAME)
clean :
$(RM) $(RMFLAG) $(OBJS) $(OBJS_BONUS)
fclean : clean
$(RM) $(RMFLAG) $(NAME)
re : fclean all
.c.o : $(SRCS) $(INCLUDES)
$(CC) $(CFLAGS) -c $< -o $(<:.c=.o)
$(NAME) : $(OBJS)
$(AR) $(ARFLAGS) $@ $^
bonus : $(OBJS) $(OBJS_BONUS)
$(AR) $(ARFLAGS) $(NAME) $^
.PHONY: all clean fclean re
느낀점
- c 언어의 포인터를 사용 하는 방법에 대해 익히게 되었다.
- c 표준 함수들의 특성과 작동 방식, 반환 값 등에 알게 되었다.
- c 표준 함수들의 취약점을 알게 되었고 어떻게 내가 응용해서 사용 할 수 있을 지에 대해 생각해 볼 수 있게 되었다.
- 코드 하나하나를 꼼꼼하게 보게 되었고 사소한 것 하나하나가 중요하고 코드가 생각한 대로 흘러가지 않다는 것을 알게 되었다.
- Makefile 작동 방식에 대해서 고민을 많이 하게 되었고 Makefile 오류를 찾느라 고생을 많이 했다.