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