如何在makefile中指定/ usr / include / path

时间:2014-04-01 15:23:22

标签: python makefile

我想在makefile中指定 -I / usr / include / python2.7 路径。关键是我不想对这部分进行硬编码。我不能真正使用类似pkg-config的东西,因为我需要在Mac和Linux上都能使用它。我也可以让python版本独立吗?

2 个答案:

答案 0 :(得分:0)

任何想要编写便携式Makefile的人都知道这个问题,并且make没有设计来处理它。

可以通过编写一个shell脚本(通常称为configure)来解决这个问题,该脚本可以确定系统中的所有内容,并根据其结果生成Makefile。这样的脚本通常有一些启发式方法来确定一切都在哪里。一些这样的脚本是互动的;有些人试图自己弄清楚一切。

设计正确的测试并编写这样的脚本是一项工作,所以下一个合乎逻辑的步骤是创建一个允许您指定需求的系统(例如"我们需要python 2.7或更高")并根据该脚本生成configure脚本。

非常受欢迎(通常使用'经常使用的')工具链是GNU Autotools(另见Wikipedia)。

一个众所周知的替代方案是CMake(另见Wikipedia)。

答案 1 :(得分:0)

这里的帖子(http://www.trivedigaurav.com/blog/making-makefiles-for-your-research-code/)足以回答所提出的问题。

如@reinerpost所指出的,单独使用make是不可能的。需要某种配置脚本。一种方法是在帖子中如下:

修改Makefile并将其命名为Makefile.in:

LDFLAGS=@PYTHON_LDFLAGS@ @PYTHON_EXTRA_LIBS@
CFLAGS=@PYTHON_CPPFLAGS@ -Wall

现在,使用autotools创建一个配置脚本,它将填充上面的变量。 autoconf可以使用以下configure.ac来实现此目的:

  

AC_PYTHON_DEVEL([> ='2.5'])