Re: top-level make file?





    Russell> Well excuse me if I read the README file!  It says:

    Russell> "To compile everything just run the MAKE script or the
    Russell> MAKE.IMAKE script."

Ooops: I had not realized there was a README with build instructions.
I have modified it to point to INSTALL (for net releases) and HACKING
(for cvs users).

    Russell> Oh, you mean I have to run a program which enables me to
    Russell> run a program which enables me to run a program which
    Russell> enables me to run a program which enables me to run a
    Russell> program just so that I can install imlib?

Exactly!!  We thrashed this out at the beginning of the GNOME cvs
activity and decided that we would only have CVS control master files,
and CVS users would have to run those extra steps.

Of course in a net release (which you can build with "make dist") it
will be the usual

   configure; make install

    Russell> What's wrong with this picture?  Is ``make'' passe or

Manually generated Makefile files are passe.  There are many good
reasons for that: automatically generated makefiles give you a certain
guarantee that dependencies will work, as well as rules like "make
uninstall".  In the future they will make packaging a breeze.

    Russell> something?  If I want to build qmail on any system, I
    Russell> unpack the .tar file and say ``make''.

My personal experience with Dominion was that at one point I re-wrote
it to use ANSI C (kind of old, eh?), and at the time I said "damn it,
I have access to at least 12 flavours of UNIX, so I will do #ifdefs
and Makefile tricks so that a user can just type make".

Then linux came along, and OSF/1, and other versions of UNIX, and I
realized that a clever Makefile and #ifdef formalism is just not
robust.  So I bought into autoconf, and wrote a tutorial on it (since
the docs are not a good tutorial).  Fortunately soon after that Tom
Tromey release automake, making autoconf much easier to digest and
making my tutorial unnecessary.

But you do have a point about compilation being a pain for cvs users.
In the GNOME project people have set up these "./autogen.sh" scripts,
and someone could do one for imlib too.  imlib is more "pure", so it
should be easier.



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