gettext
perl
There are some more things you have to take into account when you create a port. This section explains the most common of those.
If your port installs one or more shared libraries, define a
USE_LDCONFIG
make variable, which will instruct
a bsd.port.mk
to run
${LDCONFIG} -m
on the directory where the
new library is installed (usually
PREFIX/lib
) during
post-install
target to register it into the
shared library cache. This variable, when defined, will also
facilitate addition of an appropriate
@exec /sbin/ldconfig -m
and
@unexec /sbin/ldconfig -R
pair into your
pkg-plist
file, so that a user who installed
the package can start using the shared library immediately and
de-installation will not cause the system to still believe the
library is there.
USE_LDCONFIG= yes
If you need, you can override the default directory
by setting the USE_LDCONFIG
value to a list of directories into which
shared libraries are to be installed. For example if your port
installs shared libraries into
PREFIX/lib/foo
and
PREFIX/lib/bar
directories
you could use the following in your
Makefile
:
USE_LDCONFIG= ${PREFIX}/lib/foo ${PREFIX}/lib/bar
Please
double-check, often this is not necessary at all or can be avoided
through -rpath
or setting LD_RUN_PATH
during linking (see lang/moscow_ml
for an example), or through a shell-wrapper which sets
LD_LIBRARY_PATH
before invoking the binary, like
www/mozilla does.
When installing 32-bit libraries on 64-bit system, use
USE_LDCONFIG32
instead.
Try to keep shared library version numbers in the
libfoo.so.0
format. Our runtime linker only
cares for the major (first) number.
When the major library version number increments in the update
to the new port version, all other ports that link to the affected
library should have their PORTREVISION
incremented,
to force recompilation with the new library version.
All FreeBSD documents are available for download at http://ftp.FreeBSD.org/pub/FreeBSD/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.