2012-11-22 24 views
3

如何从使用gnu-make传递给用户定义函数的参数中删除前导空白?从传递给用户定义函数的参数中剥离前导空白

例如:

define FOO 
# --- some build rules 

# run the built target 
/home/user/dir/bin/$(1) 

endef 

以下调用正常工作,因为没有前导空格:

$(eval $(call FOO,my_test)) 

不幸的是下面的失败,因为$(1)有leadning空间

$(eval $(call FOO, my_test)) 
       ^
       Additional space to 'prettier' formatting 

这最终扩展到:

/home/user/dir/bin/ $(1) 
       ^
       Leading whitespace 

如何从传递给用户定义函数的参数中删除前导空白字符?

这样做是不好的形式还是我应该简单地假设参数传递时没有引导空格?

回答

6

使用strip功能:

define FOO 
# ... 
/home/user/dir/bin/$(strip $(1)) 
endef 

有关详细信息,请参阅Text Functions。因此,为了避免在任何地方使用strip,最好在将参数传递给函数时避免逗号之后的空格。

+0

优异!那真的让我失望了:-) – Integralist