build: qemu-ga: fix VSS dependencies
Currently VSS dll/tlb files for use in w32 builds are only built as a result of having been added to the general 'tools' target alongside qemu-ga. This is fine for default make target, but if we build qemu-ga directly via `make qemu-ga.exe`, the VSS files are not created. Fix this by moving the VSS dependencies to qemu-ga.exe directly. With this move we can move the VSS files back out of 'tools', and drop the extra handling from MSI target in Makefile. Now we can build qemu-ga MSI package with: ./configure ... make qemu-ga.exe make msi or simply: ./configure ... make msi and no longer need to do a full build beforehand. Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
		
							parent
							
								
									1a34904e5b
								
							
						
					
					
						commit
						f33ca81f13
					
				
							
								
								
									
										11
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										11
									
								
								Makefile
								
								
								
								
							| 
						 | 
				
			
			@ -290,8 +290,11 @@ $(qapi-modules) $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
 | 
			
		|||
QGALIB_GEN=$(addprefix qga/qapi-generated/, qga-qapi-types.h qga-qapi-visit.h qga-qmp-commands.h)
 | 
			
		||||
$(qga-obj-y) qemu-ga.o: $(QGALIB_GEN)
 | 
			
		||||
 | 
			
		||||
qemu-ga$(EXESUF): $(qga-obj-y) libqemuutil.a libqemustub.a
 | 
			
		||||
	$(call LINK, $^)
 | 
			
		||||
# we require QGA_VSS_PROVIDER files to be built alongside qemu-ga
 | 
			
		||||
# executable since they are shipped together, but we don't want to actually
 | 
			
		||||
# link against them
 | 
			
		||||
qemu-ga$(EXESUF): $(qga-obj-y) libqemuutil.a libqemustub.a $(QGA_VSS_PROVIDER)
 | 
			
		||||
	$(call LINK, $(filter-out $(QGA_VSS_PROVIDER), $^))
 | 
			
		||||
 | 
			
		||||
ifdef QEMU_GA_MSI_ENABLED
 | 
			
		||||
QEMU_GA_MSI=qemu-ga-$(ARCH).msi
 | 
			
		||||
| 
						 | 
				
			
			@ -300,10 +303,6 @@ msi: $(QEMU_GA_MSI)
 | 
			
		|||
 | 
			
		||||
$(QEMU_GA_MSI): qemu-ga.exe
 | 
			
		||||
 | 
			
		||||
ifdef QEMU_GA_MSI_WITH_VSS
 | 
			
		||||
$(QEMU_GA_MSI): qga/vss-win32/qga-vss.dll
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
$(QEMU_GA_MSI): config-host.mak
 | 
			
		||||
 | 
			
		||||
$(QEMU_GA_MSI):  $(SRC_PATH)/qga/installer/qemu-ga.wxs
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3851,6 +3851,7 @@ EOF
 | 
			
		|||
    guest_agent_with_vss="yes"
 | 
			
		||||
    QEMU_CFLAGS="$QEMU_CFLAGS $vss_win32_include"
 | 
			
		||||
    libs_qga="-lole32 -loleaut32 -lshlwapi -luuid -lstdc++ -Wl,--enable-stdcall-fixup $libs_qga"
 | 
			
		||||
    qga_vss_provider="qga/vss-win32/qga-vss.dll qga/vss-win32/qga-vss.tlb"
 | 
			
		||||
  else
 | 
			
		||||
    if test "$vss_win32_sdk" != "" ; then
 | 
			
		||||
      echo "ERROR: Please download and install Microsoft VSS SDK:"
 | 
			
		||||
| 
						 | 
				
			
			@ -4350,9 +4351,6 @@ fi
 | 
			
		|||
if [ "$guest_agent" != "no" ]; then
 | 
			
		||||
  if [ "$linux" = "yes" -o "$bsd" = "yes" -o "$solaris" = "yes" -o "$mingw32" = "yes" ] ; then
 | 
			
		||||
      tools="qemu-ga\$(EXESUF) $tools"
 | 
			
		||||
      if [ "$mingw32" = "yes" -a "$guest_agent_with_vss" = "yes" ]; then
 | 
			
		||||
        tools="qga/vss-win32/qga-vss.dll qga/vss-win32/qga-vss.tlb $tools"
 | 
			
		||||
      fi
 | 
			
		||||
      guest_agent=yes
 | 
			
		||||
  elif [ "$guest_agent" != yes ]; then
 | 
			
		||||
      guest_agent=no
 | 
			
		||||
| 
						 | 
				
			
			@ -4660,6 +4658,7 @@ if test "$mingw32" = "yes" ; then
 | 
			
		|||
  echo "CONFIG_PRODUCTVERSION=$version_major,$version_minor,$version_subminor,$version_micro" >> $config_host_mak
 | 
			
		||||
  if test "$guest_agent_with_vss" = "yes" ; then
 | 
			
		||||
    echo "CONFIG_QGA_VSS=y" >> $config_host_mak
 | 
			
		||||
    echo "QGA_VSS_PROVIDER=$qga_vss_provider" >> $config_host_mak
 | 
			
		||||
    echo "WIN_SDK=\"$win_sdk\"" >> $config_host_mak
 | 
			
		||||
  fi
 | 
			
		||||
  if test "$guest_agent_ntddscsi" = "yes" ; then
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue