octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What is 'make distcheck'?


From: Philip Nienhuis
Subject: Re: What is 'make distcheck'?
Date: Sun, 03 Nov 2013 21:16:53 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.11) Gecko/20100701 SeaMonkey/2.0.6

Rik wrote:
On 11/03/2013 10:00 AM, address@hidden wrote:
Forgot to mention:
I cross-build them by first building Octave on/for Linux and running "make
check", then do "make all dist" and transplant that<dist>.tar.gz to
mxe-octave for building.
How much does "make distcheck" differ from "make all dist"?
The 'distcheck' target is a GNU standard target which performs all of the
operations associated with packaging a distribution and verifying that the
distribution works.  If it passes 'distcheck', it is very likely to work
for users.

Specifically it:

1) Runs 'make all' to verify that the code can be built
2) Runs 'make dist' to verify that a tarball can be created
3) Creates a temporary directory and unpacks the tarball into a source/
directory
4) Creates a temporary build directory
5) Runs 'configure' and 'make' to do an out-of-source tree build
6) Runs 'make check' to verify that tests pass
7) Runs 'make dist' to test that the tarball is sufficient to create
another tarball, as might happen if a distribution patches a few files.
8) Runs 'make distclean' to verify that no temporary files are created
which leave lingering state information and could cause subsequent builds
to fail.

Thanks very much for this explanation. How I wish more OSS projects adopted such a procedure...

Projecting those steps on what I do:

- Steps 1 & 2 are done when building the Octave tip in Linux.

- Steps 3, 4 & 5 are done in the mxe-octave build process.

- An intermediate step 5.5 comprises transferring to & installing the Octave installer in Windows.

- Step 6 is replaced by running __run_test_suite__ in the just installed Octave in Windows.

...and that's about it.

(You probably guess what I'm writing down here:)
I'm wondering what the point of "make distcheck" in mxe-octave is; after all, the final test for both Windows and Mac OSX would rather be whether the compiled binary works. At least, that's my more down-to-earth (rude if you want) perception of "it is very likely to work for users".

The way you describe it looks primarily like a developer target. Now that you've explained it I fully understand the point of that; I regularly encounter SW that doesn't work because some stupid dependency is lacking (e.g., odfdom 0.8.9). But for platforms like OSX and Windows I expect very few users are going to build their own Octave.


I think "make distcheck" could in principle be executed on MinGW (i.e, natively), possibly with mxe-octave built dependencies.

But alas! mxe-octave natively (= on Windows) still doesn't work. I've been mailing privately with John Donoghue this weekend about the various hickups I encounter with it. AFAIU it doesn't work for him either using one simple "./mk-dist" command. Some dependencies and maybe octave itself still have to built using a "manual" 'make' intervention.

(But I'd like to stress that cross-compiling using mxe-octave works like a charm - for me)

Philip


reply via email to

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