Database
Versioning
epoch > version > revision
Prefixes
MacPorts defaults to /opt/local
, but allows alternatives prefixes.
Phases
Fetch the ${distfiles}
(e.g. source code).
Compare ${checksums}
specified in a Portfile
to the checksums of the fetched ${distfiles}
.
Extract the ${distfiles}
into working directory for build.
Apply optional patch files.
Execute ${configure.cmd}
in ${worksrcpath}
.
Execute ${build.cmd}
in ${worksrcpath}
.
Execute command to “stages” an installation into an intermediate location ${destroot}
.
Archive (a.k.a. Image) a port’s destrooted files into ${prefix}/var/macports/software
.
Extract the port’s files from the archive in ${prefix}/var/macports/software
to their final installed locations, usually in ${prefix}
.
PortGroup
Rolling release (synced with ports tree) of utility functions to help make Portfiles more concice and declarative.
Variants
Maximum flexibility, but brings a lot of headache. Prefer non-conflicting subports if possible.
Subports
A directive used in Portfile to generate multiple port definitions from a single Portfile.
C++ stdlib
The default C++ runtime on OS X 10.9 and later is libc++ from LLVM which supports C++11.
For older OS X versions, MacPorts will install a functional libc++ toolchain by default to replace the ancient version of libstdc++ OS X shipped.
On Linux libstdc++ (The GNU C++ Library) is more ubiquitous.