File:  [NetBSD Developer Wiki] / wikisrc / pkgsrc / targets.mdwn
Revision 1.10: download - view: text, annotated - select for diffs
Mon Feb 7 19:44:14 2011 UTC (12 years, 10 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by jym

# 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 [[!template id=man name=make section=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)
* **package-clean** to remove 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**
* **print-PLIST** to _attempt_ to generate correct packaging list
(NB! It helps, but it _doesn't_ eliminate manual work.)

For example, package updating looks like this:

[[!template id=programlisting text="""
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"

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb