On Mon, Feb 04, 2002 at 07:53:10PM +0200, Jarkko Hietaniemi wrote:
> On Mon, Feb 04, 2002 at 12:13:30PM -0500, Michael G Schwern wrote:
> > On Mon, Feb 04, 2002 at 01:45:54PM +0000, Nick Ing-Simmons wrote:
> > > While you are re-factoring the thing you might like to consider the radical
> > > option of teaching it to build things itself or with perl.
> >
> > Anything else you'd like? Side order of fries? Clean your stables?
> > Get you an apple? Part the Red Sea?
>
> I guess I otherwise would sense some sarcasm in your voice but
> unfortunately my sarcasm-o-meter burned out years ago from prolonged
> exposure to myself.
For the Greek history impared, yes, what Nick suggested is the plan.
Seperate things out into methods which contain perl/XS build logic and
methods which contain make logic. From there it will be easier for
someone to add in, say, autoconf or a pure perl build. But not for a
while yet. [1]
This raises an interesting problem. It would be sensible then to
break down the MakeMaker hierarchy by build tools, something like:
gmake nmake pmake
\ | /
make mmk cons autoconf Module::Build
\ | | / /
------------------------------------
|
build tools
but then for each flavor we'll also probably still have to have an OS
specific subclass which means the # of subclasses becomes N * M [2].
There's a design pattern which addresses this problem, Bridge, which
basically says you keep the two hierarchies seperate and they
communicate via abstract methods. So the OS object might just ask the
build object "generate me some install targets based on these files
I've handed you". And the build object asks the OS object things
like, "Where's perl?" and "Where are your shared libraries located?"
Its all very neat until you have to implement it, but we're getting
ahead of ourselves.
"So, Mr. Wright, now that you've flown for 52 seconds, when will you
be providing daily non-stops to Boston for $99?"
The next release will have a TODO file of things of more immediate
concern, like fixing PREFIX and LIB and documenting prompt().
[1] I dunno, might be shorter than I think. 5.49_01 only took two
days.
[2] Where N is the number of build tools and M is the number of
OS's supported.
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
Ooops, fatal mutation in the test script.