我正在开发一个模块,我希望有两个后端,Module(::PerlArray)
和Module::PDL
(可以取决于Module
)。两者都需要访问functions.c/.h
文件才能构建。该文件具有模块所需的相当复杂的逻辑。有没有一种方法可以将它与系统上的Module::PP
保持一致,然后将其添加到EU::MM
或M::B
中的相应构建标记(给定这里的复杂性可能是后者)?
更直观地说明
--Module--
Module.pm
Module/PerlArray.pm
Module/PerlArray.xs (#include functions.h
#include perlarray_backend.h)
Module/src/functions.c
Module/src/perlarray_backend.c
Module/inc/functions.h
Module/inc/perlarray_backend.h
--Module::PDL--
Module/PDL.pm
Module/PDL.xs (#include functions.h /*from Module*/
#include pdl_backend.h)
Module/src/pdl_backend.c
Module/inc/pdl_backend.h
并且编译使函数.o和链接。我确定我可以弄清楚如何正确设置标志但是如何让Module在安装时保留functions.c
文件,如何在安装Module::PDL
时找到它?我可以在某个位置放置functions.c/.h
吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
模块应该可以独立安装。也就是说,如果我安装了必备的Perl模块(但不一定仍然以源代码形式存在),那么应该可以将所有模块安装在一个分布式tar文件中,而无需参考任何其他模块的源代码。
你有选择。一种方法是让一个源目录创建几个分布式tar球,它们每个都可以在分布式源中拥有共享function.[ch]
的副本。
另一个主要选项是将两个模块捆绑到一个分布式tar球中。