➰ 코딩 부트캠프/42 seoul

Makefile 만들기

 사과개발자 2020. 12. 21. 23:39

📌Makefile

주어진 쉘 명령어들을 조건에 맞게 실행하는 프로그램

 target : prerequisites ...
        recipe
        ...
        ...
  • target : make abc에서 abc에 해당
  • prerequisites : 주어진 타겟을 make할 때 사용될 파일들의 목록
  • recipes : 주어진 타겟을 make할 때 실행할 명령어들의 나열 (반드시 tab하기)

➕변수

SRCS = ft_memset.c ft_bzero.c
OBJS = $(SRCS:.c=.o)
NAME = libft.a
CC = gcc
CF = -Wall -Wextra -Werror

$() 안에 변수를 넣어 사용

➕ 자동 변수

  • % : * 과 같은 역할
  • $@ : 타겟의 이름
  • $< : 의존 파일 목록의 첫번째 파일
  • $^ : 의존 파일의 목록 전체 ($+ : 중복된 파일 이름들까지 모두 포함)
  • $? : 타겟보다 최신인 의존 파일들

➕ phony

clean 이라는 파일이 디렉토리에 생성된다면 clean파일은 항상 최신이므로 무시하게 된다.
이런 상황을 막기위해 PHONY를 등록한다.

.PHONY : clean
clean : 
    rm -f $(OBJS) main
반응형