I tried your forked MXE-multi and it seems to work quite nicely.
Here are several comments I could gather.
- When I updated your upstream repository, merged it with internal
packages from mxe, I had an update mess, that could be related to
the gmp.mk/gcc-gmp.mk trick. When I was building gcc, pkg/gmp-5.0.4
was already donwloaded, version was (index.html) 5.0.5, mxe was not
downloading 5.0.5, but then it was complaining 5.0.5 was not
there... Solved it don't know how, by forcing download of 5.0.5
- I think the build log got pretty ugly with the "[build] gcc
i686-static-mingw32" string as replacement of simple "[build] gcc".
What do you think of a log such as :
*** target i686-static-mingw32
*** target i686-dynamic-mingw32
instead of :
[build] package1 i686-static-mingw32
[done] package1 i686-static-mingw32
[build] package2 i686-static-mingw32
[done] package2 i686-static-mingw32
[build] package1 i686-dynamic-mingw32
- About logs. It gets a bit longer to write the command line
"log/gcc_i686-static_mingw32" each time we want to review it (2
more keys pressed, time to analyse what we want between different
targets ...). What about writing logs to for example
"log/i686-pc-mingw32-20120520_002035/package" and make a link
"log/package -> log/i686-pc-mingw32-20120520_002035/package",
instead of what is done actually
"log/20120520_002035/package_i686-pc-mingw32" and a link
log/20120520_002035/package_i686-pc-mingw32" ? This would only
show last built file, and it is very likely that only one target
is built at a time, so no big confusions...
- the settings.mk file is perfect to configure the target. I
would add a comment in the Makefile, refering to the settings.mk
file. And I would add a line such as this one in the settings.mk
# TARGET =
- And last but least, why do you wait to integrate it in mxe ?
Make mxe worth its 'M' ! If you are afraid of compatibility
problems, why not add a target "i686-pc-mingw32", that makes the
same as i686-static-mingw32?
Using the settings.mk capabilities, I would put only the
"i686-pc-mingw32" target in the main Makefile, not the other ones
by default, and put in the settings.mk file the commented line :
#TARET = i686-static-mingw32 i686-dynamic-mingw32 x86_64-static-mingw32
- Finally, I would modify target "i686-static-mingw32" to be used
with mingw-w64 32 bits targets (which is the future), and keep
"i686-pc-mingw32" for mingw.org, thus making something compatible
for the transition, and with a framework suitable for the future,
without mingw.org ?