Just another random blog

SCons DESTDIR support

Michael, it’s not make that supports for DESTDIR – it’s the Makefiles that do it, usually as one of the many features picked up from automake. Half the problem SCons has with this is that there’s no similarly pervasive tool set to at least set standards (even people who don’t use automake often emulate the features that people actually use) and the focus has mostly been on pure make functionality so there’s really nothing there for installation and packaging. This has resulted in projects using SCons each coming up with their own approach to these things – which can boil down to no approach at all.

The situation for SCons ought to be improved fairly soon thanks to a pair Summer of Code projects from this year and last year which will together give SCons automake-style functionality – hopefully once they’re merged people will start using them when they distribute their software. In the meantime you could always ask upstream to implement DESTDIR support.

Post navigation

4 thoughts on “SCons DESTDIR support”

I know that make does not support DESTDIR, but auto* does add this. I hacked too much auto* scripts to know this :-).

However I’d expect that something newly created would have such thing implemented. And CMake has it. I don’t know other new build systems, but this is simply feature I expected to be there and I was quite surprised that it is missing. However this only convinced me that I choose good way, when I decided to use CMake :-).

SCons isn’t actually particuarly new – the first release was in 2001, although that obviously still post dates auto* by a long way.

There’s also the question of how good an idea it is to put installation and packaging into a build tool – doing them right is a tricky enough thing that it keeps distributions of various kinds going quite well. There’s enough platform specifics to doing it well that you can easily wind up creating trouble, particularly when you’re also targeting things that don’t even try to look like Windows.

Of course, the whole installation thing gets even more tricky these days since the demand from upstreams seems to be more for things that will produce packages rather than install onto the filesystem.

And I was not talking about support for generating packages, all I want from it is to install everything into some subdirectory.

BTW: CMake includes nice tool called CPack, which can generate some binary and source packages with minimal effort. I did not use it actually for any Linux binary packages (and I don’t know what it actually supports), but I can generate Windows installer for cross compiled program using it on Linux without problems.

And I was not talking about support for generating packages, all I want from it is to install everything into some subdirectory.

Yes, that’s the most useful thing from a packager point of view. What I was trying to say was that this is part of supporting installation in the build system and these days the major demand for installation support is for features like CPack and I’m a bit dubious about them, especially for generic “Linux” systems.