the GNU make manual에서 읽을 수 있듯이 퍼센트는 와일드 카드의 역할을합니다. patsubst
function의 첫 번째 인수는 패턴을 형성합니다. 마지막 인수의 각 항목/단어는이 패턴과 비교되고 일치하면 두 번째 인수로 바뀝니다. 패턴에 와일드 카드 기호 (%)가 있으면, 이는 임의의 문자 수와 일치하며,이 문자는 두 번째 인수에서 % 대신에 대체 문자열로 복사됩니다.
예제에서 패턴은 와일드 카드 기호이므로 함수에 대한 마지막 인수의 단어와 일치하게되며이 단어는 %의 자리에 대체 문자열 (두 번째 인수)에 복사됩니다. .
예를 들어 더 명확하게 알 수 있습니다. TEST_SUBDIRS
에는 두 개의 이름이 있다고 가정 해 보겠습니다.
TEST_SUBDIRS := test1 test2
include $(patsubst %,$(src)/%/Make.tests, $(TEST_SUBDIRS))
이것은 다음과 같습니다.
include $(src)/test1/Make.tests $(src)/test2/Make.tests
메이크 파일은 한 줄씩 순차적으로 처리됩니다. 변수 할당은 "내부화"되어 있으며 include 문을 사용하면 다른 파일의 내용이 그 위치에 문자 그대로 삽입되어 해당 내용이 makefile의 일부로 처리됩니다.
종속성 그래프는 규칙을 읽을 때 규칙에서 형성되며 전체 파일이 처리 된 후 필요한 레시피가 실행되어 요청한 대상을 업데이트합니다.