0
我在使用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是當地,我重置它在馬老年底清空
這應該是正確的方式來操縱宏定義內的「局部變量」?
謝謝。
似乎我們不能直接在宏內部定義一個make變量,除非你使用$(shell)而不是$(call)來調用宏,在這種情況下,變成一個shell變量,而不是make變量 –