PHP_ARG_WITH
开启扩展,此种开启方法表明此扩展需要第三方库的支持,通过设定变量值,来指定第三方扩展的路径.
PHP_ARG_WITH((1)pcap, (2)for pcap support,
(3)Make sure that the comment is aligned:
--with-pcap Include pcap support)
第一个参数用来指定编译时参数名称
./configure --with-pcap=path
因为第一个参数是pcap,所以参数名称是with-pcap,其值是可选的,可以在config.m4中用$PHP_PCAP获得值(这个例子里的值是path),如果没有设置,$PHP_PCAP默认值为yes.
第二个参数用来指定编译提示
./configure --with-pcap=path
...
...
checking for pcap support
第三个参数用来指定编译帮助
./configure --help
...
Make sure that the comment is aligned:
--with-pcap Include pcap support
...
PHP_CHECK_LIBRARY
用于验证我们需要的第三方库文件是有效的.
PHP_CHECK_LIBRARY(pcap,pcap_lib_version,
[
PHP_ADD_LIBRARY_WITH_PATH(pcap, $PCAP_DIR/lib, PCAP_SHARED_LIBADD)
AC_DEFINE(HAVE_PCAPLIB,1,[ ])
],[
AC_MSG_ERROR([wrong pcap lib version or lib not found])
],[
-L$PCAP_DIR/lib -lpcap
])
需要五个参数
- 库的名称.在我们的例子中编译时将被转换为-lpcap.
- 试图在我们的库中找到函数的名字.
- 找到该函数后采取的行动.
- 没找到该函数采取的行动.
- 设置库定义.
PHP_NEW_EXTENSION
PHP_NEW_EXTENSION(pcap, pcap.c test.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
需要大量的参数,常用的只有三个:
- 扩展的名称
- 用于构建扩展的源或文件的列表
- 扩展应该动态加载还是静态编译