RedHawk building from source --- locate the code installing uhd3.5.3 - build

I am trying to build from source for RedHawk installation and trying to replace uhd3.5.3 with a higher version of uhd for USRP_UHD module. I saw USRP_UHD source code, but found nowhere for uhd3.5.3 source code. I am guessing it might simply use "yum install ..." to download and install uhd host code and suporting libraries. Does anybody know where this code is located in redhawk_src_2.0 package? Or is there an efficient way in linux to search for this among all the files in redhawk_src_2.0 package?
Thanks in advance!

UHD is the USRP Harware driver softwware from Ettus Research. The UHD is distributed from:
http://files.ettus.com/binaries/uhd_stable/
Version 3.5.3 is here:
http://files.ettus.com/binaries/uhd_stable/uhd_003.005.003-release/
The current release is 3.9.2:
http://files.ettus.com/binaries/uhd_stable/uhd_003.009.002-release/
Hopefully this helps. I wasn't 100% sure what you are asking for.

First, clone the uhd library:
git clone git://github.com/EttusResearch/uhd.git
Then checkout the 3.9.2 tag:
git checkout release_003_009_002
Using the instructions from Ettus (http://files.ettus.com/manual/page_build_guide.html), install the dependencies listed under the Fedora section:
sudo yum -y install boost-devel libusb1-devel python-mako doxygen python-docutils cmake make gcc gcc-c++
Next, generate the Makefiles with CMake:
cd <uhd-repo-path>/host
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/uhd ../
I recommend using an alternate install prefix at first to preserve the 3.5.3 version, just in case, but if you don't want to, just run:
cmake ../
instead of the longer command with the -DCMAKE_INSTALL_PREFIX flag. (Note: I couldn't get cmake to find the installed boost version, so you may have to do some other research on that since it is probably a whole different stackoverflow post in and of itself)
Now build and install the uhd library:
make
make test
sudo make install
Now that the library is installed, you should edit the USRP_UHD/cpp/configure.ac so that the PKG_CONFIG_PATH points to your install prefix (either the one specified in the flag above, or if you did the default, just leave it, as it should already be pointing to /usr/local/lib/pkgconfig). Also in the configure.ac file, make sure to change the uhd version number to 3.9.2.
Now you should be able to rebuild the USRP_UHD Device:
./reconf && ./configure && make install
I don't guarantee that the Device will build against the new version of the uhd library, that will depend on what (if anything) has been deprecated an removed from the library between the supported version and the newest one.
Finally, if you get through all of those steps successfully and if you specified a non-standard install prefix, you will have to add this prefix to either the LD_LIBRARY_PATH or an /etc/ld.so.conf.d/ script in order for the Device to correctly execute.

Clarification - you can follow the Redhawk manual appendix B for building Redhawk from source AFTER installing UHD v3.9.3 from source as per pwolframs instructions. The UHD v3.5.3 is not packaged with the Redhawk source code, only the Redhawk RPM, disregard all those RPMs when building UHD and Redhawk from source.

Related

How to use a library ported for Native Client(NaCl)?

I was looking at the list of naclports for ported libraries and I want to use openssl for my native client extention. I can't find a proper instruction set to install these ported libraries, I downloaded the openssl compressed file and followed the instructions given in INSTALL file but that encountered some errors which I can't resolve.
To install a library ported to Native Client as part of naclports you'll need to:
Download and install the NaCl SDK:
https://developer.chrome.com/native-client/sdk/download
Set NACL_SDK_ROOT in your environment to point at the pepper_* version under the location you install it at.
You may want to explicitly install the very latest version: pepper_canary, with: ./naclsdk install pepper_canary
Sync the naclports repository: Checkout guide
Check out a branch that matches you SDK, or master for pepper_canary
To build openssl, do something like this:
./bin/naclports --force --from-source install openssl
If you have no local modifications you can drop the --force and --from-source flags
This will build the newlib NaCl version by default.
You can set TOOLCHAIN in the environment to: glibc / pnacl / newlib to select an explicit version.
The library will then be installed into your SDK.

Header file not found when compiling Vowpal Wabbit on Mac OS X

I have downloaded Vowpal Wabbit ( Version 7.4 ) on to my Mac ( OS X Mavericks ) with the following version of g++ :
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include- dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
I modified the Makefile that comes with the installation so that it will pick up Boost ( Version 1.55 ) headers and libraries from the correct folders on my Mac ( I checked by writing and compiling a simple program and everything works ). However, when I run make it cannot find a header file, for example:
In file included from library_example.cc:2:
./../vowpalwabbit/parser.h:15:10: fatal error: 'boost/program_options.hpp' file
not found
Grateful for any help in tracking down the problem.
vowpal wabbit has a dependency on the C++ library+headers boost/program_options.
This dependency must be installed before vowpal wabbit can be built from source.
Since other people may have a similar issue, I will try to answer the more general question:
How to build vowpal wabbit from scratch/source, on Mac OS-X?
The following set of instructions assumes you have no development environment at all. If you do, you may skip any steps you deem unnecessary.
Important: credit where credit is due. These instructions are almost 100% written by Aaron Shumacher: I sourced them from his page following a web-search, with relatively minor modifications, additions, and clarifications.
Stage 0, basic prerequisites needed for developing on Mac OS-X:
Install the Xcode command line tools. This will give you an Apple’s development environment (compiler, make, etc.).
Install the Homebrew package manager.
Once you have Homebrew installed, everything else that's missing, is easy to install.
Install needed tools to build from source:
brew install libtool
brew install automake
brew install boost
brew install git
Now, you're ready to download the vowpal wabbit source tree (latest):
Download:
git clone https://github.com/JohnLangford/vowpal_wabbit.git
cd vowpal_wabbit
You’re now ready to go through the standard build (aka make) process.
Build:
[Edit: 2014-07-20]: ./autogen.sh may not work well in some environments. I recommend trying to build using a simple make first. The included Makefile is already pretty robust and should work just fine in most environments. The problem with running autogen/automake is that it may overwrite the (pretty good) original Makefile with a bad one.
# ./autogen.sh # commented out, use only if 'make' alone doesn't work
make
make test
Note: it is important to verify (using make test) that your binary works as expected. If you see any failure, please report it on the mailing list, and proceed with the installation only if the failure is immaterial to you (e.g. only some rarely used options/tests you don't care about fail). See the test/RunTests script for full details on the tests.
Install:
make install
At this point, you should have vowpal wabbit at /usr/local/bin/vw

Does Linux command libboost-all-dev install and compile the header-only libraries?

On Ubuntu there is a command to install boost libraries which is something like this:
sudo apt-get install libboost-all-dev
does this command also install and compile the header-only libraries?
If not, what other terminal command would I need to execute so that I can install the FULL set of boost libraries?
My ultimate aim is to know which linux terminal commands I need to install (and have available) to obtain all of the boost libraries.
As is implied by "header only", one does not need to compile the header-only libraries. They're just headers.
Now, the libbost-all-dev package does install those libraries which need compilation (in addition to the header-only libs), but it does not compile them on the spot. Ubuntu is a so-called binary distribution, which means that it distributes packages in compiled form. Apt downloads the binaries and installs them immediately. This is in contrast to e.g. Gentoo which is a source distribution (and compiles everything on your machine).
In short, no further commands are necessary. Installing libbost-all-dev will install all available Boost libraries on Ubuntu.
Your questions, as posed, makes no sense.
The Debian / Ubuntu package libboost-all-dev has dependencies, and those dependencies do include the few binary library packages (eg Boost Thread, the formatting parts of Boost DateTime, etc pp). All those will get installed.
And yes, the intent of this meta package is to install the rest of the Boost development environment.
But it does not compile anything. All Debian / Ubuntu packages are pre-generated and built-offline and "just installed" at your end.
You can inspect the content of a package by browsing the online database.
But if you are only interested in header-only libraries I suggest to download the latest version of the boost libraries right from the official website; you should also learn how to build boost from the source because it's a know-how that you are very likely to use in a near future if you are relying on that library.
An equivalent step to browsing the online database, it's about using the following command
apt-cache show <package>
so, in your case
apt-cache show libboost-all-dev
and this will give you a very specific idea about what you are about to install.

BLAS library incompatible with Fortran 77 compiler settings

I'm trying to install Octave-3.6.2 from source on Ubuntu 12.04 with KDE desktop but when I run the Octave configure script I get this error
BLAS library was detected but found incompatible with your Fortran 77
compiler settings
I used ./configure F77=gfortran as was suggested by numerous web searches and I've ensured that the alternatives system F77 files are moved out of harms way as per the comments in this SO post. The installed BLAS libraries are those installed by the package manager.
What does the error mean and how do I remedy it?
Try installing the Package liblapack-dev, libblas-dev, and if it exists, libblas-64. While not Ubuntu, I had the same issue and needed to install the fedora fc20 equivalent packages which are blas-devel, blas64-devel, lapack-devel, and lapack64-devel. The standard routine for getting the build dependencies is
sudo yum-builddep octave
While that installed most of the dependencies, I needed to follow with the following before it would completely configure. This is from an almost scratch Fedora fc20 install with updates as of 10/23/2014.
sudo yum install lapack64-devel lapack64
sudo yum install gl2ps-devel qrupdate-devel qt-devel qscintilla-devel java-devel
Although I did not explicitly list the blas-devel and blas64-devel packages, they were installed as dependencies of the libpack packages as was libpack-devel and plain libpack.
I suppose for Ubuntu it may be apt-get. Either way, here is another post that talks about an earlier version of Ubuntu.
BLAS and LAPACK libraries required for compiling
I fixed this problem by moving the BLAS to /usr/lib64.
for slackware recompile blas using -libdir=/usr/lib64
Run sudo apt-get build-dep octave
This will install all dependencies for octave
I was compiling octave-4.0.1 on openSUSE-12.3_x86-64 and met this problem. Before this, the blas lib (libblas3) was already installed. Then I installed the 32bit lib (libblas3-32bit), nothing changed. Then I installed the package named "blas-devel", it's resolved.
That package includes these files:
/usr/lib64/libblas.a
/usr/lib64/libblas.so
/usr/lib64/libblas_pic.a

Enabling OpenGL in wxWidgets

I installed the wxWidgets source code, compiled it and am linking the libraries thus obtained with my application code. Now I need to use OpenGL in my wxWidgets application. How do I enable this?
For building on Windows with project files:
Assume $(WXWIDGETSROOT) is the root directory of your wxWidgets installation.
Open the file $(WXWIDGETSROOT)\include\wx\msw\setup.h
Search for the #define for wxUSE_GLCANVAS.
Change its value from 0 to 1.
Recompile the library.
For building on Linux and other ./configure based platforms:
Just use ./configure --with-opengl
(A mashup answer from two partial answers given by others)
If you're using configure to build wxWidgets you just need to add --with-opengl to your command line.
Just to add a little bit... If you're on linux you need to watch the logs when running configure. If it can't find opengl dev packages then it will turn opengl off with one line of warning which is easy to miss.
run it like this to make it more obvious what development libraries you're actually missing (it looks like the --with-opengl is on by default in 3.0.0 and possibly earlier versions of wxwidgets, but it can't hurt to include it I suspect).
./configure --with-opengl > configure.log
Once configure can find all the dev libs you think you're going to use you need to rebuild wxwidgets:
make
sudo make install
I had to install these on linux mint to make wxwidget's configure happy as far as opengl was concerned (and should also work for ubuntu) to get the dev libs I needed.
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
(Assume $(WX_WIDGETS_ROOT) is the root directory of your wxWidgets installation.)
Open the file $(WX_WIDGETS_ROOT)\include\wx\msw\setup.h
Search and find the option wxUSE_GLCANVAS. Change its value from 0 to 1.
Recompile the library.