This commit is a POC on how to build the installer from the command line. One could issue the following commands to build the binaries, driver and installer.
./boot.sh;./configure CC=./build-aux/cccl LD="`which link`" LIBS="-lws2_32" \ --prefix="C:/openvswitch/usr" --localstatedir="C:/openvswitch/var" \ --sysconfdir="C:/openvswitch/etc" \ --with-pthread="C:/pthread/" --with-vstudioddk="Win8.1Release"; \ make clean && make && make installer Signed-off-by: Alin Gabriel Serdean <aserd...@cloudbasesolutions.com> Co-authored-by: Nithin Raju <nit...@vmware.com> --- v3: Fix pthread libraries v2: Respin Makefile.am | 20 ++++++++++++++++++ datapath-windows/ovsext.sln | 50 ++++++++++++++++++++++----------------------- m4/openvswitch.m4 | 8 ++++---- 3 files changed, 49 insertions(+), 29 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8bc431b..9a2ffd6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -354,6 +354,25 @@ if LINUX_ENABLED cd datapath/linux && $(MAKE) modules_install endif +if WIN32 +PTHREAD_TEMP_DIR=`echo "$(PTHREAD_LDFLAGS)" | sed 's|^.\(.*\).$:\1||'` +installer: $(BUILT_SOURCES) $(ovsext_make) + cp -f $(top_srcdir)/datapath-windows/misc/OVS.psm1 windows/ovs-windows-installer/Services/OVS.psm1 + cp -f $(top_srcdir)/vswitchd/vswitch.ovsschema windows/ovs-windows-installer/Services/vswitch.ovsschema + cp -f $(top_srcdir)/vswitchd/ovs-vswitchd.exe windows/ovs-windows-installer/Services/ovs-vswitchd.exe + cp -f $(top_srcdir)/ovsdb/ovsdb-server.exe windows/ovs-windows-installer/Services/ovsdb-server.exe + cp -f $(top_srcdir)/datapath-windows/x64/$(VSTUDIO_CONFIG)/package/ovsext.cat windows/ovs-windows-installer/Driver/ovsext.cat + cp -f $(top_srcdir)/datapath-windows/x64/$(VSTUDIO_CONFIG)/package/ovsext.inf windows/ovs-windows-installer/Driver/ovsext.inf + cp -f $(top_srcdir)/datapath-windows/x64/$(VSTUDIO_CONFIG)/package/OVSExt.sys windows/ovs-windows-installer/Driver/OVSExt.sys + cp -f $(top_srcdir)/utilities/*.exe windows/ovs-windows-installer/Binaries/ + cp -f $(top_srcdir)/utilities/*.pdb windows/ovs-windows-installer/Symbols/ + cp -f $(top_srcdir)/ovsdb/ovsdb-client.exe windows/ovs-windows-installer/Binaries/ovsdb-client.exe + cp -f $(top_srcdir)/ovsdb/ovsdb-tool.exe windows/ovs-windows-installer/Binaries/ovsdb-tool.exe + cp -f $(top_srcdir)/ovsdb/*.pdb windows/ovs-windows-installer/Symbols/ + cp -f $(PTHREAD_TEMP_DIR)/../../dll/x86/*.dll windows/ovs-windows-installer/Binaries/ + cp -f "/c/Program Files (x86)/Common Files/Merge Modules/Microsoft_VC120_CRT_x86.msm" windows/ovs-windows-installer/Redist/Microsoft_VC120_CRT_x86.msm + MSBuild.exe windows/ovs-windows-installer.sln /target:Build /property:Configuration="Release" +endif dist-docs: VERSION=$(VERSION) $(srcdir)/build-aux/dist-docs $(srcdir) $(docs) .PHONY: dist-docs @@ -377,3 +396,4 @@ include tutorial/automake.mk include vtep/automake.mk include datapath-windows/automake.mk include datapath-windows/include/automake.mk +include windows/automake.mk diff --git a/datapath-windows/ovsext.sln b/datapath-windows/ovsext.sln index 9cb767d..60e9318 100644 --- a/datapath-windows/ovsext.sln +++ b/datapath-windows/ovsext.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 +VisualStudioVersion = 12.0.31101.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Package", "Package", "{6BA8554E-AE50-49B0-9C98-4592447FEF8D}" EndProject @@ -12,32 +12,32 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ovsext", "ovsext\ovsext.vcx EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Win8 Debug|x64 = Win8 Debug|x64 - Win8 Release|x64 = Win8 Release|x64 - Win8.1 Debug|x64 = Win8.1 Debug|x64 - Win8.1 Release|x64 = Win8.1 Release|x64 + Win8.1Debug|x64 = Win8.1Debug|x64 + Win8.1Release|x64 = Win8.1Release|x64 + Win8Debug|x64 = Win8Debug|x64 + Win8Release|x64 = Win8Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8 Release|x64.Build.0 = Win8 Release|x64 - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 - {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8 Debug|x64.ActiveCfg = Win8 Debug|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8 Debug|x64.Build.0 = Win8 Debug|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8 Debug|x64.Deploy.0 = Win8 Debug|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8 Release|x64.ActiveCfg = Win8 Release|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8 Release|x64.Build.0 = Win8 Release|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8 Release|x64.Deploy.0 = Win8 Release|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1 Debug|x64.ActiveCfg = Win8.1 Debug|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1 Debug|x64.Build.0 = Win8.1 Debug|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1 Debug|x64.Deploy.0 = Win8.1 Debug|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1 Release|x64.ActiveCfg = Win8.1 Release|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1 Release|x64.Build.0 = Win8.1 Release|x64 - {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1 Release|x64.Deploy.0 = Win8.1 Release|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1Debug|x64.ActiveCfg = Win8.1 Debug|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1Debug|x64.Build.0 = Win8.1 Debug|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1Release|x64.ActiveCfg = Win8.1 Release|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8.1Release|x64.Build.0 = Win8.1 Release|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8Debug|x64.ActiveCfg = Win8 Debug|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8Debug|x64.Build.0 = Win8 Debug|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8Release|x64.ActiveCfg = Win8 Release|x64 + {911D7389-3E61-449F-B8F3-14AD7EE9A0F2}.Win8Release|x64.Build.0 = Win8 Release|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1Debug|x64.ActiveCfg = Win8.1 Debug|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1Debug|x64.Build.0 = Win8.1 Debug|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1Debug|x64.Deploy.0 = Win8.1 Debug|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1Release|x64.ActiveCfg = Win8.1 Release|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1Release|x64.Build.0 = Win8.1 Release|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8.1Release|x64.Deploy.0 = Win8.1 Release|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8Debug|x64.ActiveCfg = Win8 Debug|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8Debug|x64.Build.0 = Win8 Debug|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8Debug|x64.Deploy.0 = Win8 Debug|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8Release|x64.ActiveCfg = Win8 Release|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8Release|x64.Build.0 = Win8 Release|x64 + {63FE215D-98BE-4440-8081-C6160EFB80FA}.Win8Release|x64.Deploy.0 = Win8 Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4 index 8ace9ce..dd58d49 100644 --- a/m4/openvswitch.m4 +++ b/m4/openvswitch.m4 @@ -125,10 +125,10 @@ AC_ARG_WITH([vstudioddk], [Visual Studio DDK version type e.g. Win8.1 Release])], [ case "$withval" in - "Win8.1 Release") ;; - "Win8.1 Debug") ;; - "Win8 Release") ;; - "Win8 Debug") ;; + "Win8.1Release") ;; + "Win8.1Debug") ;; + "Win8Release") ;; + "Win8Debug") ;; *) AC_MSG_ERROR([No good Visual Studio configuration found]) ;; esac -- 1.9.5.msysgit.0 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev