[U-Boot] [PATCH/next v3 27/28] Add support for building native win32 tools
Peter Tyser
ptyser at xes-inc.com
Wed Apr 15 00:52:30 CEST 2009
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 at 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 at 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
More information about the U-Boot
mailing list