LINUX.ORG.RU

make сломался

 ,


1

3

Привет. Что-то необъяснимое происходит с make. Решил собрать прошивку openwrt, на вызов make prereq в корне проекта такой вывод:

.../10.03.1/include/prereq.mk:12: предупреждение: переопределение способа для цели «prereq»
.../10.03.1/target/linux//Makefile:13: предупреждение: старый способ для цели «prereq» игнорируются
Makefile:158: предупреждение: переопределение способа для цели «clean»
.../10.03.1/target/linux//Makefile:13: предупреждение: старый способ для цели «clean» игнорируются
--: .../10.03.1/include/shell.sh;: Нет такого файла или каталога
--: .../10.03.1/include/shell.sh;: No such file or directory
--: .../10.03.1/include/shell.sh;: No such file or directory
.../10.03.1/include/prereq.mk:12: ошибка выполнения рецепта для цели «prereq»
make: *** [prereq] Ошибка 1
shell.sh находится на месте. Неделей раньше этим же самым сборщиком собрал вполне здоровую прошивку. Решил изменить функционал, собираю - выпадают ошибки о переопределении. Внутри сборщика вообще ничего не менял! Проблема в make или чем-то другом? Ссылка на сборщик: здесь.

★★

Скачивал разные версии сборщика: 10.03, 14.07 и др. Теперь везде выпадают подобные ошибки, даже если ввести make info.

rmu ★★
() автор топика

А с bash/make всё в порядке? Там, например, строка в /rules.mk

export SHELL=/usr/bin/env bash -c '. $(TOPDIR)/include/shell.sh; eval "$$2"' --
А в ошибке
--: .../10.03.1/include/shell.sh;: ...
Как оно посчитало ; (точку с запятой) частью имени файла? Можно попробовать /usr/bin/env bash на /bin/bash заменить, может что-то изменит (если в $PATH что-то не то).

У некоторых целей имена действительно совпадают, но каким боком те файлы вместе включаются не совсем понятно.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Если меняю окружение на /bin/bash получается вот такое:

/usr/mydata/10.03.1/include/prereq.mk:12: предупреждение: переопределение способа для цели «prereq»
/usr/mydata/10.03.1/target/linux//Makefile:13: предупреждение: старый способ для цели «prereq» игнорируются
Makefile:158: предупреждение: переопределение способа для цели «clean»
/usr/mydata/10.03.1/target/linux//Makefile:13: предупреждение: старый способ для цели «clean» игнорируются
/bin/bash: . /usr/mydata/10.03.1/include/shell.sh\; eval \"\$2\": Нет такого файла или каталога
/bin/bash: . /usr/mydata/10.03.1/include/shell.sh\; eval \"\$2\": No such file or directory
/bin/bash: . /usr/mydata/10.03.1/include/shell.sh\; eval \"\$2\": No such file or directory
Makefile:162: ошибка выполнения рецепта для цели «info»
make: *** [info] Ошибка 127

rmu ★★
() автор топика
Ответ на: комментарий от Dark_SavanT

Некрофил в треде!

Лучше сказать геронтофил: мой dwl-2100 хоть и старенький, но пока живой и со своими задачами справляется.

А trunk сборку ставить как-то рискованно: она раза в полтора больше получается с тем же функционалом. Да и зачем что-то новое, если отлично работает 10.03.1?

rmu ★★
() автор топика
Ответ на: комментарий от rmu

Не понятно почему оно экранирует все специальные символы, я бы попробовал нечто подобное в отдельном Makefile написать и посмотреть что и как, похоже на проблемы с make (у меня с версией 3.82 поведение нормальное). Кажется он пытается запустить команду используя встроенный shell, но в данном случае он не способен это выполнить.

xaizek ★★★★★
()
Ответ на: комментарий от rmu

Я в отчаянии: установил все зависимости, пробовал собирать на liveusb, переустановил систему - бестолку, всё то же самое:

/usr/mydata/10.03.1/include/prereq.mk:12: предупреждение: переопределение способа для цели «prereq»
/usr/mydata/10.03.1/target/linux//Makefile:13: предупреждение: старый способ для цели «prereq» игнорируются
Makefile:158: предупреждение: переопределение способа для цели «clean»
/usr/mydata/10.03.1/target/linux//Makefile:13: предупреждение: старый способ для цели «clean» игнорируются
/bin/bash: . /usr/mydata/10.03.1/include/shell.sh\; eval \"\$2\": Нет такого файла или каталога
/bin/bash: . /usr/mydata/10.03.1/include/shell.sh\; eval \"\$2\": No such file or directory
/bin/bash: . /usr/mydata/10.03.1/include/shell.sh\; eval \"\$2\": No such file or directory
Makefile:162: ошибка выполнения рецепта для цели «info»
make: *** [info] Ошибка 127

rmu ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.