# pkgsrc targets
It was proposed that we document _all_ pkgsrc targets,
but this is unreasonable and useless.
Most targets are ancilliary ones,
they exist because that's how make(1) works,
only few of them are useful for regular work.
The following targets may be useful to invoke from keyboard:
* "fetch" to fetch distribution file(s)
* "checksum" to fetch and check distribution file(s)
* "extract" to look at unmodified source
* "patch" to look at initial source
* "configure" to stop after configure stage
* "all" or "build" to stop after build stage
* "stage-install" to install under stage directory
* "test" to run package's self-tests, if any exist and supported
* "package" to create binary package before installing it
* "replace" to change (upgrade, downgrade, or just replace) installed package in-place
* "deinstall" to deinstall previous package
* "package-install" to install package and build binary package
* "install" to install package
* "bin-install" to attempt to skip building from source and use pre-built binary package
The following targets are useful in development and thus may be useful for an advanced user:
* "makesum" to fetch and generate checksum for distributed file(s)
* "makepatchsum" to (re)generate checksum for patches
* "makedistinfo" to (re)generate "distinfo" file (creating checksums for distributed file and patches)
* "mps" short for "makepatchsum"
* "mdi" short for "makedistinfo"
For example, package updating looks like this:
<pre>
rm -f distinfo && su root -c "make makesum clean" && make makepatchsum
make clean && make stage-install # build
# modify patches
make makepatchsum # and build again, or
make makepatchsum && make clean && make patch # until all patches apply, if they failed at first
make print-PLIST | diff -u PLIST -
# modify PLIST
rm $(make show-var VARNAME=WRKDIR)/.PLIST* # this deserves to be another target
make stage-install
# modify PLIST again or build again
make test # just to check for regressions
su root -c "make package deinstall bin-install" # or
su root -c "make package replace"
</pre>
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb