Я пытаюсь скомпилировать одну библиотеку (xcrysden, на основе файла Make), которая во время компиляции выполняет ./configure внешних зависимостей - Tk и Tcl 8.5 - и скомпилирует их.Передача CC/CFLAGS/LDFLAGS из Makefile в ./configure из Tk/Tcl
Таким образом, структура примерно так:
Основной Makefile:
...
cd external/src; make;
внешних зависимостей (предварительно) Makefile (Тк):
include ../Make.sys
cd /unix
./configure
make
make install
Make.sys включен по внешнему make-файлу:
...
CFLAGS =...
CC =...
Конфигурация, очевидно, создает еще один make-файл в /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
. Я хочу сделать это аккуратным способом (то есть модифицировать только Make.sys библиотеки, зависящей от Tk). Но тогда я сталкиваюсь с проблемой, что не только не знаю, как передать LDFLAGS
в Tk configure, но даже CC/CFLAGS
не существует. Я не уверен, что это специфично для конкретной библиотеки (Tk) с использованием ./configure или я неправильно понимаю общее использование ./configure.
p/s/i компилируется на OS-X с использованием компиляторов gnu.
Являются ли эти переменные 'экспортом '? –
нет, это не так. Просто определено как написано. – Denis