
Hi Wolfgang,
On Sat, 2009-04-04 at 01:20 +0200, Wolfgang Denk wrote:
Dear Peter Tyser,
In message 1236988492-21295-28-git-send-email-ptyser@xes-inc.com you wrote:
Add support for compiling the host tools in the tools directory using the MinGW toolchain. This produces executables which can be used on standard Windows computers without requiring cygwin.
One must specify the MinGW compiler and strip utilities as if they were the host toolchain in order to build win32 executables, eg:
make HOSTCC=i586-mingw32msvc-gcc HOSTSTRIP=i586-mingw32msvc-strip tools
Signed-off-by: Peter Tyser ptyser@xes-inc.com
README | 10 ++++++ include/image.h | 2 + include/libfdt_env.h | 12 +++++++ tools/Makefile | 23 ++++++++++---- tools/mingw_support.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ tools/mingw_support.h | 51 +++++++++++++++++++++++++++++++ tools/mkimage.h | 5 +++ tools/os_support.c | 24 +++++++++++++++ tools/os_support.h | 29 ++++++++++++++++++ tools/ubsha1.c | 3 ++ 10 files changed, 231 insertions(+), 7 deletions(-) create mode 100644 tools/mingw_support.c create mode 100644 tools/mingw_support.h create mode 100644 tools/os_support.c create mode 100644 tools/os_support.h
I'm not happy about this os_support thingy, especially since it will always be compiled, even if not needed in 99.99% of the cases. Maybe you have a better idea and can send a cleanup-patch?
The 2 options that come to mind are: 1. Keep the current method of unconditionally compiling os_support.c, which will in turn include any os-specific files.
2. Move the logic of determining which os-specific files are compiled into the Makefile. Something like:
ifneq (,$(findstring WIN32 ,$(shell $(HOSTCC) -E -dM -xc /dev/null))) SFX = .exe +OS_SUPPORT_FILES = mingw_support.c else SFX = +OS_SUPPORT_FILES = endif
and then replace references of "os_support.c" with "$(OS_SUPPORT_FILES). (Or something along those lines).
#1 is ugly in that 99.99% of the time an empty os_support.c file is processed.
#2 is ugly in that the Makefile method to determine a target OS is somewhat hokey and will only get hokier if/when additional OS targets are supported.
I'd vote for #1 as I think the wasted time of processing os_support.c is a drop in the bucket and it seems a bit cleaner than hacking up the Makefile.
If others have any clever ideas let me know.
Best, Peter