아무도 한국어로 제대로 된 설명을 안 해 줘서 직접 적는
참조 문서:
GNU make: Automatic Variables
명령행에서 사용되는
$(@D)
는 target의 디렉토리 부분이다.
예를 들어, 아래의 명령행은
/home/me/project/build/%_c.o : /home/me/project/src/%.c
mkdir -p $(@D)
mkdir -p /home/me/project/build
와 같다.
즉, /home/me/project/build
디렉토리를 생성한다.
쓸데없는 참고사항
mkdir의 -p 옵션은 생성하려는 디렉토리가 이미 존재해도 에러를 발생시키지 않고,
상위 디렉토리가 없는 경우에 필요하면 생성한다.
참고: 리눅스 mkdir -p 옵션에 대해
$@
는 target의 이름이다.
$<
는 prerequisite의 첫 번째 항목의 이름이다.
예를 들어, 아래의 명령행은
build/file1_c.o : src/file1.c
gcc -c $< -o $@
gcc -c src/file1.c -o build/file1_c.o
와 같다.