[ovs-dev] [PATCH 3/3] Sample to automate build installer

Alin Serdean aserdean at cloudbasesolutions.com
Mon Apr 20 18:59:03 UTC 2015


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 <aserdean at cloudbasesolutions.com>
---
 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..cdf281d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -354,6 +354,26 @@ 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 datapath-windows/misc/OVS.psm1 windows/ovs-windows-installer/Services/OVS.psm1
+	cp -f datapath-windows/misc/OVS.psm1 windows/ovs-windows-installer/Services/OVS.psm1
+	cp -f vswitchd/vswitch.ovsschema windows/ovs-windows-installer/Services/vswitch.ovsschema
+	cp -f vswitchd/ovs-vswitchd.exe windows/ovs-windows-installer/Services/ovs-vswitchd.exe
+	cp -f ovsdb/ovsdb-server.exe windows/ovs-windows-installer/Services/ovsdb-server.exe
+	cp -f datapath-windows/x64/$(VSTUDIO_CONFIG)/package/ovsext.cat windows/ovs-windows-installer/Driver/ovsext.cat
+	cp -f datapath-windows/x64/$(VSTUDIO_CONFIG)/package/ovsext.inf windows/ovs-windows-installer/Driver/ovsext.inf
+	cp -f datapath-windows/x64/$(VSTUDIO_CONFIG)/package/OVSExt.sys windows/ovs-windows-installer/Driver/OVSExt.sys
+	cp -f utilities/*.exe windows/ovs-windows-installer/Binaries/
+	cp -f utilities/*.pdb windows/ovs-windows-installer/Symbols/
+	cp -f ovsdb/ovsdb-client.exe windows/ovs-windows-installer/Binaries/ovsdb-client.exe
+	cp -f ovsdb/ovsdb-tool.exe windows/ovs-windows-installer/Binaries/ovsdb-tool.exe
+	cp -f ovsdb/*.pdb windows/ovs-windows-installer/Symbols/
+	cp -f $(PTHREAD_TEMP_DIR)/*.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
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



More information about the dev mailing list