I'd prefer that Danny review this but neither of us has the right to
approve this patch.
Well, then, who has the right to approve such a patch?
However, it seems like you're adding extra stuff to the Makefile where
it is already trying to do the right thing if $(LN) fails. Couldn't LN
just be declared as "cp" for mingw or, alternatively, couldn't it be
defined as some failing command so that the cp in the failing condition
would be invoked?
Well, perhaps I wasn't clear enough on what is the problem:
- case "$<" in \
- ./*) ;; \
- ../*) \
- echo $(LN) $< as$(exeext); \
- $(LN) $< as$(exeext) || cp $< as$(exeext) ;; \
- *) echo '#!$(SHELL)' > as; echo 'exec $< "$$@"' >> as ; \
- chmod +x as ;; \
+ case "$(build)" in \
+ *mingw32*) \
+ cp $< as$(exeext) ;; \
+ *) \
+ case "$<" in \
+ ./*) ;; \
+ ../*) \
+ echo $(LN) $< as$(exeext); \
+ $(LN) $< as$(exeext) || cp $< as$(exeext) ;; \
+ *) echo '#!$(SHELL)' > as; echo 'exec $< "$$@"' >> as ; \
+ chmod +x as ;; \
+ esac \
The cases with ./*) and ../*) already well handled, and just kept "as
is" when $(build) is mingw32. The $(LN) command succeeds, that's not the
problem.
Only the remaining case, which creates a shell script, fails on mingw32.
The shell script is spawned to call the assembler, which fails. Only
real win32 executables can be spawned.
FX