.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" 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 >0, 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 .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" .\" 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 "MAKEPPCLEAN 1" .TH MAKEPPCLEAN 1 "2016-11-28" "perl v5.24.1" "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" makeppclean \-\- Stand\-alone cleanup script for makepp .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fB?:\fR\ \-?,\ \&\fBA:\fR\ \-A, \-\-args\-file, \-\-arguments\-file,\ \&\fBB:\fR\ \-b, \-\-build\-cache\-links,\ \&\fBD:\fR\ \-d,\ \&\fBE:\fR\ \-\-empty\-directories,\ \&\fBH:\fR\ \-h, \-\-help,\ \&\fBK:\fR\ \-k, \-\-keep\-src\-info,\ \&\fBL:\fR\ \-l, \-\-leave\-src\-info, \-\-log,\ \&\fBM:\fR\ \-m, \-\-makepp, \f(CW$MAKEPPCLEANFLAGS\fR, \-\-meta,\ \&\fBO:\fR\ \-\-only\-build\-cache\-links, \-\-only\-logs, \-\-only\-meta, \-\-only\-repository\-links,\ \&\fBR:\fR\ \-R, \-r, \-\-recurse, \-\-recursive, \-\-repository\-links,\ \&\fBV:\fR\ \-V, \-v, \-\-verbose, \-\-version .PP \&\fBmakeppclean\fR [\ \-b\ ] [\ \-l\ ] [\ \-R\ ] [\ \-r\ ] [\ \-v\ ] [\ \fIpath\fR\ ...\ ] .PP \&\fBmppc\fR [\ \-b\ ] [\ \-l\ ] [\ \-R\ ] [\ \-r\ ] [\ \-v\ ] [\ \fIpath\fR\ ...\ ] .PP Makeppclean efficiently removes files that were knowingly generated through makepp. For each \fIpath\fR, if \fIpath\fR is not a directory and was known to be generated by makepp by virtue of having a build info file with a matching signature, then remove \fIpath\fR and its build info file; and if \fIpath\fR is a directory, do the same for every file in \fIpath\fR, and then remove the build info directory below \fIpath\fR. \fIpath\fR defaults to \*(L".\*(R". .PP The traditional approach to removing generated files is to create a \f(CW\*(C`clean\*(C'\fR target in your makefiles whose action is to remove all of the targets. This approach has some fundamental limitations: .IP "\(bu" 2 It requires that all the relevant makefiles be loaded before cleaning. This can take quite a while. .IP "\(bu" 2 If the clean target in one makefile depends on the clean target in another makefile, then it is possible that a file that must be built in order to load one of the makefiles (e.g. because of a prebuild statement) has already been built and cleaned by the time it needs to be built again. Makepp wisely fails in this situation, rather than potentially building the same file many times during the course of a single build. .PP Provided that your intention is to remove all the generated files without regard for which makefile (if any) currently generates them, then these limitations are avoided by using makeppclean. .SH "OPTIONS" .IX Header "OPTIONS" .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 "\-b" 4 .IX Item "-b" .PD 0 .IP "\-\-build\-cache\-links" 4 .IX Item "--build-cache-links" .IP "\-\-only\-build\-cache\-links" 4 .IX Item "--only-build-cache-links" .PD Remove only links or files from a build cache. .IP "\-d" 4 .IX Item "-d" .PD 0 .IP "\-\-empty\-directories" 4 .IX Item "--empty-directories" .PD Remove directories that became empty after removing their content. Since directories are not usually created by rules, makepp does not keep track of which one it created. Therefore this applies to those, where makepp created something, whether the directory was created manually or automatically. .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 "\-k" 4 .IX Item "-k" .PD 0 .IP "\-\-keep\-src\-info" 4 .IX Item "--keep-src-info" .IP "\-\-leave\-src\-info" 4 .IX Item "--leave-src-info" .PD Leave the build info directory below each named directory. .IP "\-l" 4 .IX Item "-l" .PD 0 .IP "\-\-log" 4 .IX Item "--log" .IP "\-\-only\-logs" 4 .IX Item "--only-logs" .PD Remove only the raw logfiles, which can be many in case of traditional recursion. .IP "\-m" 4 .IX Item "-m" .PD 0 .IP "\-\-meta" 4 .IX Item "--meta" .IP "\-\-only\-meta" 4 .IX Item "--only-meta" .IP "\-\-makepp" 4 .IX Item "--makepp" .PD Remove only the meta information subdirectories. .IP "\-R" 4 .IX Item "-R" .PD 0 .IP "\-\-repository\-links" 4 .IX Item "--repository-links" .IP "\-\-only\-repository\-links" 4 .IX Item "--only-repository-links" .PD Remove only links pointing to a repository. .IP "\-r" 4 .IX Item "-r" .PD 0 .IP "\-\-recurse" 4 .IX Item "--recurse" .IP "\-\-recursive" 4 .IX Item "--recursive" .PD Descend each named directory recursively. Symbolic links are not followed. .IP "\-v" 4 .IX Item "-v" .PD 0 .IP "\-\-verbose" 4 .IX Item "--verbose" .PD Enable verbose output to \s-1STDERR.\s0 .IP "\-V" 4 .IX Item "-V" .PD 0 .IP "\-\-version" 4 .IX Item "--version" .PD Print out the version number. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" Makeppclean looks at the following environment variable: .ie n .IP "$MAKEPPCLEANFLAGS" 4 .el .IP "\f(CW$MAKEPPCLEANFLAGS\fR" 4 .IX Item "$MAKEPPCLEANFLAGS" Any flags in this environment variable are interpreted as command line options before any explicit options. Quotes are interpreted like in makefiles. .SH "AUTHOR" .IX Header "AUTHOR" Anders Johnson