Cygwin 32bit
Если вы посмотрите на само хранилище, то есть на одно из зеркал (http://mirror.switch.ch/ftp/mirror/cygwin/x86/release/make/), вы найдете четыре соответствующих файла:
make-3.81-2-src.tar.bz2 09-Feb-2008 20:50 1.1M
make-3.81-2.tar.bz2 09-Feb-2008 20:50 350K
make-3.82.90-1-src.tar.bz2 02-Dec-2011 18:05 1.3M
make-3.82.90-1.tar.bz2 02-Dec-2011 18:05 442K
Есть две версии, 3.82.90-1 и более старая 3.81-2, которые имеют примерно одинаковый размер (порядок величины). Соответствующие большие пакеты (1 МБ) являются источниками.
Это именно то, что мне предлагает инструмент установки cygwin .
Cygwin 64bit
Здесь предлагаются следующие файлы (http://mirror.switch.ch/ftp/mirror/cygwin/x86_64/release/make/):
make-3.82-3-src.tar.bz2 14-Mar-2013 11:26 1.6M
make-3.82-3.tar.bz2 14-Mar-2013 11:26 473K
make-3.82.90-1-src.tar.bz2 30-Mar-2013 12:12 1.9M
make-3.82.90-1.tar.bz2 30-Mar-2013 12:12 1.2M
Это соответствует вашему описанному сценарию.
В общем, чтобы исследовать различия между этими двумя версиями, посмотрите Changelog
в новейшем архиве исходных текстов.
Чтобы уточнить немного: Обычно (Debian использует аналогичную схему), номер версии перед дефисом - это номер версии исходного пакета, который был выпущен автором программного обеспечения (то есть командой разработчиков GNU). Число после гипса дает какой-то уровень исправления , применяемый сопровождающим пакета (то есть командой cygwin).
Чтобы доказать, посмотрите на make.cygport
в пакетах с исходным кодом (например, make-3.82-3-src.tar.bz2
)
NAME="make"
VERSION="3.82"
RELEASE=3
Примененные патчи (от cygwin) хранятся в make-3.82-3.src.patch
.
Итак, было решено включить порт cygwin make 3.82
и make 3.82.90
в 64-битный дистрибутив cygwin. (Почему команда GNU make решила, что версия 3.82.90 должна следовать за 3.82, я действительно не знаю ...)
В чем разница между этими версиями? NEWS
в архиве исходного кода внутри архива Cygwin Source говорят нам:
Версия 3.82.90
Полный список ошибок, исправленных в этой версии, доступен здесь: http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=101&set=custom
ВНИМАНИЕ: Обратная несовместимость! Эта версия make придерживается обработки обратной косой черты / новой строки в POSIX, внося следующие различия:
- Каждая обратная косая черта / новая строка в значении переменной заменяется пробелом;
несколько последовательных обратных косых черт / новых строк не сгущаются в один пробел.
- В рецептах префикс рецепта, следующий за обратной косой чертой, удаляется.
Новая функция: возможность "сервера заданий" теперь поддерживается в Windows.
Реализация предоставлена Troy Runkel
Новая функция: "!= "оператор присваивания оболочки как альтернатива функции $(shell ...). Реализовано для совместимости с make-файлами BSD.
ВНИМАНИЕ: Обратная несовместимость!
Переменные, оканчивающиеся на "!"ранее определенная как" переменная!= значение "теперь будет
интерпретируется как назначение оболочки. Измените свое назначение, чтобы добавить пробел
между "!переменная "and" = ":"! = значение "
Новая опция командной строки: --trace включает отслеживание целей. Когда включено
рецепт, который должен быть вызван, печатается, даже если он был бы подавлен
от .SILENT или префикс "@". Также перед каждым рецептом запускайте
имя make-файла и номер белья, где он был определен, а также
предпосылки, которые заставили цель считаться устаревшей.
В случае неудачи имя make-файла и номер белья рецепта, который не удался
показано на рисунке.
А.Параметр RECIPEPREFIX запоминается для каждого рецепта, а переменные расширяются
в этом рецепте также используйте эту настройку рецепта префикса.
В -p-выходе.Установки RECIPEPREFIX отображаются и все для конкретных целей
переменные выводятся как в make-файле, а не как комментарии.
Так что, вероятно, эта обратная несовместимость является причиной того, что обе версии предоставлены Cygwin.