The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

Casiano Rodriguez-Leon (casiano@ull.es)

LICENCE AND COPYRIGHT

Copyright (c) 2006-2009 Casiano Rodriguez-Leon (casiano@ull.es). 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.