[Top][All Lists]

[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
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,

reply via email to

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