make продолжает переупорядочивать аргументы в команде правила - как мне это остановить? - PullRequest
0 голосов
/ 29 мая 2019

с целью есть правило, которое вызывает libtool с некоторыми аргументами. Фактическая командная строка, которая выполняется, когда триггеры правил имеют переставленные аргументы.

Я пытался переставить последовательность аргументов в правиле в различных комбинациях, но последняя выполняемая строка всегда одинакова.

Наконец, я попытался захватить все строки, которые должны быть выполнены в одной переменной, а затем ввел эту переменную, которая будет расширена как строка, которая выполняется оболочкой. Это работает.

например:

1 - оригинал, который не работает:

target.o:
<--------->$(some_command) $(first_arg) $(second_one) $(third) $(fourth)

При срабатывании правила выполняется нечто подобное

<--------->$(some_command)  $(second_one) $(fourth) $(third)  $(first_arg)

WTF

Если уместно, то some_command - это libtool.

(это из Makefile | gsymcheck / src / MAkefile | в gEDA CAD, который я пытаюсь исправить, чтобы быть совместимым с оптимизацией LTO, кстати.)

строка:

$(AM_V_CCLD)$(gsymcheck_LINK) $(gsymcheck_OBJECTS) $(gsymcheck_LDADD) $(LIBS)

ожидайте, что строка рецепта правила будет выполнена так, как она была задана, не заставляя ее играть в «оригами».

...