Запустите Omake из другого каталога

Я пытаюсь добавить собственный пакет из хранилища git в свою среду buildroot. Пакет собран с помощью omake и имеет файл OMakeroot в корневом каталоге.

В среде buildroot я могу определить собственный Makefile, который автоматически вызывается BR, и этот должен вызывать команду omake. Проблема в том, что каталог, содержащий этот Makefile, не совпадает с каталогом сборки. Buildroot дает путь сборки с переменной $(D).

Если бы я использовал стандартный Makefile, команда была бы такой:

$(MAKE) TARGET_CC=$(TARGET_CC) -C $(D)   <= -C is used to change directory

Какой омаке эквивалентен этой команде?

что-то вроде этого не работает:

omake TARGET_CC=$(TARGET_CC) $(D)/OMakeroot  

or

cd $(D)
omake TARGET_CC=$(TARGET_CC)

person grorel    schedule 28.08.2020    source источник


Ответы (1)


Ваши две попытки выглядят так, как будто они должны быть рецептами правил в make-файле с табуляцией в начале каждой строки.

Ваша вторая попытка близка к решению, но в ней отсутствует знак продолжения — обратная косая черта — в конце первой строки (та, что с командой cd), и разделитель последовательности команд — ; или даже лучше && — так что Make может запустите эти две команды в одном и том же подпроцессе оболочки, так что omake будет эффективно вызываться с $(D) в качестве текущего каталога. Все вместе вы получаете:

    cd $(D) && \
    omake TARGET_CC=$(TARGET_CC)

Однако эти две команды достаточно короткие, чтобы их можно было поместить в одну строку. Заметьте также, что ведущие вкладки могут отображаться в вашем веб-браузере как последовательность из четырех пробелов, но на самом деле они должны быть табуляциями в make-файле.

person Mander    schedule 28.08.2020