[Midnightbsd-cvs] mports: bsd.mport.mk.pod: start of bsd.mport.mk documentation.
ctriv at midnightbsd.org
ctriv at midnightbsd.org
Mon Nov 10 15:09:00 EST 2008
Log Message:
-----------
start of bsd.mport.mk documentation. The formatting of this file is not
yet complete.
Added Files:
-----------
mports/Mk/docs:
bsd.mport.mk.pod (r1.1)
-------------- next part --------------
--- /dev/null
+++ Mk/docs/bsd.mport.mk.pod
@@ -0,0 +1,1125 @@
+# $MidnightBSD: mports/Mk/docs/bsd.mport.mk.pod,v 1.1 2008/11/10 20:08:59 ctriv Exp $
+
+=head1 NAME
+
+bsd.mport.mk - Ports Tree Master Makefile
+
+=head1 SYNOPSIS
+
+.include <bsd.mport.mk>
+
+bsd.mport.mk is the master makefile for the ports tree. This man pages
+documents the public targets and variables used by user and individual
+ports.
+
+=head1 TARGETS
+
+Default targets and their behaviors:
+
+=over 4
+
+=item fetch -
+
+Retrieves ${DISTFILES} (and ${PATCHFILES} if defined) into ${DISTDIR} as
+necessary.
+
+=item fetch-list
+
+Show list of files that would be retrieved by fetch.
+
+=item fetch-recursive
+
+Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and
+dependencies into ${DISTDIR} as necessary.
+
+=item fetch-recursive-list
+
+Show list of files that would be retrieved by fetch-recursive.
+
+=item fetch-required-list
+
+Show list of files that would be retrieved by fetch-required.
+
+=item fetch-required
+
+Retrieves ${DISTFILES} (and ${PATCHFILES} if defined), for port and
+dependencies that are not already installed into ${DISTDIR}.
+
+=item all-depends-list
+
+Show all directories which are dependencies for this port.
+
+=item build-depends-list
+
+Show all directories which are build-dependencies for this port.
+
+=item package-depends-list
+
+Show all directories which are package-dependencies for this port.
+
+=item run-depends-list
+
+Show all directories which are run-dependencies for this port.
+
+=item extract
+
+Unpacks ${DISTFILES} into ${WRKDIR}.
+
+=item patch
+
+Apply any provided patches to the source.
+
+=item configure
+
+Runs either GNU configure, one or more local configure scripts or nothing,
+depending on what's available.
+
+=item build
+
+Actually compile the sources.
+
+=item fake
+
+Install the results of the build into a temporary directory.
+
+=item refake
+
+Delete the temporary directory and run make fake again.
+
+=item check-fake
+
+Run basic tests to see if the files were installed in the right location,
+and do not include the fake temporary directory.
+
+=item package
+
+Create a package from the contents of the temporary directory.
+
+=item install
+
+Install the package.
+
+=item reinstall
+
+Install the results of a build, ignoring "already installed" flag.
+
+=item deinstall
+
+Remove the installation.
+
+=item deinstall-all
+
+Remove all installations with the same PKGORIGIN.
+
+=item describe
+
+Generate a one-line description for each port for use in INDEX files and the
+like.
+
+=item describe-yaml
+
+Generate a description for the port in the YAML markup language.
+
+=item checkpatch
+
+Do a "patch -C" instead of a "patch". Note that it may give incorrect
+results if multiple patches deal with the same file.
+
+=item checksum
+
+Use distinfo to ensure that your distfiles are valid.
+
+=item checksum-recursive
+
+Run checksum in this port and all dependencies.
+
+=item makesum
+
+Generate distinfo (only do this for your own ports!).
+
+=item clean
+
+Remove ${WRKDIR} and other temporary files used for building for this
+port and its dependencies.
+
+=item config
+
+Configure options for this port (using ${DIALOG}). Automatically run prior
+to extract, patch, configure, build, install, and package.
+
+=item config-recursive
+
+Configure options for this port for this port and all dependencies.
+
+=item showconfig
+
+Display options config for this port.
+
+=item rmconfig
+
+Remove the options config for this port.
+
+=item rmconfig-recursive
+
+Remove the options config for this port and all dependencies.
+
+=item makeplist
+
+Attempt to construct a plist from the contents of a faked install. This
+generated plist will need editing before it can be used.
+
+=back
+
+Default sequence for "all" is:
+
+ check-sanity fetch checksum extract patch configure build
+
+Please read the comments in the targets section below; you
+should be able to use the pre-* or post-* targets/scripts
+(which are available for every stage except checksum) or
+override the do-* targets to do pretty much anything you want.
+
+Many of the do-* targets are wrappers around run-* targets.
+run-* targets cannot be overridden, they are the default action for the given
+do-* target. This way, you can override do-foo, twiddle some variables
+and then call 'make run-foo'.
+
+NEVER override the "regular" targets unless you want to open
+a major can of worms.
+
+=head1 VARIABLES
+
+These are meta-variables that are automatically set to the system
+you are running on. These are provided in case you need to take
+different actions for different values.
+
+ARCH - The architecture of the target machine, such as would be
+ returned by "uname -p". (Note: Ports should test against
+ ARCH, and not the host machine's architecture which is
+ MACHINE_ARCH, to enable ports to be cross-built.)
+OPSYS - Portability clause. This is the operating system the
+ makefile is being used on. Automatically set to
+ "MidnightBSD", "FreeBSD," "NetBSD," or "OpenBSD" as
+ appropriate.
+OSREL - The release version (numeric) of the operating system.
+OSVERSION - The value of __MidnightBSD_version.
+FREEBSDVERSION -
+PORTOBJFORMAT - The object format ("aout" or "elf").
+
+This is the beginning of the list of all variables that need to be
+defined in a port, listed in order that they should be included
+to fit in with existing conventions. (Exception: MAINTAINER actually
+should appear after EXTRACT_ONLY and before MASTER_SITE_BACKUP).
+
+These variables are used to identify your port.
+
+PORTNAME - Name of software. Mandatory.
+PORTVERSION - Version of software. Mandatory when no DISTVERSION is given.
+PORTREVISION - Version of port. Optional. Commonly used to indicate
+ that an update has happened that affects the port
+ framework itself, but not the distributed software
+ (e.g., local patches or Makefile changes).
+PORTEPOCH - Optional. In certain odd cases, the PORTREVISION logic
+ can be fooled by ports that appear to go backwards
+ numerically (e.g. if port-0.3 is newer than port-1998).
+ In this case, incrementing PORTEPOCH forces the revision.
+ Default: 0 (no effect).
+PKGSUBNAME - Always defined as
+ ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}
+PKGNAME - Defined as ${PKGSUBNAME}-${PORTVERSION}
+ Do not define this or PKGSUBNAME in your Makefile.
+PKGNAMEPREFIX - Prefix to specify that port is language-specific, etc.
+ Optional.
+PKGNAMESUFFIX - Suffix to specify compilation options. Optional.
+PKGVERSION - Always defined as
+ ${PORTVERSION},
+ Do not define this in your Makefile.
+UNIQUENAME - A name for your port that is globally unique. By default,
+ this is set to ${LATEST_LINK} when LATEST_LINK is set,
+ and to ${PKGNAMEPREFIX}${PORTNAME} otherwise.
+DISTVERSION - Vendor version of the distribution.
+ Default: ${PORTVERSION}
+DISTNAME - Name of port or distribution used in generating
+ WRKSRC and DISTFILES below.
+ Default:
+ ${PORTNAME}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
+CATEGORIES - A list of descriptive categories into which this port falls.
+ Mandatory.
+
+These variable describe how to fetch files required for building the port.
+
+DISTFILES - Name(s) of archive file(s) containing distribution.
+ Set this to an empty string if the port doesn't require it.
+ Default: ${DISTNAME}${EXTRACT_SUFX}
+EXTRACT_SUFX - Suffix for archive names
+ You never have to set both DISTFILES and EXTRACT_SUFX.
+ Default: .tar.bz2 if USE_BZIP2 is set, .zip if USE_ZIP is
+ set, .tar.gz otherwise.
+MASTER_SITES - Primary location(s) for distribution files if not found
+ locally. See bsd.sites.mk for common choices for
+ MASTER_SITES.
+MASTER_SITE_SUBDIR
+ - Subdirectory of MASTER_SITES. Will sometimes need to be
+ set to ${PORTNAME} for (e.g.) MASTER_SITE_SOURCEFORGE.
+ Only guaranteed to work for choices of ${MASTER_SITES}
+ defined in bsd.sites.mk.
+ Default: not set.
+PATCHFILES - Name(s) of additional files that contain distribution
+ patches. Make will look for them at PATCH_SITES (see below).
+ They will automatically be uncompressed before patching if
+ the names end with ".gz", ".bz2" or ".Z".
+ Default: not set.
+PATCH_SITES - Primary location(s) for distribution patch files
+ if not found locally.
+DIST_SUBDIR - Suffix to ${DISTDIR}. If set, all ${DISTFILES} and
+ ${PATCHFILES} will be put in this subdirectory of
+ ${DISTDIR} (see below). Also they will be fetched in this
+ subdirectory from FreeBSD mirror sites.
+ALLFILES - All of ${DISTFILES} and ${PATCHFILES}.
+IGNOREFILES - If set, don't perform checksum checks on these files.
+NOFETCHFILES - If set, don't download these files from the ${MASTER_SITES}
+ or ${MASTER_SITE_BACKUP} (but do from
+ ${MASTER_SITE_OVERRIDE})
+EXTRACT_ONLY - If set, a subset of ${DISTFILES} you want to
+ actually extract.
+ALWAYS_KEEP_DISTFILES
+ - If set, the package building cluster will save the distfiles
+ along with the packages. This may be required to comply with
+ some licenses, e.g. GPL in some cases.
+ Default: not set.
+
+(NOTE: by convention, the MAINTAINER entry (see above) should go here.)
+
+These variables are typically set in /etc/make.conf to indicate
+the user's preferred location to fetch files from. You should
+rarely need to set these.
+
+MASTER_SITE_BACKUP
+ - Backup location(s) for distribution files and patch
+ files if not found locally and ${MASTER_SITES}/${PATCH_SITES}
+ Default:
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
+MASTER_SITE_OVERRIDE
+ - If set, override the MASTER_SITES setting with this
+ value.
+MASTER_SITE_FREEBSD
+ - If set, only use ${MASTER_SITE_BACKUP} for
+ MASTER_SITES.
+CD_MOUNTPTS - List of CDROM mountpoints to look for distfiles under.
+ This variable supercedes CD_MOUNTPT, which is
+ obsolete.
+
+
+Set these if your port should not be built under certain circumstances.
+These are string variables; you should set them to the reason why
+they are necessary. Over time, many of the variables will be replaced
+by the LICENSE variable.
+
+LICENSE - The license of the port. This variable is required.
+ Run 'make license-list' to see the list of valid licenses.
+
+RESTRICTED - Prevent the distribution of distfiles and packages to
+ the FTP sites or on CDROM (e.g. forbidden by license
+ considerations).
+NO_CDROM - Packages and distfiles may not go on CDROM (e.g. must
+ not be re-sold) but can go on FTP sites.
+NO_PACKAGE - Port should not be packaged for ftp sites or CDROMs,
+ but distfiles can be put on ftp sites and CDROMs.
+FORBIDDEN - Package build should not be attempted because of
+ security vulnerabilities.
+IGNORE - Package build should be skipped entirely (e.g.
+ because of serious unfixable problems in the build,
+ because it cannot be manually fetched, etc). Error
+ logs will not appear on pointyhat, so this should be
+ used sparingly.
+BROKEN - Port is believed to be broken. Package builds will
+ still be attempted on the pointyhat package cluster to
+ test this assumption.
+DEPRECATED - Port is deprecated to install. Advisory only.
+EXPIRATION_DATE
+ - If DEPRECATED is set, determines a date when
+ the port is planed to remove. The date format is
+ ISO 8601 (YYYY-MM-DD).
+
+DISABLE_VULNERABILITIES
+ - If set, do not check if the port is listed in the
+ vulnerabilities database.
+
+In addition to RESTRICTED or NO_CDROM, if only a subset of distfiles
+or patchfiles have redistribution restrictions, set the following
+to the list of such files.
+
+RESTRICTED_FILES
+ - List of files that cannot be redistributed.
+ Default: "${DISTFILES} ${PATCHFILES}" if RESTRICTED
+ or NO_CDROM is set, empty otherwise.
+
+These variables are booleans, so you don't need to set them to the reason.
+
+IS_INTERACTIVE
+ - Set this if your port needs to interact with the user
+ during any step in a package build. User can then decide
+ to skip this port by setting ${BATCH}, or compiling only
+ the interactive ports by setting ${INTERACTIVE}.
+ Default: not set.
+USE_SUBMAKE - Set this if you want that each of the port's main 6 targets
+ (extract, patch, configure, build, install and package) to be
+ executed in a separate make(1) process. Useful when one of
+ the stages needs to influence make(1) variables of the later
+ stages using ${WRKDIR}/Makefile.inc generated on the fly.
+ Default: not set.
+
+Set these if your port only makes sense to certain architectures.
+They are lists containing names for them (e.g., "amd64 i386").
+(Defaults: not set.)
+
+ONLY_FOR_ARCHS
+ - Only build ports if ${ARCH} matches one of these.
+NOT_FOR_ARCHS - Only build ports if ${ARCH} doesn't match one of these.
+ONLY_FOR_ARCHS_REASON
+ONLY_FOR_ARCHS_REASON_${ARCH}
+ - Reason why it's only for ${ONLY_FOR_ARCHS}s
+NOT_FOR_ARCHS_REASON
+NOT_FOR_ARCHS_REASON_${ARCH}
+ - Reason why it's not for ${NOT_FOR_ARCHS}s
+IA32_BINARY_PORT - Set this instead of ONLY_FOR_ARCHS if the given port
+ fetches and installs compiled i386 binaries.
+
+Dependency checking. Use these if your port requires another port
+not in the list below. (Default: empty.)
+
+EXTRACT_DEPENDS
+ - A list of "path:dir[:target]" tuples of other ports this
+ package depends on in the "extract" stage. "path" is
+ the name of a file if it starts with a slash (/), an
+ executable otherwise. make will test for the existence
+ (if it is a full pathname) or search for it in your
+ $PATH (if it is an executable) and go into "dir" to do
+ a "make all install" if it's not found. If the third
+ field ("target") exists, it will be used instead of
+ ${DEPENDS_TARGET}.
+PATCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
+ package depends on in the "patch" stage. "path" is the
+ name of a file if it starts with a slash (/), an
+ executable otherwise. make will test for the existence
+ (if it is a full pathname) or search for it in your
+ $PATH (if it is an executable) and go into "dir" to do
+ a "make all install" if it's not found. If the third
+ field ("target") exists, it will be used instead of
+ ${DEPENDS_TARGET}.
+FETCH_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
+ package depends in the "fetch" stage. "path" is the
+ name of a file if it starts with a slash (/), an
+ executable otherwise. make will test for the
+ existence (if it is a full pathname) or search for
+ it in your $PATH (if it is an executable) and go
+ into "dir" to do a "make all install" if it's not
+ found. If the third field ("target") exists, it will
+ be used instead of ${DEPENDS_TARGET}.
+BUILD_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
+ package depends to build (between the "extract" and
+ "build" stages, inclusive). The test done to
+ determine the existence of the dependency is the
+ same as FETCH_DEPENDS. If the third field ("target")
+ exists, it will be used instead of ${DEPENDS_TARGET}.
+RUN_DEPENDS - A list of "path:dir[:target]" tuples of other ports this
+ package depends to run. The test done to determine
+ the existence of the dependency is the same as
+ FETCH_DEPENDS. This will be checked during the
+ "install" stage and the name of the dependency will
+ be put into the package as well. If the third field
+ ("target") exists, it will be used instead of
+ ${DEPENDS_TARGET}.
+LIB_DEPENDS - A list of "lib:dir[:target]" tuples of other ports this
+ package depends on. "lib" is the name of a shared library.
+ make will use "ldconfig -r" to search for the library.
+ lib can contain extended regular expressions.
+DEPENDS - A list of "dir[:target]" tuples of other ports this
+ package depends on being made first. Use this only for
+ things that don't fall into the above four categories.
+ If the second field ("target") exists, it will be used
+ instead of ${DEPENDS_TARGET}.
+
+DEPENDS_TARGET
+ - The default target to execute when a port is calling a
+ dependency.
+ Default: cached-install
+
+These variables control options about how a port gets built and/or
+are shorthand notations for common sets of dependencies.
+Use these if your port uses some of the common software packages. By
+convention these should be set to 'yes', although they only need to be
+defined. Defaults: not set, unless explicitly indicated below.
+
+Note: the distinction between the USE_* and WANT_* variables, and the
+WITH_* and WITHOUT_* variables, are that the former are restricted to
+usage inside the ports framework, and the latter are reserved for user-
+settable options. (Setting USE_* in /etc/make.conf is always wrong).
+
+WITH_DEBUG - If set, debugging flags are added to CFLAGS and the
+ binaries don't get stripped by INSTALL_PROGRAM.
+ Besides, individual ports might add their specific
+ to produce binaries for debugging purposes.
+ You can override the debug flags that are passed to
+ the compiler by setting DEBUG_FLAGS. It is set to
+ "-g" at default.
+
+USE_BZIP2 - If set, this port tarballs use bzip2, not gzip, for
+ compression.
+USE_ZIP - If set, this port distfile uses zip, not tar w/[bg]zip
+ for compression.
+USE_DOS2UNIX - If set to "YES", remove the ^M from all files
+ under ${WRKSRC}. If set to a string, remove in all
+ files under ${WRKSRC} with one of these names the ^Ms.
+USE_GCC - If set, this port requires this version of gcc, either in
+ the system or installed from a port.
+USE_GCPIO - if set, uses GNU cpio. Changes the value of ${CPIO}.
+USE_GMAKE - If set, this port uses gmake.
+GMAKE - Set to path of GNU make if not in $PATH.
+ Default: gmake
+
+USE_ICONV - If set, this port uses libiconv.
+USE_GETTEXT - If set, this port uses GNU gettext (libintl).
+
+USE_GHOSTSCRIPT
+ - If set, this port needs ghostscript to both
+ build and run.
+USE_GHOSTSCRIPT_BUILD
+ - If set, this port needs ghostscript to build.
+USE_GHOSTSCRIPT_RUN
+ - If set, this port needs ghostscript to run.
+GHOSTSCRIPT_PORT
+ - The port that provides postscript functionality.
+ Some installations may wish to override the default
+ to specify a version without X11 and/or localized
+ versions for their nationality.
+WITH_GHOSTSCRIPT_GPL
+ - If set, this port uses the GPL version of the ghostscript
+ software instead of the GNU version, which is used otherwise.
+WITH_GHOSTSCRIPT_AFPL
+ - If set, this port uses the AFPL version of the ghostscript
+ software instead of the GNU version, which is used otherwise.
+
+USE_BISON - If set to build, adds a build dependancy on bison. run implies a run
+ depends, both adds a build and run depends. The legacy
+ option yes is deprecated (but implies build for now).
+
+USE_IMAKE - If set, this port uses imake. Implies USE_X_PREFIX
+XMKMF - Set to path of `xmkmf' if not in $PATH
+ Default: xmkmf -a
+USE_X_PREFIX - If set, this port installs in ${X11BASE}.
+USE_XLIB - If set, this port uses the X libraries. In the USE_LINUX
+ case the linux X libraries are referenced.
+
+USE_FREETYPE - If set, this port uses the freetype print libraries.
+USE_GL - If set, this port uses libGL
+USE_MOTIF - If set, this port uses a Motif toolkit. Implies USE_XPM.
+NO_OPENMOTIF - If set, this port uses a custom Motif toolkit
+ instead of Openmotif.
+ Used only when USE_MOTIF is set.
+WANT_LESSTIF - If set, this port uses Lesstif as Motif toolkit.
+ Used only when USE_MOTIF is set. Implies
+ NO_OPENMOTIF.
+
+USE_SDL - If set, this port uses the sdl libraries.
+ See bsd.sdl.mk for more information.
+
+USE_XFCE - If set, this port uses the XFCE libraries.
+ See bsd.xfce.mk for more information.
+
+USE_XPM - If set, this port uses the xpm graphics libraries.
+
+USE_OPENSSL - If set, this port relies on the OpenSSL package.
+
+USE_OPENLDAP - If set, this port uses the OpenLDAP libraries.
+ Implies: WANT_OPENLDAP_VER?=23
+WANT_OPENLDAP_VER
+ - Legal values are: 22, 23, 24
+ If set to an unkown value, the port is marked BROKEN.
+WANT_OPENLDAP_SASL
+ - If set, the system should use OpenLDAP libraries
+ with SASL support.
+
+USE_FAM - If set, this port uses the File Alteration Monitor.
+
+WANT_FAM_SYSTEM
+ - Legal values are: gamin (default),fam
+ If set to an unknown value, the port is marked IGNORE.
+
+USE_AUTOTOOLS - If set, this port uses various GNU autotools
+ (libtool, autoconf, autoheader, automake et al.)
+ See bsd.autotools.mk for more details.
+
+USE_SCONS - If set, this port uses the Python-based SCons build system
+ See bsd.scons.mk for more details.
+
+USE_JAVA - If set, this port relies on the Java language.
+ Implies inclusion of bsd.java.mk. (Also see
+ that file for more information on USE_JAVA_*).
+USE_PYTHON - If set, this port relies on the Python language.
+ Implies inclusion of bsd.python.mk. (Also see
+ that file for more information on USE_PYTHON_*
+ and USE_PYDISTUTILS).
+USE_RUBY - If set, this port relies on the Ruby language.
+ Implies inclusion of bsd.ruby.mk. (Also see
+ that file for more information on USE_RUBY_*).
+USE_GNUSTEP - If set, this port relies on the GNUstep system.
+ Implies the inclusion of bsd.gnustep.mk.
+ (Also see that file for more information on
+ USE_GNUSTEP_*).
+
+USE_GNOME - A list of the Gnome dependencies the port has (e.g.,
+ glib12, gtk12). Implies that the port needs Gnome.
+ Implies inclusion of bsd.gnome.mk. See bsd.gnome.mk
+ or http://www.FreeBSD.org/gnome/docs/porting.html
+ for more details.
+
+USE_WX - If set, this port uses the WxWidgets library and related
+ components. See bsd.wx.mk for more details.
+USE_KDEBASE_VER
+ - Set to 3 to use the KDE windowing system.
+ Implies inclusion of bsd.kde.mk.
+USE_KDELIBS_VER
+ - Set to 3 to use the KDE libraries.
+ Implies inclusion of bsd.kde.mk.
+USE_QT_VER - Set to 3 to use the QT3 libraries which implies bsd.kde.mk.
+ Set to 4 to use QT4 which implies bsd.qt.mk.
+
+USE_LINUX - Set to yes to say the port needs the default linux base port.
+ Set to value <X>, if the port needs emulators/linux_base-<X>.
+ If set to "7", a dependency is registered to emulators/linux_base.
+ Implies appropriate settings for STRIP and STRIP_CMD.
+USE_LINUX_PREFIX
+ - controls the action of PREFIX (see above). Only use this
+ if the port is a linux infrastructure port (e.g. contains libs
+ or a sound server which supports the FreeBSD native one),
+ use the default or the X11 prefix if it's a leaf port
+ (e.g. a game or program).
+ Implies NO_MTREE=yes, and, if INSTALLS_SHLIB is defined:
+ - USE_LINUX=yes
+ - appropriate invocation of the Linux ldconfig
+USE_LINUX_RPM - Set to yes to pull in variables and targets useful to Linux
+ RPM ports.
+ Implies inclusion of bsd.linux-rpm.mk.
+
+USE_XORG - Set to a list of xorg module dependancies. Implies includsion
+ of bsd.xorg.mk
+
+AUTOMATIC_PLIST
+ - Set to yes to enable automatic packing list generation.
+ Currently has no effect unless USE_LINUX_RPM is set.
+
+OVERRIDE_LINUX_BASE_PORT
+ - This specifies the default linux base to use, for valid
+ values have a look at the description of USE_LINUX. This is
+ an user-only variable. Don't use it in any port, it's meant
+ to be used in make.conf.
+
+LINUX_BASE_PORT
+ - This is a read-only variable, it gets set to a value which is
+ usable in *_DEPENDS (e.g. BUILD_DEPENDS=${LINUX_BASE_PORT}).
+ It honors USE_LINUX=foo and OVERRIDE_LINUX_BASE_PORT.
+USE_RC_SUBR - If set, the ports startup/shutdown script uses the common
+ routines found in etc/rc.subr and may need to
+ depend on the sysutils/rc_subr port.
+ If this is set to a list of files, these files will be
+ automatically added to ${SUB_FILES}, some %%VAR%%'s will
+ automatically be expanded, they will be installed in
+ ${PREFIX}/etc/rc.d and added to the packing list.
+USE_RCORDER - List of rc.d startup scripts to be called early in the boot
+ process. This acts exactly like USE_RC_SUBR except that
+ scripts are installed in /etc/rc.d.
+RC_SUBR - Set to path of rc.subr.
+ Default: ${LOCALBASE}/etc/rc.subr.
+
+USE_APACHE - If set, this port relies on an apache webserver.
+
+Conflict checking. Use if your port cannot be installed at the same time as
+another package.
+
+CONFLICTS - A list of package name patterns that the port conflicts
+ with, separated by blanks. The names may include shell
+ pattern meta-characters "*", "?", "[", "]", and "!".
+ Example: apache*-1.2* apache*-1.3.[012345] apache-*+ssl_*
+
+Various directory definitions and variables to control them.
+You rarely need to redefine any of these except WRKSRC and NO_WRKSUBDIR.
+
+DESTDIR - The path to the environment we are installing to. This is
+ only used during the final package install, at which point
+ mport.install is run chroot'ed into the DESTDIR.
+
+X11BASE - Where X11 ports install things.
+ Default: ${LOCALBASE}
+LOCALBASE - Where non-X11 ports install things.
+ Default: /usr/local
+LINUXBASE - Where Linux ports install things.
+ Default: /compat/linux
+PREFIX - Where *this* port installs its files.
+ Default: ${X11BASE} if USE_X_PREFIX is set,
+ ${LINUXBASE} if USE_LINUX_PREFIX is set,
+ otherwise ${LOCALBASE}
+
+IGNORE_PATH_CHECKS - There are some sanity checks against PREFIX and DESTDIR.
+ You can diasble these checks with defining
+ this variable, but this is not recommended!
+ Only do this if you really know what you are
+ doing. These sanity checks are the following:
+ - DESTDIR can't be /. Just leave it undefined
+ if you want to install to /.
+ - DESTDIR has to be an absolute path.
+ - DESTDIR can't have a trailing slash.
+ - PREFIX has to be an absolute path.
+ - PREFIX can't have a trailing slash.
+
+MASTERDIR - Where the port finds patches, package files, etc. Define
+ this is you have two or more ports that share most of the
+ files.
+ Default: ${.CURDIR}
+PORTSDIR - The root of the ports tree.
+ Default: /usr/mports
+DISTDIR - Where to search for and store copies of original sources
+ Default: ${PORTSDIR}/Distfiles
+PACKAGES - A top level directory where all packages go (rather than
+ going locally to each port).
+ Default: ${PORTSDIR}/Packages/${ARCH}
+WRKDIRPREFIX - The place to root the temporary working directory
+ hierarchy.
+ Default: none
+WRKDIR - A temporary working directory that gets *clobbered* on clean
+ Default: ${WRKDIRPREFIX}${.CURDIR}/work
+WRKSRC - A subdirectory of ${WRKDIR} where the distribution actually
+ unpacks to.
+ Default: ${WRKDIR}/${DISTNAME} unless NO_WRKSUBDIR is set,
+ in which case simply ${WRKDIR}
+NO_WRKSUBDIR - Assume port unpacks directly into ${WRKDIR}.
+PATCHDIR - A directory containing any additional patches you made
+ to port this software to FreeBSD.
+ Default: ${MASTERDIR}/files
+SCRIPTDIR - A directory containing any auxiliary scripts
+ Default: ${MASTERDIR}/scripts
+FILESDIR - A directory containing any miscellaneous additional files.
+ Default: ${MASTERDIR}/files
+PKGDIR - A directory containing any package creation files.
+ Default: ${MASTERDIR}
+
+
+The following change globals behavoirs for the mports system.
+
+USE_MPORT_TOOLS - If set, the mport system will use libmport to make and
+ install mport archives. The mport binary system will also
+ be used as the package database.
+
+MPORT_MAINTAINER_MODE - If set, the mports system will perform checks to see if several
+ steps are successfully completed.
+
+The following are used by the fake system. The fake system installs a dist's files into
+a temporary directory before final installatioin.
+
+FAKE_OPTS - Set options for fake. Available options:
+ libs -- fake targets need access to the port's shared libs.
+ bin -- fake targets need the port's binaries in $PATH
+ trueprefix -- the dist's makefile correctly honors PREFIX and DESTDIR.
+ prefixhack -- overide prefix, mandir and infodir at fake time.
+FAKE_INSTALLDIR - A relative directory used to by fake. An install is "faked" into
+ this dir.
+ Default: "fake-inst-${ARCH}"
+FAKE_DESTDIR - The absolute fake directory. You almost never want to set this,
+ but it can be useful for target like do-install or post-install
+ Default: ${WRKDIR}/${FAKE_INSTALLDIR}
+FAKE_MAKEARGS - Arguments passed to the dist's makefile by the default fake target.
+ Default: ${DESTDIRNAME}=${FAKE_DESTDIR}
+FAKE_TARGET - When fake runs the dist's makefile, this is the target used.
+ Default: ${INSTALL_TARGET}
+FAKE_SETUP - A list of environment variables used to create the fake environment,
+ suitable for use with env. This variable should be considered read-
+ only. It is documented because often it is useful for calling make
+ in {pre,post}-install.
+SKIP_FAKE_CHECK - If MPORT_MAINTAINER_MODE is set, then each file in the plist will
+ checked to see if it contains ${FAKE_DESTDIR}. Sometimes this
+ produces false positives (a file contains the fake destdir, but
+ its presence is harmless). This variable is a list of files that
+ will not be checked.
+
+Variables that serve as convenient "aliases" for your *-install targets.
+Use these like: "${INSTALL_PROGRAM} ${WRKSRC}/prog ${PREFIX}/bin".
+
+INSTALL_PROGRAM
+ - A command to install binary executables. (By
+ default, also strips them, unless ${STRIP} is
+ overridden to be the empty string).
+INSTALL_KLD - As INSTALL_KLD, but without the STRIP.
+INSTALL_SCRIPT
+ - A command to install executable scripts.
+INSTALL_DATA - A command to install sharable data.
+INSTALL_MAN - A command to install manpages. May or not compress,
+ depending on the value of MANCOMPRESSED (see below).
+
+Boolean to control whether manpages are installed.
+
+NO_INSTALL_MANPAGES
+ - If set, this port doesn't want to install any manpages.
+ Default: not set, i.e. manpages are installed by default.
+
+Set the following to specify all manpages that your port installs.
+These manpages will be automatically listed in ${PLIST}. Depending
+on the setting of NOMANCOMPRESS, the make rules will compress the
+manpages for you.
+
+MANE<lt>sectE<gt> - A list of manpages, categorized by section. For
+ example, if your port has "man/man1/foo.1" and
+ "man/mann/bar.n", set "MAN1=foo.1" and "MANN=bar.n".
+ The available sections chars are "123456789LN".
+MLINKS - A list of E<lt>source, targetE<gt> tuples for creating links
+ for manpages. For example, "MLINKS= a.1 b.1 c.3 d.3"
+ will do an "ln -sf a.1 b.1" and "ln -sf c.3 d.3" in
+ appropriate directories. (Use this even if the port
+ installs its own manpage links so they will show up
+ correctly in ${PLIST}.)
+MANPREFIX - The directory prefix for ${MANE<lt>sectE<gt>} and ${MLINKS}.
+ Default: ${PREFIX}
+MANE<lt>sectE<gt>PREFIX
+ - If manual pages of some sections install in different
+ locations than others, use these.
+ Default: ${MANPREFIX}
+MANCOMPRESSED - This variable can take values "yes", "no" or
+ "maybe". "yes" means manpages are installed
+ compressed; "no" means they are not; "maybe" means
+ it changes depending on the value of NOMANCOMPRESS.
+ Default: "yes" if USE_IMAKE is set and NO_INSTALL_MANPAGES
+ is not set, and "no" otherwise.
+
+Set the following to specify all .info files your port installs.
+
+INFO - A list of .info files (omitting the trailing ".info");
+ only one entry per document!
+INFO_PATH - Path, where all .info files will be installed by your
+ port, relative to ${PREFIX}
+ Default: "share/info" if ${PREFIX} is equal to /usr
+ and "info" otherwise.
+
+Set the following to specify all documentation your port installs into
+${DOCSDIR}
+
+PORTDOCS - A list of files and directories relative to DOCSDIR.
+ Shell glob patterns can be used, directories include
+ the entire subtree of contained files and directories.
+ Should not be set when no documentation files are
+ installed (for example because NOPORTDOCS is defined).
+ Useful for dynamically generated documentation.
+
+Set these variables if your port doesn't need some of the steps.
+Note that there are no NO_PATCH or NO_CONFIGURE variables because
+those steps are empty by default. NO_EXTRACT is not allowed anymore
+since we need to at least create ${WRKDIR}. Also, NO_CHECKSUM is a user
+variable and is not to be set in a port's Makefile. See above for NO_PACKAGE.
+
+NO_BUILD - Use a dummy (do-nothing) build target.
+NO_INSTALL - Use a dummy (do-nothing) fake target. This may sound confusing,
+ but typically this will do what you want.
+
+Here are some variables used in various stages.
+
+For options:
+OPTIONS - List of what WITH_<option> options this port accept. The
+ format is <option> "<description>" [on|off]
+ Example:
+ FLEXRESP "Flexible response to events" off
+ which tell that an option WITH_FLEXRESP exists for this port,
+ that by default it is not defined, and that the description to
+ show to a user in the config dialog is "Flexible response to
+ events". If you have more than one option, just chain them
+ into a single variable. NOTE: To make options work, you need
+ to include bsd.port.pre.mk before you start testing the
+ WITH_xyz variables.
+
+For fetch:
+
+FETCH_CMD - Full path to ftp/http fetch command if not in $PATH.
+ Default: "/usr/bin/fetch -ARr"
+FETCH_BEFORE_ARGS
+ - Arguments to ${FETCH_CMD} before filename.
+ Default: none
+FETCH_AFTER_ARGS
+ - Arguments to ${FETCH_CMD} following filename.
+ Default: none
+FETCH_ENV - Environment to pass to ${FETCH_CMD}.
+ Default: none
+FETCH_REGET - Times to retry fetching of files on checksum errors.
+ Default: 1
+
+For extract:
+
+EXTRACT_CMD - Command for extracting archive: "bzip2" if USE_BZIP2
+ is set, "unzip" if USE_ZIP is set, "gzip" otherwise.
+EXTRACT_BEFORE_ARGS
+ - Arguments to ${EXTRACT_CMD} before filename.
+ Default: "-dc"
+EXTRACT_AFTER_ARGS
+ - Arguments to ${EXTRACT_CMD} following filename.
+ default: "| tar -xf -"
+EXTRACT_PRESERVE_OWNERSHIP
+ - Normally, when run as "root", the extract stage will
+ change the owner and group of all files under ${WRKDIR}
+ to 0:0. Set this variable if you want to turn off this
+ feature.
+
+For makesum:
+
+NO_SIZE - Don't record size data in distinfo, needed
+ when the master site does not report file
+ sizes, or when multiple valid versions of
+ a distfile, having different sizes, exist.
+
+For patch:
+
+EXTRA_PATCHES - Define this variable if you have patches not in
+ ${PATCHDIR}. This usually happens when you need to
+ do some pre-processing before some distribution
+ patches can be applied. In that case, fetch them as
+ extra distfiles, put the processed results in
+ ${WRKDIR}, then point EXTRA_PATCHES to them.
+ The patches specified by this variable will be
+ applied after the normal distribution patches but
+ before those in ${PATCHDIR}.
+PATCH_WRKSRC - Directory to apply patches in.
+ Default: ${WRKSRC}
+
+For configure:
+
+HAS_CONFIGURE - If set, this port has its own configure script. The
+ configure stage will not do anything if this is not set.
+GNU_CONFIGURE - If set, you are using GNU configure (optional). Implies
+ HAS_CONFIGURE.
+PERL_CONFIGURE
+ - Configure using Perl's MakeMaker. Implies USE_PERL5.
+CONFIGURE_WRKSRC
+ - Directory to run configure in.
+ Default: ${WRKSRC}
+CONFIGURE_SCRIPT
+ - Name of configure script, relative to ${CONFIGURE_WRKSRC}.
+ Default: configure
+CONFIGURE_TARGET
+ - The name of target to call when GNU_CONFIGURE is
+ defined.
+ Default: ${ARCH}-portbld-freebsd${OSREL}
+CONFIGURE_ARGS
+ - Pass these args to configure if ${HAS_CONFIGURE} is set.
+ Default if GNU_CONFIGURE is set:
+ "--prefix=${PREFIX} ${CONFIGURE_TARGET}"
+ If supported by the configure script, the following will
+ also be in the default:
+ "--mandir=${MANPREFIX}/man"
+ "--infodir=${PREFIX}/${INFO_PATH}"
+ If GNU_CONFIGURE is not set, CONFIGURE_ARGS defaults to empty.
+CONFIGURE_ENV - Pass these env (shell-like) to configure if
+ ${HAS_CONFIGURE} is set.
+CONFIGURE_LOG - The name of configure log file. It will be printed to
+ the screen if configure fails.
+ Default: config.log
+CONFIGURE_FAIL_MESSAGE
+ - A message displayed to users when configure
+ fails (note: this assumes the do-configure
+ target has not been overwritten). This message
+ will be passed through /usr/bin/fmt before
+ being shown to the user.
+
+For build and install:
+
+MAKEFILE - Name of the makefile.
+ Default: Makefile
+ALL_TARGET - Default target for sub-make in build stage.
+ Default: all
+BUILD_WRKSRC - Directory to do build in (default: ${WRKSRC}).
+MAKE_ENV - Additional environment vars passed to sub-make in build
+ and install stages.
+ Default: see below
+MAKE_ARGS - Any extra arguments to sub-make in build and install stages.
+ Default: none
+
+For install (really for fake):
+
+INSTALL_TARGET
+ - Default target for sub-make in install stage.
+ Default: install
+INSTALL_WRKSRC
+ - Directory to install from
+ Default: ${WRKSRC}
+NO_MTREE - If set, will not invoke mtree from bsd.port.mk from
+ the "install" target.
+MTREE_FILE - The name of the mtree file.
+ Default: /etc/mtree/BSD.x11.dist if USE_X_PREFIX is set,
+ /etc/mtree/BSD.local.dist otherwise.
+PLIST_DIRS - Directories to be added to packing list
+PLIST_FILES - Files and symbolic links to be added to packing list
+
+PLIST - Name of the `packing list' file.
+ Change this to ${WRKDIR}/PLIST or something if you
+ need to write to it. (It is not a good idea for a port
+ to write to any file outside ${WRKDIR} during a normal
+ build.)
+ Default: ${PKGDIR}/pkg-plist
+TMPPLIST - Name of the `packing list' file after processing
+ Default: ${WRKDIR}/.PLIST.mktmp
+PLIST_SUB - List of "variable=value" pair for substitution in ${PLIST}
+ Default: see below
+
+SUB_FILES - Files that should be passed through sed and redirected to
+ ${WRKDIR}.
+ - For each file specified in SUB_FILES, there must be a
+ corresponding file in ${FILESDIR} whose suffix is ".in". For
+ instance, if the Makefile specifies "SUB_FILES= pkg-message"
+ then there must be a file called pkg-message.in in
+ ${FILESDIR}.
+ - The substitution process is the same as PLIST_FILES, as
+ described below except that any line beginning with @comment
+ is deleted.
+SUB_LIST - List of "variable=value" pair for substitution in ${SUB_FILES}
+ Some pairs are added by default: eg. PREFIX=${PREFIX}
+
+INSTALLS_SHLIB
+ - If set, bsd.port.mk will automatically run ldconfig commands
+ from post-install and also add appropriate @exec/@unexec
+ directives to directories listed in LDCONFIG_DIRS. (deprecated)
+ If USE_LINUX_PREFIX is defined, the Linux version of ldconfig
+ will be used instead of the native FreeBSD version (in such
+ case, LDCONFIG_DIRS is ignored).
+LDCONFIG_DIRS - List of directories to run ldconfig if INSTALLS_SHLIB is set.
+ Note that this is passed through sed just like the
+ rest of PLIST, so ${PLIST_SUB} substitutions also
+ apply here. It is recommended that you use
+ %%PREFIX%% for ${PREFIX}, %%LOCALBASE%% for
+ ${LOCALBASE_REL} and %%X11BASE%% for ${X11BASE_REL}.
+ Default: %%PREFIX%%/lib
+USE_LDCONFIG - If set to "yes", it replaces the old variable INSTALLS_SHLIB.
+ Otherwise, it can be set to a list of directories to be added to
+ ${PREFIX}/libdata/ldconfig/${UNIQUENAME}. Note that this
+ directory is used by ldconfig startup script, it is meant to
+ replace ldconfig scripts installed by some ports as (sometimes)
+ 000.${UNQUENAME}.sh. If USE_LINUX_PREFIX is defined, then the
+ Linux version of ldconfig will be used instead (and LDCONFIG_DIRS
+ is ignored).
+USE_LDCONFIG32
+ - Same as USE_LDCONFIG but the target file is
+ ${PREFIX}/libdata/ldconfig32/${UNIQUENAME} instead.
+ Note: that should only be used on 64-bit architectures.
+
+DOCSDIR - Name of the directory to install the packages docs in.
+ Default: ${PREFIX}/share/doc/${PORTNAME}
+EXAMPLESDIR - Name of the directory to install the packages examples in.
+ Default: ${PREFIX}/share/examples/${PORTNAME}
+DATADIR - Name of the directory to install the packages shared data in.
+ Default: ${PREFIX}/share/${PORTNAME}
+
+DESKTOPDIR - Name of the directory to install ${DESKTOP_ENTRIES} in.
+ Default: ${PREFIX}/share/applications
+DESKTOP_ENTRIES
+ - List of desktop entry files to generate and install in
+ ${DESKTOPDIR}. The format is
+ "Name" "Comment" "Icon" "Exec" "Categories" StartupNotify
+ Rules:
+ * Only add desktop entries for applications which do not
+ require a terminal (ie. X applications).
+ * If the upstream distribution already installs .desktop
+ files, you do not need to use this.
+ * If you require a more elaborate .desktop file than this
+ variable permits, write it yourself and install it
+ in ${DESKTOPDIR}.
+ Notes:
+ * Comment and Icon may be empty strings (""). Categories
+ may be an empty string in some cases (see below). The
+ other fields are mandatory.
+ * If Categories is an empty string, bsd.port.mk will try
+ to deduce a default value using the CATEGORIES variable.
+ If the deduction fails, you will have to set Categories
+ manually. You should check the generated value using
+ "make desktop-categories", and override it if necessary.
+ * Exec will also be used to name the .desktop file.
+ * The files will be automatically added to ${PLIST}.
+ Example:
+ "X Window Information" \
+ "Get information about X windows" \
+ "wininfo.png" \
+ "wininfo" \
+ "Application;System;" \
+ true
+ See http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
+ for an explanation of the fields. If you need to create more
+ than one file, just chain them into a single variable.
+
+Note that the install target will automatically add manpages (see
+above) and also substitute special sequences of characters (delimited
+by "%%") as defined in PLIST_SUB to generate ${TMPPLIST}. For
+instance, "OSREL=${OSREL}" in PLIST_SUB causes all occurrences of
+"%%OSREL%%" in ${PLIST} to be substituted by the value of OSREL.
+${TMPPLIST} is generated before the do-install stage. If you are
+generating the packing list on-the-fly, make sure it's generated before
+do-install is called!
+
+For package:
+
+NO_LATEST_LINK
+ - Do not install the "Latest" link for package. Define this
+ if this port is a beta version of another stable port
+ which is also in the tree.
+LATEST_LINK - Install the "Latest" link for the package as ___. Define
+ this if the "Latest" link name will be incorrectly determined.
+
+This is used in all stages:
+
+SCRIPTS_ENV - Additional environment vars passed to scripts in
+ ${SCRIPTDIR} executed by bsd.port.mk.
+ Default: see below
+
+Finally, variables to change if you want a special behavior. These
+are for debugging purposes. Don't set them in your Makefile.
+
+ECHO_MSG - Used to print all the '===>' style prompts - override this
+ to turn them off.
+ Default: ${ECHO_CMD}
+PATCH_DEBUG - If set, print out more information about the patches as
+ it attempts to apply them.
+PORT_DBDIR - Where port configuration options are recorded.
+ Default: ${DESTDIR}/var/db/ports
+NO_DEPENDS - Don't verify build of dependencies.
+CHECKSUM_ALGORITHMS
+ - Different checksum algorithms to check for verifying the
+ integrity of the distfiles. The absence of the algorithm
+ in distinfo doesn't make it fail.
+ Default: md5 sha256
+NO_CHECKSUM - Don't verify the checksum. Typically used when
+ when you noticed the distfile you just fetched has
+ a different checksum and you intend to verify if
+ the port still works with it.
+USE_PACKAGE_DEPENDS
+ - Install dependencies from existing packages instead
+ of building the port from scratch.
+INSTALL_AS_USER
+ - Define this to install as the current user, intended
+ for systems where you have no root access.
+DISABLE_SIZE - Do not check the size of a distfile even if the SIZE field
+ has been specified in distinfo. This is useful
+ when using an alternate FETCH_CMD.
+
+End of the list of all variables that need to be defined in a port.
+Most port authors should not need to understand anything after this point.
+
+
+=head1 HISTORY
+
+bsd.mport.mk is based on bsd.port.mk from FreeBSD 6.0. It diverged when the fake
+frame work was introduced. The fake framekwork was influenced greatly by OpenBSD's
+port system.
+
+After the fake frame work was introduced work has concentrated on standardizing
+the behavoirs of the various extensions and reorganizing the makefiles that
+comprise the mports framework.
+
+=head1 SEE ALSO
+
+L<pkg_add(1)>, L<pkg_create(1)>
+
+=head1 BUGS
+
+Many.
+
More information about the Midnightbsd-cvs
mailing list