[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Completely non-recursive build
From: |
John W. Eaton |
Subject: |
Completely non-recursive build |
Date: |
Mon, 28 Nov 2016 10:18:24 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.4.0 |
I spent some time yesterday working on making it possible to use gnulib
properly in a non-recursive build. With that, it's possible for
Octave's build system to be completely non-recursive (except, I think,
for updating the build system files themselves -- Makefile, configure,
etc.).
The current iteration of my changes are attached. If you'd like to try
this, update to the latest version of Octave on the default branch, then
apply the patches and build as follows (initial directory is the
top-level of the Octave sources):
patch -p1 < /path/to/octave-diffs.txt
cd gnulib
patch -p1 < /path/to/gnulib-diffs.txt
cd ..
./bootstrap
mkdir .build
cd .build
../configure
make -jN
With these changes, I see the following after a successful build, when
nothing has changed in the source tree:
coredump:738> /usr/bin/time make -j9
make all-am
make[1]: Entering directory '/export/home/jwe/src/octave/.build'
Octave successfully built. Now choose from the following:
./run-octave - to run in place to test before installing
make check - to run the tests
make install - to install (PREFIX=/usr/local)
HG ID for this build is "b824691fa401+"
make[1]: Leaving directory '/export/home/jwe/src/octave/.build'
3.98user 1.02system 0:09.03elapsed 55%CPU (0avgtext+0avgdata
43200maxresident)k
0inputs+16outputs (0major+464711minor)pagefaults 0swaps
and this job takes about half the time as before.
The situation is not quite as good if some prerequisite of a target that
uses a "move-if-change" rule is modified in a way that does not actually
change the target file, but it is still much better than before with the
recursive invocation of make in the gnulib subdirectory.
You can find more info about the changes in the thread on the bug-gnulib
list, beginning here:
http://lists.gnu.org/archive/html/bug-gnulib/2016-11/msg00118.html
I hope to get these changes (or something similar) merged with gnulib soon.
jwe
octave-diffs.txt
Description: Text document
gnulib-diffs.txt
Description: Text document
- Completely non-recursive build,
John W. Eaton <=