On 25 January 2011 11:33, Olumide wrote: > On 25/01/2011 10:58, Jonathan Wakely wrote: >> >> On 25 January 2011 10:31, Olumide wrote: >>> >>> I would like to roll out the build to other machines (several dozen >>> actually). I've tried copying the entire hierarchy (source and build) to >>> the >>> target machines and then running make install but I'm getting the error >>> message (I'd appreciate help solving this problem -- thanks): >> >> The problem is that "make install" checks if it needs to rebuild, and >> notices that system headers and other things have changed. >> >> Don't do it that way, instead use "DESTDIR" >> >> http://www.gnu.org/prep/standards/html_node/DESTDIR.html >> >> This allows you to copy the entire installed tree (not the source and >> build trees) to a temporary staging area, from where it can be >> packaged up into an archive, then extracted on the destination >> machines. > > Thanks Jon. One tiny question tho' (I'm total newbie at this). When do I do > make DESTDIR? At the stage, make -j 2 bootstrap, in which case the command > would be make DESTDIR=/transfer/gcc-build-archive -j 2, or at the final make > install stage? (The latter doesn't work.) Read the link I sent, which says "DESTDIR should be supported only in the install* and uninstall* targets, as those are the only targets where it is useful." You use DESTDIR with "make install" as in the example on that page. > If the former is the case, then I would simply copy > /transfer/gcc-build-archive to the target machines and run make install on > each, right? No. You do not run make on the target machines. # configure gcc make make install DESTDIR=/tmp/stage "If your installation step would normally install ‘/usr/local/bin/foo’ and ‘/usr/local/lib/libfoo.a’, then an installation invoked as in the example above would install ‘/tmp/stage/usr/local/bin/foo’ and ‘/tmp/stage/usr/local/lib/libfoo.a’ instead." So then you package up all the files under /tmp/stage, which are arranged in a directory hierarchy exactly as you want in their final installed location, but under /tmp/stage not /, so you just package that directory tree up and then extract it on the target machine cd /tmp/stage tar czf /tmp/gcc.tar.gz . # copy archive to target machine and extract > Also, do I have to install texinfo and ncurses on the target machines? No, because all you do on the target machine is extract an archive.