dist-check implemented

My final foray into the makefiles for a while has been completed. The dist-check target is the golden nugget I was hoping to get out of automake. But, now LLVM Makefiles have it too.

dist-check does the following:

* builds everything with "check" to ensure the source of the distribution is
   sane, essentially "make check".
* builds the distribution tar balls with "make dist"
* unpacks a distribution tar ball to a new directory
* builds the unpacked source with "make check", ensuring that the distribution
   tarball is likewise sane
* runs "make install", "make uninstall", and "make dist" on the code built from
   the unpacked source. This ensures utility of the distribution (install) as
   well as providing closure (the distribution can create a distribution of

If all that succeeds, you'll see:

===== /proj/work/llvm/build2/LLVM-1.4.tar.gz Ready For Distribution =====

A few things to note:

* "make dist-check" can only be run from the BUILD_OBJ_ROOT directory. If you
   try it somewhere else, you'll be politely told you're off your rocker
* "make dist-check" can only be run when BUILD_OBJ_DIR != BUILD_SRC_DIR. If you
   try it somewhere else, your hard disk will be reformatted (kidding!)
* don't run "make dist-check" for a BUILD_SRC_DIR that has anything other than
   "sample" and "Stacker" in the projects directory. The details for
   distributing LLVM Projects haven't been completed yet.
* if you really want to burn CPU cycles and give your disk subsystem a workout,
   "make dist-check" is just the ticket.

So, when it comes time to release LLVM 1.4 at least the process of ensuring a quality release will be automated. It takes about 20 minutes to run
"make -j 3 dist-check" on my 2.3 GHz Dual Xeon machine. Your mileage may vary.



Some stats on running dist-check, if you're inclined to care. This is on
a 2.3GHz Xeon processor running RH Linux 9 with "make -j 1 dist-check"
and starting from a fresh (empty) build dir:

real 43m05.791s
user 32m10.220s
sys 05m24.000s
disk-usage 1,283MB

So, if you're inclined to do a dist-check make sure you have 1.3Gigs
free disk space and 45 minutes to wait. Disk requirements might be
different on different architectures (PPC and SPARC probably require