# 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" """]]