Makefile:如果构建目标是amd64,则确定构建,以便我可以调整CFLAGS = -fPIC

时间:2013-07-23 11:50:28

标签: x86-64 packaging pic deb fpic

我正在打包deb文件,配置脚本没有检查是否需要-fPIC。因此,amd64的构建失败(因为PIC是强制性的)。

如果需要-fPIC,如何在makefile中确定或更好地在debian / rules中确定?

2 个答案:

答案 0 :(得分:2)

uname --hardware-platform可能不是你想要的,因为它可能与你安装的库和可执行文件的架构(想想在x86_64硬件上安装的i386内核和运行时)不同,也因为{{ 1}}通常最终会在Linux下成为“hardware-platform”。

一个包装良好的deb可能会使用unknown(示例输出:“dpkg-architecture -qDEB_HOST_ARCH”,“amd64”,“i386”等,所以如果有人想要交叉编译,它会被正确覆盖。

答案 1 :(得分:0)

uname --hardware-platform

ifeq ($(shell uname --hardware-platform), 86_64)
   CFLAGS += -fPIC
   CXXFLAGS += -fPIC
endif