2

我有一个依赖于另一个开源项目的开源项目(我们称之为另一个项目 X)。两者都是用 C 编写的。我不得不破解 X 的一部分才能让多线程工作。在尝试打包代码以进行分发时,这会导致一些问题。为了让事情变得更简单,我刚刚将整个 X 与我所做的一些小技巧一起包含在我的内部。

我现在想做一些更复杂的事情,以保持 X 的改进功能(它有频繁的发布而我的没有),而不必每次在我的项目中重新打包整个项目(使用我的 hack)X 有释放。

只有 3 或 4 个函数需要覆盖。我可以按照这个IBM Tutorial中的内容进行操作,但是如何修改我的 Makefile.am 以生成该文章中建议的 Makefile 更改?总而言之,这篇文章建议编写我自己的函数,其签名与我想要覆盖的函数相同(在一个名为 libfuncs.c 的文件中),然后将以下“libs”目标添加到 makefile:

all: libs setresgid-tester

libs: libfuncs.c
             gcc -shared -Wl,-soname,libfuncs.so.1 -o libfuncs.so.1.0  libfuncs.c 
             ln -s libfuncs.so.1.0 libfuncs.so.1
             ln -s libfuncs.so.1 libfuncs.so

setresgid-tester: setresgid-tester.c
         gcc -o setresgid-tester setresgid-tester.c

所有这些对我来说都很有意义。然而,我需要做的是使用自动工具为我创建这个“库”目标。我有一个 Makefile.am 现在运行良好。如何修改它以产生上述所需的结果?在 autotools 文档中很难找到,但我可能只是不知道要寻找什么。

如果有帮助,我很乐意提供更多详细信息。提前致谢。

4

0 回答 0