我最近在一个正在研究的项目中偶然发现了这个问题。在包A
中,有一个必需的配置选项--package-B-makefile-location
,A
的makefile借用了变量值。
这是一种具有优点的常见设计模式吗?在我看来,B
的包源与其用于编译A
的二进制文件一样重要。可能有理由我不想篡改它吗?
谢谢,
安德鲁
答案 0 :(得分:0)
这是一种常见且有用的设计模式,但它可以像其他任何一样被滥用。
我不确定我是否理解你问题的第二部分,但是如果makefile设计得很好,那么你对B的makefile所做的任何改变都不会破坏A。
答案 1 :(得分:0)
一个软件包需要预先安装其他软件包,这一点远非闻所未闻,您必须指定这些位置。
例如,构建GCC(4.5.2),如果默认情况下找不到它们,则需要指定GMP,MPFR和MPC库的位置。
可扩展的复杂系统 - Perl,Apache,Tcl / Tk,PHP - 以各种方式为其用户提供配置数据(Perl的Config.pm,Apache的apxs等),但配置数据对于依赖是至关重要的模块。
我怀疑您的Package A需要一些与Package B相关的配置数据,但是没有一个完全成熟的系统来提供它。作为一种解决方法,Package A需要查看封装在makefile中的配置数据。
需要makefile是不常见的;需要一些关于其他包的信息并不罕见。