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

Gurucharan Shetty shettyg at nicira.com
Wed Apr 29 20:01:58 UTC 2015


On Tue, Apr 28, 2015 at 10:03 AM, Alin Serdean
<aserdean at cloudbasesolutions.com> wrote:
> 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

This is nice! I have some mixed feelings about having it in
Makefile.am though. Is it possible to add the installer target in
windows/automake.mk? Can you also change the target name from
"installer" to "windows-installer".

You have not copied ovs-appctl.exe. Copy that too, please.

You copy symbols files with *.pdb, but only copy individual exes. I
think you will have additional pdb files that way. It would be nice if
you copy userspace files first and then copy datapath files. That way
it is easier to read.

You will need to make changes to appveyor.yml file in the base
directory to handle the missing space in '--with-vstudioddk'.

Please make sure that the series compiles on Linux too.

Thanks,
Guru


>
>
> 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..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 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 at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list