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

Reply via email to