我正在尝试编译一个库(xcrysden,基于 Make 文件),它在编译期间执行外部依赖项的 ./configure - Tk 和 Tcl 8.5 - 并编译它们。
所以,结构大致是这样的:
主 Makefile:
...
cd external/src; make;
外部依赖项(预)makefile(Tk):
include ../Make.sys
cd /unix
./configure
make
make install
Make.sys 包含在外部 makefile 中:
...
CFLAGS =...
CC =...
显然,configure 会生成另一个 makefile/external/src/unix
供 Tk 使用。在 Tk 文档中是这样写的:
If you wish to specify a particular compiler, set the CC environment variable before calling configure. You can also specify CFLAGS prior to configure and they will be used during compilation.
但是从生成的 Makefile 中我肯定看到既没有使用定义的编译器(CC)也没有使用标志(CFLAGS)。当它在另一个make文件中设置时,它是否符合“环境变量”的条件?
我实际上在编译 Tk 时遇到问题,所以我不仅尝试传递编译器,还尝试传递链接信息
LDFLAGS = -L/opt/local/lib -lfontconfig
。我想以一种简洁的方式进行(即仅修改依赖于 Tk 的库的 Make.sys)。但是后来我面临的问题是,我不仅不知道如何传递LDFLAGS
给 Tk 配置,甚至CC/CFLAGS
不知道。我不确定这是否特定于使用 ./configure 的特定库 (Tk),或者我误解了 ./configure 的一般用法。
p/s/ 我正在使用 gnu 编译器在 OS-X 上编译。