discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] build gnuradio on windows with cygwin mingw msvc


From: Stephane Fillod
Subject: Re: [Discuss-gnuradio] build gnuradio on windows with cygwin mingw msvc
Date: Thu, 5 May 2005 01:49:02 +0200
User-agent: Mutt/1.5.8i

Hi Martin!

I'm cc'ing some other people interested in a Windows port.

On Wed, May 04, 2005 at 04:12:49AM +0200, Martin Dvh wrote:
> Hi,
> Has anybody succeeded in building gnuradio 2.x on windows.

Yes, I did.

> I am trying to build using cygwin (clean cygwin install)
> but haven't succeeded yet.

You need some patches I sent to Eric yesterday, but hasn't showed up in
CVS yet :)

> I had to add HAVE_SLEEP to config.h and use the right configure options.

The HAVE_SLEEP issue is fixed in the patches.

> I tried:
>   $ ../configure --with-boost-include-dir=/usr/local/include/boost-1_32 
>   --with-md-cpu=generic

Please refer to (and update) the following page http://comsec.com/wiki?Cygwin

> But then still make check gives an error in vmcircbuf

Yes, it needs a workaround for mmap on Cygwin/Windows.
It's in the patches.

> Also there is something wrong with _gnuradio_swig_python
> It should have build a shared library (dll) but didn't

Usual Windows portability pitfall. It requires -no-undefined flag
and explicit linking of dependant library (ie. python).
It's in the patches, along fixes for all the other gr-* modules.

> I do have an
> D:\cygwin\usr\local\lib\python2.4\site-packages\gnuradio\gr\_gnuradio_swig_python.a
> but it only contains
> !<arch>

This is a static only archive, which libtool generate as a fallback.

> there is no _gnuradio_swig_python.dll
> I do have D:\cygwin\usr\local\bin\cyggnuradio-core-0.dll
> so my setup is able to build shared libraries

Yes, libgnuradio-core.la target had the -no-undefined flag.

> I am now trying with
> ./bootstrap
> ../configure --enable-maintainer-mode --disable-static 
> --with-md-cpu=generic PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 
> --with-boost-include-dir=/usr/local/include/boost-1_32
> 
> The cygwin wiki seems out of date (talks about gnuradio-0.9)

Which cygwin wiki? The afore-mentioned? I've updated it 2 days ago.

> the mingw wiki says:
> Tricks
> 
> make cppunit and fftw3 compile as shared

cppunit and fftw3 patches have been submitted upstream.
Hopefully they will be in next release.
I have patched versions on my site though: http://f8cfe.free.fr/ham/gnuradio/

> hack the m4 macros to tell non standard Python install directory
> need some vmcircbuf patches not yet in CVS
> 
> Are these vmcircbuf patches already in gnuradio (cvs)

I hope they will be soon :-)

> Anybody who has some experience with this please tell me.

I have no particular interest in Windows platforms, but I'm doing the
port because it's necessary for the project. Since I don't spend much
time under Windows, the port definitely needs testers!

For your information, "make check" passes completely for gnuradio-core
under Cygwin, and the usrp module appears to work (with fast USB) under 
Windows (with rev0 board).

I'm taking the opportunity to call for volunteers for testing
the low-level USRP under Windows. So anyone with a USRP board
and Windows >= 98 + latest ServicePack can help. All you need 
to do is to download the wizard linked from http://comsec.com/wiki?UsrpMinGW,
install the USRP filter, and check the various test_usrp_standard_*.exe
The setup.exe file contains the libusb-win32 filter and DLL, automatic
driver(.inf) installation, latest .ihx and .rbf, and couple of test programs.
Let me know how it works for you.

There's also a fresh tar.bz2 containing cygwin binaries at
http://f8cfe.free.fr/ham/gnuradio/gnuradio-core-2.5cvs-cygwin.tar.bz2
You will need the "Exp" version of Cygwin installed, plus Python Numeric.
Don't forget to point PATH and PYTHONPATH accordingly.
Feedback welcome.

> As a sidenote, I was able to compile a  part of gnuradio with microsoft 
> visual C++.net 2003
> Just made a project and added all relevant cpp and .h files

This is promising!
We should be very close to it, as gnuradio-core compiles with MinGW
(until the link stage which fails for obscure reason). 
If you plan to use GNU Radio with Visual C++, you have to know that you
won't be able to link against MinGW or Cygwin generated libraries,
because the C++ ABI differs.

> I had to leave out all vmcircbuf and swig parts so it is not a complete 
> gnuradio.

The swig module building works (with appropriate patches) with MinGW.
For VC++, the vmcircbuf will need a new factory based on MapViewOfFileEx.

> I was able to play a little with fir filters directly in cpp with my own 
> buffers.

Chances are the only doprod available was the generic one.
I managed to compile the x86 speedups under Cygwin, but they require a
small rewrite of assembly files because COFF differs slightly from ELF
(no .type/.size -> .def ... .endef). I have to check with Eric how
this can be done nicely with the preprocessor, but that would need 
to renamed files from .s to .S and some hacking.


Best Regards,
-- 
Stephane




reply via email to

[Prev in Thread] Current Thread [Next in Thread]