File:  [NetBSD Developer Wiki] / wikisrc / pkgsrc / targets.mdwn
Revision 1.12: download - view: text, annotated - select for diffs
Thu May 3 01:33:02 2012 UTC (11 years, 4 months ago) by wiki
Branches: MAIN
CVS tags: HEAD
web commit by mspo

    1: # pkgsrc targets
    2: 
    3: It was proposed that we document _all_ pkgsrc targets,
    4: but this is unreasonable and useless.
    5: Most targets are ancilliary ones;
    6: they exist because that's how [[!template id=man name=make section=1]] works.
    7: Only few of them are useful for regular work.
    8: 
    9: The following targets may be useful to invoke from keyboard:
   10: 
   11: * **depends** to build and install dependencies
   12: * **fetch** to fetch distribution file(s)
   13: * **checksum** to fetch and check distribution file(s)
   14: * **extract** to look at unmodified source
   15: * **patch** to look at initial source
   16: * **configure** to stop after configure stage
   17: * **all** or **build** to stop after build stage
   18: * **stage-install** to install under stage directory
   19: * **test** to run package's self-tests, if any exist and supported
   20: * **package** to create binary package before installing it
   21: * **replace** to change (upgrade, downgrade, or just replace) installed package in-place
   22: * **deinstall** to deinstall previous package
   23: * **package-install** to install package and build binary package
   24: * **install** to install package
   25: * **bin-install** to attempt to skip building from source and use pre-built binary package
   26: * **show-depends** print dependencies for building
   27: * **show-options** print available options from options.mk
   28: 
   29: Cleanup targets (in separate section because of importance):
   30: 
   31: * **clean-depends** to remove work directories for dependencies
   32: * **clean** to remove work directory
   33: * **distclean** to remove distribution file(s)
   34: * **package-clean** to remove binary package
   35: 
   36: The following targets are useful in development and thus may be useful for an advanced user:
   37: 
   38: * **makesum** to fetch and generate checksum for distributed file(s)
   39: * **makepatchsum** to (re)generate checksum for patches
   40: * **makedistinfo** to (re)generate *distinfo* file (creating checksums for distributed file and patches)
   41: * **mps** short for **makepatchsum**
   42: * **mdi** short for **makedistinfo**
   43: * **print-PLIST** to _attempt_ to generate correct packaging list
   44: (NB! It helps, but it _doesn't_ eliminate manual work.)
   45: 
   46: For example, package updating looks like this:
   47: 
   48: [[!template id=programlisting text="""
   49: su root -c "make depends clean-depends clean" # to catch new dependencies
   50: rm -f distinfo && su root -c "make makesum clean" && make makepatchsum
   51: make clean && make stage-install # build
   52: # modify patches
   53: make makepatchsum # and build again, or
   54: make makepatchsum && make clean && make patch # until all patches apply, if they failed at first
   55: make print-PLIST | diff -u PLIST -
   56: # modify PLIST
   57: make install-clean # to remove cached PLISTs and "installation done" marker
   58: make stage-install
   59: # modify PLIST again or build again
   60: make test # just to check for regressions
   61: su root -c "make package deinstall bin-install" # or
   62: su root -c "make package replace"
   63: """]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb