[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] w32: Build windows and console executables
From: |
TeLeMan |
Subject: |
Re: [Qemu-devel] [PATCH v2] w32: Build windows and console executables |
Date: |
Mon, 26 Dec 2011 10:14:14 +0800 |
On Fri, Dec 23, 2011 at 21:47, Stefan Weil <address@hidden> wrote:
> Am 23.12.2011 03:31, schrieb TeLeMan:
>
>> On Thu, Dec 22, 2011 at 18:20, Stefan Weil <address@hidden> wrote:
>>>
>>> System emulation executables with SDL are typically windows
>>> executables. Sometimes console executables are more useful,
>>> so create both variants if linker option -mwindows was detected.
>>>
>>> v2:
>>> This version uses QEMU_PROGW / QEMU_PROG instead of QEMU_PROG /
>>> QEMU_PROGC.
>>>
>>> Signed-off-by: Stefan Weil <address@hidden>
>>> ---
>>> Makefile.target | 16 +++++++++++++++-
>>> 1 files changed, 15 insertions(+), 1 deletions(-)
>>>
>>> diff --git a/Makefile.target b/Makefile.target
>>> index 3261383..0182e41 100644
>>> --- a/Makefile.target
>>> +++ b/Makefile.target
>>> @@ -27,10 +27,17 @@ ifdef CONFIG_USER_ONLY
>>> QEMU_PROG=qemu-$(TARGET_ARCH2)
>>> else
>>> # system emulator name
>>> +ifneq (,$(findstring -mwindows,$(LIBS)))
>>> +# Terminate program name with a 'w' because the linker builds a windows
>>> executable.
>>> +QEMU_PROGW=qemu-system-$(TARGET_ARCH2)w$(EXESUF)
>>> +endif # windows executable
>>> QEMU_PROG=qemu-system-$(TARGET_ARCH2)$(EXESUF)
>>> endif
>>>
>>> PROGS=$(QEMU_PROG)
>>> +ifdef QEMU_PROGW
>>> +PROGS+=$(QEMU_PROGW)
>>> +endif
>>> STPFILES=
>>>
>>> ifndef CONFIG_HAIKU
>>> @@ -403,9 +410,16 @@ endif # CONFIG_LINUX_USER
>>>
>>> obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o
>>>
>>> +ifdef QEMU_PROGW
>>> +# The linker builds a windows executable. Make also a console
>>> executable.
>>> +$(QEMU_PROGW): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y)
>>> + $(call LINK,$^)
>>> +$(QEMU_PROG): $(QEMU_PROGW)
>>> + $(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW)
>>> $(QEMU_PROG)," GEN $(TARGET_DIR)$(QEMU_PROG)")
>>> +else
>>> $(QEMU_PROG): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y)
>>> $(call LINK,$^)
>>> -
>>> +endif
>>>
>>> gdbstub-xml.c: $(TARGET_XML_FILES) $(SRC_PATH)/scripts/feature_to_c.sh
>>> $(call quiet-command,rm -f $@ && $(SHELL)
>>> $(SRC_PATH)/scripts/feature_to_c.sh $@ $(TARGET_XML_FILES)," GEN
>>> $(TARGET_DIR)$@")
>>> --
>>> 1.7.2.5
>>>
>> Failed to make:
>> Makefile:416: *** multiple target patterns. Stop.
>
>
> It works here (native and cross compilations) with MinGW,
> so I have to guess and need your help.
>
> This is the relevant code from Makefile.target when my patch was applied:
>
> $(QEMU_PROGW): $(obj-y) $(obj-$(TARGET_BASE_ARCH)-y)
> $(call LINK,$^)
> $(QEMU_PROG): $(QEMU_PROGW)
>
> $(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW)
> $(QEMU_PROG)," GEN $(TARGET_DIR)$(QEMU_PROG)")
>
> Line 416 is the 2nd line which was not changed by my patch.
> It contains no target pattern at all.
>
> Or do you have a different line counting caused by local
> modifications or an older version of the QEMU sources?
>
> Does an empty line between 2nd and 3rd line help?
>
> Do you run a native or a cross compilation?
>
> If native: which line endings do you use (CRLF or LF,
> depends on git settings and MinGW mount options)?
> Do you use Cygwin, MinGW or MinGW-w64?
> Which make do you use?
>
> Try to run make in verbose mode (make V=1).
>
> This page describes the error which you got:
> http://www.gnu.org/savannah-checkouts/gnu/make/manual/html_node/Error-Messages.html
I found this problem. After I copied & pasted your patch, the tabs
were converted to spaces.
Thanks for your patience. Now it is working.
> Cheers,
> Stefan Weil
>
>