[ovs-dev] [PATCH] Add build of ovsext.sln using MSBuild

Gurucharan Shetty shettyg at nicira.com
Fri Aug 15 16:51:31 UTC 2014


On Wed, Aug 13, 2014 at 8:13 AM, Alin Serdean
<aserdean at cloudbasesolutions.com> wrote:
> This commit adds to the automake build system the full build required by the
> forwarding extension solution.
>
> It will help a lot in the future CI to check the full build of the project.
>
> Also the documentation was updated.
>
> Signed-off-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
This is nice!

Nithin already mentioned this, I just want to add some details. When I
compile on Linux, building the linux kernel module is optional.
i.e without the "--with-linux=/lib/modules/`uname -r`/build", one does
not need to build the kernel module.
It would be nice to have the same for Windows. Currently the usespace
compilation is painfully slow (I have been scouring over the internet
to figure out how to efficiently do a parallel build, without any
luck), let us not make it more slower.

> ---
>  INSTALL.Windows | 34 ++++++++++++++++------------------
>  Makefile.am     | 10 ++++++++++
>  2 files changed, 26 insertions(+), 18 deletions(-)
>
> diff --git a/INSTALL.Windows b/INSTALL.Windows
> index abe665d..8c30c1c 100644
> --- a/INSTALL.Windows
> +++ b/INSTALL.Windows
> @@ -1,4 +1,4 @@
> -        How to Build the Kernel module & userspace daemons for Windows
> +     How to Build the forwarding extension & userspace binaries for Windows
>          ==============================================================
>
>  Autoconf, Automake and Visual C++:
> @@ -29,8 +29,8 @@ the following entry in /etc/fstab - 'C:/MinGW /mingw'.
>  part of Windows' PATH environment variable.
>
>  * You will need at least Visual Studio 2013 to compile userspace binaries. In
> -addition to that, if you want to compile the kernel module you will also need to
> -install Windows Driver Kit (WDK) 8.1 Update.
> +addition to that, if you want to compile the forwarding extension you will also
> +need to install Windows Driver Kit (WDK) 8.1 Update.
>
>  It is important to get the Visual Studio related environment variables and to
>  have the $PATH inside the bash to point to the proper compiler and linker. One
> @@ -63,7 +63,8 @@ or from a distribution tar ball.
>      --prefix="C:/openvswitch/usr" --localstatedir="C:/openvswitch/var" \
>      --sysconfdir="C:/openvswitch/etc" --with-pthread="C:/pthread"
>
> -* Run make for the ported executables in the top source directory, e.g.:
> +* Run make for the ported executables  and the forwarding extension in the top
> +source directory, e.g.:
>
>    % make
>
> @@ -91,32 +92,29 @@ For example,
>    --sysconfdir="C:/openvswitch/etc" --with-pthread="C:/pthread" --enable-ssl \
>    --with-openssl="C:/OpenSSL-Win32"
>
> -* Run make for the ported executables.
> +* Run make for the ported executables  and the forwarding extension in the top
> +source directory, e.g.:
>
> -Building the Kernel module
> ---------------------------
> -We directly use the Visual Studio 2013 IDE to compile the kernel module. You can
> -open the extensions.sln file in the IDE and build the solution.
> +  % make
>
> -Installing the Kernel module
> +Installing the forwarding extension
>  ----------------------------
> -Once you have built the solution, you can copy the following files to the
> -target Hyper-V machines:
> +You can copy the following files to the target Hyper-V machines:
>
> -    ./datapath-windows/x64/Win8.1Debug/package/ovsext.inf
> -    ./datapath-windows/x64/Win8.1Debug/package/OVSExt.sys
> -    ./datapath-windows/x64/Win8.1Debug/package/ovsext.cat
> +    ./datapath-windows/x64/Win8Debug/package/ovsext.inf
> +    ./datapath-windows/x64/Win8Debug/package/OVSExt.sys
> +    ./datapath-windows/x64/Win8Debug/package/ovsext.cat
>      ./datapath-windows/misc/install.cmd
>      ./datapath-windows/misc/uninstall.cmd
>
> -Steps to install the module
> +Steps to install the forwarding extension
>  ---------------------------
>
>  01> Run ./uninstall.cmd to remove the old extension.
>  02> Run ./install.cmd to insert the new one. For this to work you will have to
>  turn on TESTSIGNING boot option or 'Disable Driver Signature Enforcement'
>  during boot.
> -03> In the Virtual Switch Manager configuration you should now see "VMWare OVS
> +03> In the Virtual Switch Manager configuration you should now see "Open vSwitch
>  Extension" under 'Virtual Switch Extensions'. Click the check box to enable the
>  extension.
>
> @@ -255,5 +253,5 @@ be brought in.
>
>  * Investigate the working of sFlow on Windows and re-enable the unit tests.
>
> -* Sign the driver & create an MSI for installing the different OpenvSwitch
> +* Sign the driver & create an MSI for installing the different Open vSwitch
>  components on windows.
> diff --git a/Makefile.am b/Makefile.am
> index eb58101..339882a 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -276,6 +276,16 @@ manpage-check: $(man_MANS) $(dist_man_MANS) $(noinst_man_MANS)
>  CLEANFILES += manpage-check
>  endif
>
> +if WIN32
> +ALL_LOCAL += ovsext_make
> +ovsext_make: datapath-windows/ovsext.sln
> +       MSBuild.exe datapath-windows/ovsext.sln /target:Build
> +
> +CLEAN_LOCAL += ovsext_clean
> +ovsext_clean: datapath-windows/ovsext.sln
> +       MSBuild.exe datapath-windows/ovsext.sln /target:Clean
> +endif
> +
>  include $(srcdir)/manpages.mk
>  $(srcdir)/manpages.mk: $(MAN_ROOTS) build-aux/sodepends.pl
>         @$(PERL) $(srcdir)/build-aux/sodepends.pl -I. -I$(srcdir) $(MAN_ROOTS) >$(@F).tmp
> --
> 1.9.0.msysgit.0
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev



More information about the dev mailing list