Provided by: makepp_2.0.98.5-2_all bug


       makeppbuiltin -- Stand-alone access to builtin commands in makepp


       ?: -?,  A: -A,
         --arguments-file,  D: $DIRECTNAMEFLAGS,  H: -h,
         --help,  I: -I,
         --include-dir,  M: -M,
         --module,  V: -V,

       makeppbuiltin [ metaoption ... ] command -?|--help

       mppb [ metaoption ... ] command -?|--help

       makeppbuiltin [ metaoption ... ] command [ option ... ] [ argument ... ]

       mppb [ metaoption ... ] command [ option ... ] [ argument ... ]


       ln makeppbuiltin command

       command -?|--help

       command [ option ... ] [ argument ... ]

       This command allows you to call the builtin commands makepp provides, from outside makepp
       as well.  This could be necessary if you've installed things with Makeppfile targets that
       use &install, but there is no corresponding &uninstall target.  Or you need a feature not
       usually found in the Unix counterparts like "ln -r".  That's what this command is for.

       The commands get a simple additional "--help" option, which their builtin counterparts
       lack.  This works by parsing the command's option declaration.  It cannot however find
       out, what other arguments the command expects.

       The metaoptions allow loading your own command or helper functions, but only if it comes
       from a module.  Valid options are:

       -A filename
           Read the file and parse it as possibly quoted whitespace- and/or newline-separated

           Print out a brief summary of the options.

       -I directory
           Add directory to Perl load path @INC.

       -M module[=arg,...]
           Load module and import any functions it exports.

           Print out the version number.


       If you like to call such a command more frequently, you can call it directly, by linking
       "makeppbuiltin" to the name of that command.  The name of the builtin can occur anywhere
       within the file-name without directory.  So any of the following links would invoke the
       builtin "template" command (but the last would need to be escaped from the Shell):



       There are a few notable differences between the usual call within a Makeppfile rule, and a
       stand-alone call:

           Builtin commands are not parsed by the Shell within makepp.  There are subtle
           differences in how makepp quotes work, e.g. dollar signs are expanded by makepp even
           within single quotes, and need to be doubled to escape them.  Various characters, like
           "*", "&" or "|" are not special to makepp and need not be escaped.

           Difference: To start the command stand-alone you are probably using a Shell.  Here you
           must adapt such special cases to the syntactical requirements of the Shell.

       Variables and Functions
           Before makepp executes the rule actions, they will already have undergone expression
           expansion of makepp variables and functions.

           Difference: When called from the Shell, you will instead get unprotected Shell
           variables and expressions expanded, before the comand is called.

       Perl Code
           Each Makeppfile lives in its own (anonymous) Perl package.  Anything you do therein is
           available when running builtin commands.  For example, you can set variables or define
           functions, and use them within the Perl code of those commands that accept it.

           Difference: In stand-alone usage there is no such context.  Everything you need, must
           be in the Perl code you pass the command, or in modules you use.


       Makeppbuiltin looks at the following environment variables:

           Any flags in this environment variable are interpreted as command line options before
           any explicit options.  Quotes are interpreted like in makefiles.

           This variable is used instead of $MAKEPPBUILTINFLAGS when makeppbuiltin is linked to
           directname as explained under "DIRECT CALL".


       Daniel Pfeiffer (