在构建PHP扩展时,如何通过config.m4添加额外的参数?

时间:2013-11-11 13:44:53

标签: php c php-extension

我正在开发一个用C编写的新PHP扩展。通常我用来构建它的命令看起来像这样:

phpize
./configure --enable-framework
make
sudo make install

所以这里没什么太疯狂的,只是标准的。我的config.m4非常基本,看起来像这样:

PHP_ARG_ENABLE(framework, whether to enable framework support,
[ --enable-framework   Enable Framework support])

if test "$PHP_FRAMEWORK" = "yes"; then
    AC_DEFINE(HAVE_FRAMEWORK, 1, [Whether you have Framework])
    PHP_NEW_EXTENSION(framework, framework.c, $ext_shared)
fi

但我有从gccgo生成的multi.o二进制文件,我想成为编译过程的一部分。在framework.c之后添加它不起作用;就像.c源文件一样。

因为Makefile是自动生成的,所以它显然不知道multi.o,所以我知道它必须在某个地方的config.m4文件中,但我不知道在哪里。

有人知道我需要做什么才能让它发挥作用吗?

1 个答案:

答案 0 :(得分:0)

我已将此行添加到我的config.m4文件中,似乎已将其修复:

EXTRA_LDFLAGS=multi.o

所以现在整个文件看起来像这样:

PHP_ARG_ENABLE(framework, whether to enable framework support,
[ --enable-framework   Enable Framework support])

if test "$PHP_FRAMEWORK" = "yes"; then
    AC_DEFINE(HAVE_FRAMEWORK, 1, [Whether you have Framework])
    PHP_NEW_EXTENSION(framework, framework.c, $ext_shared)
    EXTRA_LDFLAGS=multi.o
fi

这会在第36行生成MakefileEXTRA_LDFLAGS = multi.o。这样就可以获取我需要的源并正常工作。

不确定这是否是最佳/正确的方法,但它确实有效。