[1680] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

Re: something useful

daemon@ATHENA.MIT.EDU (Theodore Y. Ts'o)
Fri Aug 30 18:46:42 1996

Date: Fri, 30 Aug 1996 18:46:37 -0400
From: "Theodore Y. Ts'o" <tytso@MIT.EDU>
To: Ken Raeburn <raeburn@cygnus.com>
Cc: Kev <klmitch@MIT.EDU>, krbdev@MIT.EDU
In-Reply-To: Ken Raeburn's message of 30 Aug 1996 17:01:25 -0400,
	<tx1bufs8u3e.fsf@cygnus.com>

   From: Ken Raeburn <raeburn@cygnus.com>
   Date: 30 Aug 1996 17:01:25 -0400

   Sounds like you're getting into an area that should perhaps be covered
   by automake instead of autoconf.  For the short term, your version
   will probably work okay, but for the longer term you should take it up
   with the autoconf and automake maintainers.

To quote from the automake info manual:

   Sometimes `automake' isn't enough.  Then you just lose.

Given that we need to handle shared library generation in a clean and
consistent fashion, and I doubt automake will be doing so anytime in the
near fashion --- the only sane thing that I can think of is to be able
to do parameterized macro expansion in the Makefile.in.  

When you are building a shared library, the actual files which must be
generated, and (as a result) the dependencies for building a shared
library, differ from platform to platform.  As a result, it's impossible
to perform this using the typical autoconf hack of playing games with
Makefile macros.  So instead, I asked Kevin if he could come up with a
way of doing parameterized macro expansion in autoconf.

If we hide this information inside a parameterized macro expansion which
differs from platform to platform (or based on some feature test,
although the mind boggles about how one would do feature tests that
would allow us to support shared libraries), it should make life much
simpler.

The other alternatives that have been proposed for solving this problem
are:

	1)  Putting in gmake-specific constructs into the Makefile
	(which will break the Window platform, and cause other
	compatibility headaches).  Besides, I believe it's against the
	GNU coding standards to require gmake.

	2)  From the makefile.in, put in a constrct of the form:

		make -f $(top_srcdir)/lib/@SHLIB_MAGIC@ <arg1> <arg2>

	Where <arg1>, <arg2>, etc would be things like the shared
	library name, the objects, etc.

I had assumed that there was general agreement that if we could do
simple macro substitution (i.e., one level, fixed number of arguments)
in autoconf, it would be far superior than any of the above solutions.

If anyone wants to convince me that automake will *ever* be featureful 
enough to handle the krb5 source tree, they're certain willing to try
convincing me of that fact.  (Better yet, they can deliver a fully
functional automake.  :-)

						- Ted

home help back first fref pref prev next nref lref last post