From 00f612f8d25c524237798dd5459960e4fd53ed4f Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 1 Jan 1970 00:00:00 +0000 Subject: [PATCH] Include required libraries in the Windows installer. * wininstaller.nsis: Include *.dll files. --- ChangeLog | 3 +++ README | 16 ++++++++++++++++ wininstaller.nsis | 25 ++++++++++++++++++------- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index afaf521..8683d58 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2008-01-07 Richard Jones + Include required libraries in the Windows installer. + * wininstaller.nsis: Include *.dll files. + Windows installer. * Makefile.in, configure.ac: Add --with-nsis[=path/to/nsis] and call out to 'makensis.exe'. diff --git a/README b/README index 3bcaa7e..02be231 100755 --- a/README +++ b/README @@ -92,6 +92,22 @@ I have built libvirt (the bindings), examples, mlvirsh and mlvirtmanager on Windows using the MinGW port of OCaml. It's quite likely that it will also work under VC++, but I have not tested this. +You should make sure that your $PATH (environment variable) contains +the names of the directories containing all required DLLs, in +particular you will require: + + libvirt-*.dll (from libvirt) + libgnutls-*.dll (from GnuTLS) + libgcrypt-*.dll + libgpg-error-*.dll + libtasn1-*.dll + libxdr.dll (from libxdr) + libxml2-*.dll (from libxml2) + and, a multitude of DLLs from GTK if you want to run mlvirtmanager + +You can use a tool such as Dependency Walker to find/check the +locations of dependent libraries. + To build the Windows installer, you will need NSIS. Then do: ./configure --with-nsis=/c/Progra~1/NSIS diff --git a/wininstaller.nsis b/wininstaller.nsis index e3c8fd9..0ffba5c 100755 --- a/wininstaller.nsis +++ b/wininstaller.nsis @@ -57,13 +57,20 @@ ComponentText "This will install OCaml libvirt bindings, dependent libraries and # Title for the install directory page. DirText "Please select the installation folder." -# Installer section. -Section "OCaml Libvirt bindings (required)" +# Installer sections. +Section "Libvirt and its libraries (required)" + # Make this required. SectionIn RO -SectionEnd -Section "Libraries (required)" - SectionIn RO + SetOutPath $INSTDIR + # XXX Get these paths automatically. + File "c:\msys\1.0\local\bin\libvirt-?.dll" + File "c:\msys\1.0\local\bin\libxdr.dll" + File "c:\msys\1.0\local\bin\libxml2-?.dll" + File "c:\gnutls\bin\libgcrypt-??.dll" + File "c:\gnutls\bin\libgnutls-??.dll" + File "c:\gnutls\bin\libgpg-error-?.dll" + File "c:\gnutls\bin\libtasn1-?.dll" SectionEnd Section "Programs (recommended)" @@ -71,6 +78,10 @@ Section "Programs (recommended)" File "/oname=mlvirsh.exe" "mlvirsh\mlvirsh.opt" SectionEnd +Section "OCaml Libvirt bindings (for developers only)" + # XXX Need to find out where Objective CAML is installed. +SectionEnd + Section "Start Menu Shortcuts" CreateDirectory "$SMPROGRAMS\${PACKAGE}" CreateShortCut "$SMPROGRAMS\${PACKAGE}\Uninstall.lnk" "$INSTDIR\Uninstall ${PACKAGE}.exe" "" "$INSTDIR\Uninstall ${PACKAGE}.exe" 0 @@ -91,8 +102,8 @@ Section "Uninstall" RMDir "$SMPROGRAMS\${PACKAGE}" # Files in installation directory. - Delete /rebootok "$INSTDIR\mlvirsh.exe" - Delete /rebootok "$INSTDIR\Uninstall ${PACKAGE}.exe" + Delete /rebootok "$INSTDIR\*.exe" + Delete /rebootok "$INSTDIR\*.dll" RMDir "$INSTDIR" SectionEnd -- 1.8.3.1