$(number) 在 Makefile 中是什么意思?

men*_*ed1 8 make

我有一些脚本,但我不明白包含$(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
Run Code Online (Sandbox Code Playgroud)

什么是$(1)代表?

Ste*_*itt 10

$(1)是 GNU make“函数”的第一个参数,它是由函数解释的变量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)
Run Code Online (Sandbox Code Playgroud)

这定义了一个函数,dataverse_download它下载与作为第一个参数给出的 DOI 匹配的数据文件;该download_wget目标显示了如何使用此$(call)功能。