octave-maintainers
[Top][All Lists]
Advanced

[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

Attachment: octave-diffs.txt
Description: Text document

Attachment: gnulib-diffs.txt
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]