next MakeMaker is DOOMED! Slide #15

Example: Writing META.yml

Here's what it looks like in the Unix Makefile.

# --- MakeMaker metafile section:

    metafile :
            $(NOECHO) $(ECHO) Generating META.yml
            $(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META_new.yml
            $(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#' >> META_new.yml
            $(NOECHO) $(ECHO) 'name:         ExtUtils-MakeMaker' >> META_new.yml
            $(NOECHO) $(ECHO) 'version:      6.21_03' >> META_new.yml
            $(NOECHO) $(ECHO) 'version_from: lib/ExtUtils/MakeMaker.pm' >> META_new.yml
            $(NOECHO) $(ECHO) 'installdirs:  perl' >> META_new.yml
            $(NOECHO) $(ECHO) 'requires:' >> META_new.yml
            $(NOECHO) $(ECHO) '    DirHandle:                     0' >> META_new.yml
            $(NOECHO) $(ECHO) '    File::Basename:                0' >> META_new.yml
            $(NOECHO) $(ECHO) '    File::Spec:                    0.8' >> META_new.yml
            $(NOECHO) $(ECHO) '    Pod::Man:                      0' >> META_new.yml
            $(NOECHO) $(ECHO) '' >> META_new.yml
            $(NOECHO) $(ECHO) 'distribution_type: module' >> META_new.yml
            $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.21_03' >> META_new.yml
            -$(NOECHO) $(ABSPERLRUN) -MExtUtils::Command -MFile::Compare -e 'compare (@ARGV) != 0 ? (mv or warn "Cannot move @ARGV: $$!\n") : unlink(shift);' META_new.yml META.yml

Nasty shell commands containing perl one-liners which is effectively echo'ing the file.


next ToC Copyright © 2003 Michael G Schwern