以下shell脚本的作用是什么

时间:2012-03-01 09:52:38

标签: shell makefile

我在u-boot中遇到了以下shell脚本作为makefile的一部分。 它做了什么以及如何评估

cc-option = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null \
        > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)

它被称为

PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,\
            $(call cc-option,-malignment-traps,))

1 个答案:

答案 0 :(得分:3)

代码运行if命令。 if接受一个参数:要执行的命令($(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1)。

如果命令成功,则执行then部分(echo "$(1)")。如果命令失败,则执行else部分(echo "$(2)")。

在您的情况下,编译器启动时可能不支持某些选项($1-mshort-load-bytes)。

由于$2为空,结果将是选项(如果编译器支持)或空字符串。