[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] GNU Stow and make install (DESTDIR)
From: |
Patrick Strasser |
Subject: |
[Discuss-gnuradio] GNU Stow and make install (DESTDIR) |
Date: |
Thu, 06 Jan 2011 19:51:34 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.6) Gecko/20050602 Thunderbird/1.0.2 Mnenhy/0.7.2.0 |
Hello!
I tried to install GNU Radio with GNU Stow. I'd like to have several
versions of GNU Radio that I can switch betwenn without rebuild. Stow
seems to help much in that scenario. And it does a clean uninstall even
if the build tree has changed since build.
How install does _not_ work:
============================
The Stow manual recommends[1]:
----------------------------
6.1.2 Other FSF software
The Free Software Foundation, the organization behind the GNU project,
has been unifying the build procedure for its tools for some time.
Thanks to its tools `autoconf' and `automake', most packages now respond
well to these simple steps, with no other intervention necessary:
./configure options
make
make install prefix=/usr/local/stow/package
Hopefully, these tools can evolve to be aware of Stow-managed packages,
such that providing an option to `configure' can allow `make' and `make
install' steps to work correctly without needing to "fool" the build
process.
----------------------------
Unfortnately libtool does not like this way of installing:
$ make install prefix=/usr/local/stow/package
[...]
test -z "/usr/local/stow/packag/lib" || /bin/mkdir -p
"/usr/local/stow/packag/lib"
/bin/bash ../../../libtool --mode=install /usr/bin/install -c
libgnuradio-core.la '/usr/local/stow/packag/lib'
libtool: install: error: cannot install `libgnuradio-core.la' to a
directory not ending in /usr/local/lib
[...]
How install _does_ work:
============================
You rather need to install with DESTDIR[2]:
# full version
STOWDIR=/usr/local/stow
PACKAGE=gnuradio
VERSION=3.3git
PREFIX=/usr/local
./configure --prefix=${PREFIX}
make
sudo make install DESTDIR=${STOWDIR}/${PACKAGE}-${VERSION}
stow -d ${STOWDIR} -t / ${PACKAGE}-${VERSION}
Note: make install with DESTDIR installs everything with DESTDIR
prepended. If PREFIX=/usr/local/, and DESTDIR=/usr/local/stow/package,
files will end up under /usr/local/stow/package/usr/local/. Stow just
moves files out of DESTDIR to the target directory. This is why the
target has to be /-
If you install to the standard paths, this can be simplified to
# simple version
PACKAGE=gnuradio
VERSION=3.3
./configure
make
sudo make install DESTDIR=/usr/local/stow/${PACKAGE}-${VERSION}
sudo stow -d /usr/local -t / ${PACKAGE}-${VERSION}
If you get conflicts you probably have an old package version installed.
You need to uninstall first.
Uninstall:
==========
List your stow packages:
STOWDIR=/usr/local/stow
ls $STOWDIR
The name of the directory is the name of the package.
Unstow the currently installed version:
sudo stow -d $STOWDIR -t/ -D package
[1] http://www.gnu.org/software/stow/manual.html#SEC8
[2] http://www.gnu.org/prep/standards/standards.html#DESTDIR
========================================
I hope this information can help others manage their GNU Radio
installations.
Regards
Patrick
- [Discuss-gnuradio] GNU Stow and make install (DESTDIR),
Patrick Strasser <=