LINUX.ORG.RU

GNU make 4.0

 ,


0

3

Вышел релиз инфраструктуры систем сборки make от GNU.

Из нововведений:

  • Интеграция guile (1.8/2.0+) в качестве встроенного языка расширений
  • Группирование вывода при рекурсивной параллельной сборке (--оutput-sync)
  • Трассировка в виде принудительного вывод инструкций, даже в случае использования @/.SILENT, вывода файла/строки, в котором этот рецепт определен и устаревших зависимостей (--trace).
  • Принудительное отключение всех отладочных опций (--debug n)
  • Сервер задач и .ONESHELL теперь доступны для Windows порта.
  • Для совместимости с BSD - != эквивалент = $(shell ..). Соответственно нарушена совместимость для случая, когда переменная оканчивается на '!', будьте бдительны.
  • POSIX 2012 эквивалент (:=) — (::=)
  • Новая функция $(file ...) для записи в файл
  • Добавление -r/-R в MAKEFLAGS внутри MakeFile приводит к ожидаемому результату, убирая стандартные рецепты.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Последнее исправление: Dendy (всего исправлений: 4)

Ответ на: комментарий от Dendy

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

«Но Make тоже перехвалить сложно» - утилита настолько хороша, что как не хвали, make будет лучше этих похвал.

«возможности языка очень слабые и давно себя изжили,сейчас они явно не решают поставленных задач» - явно негативная часть (то есть make не очень хороша).

За время написания предложения make так изменилась?

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

Какую-то фигню написал, наверно в голове крутилось что-то «Но Make тоже перехваливать не стоит». Хотя кого я обманываю, теперь ясно, что подсознательно я латентный мейкофил.

Dendy ★★★★★
()

Есть make и есть все остальное. И любые qmake, cmake, {x}make - это уже не make, а остальное. Можно сколько угодно бегать от jam до ant и ninja, но фундамент должен быть.

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

в MinGW header'ах win32 API не хватает многих новых API, нет либ типа ATL, подозреваю что доступ к COM интерфейсам очень тонкий. поэтому думаю все и собирают через MSVC проекты заточенные под win32 и юзающие его особенности.

anonymous
()
Ответ на: комментарий от devl547

никогда не понимал смысла make, если его может заменить простой шелл-скрипт.

не может

yvv ★★☆
()

/* в порядке исключения — уж больно событие знаменательное */

Замечательно.

Скачал, поставил.

Наконец-то появился серьёзный повод для продолжения более активного освоения моего любимого Guile, который я в последнее время как-то подзабросил. :)

DeVliegendeHollander ★★
()

Интеграция guile (1.8/2.0+) в качестве встроенного языка расширений

А это как работает? Куда guile'ный код пихать можно/нужно?

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

Хорошая новость. :)

<offtopic>

Немного оффтопом, есть соображения, отчего так сложилось?

1. В винде MSVC — стандарт не только де-факто, но и, можно сказать, де-юре, т.к. от разработчика платформы. Поэтому на него и ориентируются (так же как при разработке под Linux «референсным» тулчейном является GCC).

2. Неприязнь MS к «чужим» стандартам, различия в форматах некоторых типов файлов и лицензионные ограничения не позволяют использовать официальный Windows SDK с GCC и MinGW-овцам приходится пилить свои версии хедеров и всего прочего. Результат — отставание по фичам, запаздывание с поддержкой изменений в API.

3. Отличия в C++ name mangling [очень] сильно осложняют взаимодействие бинарников, собранных MSVC и g++.

4. Из менее критичного можно отметить неоднозначные результаты сравнения генерируемого кода как по скорости, так и по размерам (в моих экспериментах MSVC [почти] всегда выдавал бинарники меньшего размера даже без использования спец. опций).

</offtopic>

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

Используй Clang, он умеет в coff и Microsoft mangling.

anonymous
()
Ответ на: комментарий от Reset

Что интересно, я ни разу не видел в промышленном кроссплатформенном проприетарном коде использования autotools, везде почему-то используется «scons/cmake/прочая_ересь».

Это никак не противоречит универсальности autotools.

Я ответственно заявляю, что для проприетарных поделок cmake -лучший выбор.

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

каких интересно задач не решает cmake?

В какой библиотеке находится функция sendfile()?

Как добавить версии символов в библиотеку (--version-script или -M или никак)?

Интеграция с gnulib.

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

Это никак не противоречит универсальности autotools.

autotools это набор костылей, который жестко интегрирован с gnu toolchain. Шаг влево, шаг вправо и 3.1415здец гарантирован. Если это универсальность, то я английская королева.

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

В какой библиотеке находится функция sendfile()?

CheckFunctionExists

Как добавить версии символов в библиотеку (--version-script или -M или никак)?

set_target_properties

Может стоит man почитать прежде чем лужи газифицировать?

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

Автодетект не нужен. Даешь нормальное описалово тулчейна

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