diff options
author | Peter Tyser <ptyser@xes-inc.com> | 2009-03-13 18:54:51 -0500 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2009-04-04 01:21:02 +0200 |
commit | 2f8d396b9302eddcd8d552648e101a46b7a80acd (patch) | |
tree | 958ab8a28bbb8204d463c20591cc5d9f65c3ea6a /tools/Makefile | |
parent | e50abf662efbf4ce0e731062c8d3c8ec54763ae2 (diff) |
Add support for building native win32 tools
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>
Diffstat (limited to 'tools/Makefile')
-rw-r--r-- | tools/Makefile | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/tools/Makefile b/tools/Makefile index 9fe5b1a0f9..122e5bb7bb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -46,12 +46,15 @@ else HOST_CFLAGS += -pedantic endif +ifeq ($(HOSTOS),cygwin) +HOST_CFLAGS += -ansi +endif + # -# Cygwin needs .exe files :-( +# toolchains targeting win32 generate .exe files # -ifeq ($(HOSTOS),cygwin) +ifneq (,$(findstring WIN32 ,$(shell $(HOSTCC) -E -dM -xc /dev/null))) SFX = .exe -HOST_CFLAGS += -ansi else SFX = endif @@ -90,6 +93,7 @@ OBJ_FILES-$(CONFIG_LCD_LOGO) += bmp_logo.o OBJ_FILES-$(CONFIG_VIDEO_LOGO) += bmp_logo.o OBJ_FILES-$(CONFIG_INCA_IP) += inca-swap-bytes.o OBJ_FILES-$(CONFIG_NETCONSOLE) += ncb.o +OBJ_FILES-y += os_support.o # Don't build by default #ifeq ($(ARCH),ppc) @@ -125,13 +129,15 @@ LIBFDT_OBJS := $(addprefix $(obj),$(LIBFDT_OBJ_FILES-y)) # # Use native tools and options +# Define __KERNEL_STRICT_NAMES to prevent typedef overlaps # CPPFLAGS = -idirafter $(SRCTREE)/include \ -idirafter $(OBJTREE)/include2 \ -idirafter $(OBJTREE)/include \ -I $(SRCTREE)/libfdt \ -I $(SRCTREE)/tools \ - -DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC + -DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC \ + -D__KERNEL_STRICT_NAMES CFLAGS = $(HOST_CFLAGS) $(CPPFLAGS) -O # No -pedantic switch to avoid libfdt compilation warnings @@ -147,7 +153,7 @@ all: $(obj).depend $(BINS) $(LOGO-y) subdirs $(obj)envcrc$(SFX): $(obj)envcrc.o $(obj)crc32.o $(obj)env_embedded.o $(obj)sha1.o $(CC) $(CFLAGS) -o $@ $^ -$(obj)ubsha1$(SFX): $(obj)ubsha1.o $(obj)sha1.o +$(obj)ubsha1$(SFX): $(obj)ubsha1.o $(obj)sha1.o $(obj)os_support.o $(CC) $(CFLAGS) -o $@ $^ $(obj)img2srec$(SFX): $(obj)img2srec.o @@ -155,7 +161,7 @@ $(obj)img2srec$(SFX): $(obj)img2srec.o $(STRIP) $@ $(obj)mkimage$(SFX): $(obj)mkimage.o $(obj)crc32.o $(obj)image.o $(obj)md5.o \ - $(obj)sha1.o $(LIBFDT_OBJS) + $(obj)sha1.o $(LIBFDT_OBJS) $(obj)os_support.o $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(STRIP) $@ @@ -183,13 +189,16 @@ $(obj)bin2header$(SFX): $(obj)bin2header.o $(CC) $(CFLAGS) $(HOST_LDFLAGS) -o $@ $^ $(STRIP) $@ -# image.c and mkimage.c require FIT_CFLAGS instead of standard CFLAGS +# Some files complain if compiled with -pedantic, use FIT_CFLAGS $(obj)image.o: $(SRCTREE)/tools/image.c $(CC) -g $(FIT_CFLAGS) -c -o $@ $< $(obj)mkimage.o: $(SRCTREE)/tools/mkimage.c $(CC) -g $(FIT_CFLAGS) -c -o $@ $< +$(obj)os_support.o: $(SRCTREE)/tools/os_support.c + $(CC) -g $(FIT_CFLAGS) -c -o $@ $< + # Some of the tool objects need to be accessed from outside the tools directory $(obj)%.o: $(SRCTREE)/common/%.c $(CC) -g $(FIT_CFLAGS) -c -o $@ $< |