Provided by: zmk-doc_0.5.1-2_all bug

NAME

     Symlink — template for creating symbolic links

SYNOPSIS

     include z.mk
     # "link" is any valid identifier.
     link.SymlinkTarget = target
     $(eval $(call ZMK.Expand,Symlink,link))

DESCRIPTION

     The template Symlink once expanded with a link name to creates rules for creating, removing,
     installing and removing a single symbolic link to a given target file.

     This template behaves like the Program template, in that it creates the symbolic link both
     locally, during development as well as when the project is installed.

TARGETS

     This module provides the following targets.

   $(link)
     This target represents the symbolic link

   all
     This phony target depends on $(link)

   clean
     This phony target removes $(link)

   install
     This target creates the symbolic link $(link) in $(link.InstallDir), with the name
     $(link.InstallName) The target directory is automatically created if required.

   uninstall
     This phony target removes $(link) as installed by the install target.

VARIABLES

     This module provides the following variables.

   $(link).SymlinkTarget
     The target of the symbolic link.

     There is no default value. This variable must be set before expanding the template.

   $(programName).InstallDir
     The directory $(link) is installed to.

     There is no default value. This variable must be set before expanding the template. To avoid
     installation set the install directory to the special value noinst.

   $(link).InstallName
     The name of the program after installation.

     The default value is $(link) with the directory part removed.

   DESTDIR
     Path added to all installation targets.

     This variable is normally set externally, to install a compiled program into a staging area
     during construction of a compiled binary package.

BUGS

     Prior to version 0.5.1, the install target misbehaved when $(link) contains a non-empty
     directory prefix. Incorrectly, the same prefix is replicated, somewhat confusingly in the
     installed symlink.

     Consider this example:

     include z.mk
     subdir/link.SymlinkTarget = target
     subdir/link.InstallDir = $(bindir)
     $(eval $(call ZMK.Expand,Symlink,subdir/link))
     Running make install on the following example would create the symbolic link
     $(bindir)/subdir/link -> target, which was unexpected.

     This bug was given the identifier zmk-issue-80.

HISTORY

     The Symlink template first appeared in zmk 0.1

AUTHORS

     Zygmunt Krynicki <me@zygoon.pl>