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 mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio