Re: [PATCH] Makefile: fix compilation of test programs under MinGW environment
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 27, 2010, 22:15 UTC
- Message-ID
- <7vmxyupbpa.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <7vy6ietlf7.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 18 quoted lines
> Michael Lukashov <michael.lukashov@gmail.com> writes: > >> Commit 225f78c8 (Merge branch 'master' of git://repo.or.cz/alt-git >> into jn/autodep, 2010-01-26) changed Makefile in such a way that >> the following error occurs when trying to compile Git under MinGW environment: >> >> make: *** No rule to make target `test-chmtime', needed by `all'. Stop. >> >> Under Linux it seems there's no difference between two variants. > >> -TEST_PROGRAMS := $(patsubst %,%$X,$(TEST_PROGRAMS_NEED_X)) >> +TEST_PROGRAMS = $(patsubst %,%$X,$(TEST_PROGRAMS_NEED_X)) > > If the difference were on the RHS of this definition, which does involve > $X that is different between the two platforms, I would understand, but > your patch looks like it is addressing difference between := vs =, and > that is more like a difference of other parts of the Makefile than > difference between Linux and mingw compilation environment.
Ok, I think I know what happend.
We used to have the definition of TEST_PROGRAMS way later than where we currently have it, and it was for a reason. X is to be defined to be .exe in the platform specific section for MinGW (and probably Cygwin as well).
But because the definition of TEST_PROGRAMS was moved way up, it needs to be recursively expanded.
TEST_OBJS also uses $X in simple expansion (i.e. sets with := not with =), so I expect that it has the same issue. Can you check and verify?