Make интерпретирует параметры компилятора как команду оболочки

Я пытаюсь скомпилировать fbsplash под Tiny Core Linux с помощью автоинструментов. В середине компиляции произошел сбой, сказав, что "LD: попытка статической ссылки на динамический объект /usr/local/lib/libpng16.so". Я избавился от этого, закомментировав опцию "-all-static" в Makefile. Теперь вылетает после

/bin/bash: O2: not found
/bin/bash: w: not found
/bin/bash: DTARGET_KERNEL: not found

Все эти варианты имеют тире перед ними. Это выглядит как:

fbcondecor_helper_CFLAGS = -O2 -w \...
fbcondecor_helper_CPPFLAGS = $(AM_CPPFLAGS) -DTARGET_KERNEL

Но почему-то моя оболочка интерпретирует их как команды без тире. В чем дело?

1 ответ

Во-первых, вы не используете автоинструменты. Вы используете скрипт configure, который был сгенерирован с помощью автоинструментов. (Если вы действительно используете autoconf или autoreconf, это другая проблема, и с вашей стороны есть (гораздо) больше места для ошибок.) В любом случае, вы никогда не должны вручную редактировать сгенерированный Makefile. (Итак, короткий ответ на вопрос "Что не так?" - "Вы редактировали Makefile".) Вместо этого добавьте --disable-static когда ты бежишь configure,

Другие вопросы по тегам