通用makefile包含/ usr / lib子目录

时间:2012-06-06 20:05:34

标签: linux makefile portability

我的makefile中的一个规则依赖于-lmysqlclient。在我的Ubuntu 10.04 32位盒子上,libmysqlclient.so文件位于/ usr / lib中。在我的另一个使用CentOS 6.2 64位的机器上,文件位于/ usr / lib64 / mysql中。是否有一种更好的方法可以使我的makefile比将以下“hack”添加到makefile更通用?

ifeq ($(shell uname -m), x86_64)
vpath %.so /usr/lib64/mysql
endif

1 个答案:

答案 0 :(得分:0)

也许您可以使用config-x86_64.mk行创建文件vpath,并在您的makefile中执行类似

的操作
-include config-$(shell uname -m).mk

如果文件不存在,-include将避免错误。

在任何情况下,都应该正确配置每个系统,以便链接器自动获取系统库,而无需任何手动黑客攻击。