NAME

Makefile.PL - Makefile generator for Parse::Eyapp. Developer notes

SYNOPSIS

  • When working as a developer run

    source etc/myscript

    to set the appropriate environment variables. Some variables to set are:

    PATH                  to execute eyapp, treereg, etc.
    PERL5LIB              to find any modules required
    DEVELOPER             used by many skip tests
    MACHINES              a white space string containing the machines
                          for the 'remotetest' target
    PUBLIC_PLACE          A dir to save the pdf files
  • After you checked out from the svn repository this project, and set the environment variables, try to produce a Makefile. You will surely get a warning:

    pl@nereida:~/src/perl/Parse-Eyapp$ perl Makefile.PL
    Checking if your kit is complete...
    Warning: the following files are missing in your kit:
            lib/Parse/Eyapp/Parse.pm
            lib/Parse/Eyapp/Treeregexp.pm
    Please inform the author.
    Writing Makefile for Parse::Eyapp

    This is because the files lib/Parse/Eyapp/Parse.pm and lib/Parse/Eyapp/Treeregexp.pm are derived from the respective grammars (lib/Parse/Eyapp/Parse.yp and lib/Parse/Eyapp/Treeregexp.yp).

    It will also complain about the absence of the pods

    Warning: the following files are missing in your kit:
          lib/Parse/Eyapp/MatchingTrees.pod
          lib/Parse/Eyapp/translationschemestut.pod
          lib/Parse/Eyapp/YATW.pod

    The pods are built from the templates in tt2/.

    Compile the grammars and produce the pods using the makefile makepods:

    Parse-Eyapp$ make -f makepods
    yapp -n -m 'Parse::Eyapp::Parse' -o 'lib/Parse/Eyapp/Parse.pm' lib/Parse/Eyapp/Parse.yp
    PERL5LIB=lib; eyapp -n -m 'Parse::Eyapp::Parse' -o 'lib/Parse/Eyapp/Parse.pm' lib/Parse/Eyapp/Parse.yp
    PERL5LIB=lib; perl eyapp -v -n -m Parse::Eyapp::Treeregparser -o lib/Parse/Eyapp/Treeregexp.pm lib/Parse/Eyapp/Treeregexp.yp
    rm -fR Parse-Eyapp-*.tar.gz
    cd tt2; tpage  Base.tt2 > ../lib/Parse/Eyapp/Base.pod
    cd tt2; tpage  datagenerationtut.tt2 > ../lib/Parse/Eyapp/datagenerationtut.pod
    cd tt2; tpage  debuggingtut.tt2 > ../lib/Parse/Eyapp/debuggingtut.pod
    cd tt2; tpage  defaultactionsintro.tt2 > ../lib/Parse/Eyapp/defaultactionsintro.pod
    cd tt2; tpage  Driver.tt2 > ../lib/Parse/Eyapp/Driver.pod
    cd tt2; tpage  eyappintro.tt2 > ../lib/Parse/Eyapp/eyappintro.pod
    cd tt2; tpage  eyapplanguageref.tt2 > ../lib/Parse/Eyapp/eyapplanguageref.pod
    cd tt2; tpage  MatchingTrees.tt2 > ../lib/Parse/Eyapp/MatchingTrees.pod
    cd tt2; tpage  Node.tt2 > ../lib/Parse/Eyapp/Node.pod
    cd tt2; tpage  Parse.tt2 > ../lib/Parse/Eyapp/Parse.pod
    cd tt2; tpage  Scope.tt2 > ../lib/Parse/Eyapp/Scope.pod
    cd tt2; tpage  TokenGen.tt2 > ../lib/Parse/Eyapp/TokenGen.pod
    cd tt2; tpage  translationschemestut.tt2 > ../lib/Parse/Eyapp/translationschemestut.pod
    cd tt2; tpage  Treeregexp.tt2 > ../lib/Parse/Eyapp/Treeregexp.pod
    cd tt2; tpage  YATW.tt2 > ../lib/Parse/Eyapp/YATW.pod

    This target uses Parse::Yapp to make a first compilation. Then it uses bootstrap and eyapp compiles itself. Be sure you have installed Parse::Yapp.

  • Before realising a distribution in CPAN via PAUSE do:

    make publicdist

    Remember to change the version number in Parse::Eyapp::Driver and Parse::Eyapp

  • To build the *.html files:

    make html 
  • To build pdf files:

    make pdfs
  • To build dvi files:

    make dvis
  • To make public the *.html files:

    make publichtml 
  • To make public pdf files:

    make publicpdf
  • To delete generated docs (*.html, *.pdf, etc.)

    make docclean
  • To run the tests on remote machines

    make remotetest

    (Set the environment variable MACHINES). The module GRID::Machine must be available.

  • To use Devel::Cover to study test coverage:

    make coverage
  • Run ./make_eyapp_c_tests.pl if the clean tests fail and are you in a hurry. This program builds the files in t/cleanok/ and t/cleanvok/ used to test the behavior of eyapp when executed with option '-c' (See tests t/68cleangrammar and t/69cleanwithvgrammar

DEPENDENCIES

To use this Makefile.PL as developer is convenient to have installed:

  • Template toolkit

  • Pod2LaTeX

  • LaTeX

  • pod2cpanhtml

  • Devel::Cover

  • Parse::Yapp

  • GRID::Machine

AUTHOR

Will Braswell <wbraswell@cpan.org>

LICENSE AND COPYRIGHT

Copyright © 2006, 2007, 2008, 2009 Casiano Rodriguez-Leon. Copyright © 2017 William N. Braswell, Jr. All Rights Reserved.

Parse::Yapp is Copyright © 1998, 1999, 2000, 2001, Francois Desarmenien. Parse::Yapp is Copyright © 2017 William N. Braswell, Jr. All Rights Reserved.

These modules are free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 376:

Non-ASCII character seen before =encoding in '©'. Assuming UTF-8