了解 Linux 的 makefile 脚本

了解 Linux 的 makefile 脚本

我正在使用 fpgalink fx2 在 Windows 机器上构建。以下是 makefile,以下脚本的含义是什么:

BRANCH := $(shell TRY=$(CURDIR)
BRANCH=dev
while [ "$${TRY}" != "$(ROOT)" -a "$${TRY}" != "/" ]; do
    if [ -e "$${TRY}/.branch" ]; then
        BRANCH=$$(cat "$${TRY}/.branch") 
        break
    fi
    TRY=$$(dirname $${TRY})
done
echo $${BRANCH})

答案1

这个 GNU Makefile 片段正在设置 Makefile 变量的值BRANCH

它通过调用 Makefile 中内联编码的简短 shell 脚本来实现这一点。

shell 脚本尝试在当前目录中查找名为的文件.branch。如果找不到该文件,它会尝试在上面的目录中查找,依此类推,直到找到根目录 ( /) 或 Makefile 变量的值指定的目录ROOT

如果找到文件,则将使用文件内容来设置 的值BRANCH(循环终止)。如果在任何地方都找不到.branch文件,BRANCH则将变量设置为 的值dev

相关内容