Makefile의 $(number)는 무엇을 의미합니까?

Makefile의 $(number)는 무엇을 의미합니까?

나는 가지고있다일부 스크립트다음을 포함하는 줄을 이해하지 못합니다 $(1).

wget --retry-connrefused --waitretry=5 --read-timeout=30 --tries=50 --no-dns-cache https://dataverse.harvard.edu/api/access/datafile/:persistentId?persistentId=doi:$(1) -O data/tmp.tar.gz

무엇을 나타냅니까 $(1)?

답변1

$(1)GNU make "function"의 첫 번째 매개변수입니다.바꾸다다음과 같이 해석됩니다.call기능:

define dataverse_download
    wget --retry-connrefused --waitretry=5 --read-timeout=30 --tries=50 --no-dns-cache https://dataverse.harvard.edu/api/access/datafile/:persistentId?persistentId=doi:$(1) -O data/tmp.tar.gz
    cd data && tar -xzf tmp.tar.gz
    rm -f data/tmp.tar.gz
endef

download_wget:
    mkdir -p data
    $(call dataverse_download,10.7910/DVN/IA8UOS/URG8XN)
    $(call dataverse_download,10.7910/DVN/IA8UOS/1DBE7K)
    $(call dataverse_download,10.7910/DVN/IA8UOS/34QRHK)

dataverse_download이는 첫 번째 인수로 제공된 DOI와 일치하는 데이터 파일을 다운로드하는 함수를 정의하며 download_wget이를 결합하는 방법을 보여줍니다.$(call)기능.

관련 정보