jblixt Ответов: 1

Создайте файл makefile верхнего уровня для компиляции зависимости


Я пытаюсь создать файл makefile, который вызовет сценарий configure, а затем создаст библиотеку. Команды для построения библиотеки следующие:
./configure <options>
делать

Что я уже пробовал:

До сих пор я собирал make-файл по кусочкам и получил:

$(Имя):крапива
Фальшивка: крапива
$(Make) --directory=path/to/lib/

Где Name-это имя приложения верхнего уровня, которое зависит от библиотеки Nettle. Я не знаю, как использовать Make для выполнения настройки, которая создает файл makefile в библиотеке.

Richard MacCutchan

Прошло много времени с тех пор, как я писал make-файлы, но вы должны быть в состоянии использовать команду ./configure как часть набора команд для цели. Что-то вроде:

targetname:
    ./configure
    make makefilename

1 Ответов

Рейтинг:
8

k5054

Имейте в виду, что configure вообще производит а Makefile, так что не используйте его в качестве имени вашего "мета" makefile. Поскольку это, по-видимому, проект Linux, вы, вероятно, используете GNU make, который ищет "GNUmakefile", "makefile" и "Makefile" в этом порядке, так что вы, вероятно, тоже не хотите их использовать.

Насколько я знаю, нет никакого способа передать флаги опций для создания целей, но GNU make может получить доступ к глобальным переменным оболочки, так что вы можете сделать что-то вроде этого:

myMakefile:

CONFOPTS = --prefix=$(HOME)/lib --with-opt-a --with-opt-b

ifdef OPTFOO
    CONFOPTS += --foo=$(OPTFOO)
endif

ifdef OPTBAR
    CONFOPTS += --bar=$(OPTBAR)
endif

mylib:   # as per Ricard, above
     ./configure $(CONFOPTS)
     make


Тогда вы будете ссылаться на это как
make -f myMakefile OPTfOO=blah OPTBAR=all