[ovs-dev] [PATCH v3 2/4] Sample to automate build installer
Alin Serdean
aserdean at cloudbasesolutions.com
Tue Apr 28 22:28:31 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>
Co-authored-by: Nithin Raju <nithin at 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
More information about the dev
mailing list