cygwin 32bit
Se você olhar para o repositório em si, ou seja, em um dos espelhos ( link ), você encontra quatro arquivos relevantes:
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
Existem duas versões, 3.82.90-1 e uma mais antiga, 3.81-2, que são aprox do mesmo tamanho (ordem de grandeza). Os pacotes maiores correspondentes (1MB) são as fontes.
Isso é exatamente o que a ferramenta de configuração do cygwin me oferece.
cygwin 64bit
Aqui, os arquivos oferecidos são ( link ):
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
Isso se ajusta ao seu cenário descrito.
Geralmente, para investigar as diferenças entre essas duas versões, confira o Changelog
no tarball de origem mais recente.
Para elaborar um pouco mais: Normalmente ( o Debian usa um esquema similar ), o o número da versão antes do hífen é o número da versão do pacote original, conforme liberado pelo autor do software (isto é, a equipe GNU make ). O número após o hypen fornece algum tipo de patch, aplicado pelo mantenedor do pacote (ou seja, a equipe cygwin ).
Para provar a make.cygport
nos pacotes de origem (por exemplo, make-3.82-3-src.tar.bz2
)
NAME="make"
VERSION="3.82"
RELEASE=3
As correções aplicadas (por cygwin) são arquivadas em make-3.82-3.src.patch
.
Então, foi decidido incluir uma porta cygwin de make 3.82
e make 3.82.90
na distribuição de 64bit do cygwin. (Por que o GNU make team decidiu que a versão 3.82.90 deveria seguir 3.82 eu realmente não sei ...)
Qual é a diferença entre essas versões (upstream)? NEWS
no tarball de origem original dentro do tarball de origem do cygwin nos diz:
Version 3.82.90
A complete list of bugs fixed in this version is available here: http://sv.gnu.org/bugs/index.php?group=make&report_id=111&fix_release_id=101&set=custom
WARNING: Backward-incompatibility! This version of make adheres to the POSIX backslash/newline handling, introducing the following differences:
- Each backslash/newline in a variable value is replaced with a space;
multiple consecutive backslash/newlines do not condense into one space.- In recipes, a recipe prefix following a backslash-newlines is removed.
New feature: The "job server" capability is now supported on Windows.
Implementation contributed by Troy RunkelNew feature: "!=" shell assignment operator as an alternative to the $(shell ...) function. Implemented for compatibility with BSD makefiles.
WARNING: Backward-incompatibility!
Variables ending in "!" previously defined as "variable!= value" will now be
interpreted as shell assignment. Change your assignment to add whitespace
between the "!" and "=": "variable! = value"New command line option: --trace enables tracing of targets. When enabled
the recipe to be invoked is printed even if it would otherwise be suppressed
by .SILENT or a "@" prefix character. Also before each recipe is run the
makefile name and linenumber where it was defined are shown as well as the
prerequisites that caused the target to be considered out of date.On failure, the makefile name and linenumber of the recipe that failed are
shown.A .RECIPEPREFIX setting is remembered per-recipe and variables expanded
in that recipe also use that recipe prefix setting.In -p output, .RECIPEPREFIX settings are shown and all target-specific
variables are output as if in a makefile, instead of as comments.
Então, provavelmente essa incompatibilidade com versões anteriores é a razão pela qual ambas as versões são fornecidas pelo cygwin.