From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39419) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxzxJ-0003jB-Tr for qemu-devel@nongnu.org; Sun, 15 Nov 2015 11:15:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZxzxG-0007RS-Kl for qemu-devel@nongnu.org; Sun, 15 Nov 2015 11:15:05 -0500 Received: from e36.co.us.ibm.com ([32.97.110.154]:33781) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZxzxG-0007Qk-FK for qemu-devel@nongnu.org; Sun, 15 Nov 2015 11:15:02 -0500 Received: from localhost by e36.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sun, 15 Nov 2015 09:14:59 -0700 Received: from b03cxnp08028.gho.boulder.ibm.com (b03cxnp08028.gho.boulder.ibm.com [9.17.130.20]) by d03dlp02.boulder.ibm.com (Postfix) with ESMTP id B50AC3E4003E for ; Sun, 15 Nov 2015 09:14:57 -0700 (MST) Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by b03cxnp08028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id tAFGDSYL66191486 for ; Sun, 15 Nov 2015 09:13:29 -0700 Received: from d03av01.boulder.ibm.com (localhost [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id tAFGEvv4021899 for ; Sun, 15 Nov 2015 09:14:57 -0700 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Roth In-Reply-To: <56483EB0.8080903@weilnetz.de> References: <1441727278-18450-1-git-send-email-mdroth@linux.vnet.ibm.com> <55EFFF1B.2000600@redhat.com> <56483EB0.8080903@weilnetz.de> Message-ID: <20151115161446.7353.29669@loki> Date: Sun, 15 Nov 2015 10:14:46 -0600 Subject: Re: [Qemu-devel] [PATCH] build: qemu-ga: add 'qemu-ga' build target for w32 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Weil , Paolo Bonzini , qemu-devel@nongnu.org Cc: =?utf-8?q?Marc-Andr=C3=A9_Lureau?= Quoting Stefan Weil (2015-11-15 02:13:36) > Am 09.09.2015 um 11:42 schrieb Paolo Bonzini: > > > > On 08/09/2015 17:47, Michael Roth wrote: > >> Currently POSIX builds rely on 'qemu-ga' target to do qga-only > >> distributable build. On w32, as with most standalone binary targets, > >> we rely on 'qemu-ga.exe' target. > >> > >> Unlike with POSIX, qemu-ga for w32 has a number of related targets > >> such as VSS DLL and MSI package. We can do the full distributable > >> qga-only build on w32 with: > >> > >> make qemu-ga.exe > >> > >> or: > >> > >> make msi > >> > >> To make that work, we tie VSS dependencies onto qemu-ga.exe. > >> However, in reality the DLL isn't part of the binary, so we use a > >> filter to pull them out of the LINK recipe, which attempts to link > >> against prereqs for binary targets. Additionally, it could be argued > >> that VSS is a separate distributable, and shouldn't be implied by > >> qemu-ga.exe binary target. > >> > >> To avoid this, we can tie the VSS dependencies only to the 'msi' > >> target, but that would make it impossible to do a qga-only build of > >> the w32 distributable without building the 'msi' package, which was > >> supported in the past. > >> > >> An alternative approach is to add a new target to build the whole > >> distributable. w32 allows us to use the same build target we use > >> on POSIX, 'qemu-ga', since the current binary-only target on w32 > >> is 'qemu-ga.exe'. > >> > >> To further simplify the build, we also make 'qemu-ga' build the MSI > >> package if the appropriate ./configure options are set, making the > >> full qga-only build the same on both POSIX and w32: `make qemu-ga` > >> > >> Cc: Paolo Bonzini > >> Cc: Marc-Andr=C3=A9 Lureau > >> Signed-off-by: Michael Roth > >> --- > >> Makefile | 14 ++++++++------ > >> configure | 2 +- > >> 2 files changed, 9 insertions(+), 7 deletions(-) > >> > >> diff --git a/Makefile b/Makefile > >> index 9ce3972..7efca5e 100644 > >> --- a/Makefile > >> +++ b/Makefile > >> @@ -290,18 +290,15 @@ $(qapi-modules) $(SRC_PATH)/scripts/qapi-command= s.py $(qapi-py) > >> QGALIB_GEN=3D$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qa= pi-visit.h qga-qmp-commands.h) > >> $(qga-obj-y) qemu-ga.o: $(QGALIB_GEN) > >> = > >> -# we require QGA_VSS_PROVIDER files to be built alongside qemu-ga > >> -# executable since they are shipped together, but we don't want to ac= tually > >> -# link against them > >> -qemu-ga$(EXESUF): $(qga-obj-y) libqemuutil.a libqemustub.a $(QGA_VSS_= PROVIDER) > >> - $(call LINK, $(filter-out $(QGA_VSS_PROVIDER), $^)) > >> +qemu-ga$(EXESUF): $(qga-obj-y) libqemuutil.a libqemustub.a > >> + $(call LINK, $^) > >> = > >> ifdef QEMU_GA_MSI_ENABLED > >> QEMU_GA_MSI=3Dqemu-ga-$(ARCH).msi > >> = > >> msi: $(QEMU_GA_MSI) > >> = > >> -$(QEMU_GA_MSI): qemu-ga.exe > >> +$(QEMU_GA_MSI): qemu-ga.exe $(QGA_VSS_PROVIDER) > >> = > >> $(QEMU_GA_MSI): config-host.mak > >> = > >> @@ -313,6 +310,11 @@ msi: > >> @echo "MSI build not configured or dependency resolution failed (= reconfigure with --enable-guest-agent-msi option)" > >> endif > >> = > >> +ifneq ($(EXESUF),) > >> +.PHONY: qemu-ga > >> +qemu-ga: qemu-ga$(EXESUF) $(QGA_VSS_PROVIDER) $(QEMU_GA_MSI) > >> +endif > >> + > >> clean: > >> # avoid old build problems by removing potentially incorrect old files > >> rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-= arm.h gen-op-arm.h > >> diff --git a/configure b/configure > >> index d854936..fc34443 100755 > >> --- a/configure > >> +++ b/configure > >> @@ -4350,7 +4350,7 @@ fi > >> = > >> if [ "$guest_agent" !=3D "no" ]; then > >> if [ "$linux" =3D "yes" -o "$bsd" =3D "yes" -o "$solaris" =3D "yes"= -o "$mingw32" =3D "yes" ] ; then > >> - tools=3D"qemu-ga\$(EXESUF) $tools" > >> + tools=3D"qemu-ga $tools" > >> guest_agent=3Dyes > >> elif [ "$guest_agent" !=3D yes ]; then > >> guest_agent=3Dno > >> > > Looks good, thanks! > > > > Paolo > = > Looks good, but introduced a regression for cross builds: > 'make install' now fails with an error: > = > install: cannot stat 'qemu-ga': No such file or directory > = > Reverting the change in configure fixes this. Thanks for the catch. Just sent a proposed fix: "[PATCH for-2.5] makefile: fix w32 install target for qemu-ga" > = > Stefan >=20