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

Alin Serdean aserdean at cloudbasesolutions.com
Fri Aug 15 16:58:05 UTC 2014


Hey Guru,

I can add a follow up on the after the version 2 to propose a solution on how to make the compilation faster :).

I can add the switch for the kernel driver on windows no problem. 

Thanks for your thoughts as well,
Alin.

-----Mesaj original-----
De la: Gurucharan Shetty [mailto:shettyg at nicira.com] 
Trimis: Friday, August 15, 2014 7:52 PM
Către: Alin Serdean
Cc: dev at openvswitch.org
Subiect: Re: [ovs-dev] [PATCH] Add build of ovsext.sln using MSBuild

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 
> -03> "VMWare OVS
> +03> In the Virtual Switch Manager configuration you should now see 
> +03> "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