ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Makefile 예시
    활동/42서울 2022. 2. 5. 21:15

     

    # **************************************************************************** #
    #                                                                              #
    #                                                         :::      ::::::::    #
    #    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 # 동명의 파일이 있더라도 실행시킨다.

    '활동 > 42서울' 카테고리의 다른 글

    팔만코딩경 contributor 되다 !  (0) 2022.02.10
    42서울 라 피신(La Piscine) 합격 후기  (0) 2021.11.04
    리눅스 명령어 정리  (0) 2021.09.20
Designed by Tistory.