我试图了解OpenSSL(1.1.1
)的构建过程。看来./Configure
会生成一个名为configdata.pm
的文件,其中包含编译器标志,依此类推。还有一个Makefile
可能包含一些有用的信息。为简单起见,我启用了NO_ASM
。
但是,我如何知道哪些翻译单元进入了libcrypto
和libssl
的构建?似乎抓住.c
和crypto
目录中的每个ssl
文件都将导致生成错误。
如何从构建过程中提取此信息?
答案 0 :(得分:0)
要了解构建libcrypto
和libssl
所依赖的依赖项,生成的Makefile
包含您需要的所有信息。
有一个名为libcrypto$(SHLIB_EXT_SIMPLE)
的目标规则,该规则阐明了其依赖性,并具有将所有目标文件链接到crypto
库的方法。在我当前的版本中,该配方包含一行大约14,000个字符的行。在Makefile
中找到它的最简单方法是搜索表达式-o libcrypto
。
类似地,对于ssl
库,目标称为libssl$(SHLIB_EXT_SIMPLE)
,您可以通过搜索-o libssl
来找到配方
现在弄清楚Makefile
本身是如何生成的是另一回事……据我所知,其信息分散在不同子目录中的许多build.info
文件中,例如crypto
目录下的模板,以及Configuration
目录下的一些模板。信息通过几个perl脚本捆绑在一起。