.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "MAKEPPBUILTIN 1" .TH MAKEPPBUILTIN 1 "2014-09-11" "perl v5.20.0" "Makepp" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" makeppbuiltin \-\- Stand\-alone access to builtin commands in makepp .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fB?:\fR\ \-?,\ \&\fBA:\fR\ \-A, \-\-args\-file, \-\-arguments\-file,\ \&\fBD:\fR\ $\fI\s-1DIRECTNAME\s0\fR\s-1FLAGS\s0,\ \&\fBH:\fR\ \-h, \-\-help,\ \&\fBI:\fR\ \-I, \-\-include, \-\-include\-dir,\ \&\fBM:\fR\ \-M, \f(CW$MAKEPPBUILTINFLAGS\fR, \-\-module,\ \&\fBV:\fR\ \-V, \-\-version .PP \&\fBmakeppbuiltin\fR [\ \fImetaoption\fR\ ...\ ] \fIcommand\fR \-?|\-\-help .PP \&\fBmppb\fR [\ \fImetaoption\fR\ ...\ ] \fIcommand\fR \-?|\-\-help .PP \&\fBmakeppbuiltin\fR [\ \fImetaoption\fR\ ...\ ] \fIcommand\fR [\ \fIoption\fR\ ...\ ] [\ \fIargument\fR\ ...\ ] .PP \&\fBmppb\fR [\ \fImetaoption\fR\ ...\ ] \fIcommand\fR [\ \fIoption\fR\ ...\ ] [\ \fIargument\fR\ ...\ ] .PP or .PP ln makeppbuiltin \fIcommand\fR .PP \&\fIcommand\fR \-?|\-\-help .PP \&\fIcommand\fR [\ \fIoption\fR\ ...\ ] [\ \fIargument\fR\ ...\ ] .PP 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 \f(CW&install\fR, but there is no corresponding \f(CW&uninstall\fR target. Or you need a feature not usually found in the Unix counterparts like \f(CW\*(C`ln \-r\*(C'\fR. That's what this command is for. .PP The commands get a simple additional \f(CW\*(C`\-\-help\*(C'\fR 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. .PP The metaoptions allow loading your own command or helper functions, but only if it comes from a module. Valid options are: .IP "\-A \fIfilename\fR" 4 .IX Item "-A filename" .PD 0 .IP "\-\-args\-file=\fIfilename\fR" 4 .IX Item "--args-file=filename" .IP "\-\-arguments\-file=\fIfilename\fR" 4 .IX Item "--arguments-file=filename" .PD Read the file and parse it as possibly quoted whitespace\- and/or newline-separated options. .IP "\-?" 4 .PD 0 .IP "\-h" 4 .IX Item "-h" .IP "\-\-help" 4 .IX Item "--help" .PD Print out a brief summary of the options. .IP "\-I \fIdirectory\fR" 4 .IX Item "-I directory" .PD 0 .IP "\-\-include=\fIdirectory\fR" 4 .IX Item "--include=directory" .IP "\-\-include\-dir=\fIdirectory\fR" 4 .IX Item "--include-dir=directory" .PD Add \fIdirectory\fR to Perl load path \f(CW@INC\fR. .IP "\-M \fImodule[=arg,...]\fR" 4 .IX Item "-M module[=arg,...]" .PD 0 .IP "\-\-module=\fImodule[=arg,...]\fR" 4 .IX Item "--module=module[=arg,...]" .PD Load module and import any functions it exports. .IP "\-V" 4 .IX Item "-V" .PD 0 .IP "\-\-version" 4 .IX Item "--version" .PD Print out the version number. .SH "DIRECT CALL" .IX Header "DIRECT CALL" If you like to call such a command more frequently, you can call it directly, by linking \f(CW\*(C`makeppbuiltin\*(C'\fR 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 \f(CW\*(C`template\*(C'\fR command (but the last would need to be escaped from the Shell): .IP "template" 4 .IX Item "template" .PD 0 .IP "template.pl" 4 .IX Item "template.pl" .IP "makepptemplate" 4 .IX Item "makepptemplate" .IP "templatepp" 4 .IX Item "templatepp" .IP "&template" 4 .IX Item "&template" .PD .SH "DIFFERENCES" .IX Header "DIFFERENCES" There are a few notable differences between the usual call within a Makeppfile rule, and a stand-alone call: .IP "Syntax" 4 .IX Item "Syntax" 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 \f(CW\*(C`*\*(C'\fR, \f(CW\*(C`&\*(C'\fR or \f(CW\*(C`|\*(C'\fR are not special to makepp and need not be escaped. .Sp \&\fBDifference:\fR 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. .IP "Variables and Functions" 4 .IX Item "Variables and Functions" Before makepp executes the rule actions, they will already have undergone expression expansion of makepp variables and functions. .Sp \&\fBDifference:\fR When called from the Shell, you will instead get unprotected Shell variables and expressions expanded, before the comand is called. .IP "Perl Code" 4 .IX Item "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. .Sp \&\fBDifference:\fR 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. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" Makeppbuiltin looks at the following environment variables: .ie n .IP "$MAKEPPBUILTINFLAGS" 4 .el .IP "\f(CW$MAKEPPBUILTINFLAGS\fR" 4 .IX Item "$MAKEPPBUILTINFLAGS" Any flags in this environment variable are interpreted as command line options before any explicit options. Quotes are interpreted like in makefiles. .IP "$\fI\s-1DIRECTNAME\s0\fR\s-1FLAGS\s0" 4 .IX Item "$DIRECTNAMEFLAGS" This variable is used instead of \f(CW$MAKEPPBUILTINFLAGS\fR when makeppbuiltin is linked to \fIdirectname\fR as explained under \*(L"\s-1DIRECT CALL\*(R"\s0. .SH "AUTHOR" .IX Header "AUTHOR" Daniel Pfeiffer (occitan@esperanto.org)