Annotation of wikisrc/pkgsrc/targets.mdwn, revision 1.7

1.1       asau        1: # pkgsrc targets
                      2: 
                      3: It was proposed that we document _all_ pkgsrc targets,
                      4: but this is unreasonable and useless.
1.6       asau        5: Most targets are ancilliary ones;
1.7     ! asau        6: they exist because that's how make(1) works.
        !             7: Only few of them are useful for regular work.
1.1       asau        8: 
                      9: The following targets may be useful to invoke from keyboard:
1.2       asau       10: 
1.4       asau       11: * "depends" to build and install dependencies
1.3       asau       12: * "fetch" to fetch distribution file(s)
                     13: * "checksum" to fetch and check distribution file(s)
1.1       asau       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
1.3       asau       25: * "bin-install" to attempt to skip building from source and use pre-built binary package
                     26: 
1.4       asau       27: Cleanup targets (in separate section because of importance):
                     28: 
                     29: * "clean-depends" to remove work directories for dependencies
                     30: * "clean" to remove work directory
                     31: * "distclean" to remove distribution file(s)
1.6       asau       32: * "package-clean" to remove binary package
1.4       asau       33: 
1.3       asau       34: The following targets are useful in development and thus may be useful for an advanced user:
                     35: 
                     36: * "makesum" to fetch and generate checksum for distributed file(s)
                     37: * "makepatchsum" to (re)generate checksum for patches
                     38: * "makedistinfo" to (re)generate "distinfo" file (creating checksums for distributed file and patches)
                     39: * "mps" short for "makepatchsum"
                     40: * "mdi" short for "makedistinfo"
1.5       asau       41: * "print-PLIST" to _attempt_ to generate correct packaging list
                     42: (NB! It helps, but it _doesn't_ eliminate manual work.)
1.1       asau       43: 
                     44: For example, package updating looks like this:
                     45: <pre>
1.4       asau       46: su root -c "make depends clean-depends clean" # to catch new dependencies
1.1       asau       47: rm -f distinfo && su root -c "make makesum clean" && make makepatchsum
                     48: make clean && make stage-install # build
                     49: # modify patches
                     50: make makepatchsum # and build again, or
                     51: make makepatchsum && make clean && make patch # until all patches apply, if they failed at first
                     52: make print-PLIST | diff -u PLIST -
                     53: # modify PLIST
                     54: rm $(make show-var VARNAME=WRKDIR)/.PLIST* # this deserves to be another target
                     55: make stage-install
                     56: # modify PLIST again or build again
                     57: make test # just to check for regressions
                     58: su root -c "make package deinstall bin-install" # or
                     59: su root -c "make package replace"
                     60: </pre>

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