File:  [NetBSD Developer Wiki] / wikisrc / pkgsrc / targets.mdwn
Revision 1.4: download - view: text, annotated - select for diffs
Sat Dec 11 18:56:42 2010 UTC (3 years, 4 months ago) by asau
Branches: MAIN
CVS tags: HEAD
Explain "depends" and cleanup targets.

# 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:

* "depends" to build and install dependencies
* "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

Cleanup targets (in separate section because of importance):

* "clean-depends" to remove work directories for dependencies
* "clean" to remove work directory
* "distclean" to remove distribution file(s)

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>
su root -c "make depends clean-depends clean" # to catch new dependencies
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