diff mbox

build-sys: simplify Makefile.target a bit, use just one rule for softmmu

Message ID 1398668583-5464-1-git-send-email-mjt@msgid.tls.msk.ru
State New
Headers show

Commit Message

Michael Tokarev April 28, 2014, 7:03 a.m. UTC
On win*, we build QEMU_PROGW (GUI) and create a console app QEMU_PROG
from it, while on non-win*, we make only QEMU_PROG using the same
rules as used for QEMU_PROGW on win*.  Make just one rule for building
main executable, and an additional rule for win* to make console app
from it.  Also consolidate tests for $(QEMU_PROGW).

Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
---
 Makefile.target |   25 ++++++++++---------------
 1 file changed, 10 insertions(+), 15 deletions(-)

Comments

Paolo Bonzini April 29, 2014, 4:31 p.m. UTC | #1
Il 28/04/2014 09:03, Michael Tokarev ha scritto:
> On win*, we build QEMU_PROGW (GUI) and create a console app QEMU_PROG
> from it, while on non-win*, we make only QEMU_PROG using the same
> rules as used for QEMU_PROGW on win*.  Make just one rule for building
> main executable, and an additional rule for win* to make console app
> from it.  Also consolidate tests for $(QEMU_PROGW).
>
> Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
> ---
>  Makefile.target |   25 ++++++++++---------------
>  1 file changed, 10 insertions(+), 15 deletions(-)
>
> diff --git a/Makefile.target b/Makefile.target
> index ba12340..fb78a2e 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -18,17 +18,19 @@ ifdef CONFIG_USER_ONLY
>  QEMU_PROG=qemu-$(TARGET_NAME)
>  else
>  # system emulator name
> +QEMU_PROG=qemu-system-$(TARGET_NAME)$(EXESUF)
>  ifneq (,$(findstring -mwindows,$(libs_softmmu)))
>  # Terminate program name with a 'w' because the linker builds a windows executable.
>  QEMU_PROGW=qemu-system-$(TARGET_NAME)w$(EXESUF)
> -endif # windows executable
> -QEMU_PROG=qemu-system-$(TARGET_NAME)$(EXESUF)
> +$(QEMU_PROG): $(QEMU_PROGW)
> +	$(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG),"  GEN   $(TARGET_DIR)$(QEMU_PROG)")
> +QEMU_PROG_BUILD = $(QEMU_PROGW)
> +else
> +QEMU_PROG_BUILD = $(QEMU_PROG)
>  endif
> -
> -PROGS=$(QEMU_PROG)
> -ifdef QEMU_PROGW
> -PROGS+=$(QEMU_PROGW)
>  endif
> +
> +PROGS=$(QEMU_PROG) $(QEMU_PROGW)
>  STPFILES=
>
>  config-target.h: config-target.h-timestamp
> @@ -162,16 +164,9 @@ ifndef CONFIG_HAIKU
>  LIBS+=-lm
>  endif
>
> -ifdef QEMU_PROGW
> -# The linker builds a windows executable. Make also a console executable.
> -$(QEMU_PROGW): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
> -	$(call LINK,$^)
> -$(QEMU_PROG): $(QEMU_PROGW)
> -	$(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG),"  GEN   $(TARGET_DIR)$(QEMU_PROG)")
> -else
> -$(QEMU_PROG): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
> +# build either PROG or PROGW
> +$(QEMU_PROG_BUILD): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
>  	$(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)$@")
>

Good idea, I'll take care of this patch.

Paolo
diff mbox

Patch

diff --git a/Makefile.target b/Makefile.target
index ba12340..fb78a2e 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -18,17 +18,19 @@  ifdef CONFIG_USER_ONLY
 QEMU_PROG=qemu-$(TARGET_NAME)
 else
 # system emulator name
+QEMU_PROG=qemu-system-$(TARGET_NAME)$(EXESUF)
 ifneq (,$(findstring -mwindows,$(libs_softmmu)))
 # Terminate program name with a 'w' because the linker builds a windows executable.
 QEMU_PROGW=qemu-system-$(TARGET_NAME)w$(EXESUF)
-endif # windows executable
-QEMU_PROG=qemu-system-$(TARGET_NAME)$(EXESUF)
+$(QEMU_PROG): $(QEMU_PROGW)
+	$(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG),"  GEN   $(TARGET_DIR)$(QEMU_PROG)")
+QEMU_PROG_BUILD = $(QEMU_PROGW)
+else
+QEMU_PROG_BUILD = $(QEMU_PROG)
 endif
-
-PROGS=$(QEMU_PROG)
-ifdef QEMU_PROGW
-PROGS+=$(QEMU_PROGW)
 endif
+
+PROGS=$(QEMU_PROG) $(QEMU_PROGW)
 STPFILES=
 
 config-target.h: config-target.h-timestamp
@@ -162,16 +164,9 @@  ifndef CONFIG_HAIKU
 LIBS+=-lm
 endif
 
-ifdef QEMU_PROGW
-# The linker builds a windows executable. Make also a console executable.
-$(QEMU_PROGW): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
-	$(call LINK,$^)
-$(QEMU_PROG): $(QEMU_PROGW)
-	$(call quiet-command,$(OBJCOPY) --subsystem console $(QEMU_PROGW) $(QEMU_PROG),"  GEN   $(TARGET_DIR)$(QEMU_PROG)")
-else
-$(QEMU_PROG): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
+# build either PROG or PROGW
+$(QEMU_PROG_BUILD): $(all-obj-y) ../libqemuutil.a ../libqemustub.a
 	$(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)$@")