我在 gmake 中定义了一个宏来在调用底层函数之前设置一个变量,然后将其重置:
define InstallWithPermission
$(eval ORIG_INSTALL_FILE_MODE = $(INSTALL_FILE_MODE))
$(eval INSTALL_FILE_MODE = $(1))
$(InstallFile)
$(eval INSTALL_FILE_MODE = $(ORIG_INSTALL_FILE_MODE))
$(eval ORIG_INSTALL_FILE_MODE = )
endef
此处 $(InstallFile) 将调用安装命令,并将 INSTALL_FILE_MODE 作为其文件模式。
- 为了在宏定义中设置变量,我使用eval函数
- 为了确保 ORIG_INSTALL_FILE_MODE 是本地的,我在 maro 结束时将其重置为空
这应该是在宏定义中操作“局部变量”的正确方法吗?
谢谢。