logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Symlink — template for creating symbolic links

Authors

Zygmunt Krynicki <me@zygoon.pl> zmk 0.5.1 Jun 21, 2021 zmk.Symlink(5)

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 makeinstall 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.

Description

The template Symlink once expanded with a linkname 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.

History

The Symlink template first appeared in zmk 0.1

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))

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.

See Also