The order of Todo's is significant. Most urgent ones first:

- Actually use the PREREQ attribute. Currently it's only a dummy.

- Don't let extensions write to PERL_SRC/lib anymore, build perl from
  the extensions found below ext, run 'make test' and 'make install'
  on each extension (giving room for letting them fail). Move some of
  the tests from t/lib/* to the libraries.

- ExtUtils::Config, another Config.pm, that may be added to by various
  extensions.

- Run MakeMaker with DProf.

- Watch the config target. It should probably be reworked to allow
  adding extensions below the current directory without recompiling
  all packages.

- chmod +x for EXE_FILES

- DEBUG -> $(CC) -g

- Revisit SDBM_File's Makefile.PLs, maybe there's some optimization
  possible in the meantime.

- Add a FLAVOR variable that makes it easier to build debugging,
  embedded or multiplicity perls. Currently the easiest way to produce
  a debugging perl seems to be (after having built perl):

     P=/the/current/perl
     O=/some/place/for/the/current/perl     # eg /usr/local/bin/O_perl
     D=/the/place/for/the/debugging/perl    # eg /usr/local/bin/d_perl
     LIB=libperld.a
     make clobber
     ./Configure -D"archname=d_XYZ" -des    # invent your name here
     make perllib=$LIB
     make test perllib=$LIB
     mv $P $O
     make install perllib=$LIB
     cp $P $D
     cp $O $P

  It would be nice, if the Configure step could be dropped. Also nice,
  but maybe expensive, if 'make clobber' wouldn't be needed.

- The uninstall target has to be completed, it's just a sketch. It
  will be surpassed by a Dump of the objects involved in a single
  extension or so.

- Reconsider Makefile macros. The output of macro() should be the last
  before PASTHRU and none should come after that -- tough work. We
  could do that by letting the RESULT attribute contain real objects
  (Make objects: macro, rule, etc.) and first print the macros and
  then the rules. Or we could parse the contents as text.

- Make alternatives to 'ar' possible. The NeXT has libtool(1) with
  quite a different syntax, but libtool is needed to build MAB
  libraries.

- Change libperl.a to something like libperl.so.NNN on systems with
  d_shrplib defined. Something like:

    if ($Config{'d_shrplib'}){
 	$att{LIBPERL_A} =
    ####the latest of <$Config{'shrpdir'}/libperl.$Config{$so}.*>
    }

- I'd like to run all the *.PL files with something like

    GOODPERL=$(GOODPERL) $(GOODPERL) foobar.PL

  That way you could replace $Config{scriptdir} with $ENV{GOODPERL}
  and always say, it's MakeMaker's fault, when something goes wrong :)

  But why GOODPERL and not PERL and not FULLPERL? PERL is quite often
  miniperl, and FULLPERL is quite often a temporary ./perl. Sigh. I
  don't really know, if this causes problems.

- Watch what happens to the packages ExtUtils::MakeMaker, MM, MM_Unix,
  etc. during the Makefile.PL run. (Important for security aspects)

- Internal attribute NEEDS_TESTING, so a parent Makefile doesn't 'cd
  dir && make test' if there are no tests available.

- Add a C<html:> target when there has been found a general solution to
  installing html files.

- From Tim:
  > make ci does not check the return status of the commands.
  > It should probably be an MMTools function.

  > Maybe mani_do(..., "cmd %s") and mani_doall(..., "cmd %s") would be
  > handy. Both would check the return status of the command. mani_do would
  > stop at the first failure and return that status. mani_doall would
  > carry on regardless and return a count of the number of failures.

  > The mani_do* functions would allow a 'make diff =v4_22' to be
  > implemented very easily.

