如何使用gnu-make?
从传递给用户定义函数的参数中去除前导空格例如:
define FOO
# --- some build rules
# run the built target
/home/user/dir/bin/$(1)
endef
以下调用正常,因为没有前导空格:
$(eval $(call FOO,my_test ) )
不幸的是,以下内容失败,因为$(1)
有一个引导空间
$(eval $(call FOO, my_test ) )
^
Additional space to 'prettier' formatting
最终扩展到:
/home/user/dir/bin/ $(1)
^
Leading whitespace
如何从传递给用户定义函数的参数中去除前导空格?
执行此操作是不好的形式,还是我应该假设参数是在没有前导空格的情况下传递的?
答案 0 :(得分:6)
使用strip
功能:
define FOO
# ...
/home/user/dir/bin/$(strip $(1))
endef
有关详细信息,请参阅Text Functions。因此,为避免在任何地方使用strip
,最好在将参数传递给函数时避免使用逗号后的空格。