pkgsrc/mk/tools/replace.mk
jlam 25ba4810c5 Split out the tools from the same package into separate clauses so that
you can specify wanting individual tools from that package.
2005-04-28 03:57:39 +00:00

552 lines
18 KiB
Makefile

# $NetBSD: replace.mk,v 1.46 2005/04/28 03:57:39 jlam Exp $
#
# This Makefile fragment handles "replacements" of system-supplied
# tools with pkgsrc versions. The replacements are placed under
# ${TOOLS_DIR} so that they appear earlier in the search path when
# invoked using the bare name of the tool. Also, any "TOOL" variables,
# e.g. AWK, SED, etc. are set properly to the replacement tool.
#
# The tools that could be replaced with pkgsrc counterparts (usually
# GNU versions of the tools) should be listed in each package Makefile
# as:
#
# USE_TOOLS+= gawk gmake lex
#
# If a package requires yacc to generate a parser, then the package
# Makefile should contain one of the following two lines:
#
# USE_TOOLS+= yacc # any yacc will do
# USE_TOOLS+= bison # requires bison-specific features
#
# Adding either "yacc" or "bison" to USE_TOOLS will cause a "yacc" tool
# to be generated that may be used as a yacc-replacement.
#
# By default, any dependencies on the pkgsrc tools are build dependencies,
# but this may be changed by explicitly setting TOOLS_DEPMETHOD.<tool>,
# e.g.:
#
# TOOLS_DEPMETHOD.tbl= DEPENDS
#
# Continue to allow USE_GNU_TOOLS and USE_TBL until packages have been
# taught to use the new syntax.
#
.if defined(USE_GNU_TOOLS) && !empty(USE_GNU_TOOLS)
USE_TOOLS+= ${USE_GNU_TOOLS:S/^awk$/gawk/:S/^make$/gmake/:S/^sed$/gsed/}
.endif
.if defined(USE_TBL) && !empty(USE_TBL:M[yY][eE][sS])
USE_TOOLS+= tbl
.endif
# These are the platform-specific lists of system-supplied tools.
#
# XXX These should eventually just migrate over to the appropriate
# XXX pkgsrc/mk/platform/${OPSYS}.mk file.
#
.include "../../mk/tools/bootstrap.mk"
.if exists(../../mk/tools/tools.${OPSYS}.mk)
. include "../../mk/tools/tools.${OPSYS}.mk"
.endif
# This is an exhaustive list of tools for which we have pkgsrc
# replacements.
#
_TOOLS_REPLACE_LIST= awk bison cmp egrep fgrep file find gawk gm4 \
gmake grep gsed gtar gunzip gzcat gzip lex m4 \
mtree patch pax sed sh shlock tbl xargs yacc
# "TOOL" variable names associated with each of the tools
_TOOLS_VARNAME.awk= AWK
_TOOLS_VARNAME.bison= YACC
_TOOLS_VARNAME.cmp= CMP
_TOOLS_VARNAME.egrep= EGREP
_TOOLS_VARNAME.fgrep= FGREP
_TOOLS_VARNAME.file= FILE_CMD
_TOOLS_VARNAME.find= FIND
_TOOLS_VARNAME.gawk= AWK
_TOOLS_VARNAME.gm4= M4
_TOOLS_VARNAME.gmake= GMAKE
_TOOLS_VARNAME.grep= GREP
_TOOLS_VARNAME.gsed= SED
_TOOLS_VARNAME.gtar= GTAR
_TOOLS_VARNAME.gunzip= GUNZIP_CMD
_TOOLS_VARNAME.gzcat= GZCAT
_TOOLS_VARNAME.gzip= GZIP_CMD
_TOOLS_VARNAME.lex= LEX
_TOOLS_VARNAME.m4= M4
_TOOLS_VARNAME.mtree= MTREE
_TOOLS_VARNAME.patch= PATCH
_TOOLS_VARNAME.pax= PAX
_TOOLS_VARNAME.sed= SED
_TOOLS_VARNAME.sh= SH
_TOOLS_VARNAME.shlock= SHLOCK
_TOOLS_VARNAME.tbl= TBL
_TOOLS_VARNAME.xargs= XARGS
_TOOLS_VARNAME.yacc= YACC
######################################################################
# _TOOLS_USE_PKGSRC.<tool> is "yes" or "no" depending on whether we're
# using a pkgsrc-supplied tool to replace the system-supplied one. We
# use the system-supplied one if TOOLS_PLATFORM.<tool> is non-empty, or
# otherwise if this is a particular ${MACHINE_PLATFORM} listed above.
#
.for _t_ in ${_TOOLS_REPLACE_LIST}
. if defined(TOOLS_PLATFORM.${_t_}) && !empty(TOOLS_PLATFORM.${_t_})
_TOOLS_USE_PKGSRC.${_t_}?= no
. endif
_TOOLS_USE_PKGSRC.${_t_}?= yes
.endfor
.undef _t_
# TOOLS_DEPMETHOD.<tool> defaults to BUILD_DEPENDS.
.for _t_ in ${_TOOLS_REPLACE_LIST}
TOOLS_DEPMETHOD.${_t_}?= BUILD_DEPENDS
.endfor
.undef _t_
######################################################################
# For each of the blocks below, we create either symlinks or wrappers
# for each of the tools requested. We need to be careful that we don't
# get into dependency loops; do this by setting and checking the value
# of TOOLS_IGNORE.<tool>. If we're using the system-supplied tool, we
# defer the setting of TOOLS_REAL_CMD.<tool> until the loop at the end.
# "gawk" overrides "awk"
.if !defined(TOOLS_IGNORE.awk) && !empty(USE_TOOLS:Mawk) && \
empty(USE_TOOLS:Mgawk)
. if !empty(PKGPATH:Mlang/gawk)
MAKEFLAGS+= TOOLS_IGNORE.awk=
. elif !empty(_TOOLS_USE_PKGSRC.awk:M[yY][eE][sS])
TOOLS_DEPENDS.awk?= gawk>=3.1.1:../../lang/gawk
TOOLS_SYMLINK+= awk
TOOLS_REAL_CMD.awk= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}awk
. if exists(${TOOLS_REAL_CMD.awk})
${_TOOLS_VARNAME.awk}= ${TOOLS_REAL_CMD.awk}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.bison) && !empty(USE_TOOLS:Mbison)
. if !empty(PKGPATH:Mdevel/bison)
MAKEFLAGS+= TOOLS_IGNORE.bison=
. elif !empty(_TOOLS_USE_PKGSRC.bison:M[yY][eE][sS])
TOOLS_DEPENDS.bison?= bison>=1.0:../../devel/bison
TOOLS_WRAP+= bison
TOOLS_REAL_CMD.bison= ${LOCALBASE}/bin/bison
TOOLS_ARGS.bison= -y
. if exists(${TOOLS_REAL_CMD.bison})
${_TOOLS_VARNAME.bison}= ${TOOLS_REAL_CMD.bison} ${TOOLS_ARGS.bison}
. endif
. endif
TOOLS_CMD.bison= ${TOOLS_DIR}/bin/yacc
.endif
.if !defined(TOOLS_IGNORE.cmp) && !empty(USE_TOOLS:Mcmp)
. if !empty(PKGPATH:Mdevel/diffutils)
MAKEFLAGS+= TOOLS_IGNORE.cmp=
. elif !empty(_TOOLS_USE_PKGSRC.cmp:M[yY][eE][sS])
TOOLS_DEPENDS.cmp?= diffutils>=2.8.1:../../devel/diffutils
TOOLS_SYMLINK+= cmp
TOOLS_REAL_CMD.cmp= ${LOCALBASE}/bin/cmp
. if exists(${TOOLS_REAL_CMD.cmp})
${_TOOLS_VARNAME.cmp}= ${TOOLS_REAL_CMD.cmp}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.egrep) && !empty(USE_TOOLS:Megrep)
. if !empty(PKGPATH:Mtextproc/grep)
MAKEFLAGS+= TOOLS_IGNORE.egrep=
. elif !empty(_TOOLS_USE_PKGSRC.egrep:M[yY][eE][sS])
TOOLS_DEPENDS.egrep?= grep>=2.5.1:../../textproc/grep
TOOLS_SYMLINK+= egrep
TOOLS_REAL_CMD.egrep= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}egrep
. if exists(${TOOLS_REAL_CMD.egrep})
${_TOOLS_VARNAME.egrep}= ${TOOLS_REAL_CMD.egrep}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.fgrep) && !empty(USE_TOOLS:Mfgrep)
. if !empty(PKGPATH:Mtextproc/grep)
MAKEFLAGS+= TOOLS_IGNORE.fgrep=
. elif !empty(_TOOLS_USE_PKGSRC.fgrep:M[yY][eE][sS])
TOOLS_DEPENDS.fgrep?= grep>=2.5.1:../../textproc/grep
TOOLS_SYMLINK+= fgrep
TOOLS_REAL_CMD.fgrep= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}fgrep
. if exists(${TOOLS_REAL_CMD.fgrep})
${_TOOLS_VARNAME.fgrep}= ${TOOLS_REAL_CMD.fgrep}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.file) && !empty(USE_TOOLS:Mfile)
. if !empty(PKGPATH:Msysutils/file)
MAKEFLAGS+= TOOLS_IGNORE.file=
. elif !empty(_TOOLS_USE_PKGSRC.file:M[yY][eE][sS])
TOOLS_DEPENDS.file?= file>=4.13:../../sysutils/file
TOOLS_SYMLINK+= file
TOOLS_REAL_CMD.file= ${LOCALBASE}/bin/file
. if exists(${TOOLS_REAL_CMD.file})
${_TOOLS_VARNAME.file}= ${TOOLS_REAL_CMD.file}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.find) && !empty(USE_TOOLS:Mfind)
. if !empty(PKGPATH:Msysutils/findutils)
MAKEFLAGS+= TOOLS_IGNORE.find=
. elif !empty(_TOOLS_USE_PKGSRC.find:M[yY][eE][sS])
TOOLS_DEPENDS.find?= findutils>=4.1:../../sysutils/findutils
TOOLS_SYMLINK+= find
TOOLS_REAL_CMD.find= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}find
. if exists(${TOOLS_REAL_CMD.find})
${_TOOLS_VARNAME.find}= ${TOOLS_REAL_CMD.find}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.gawk) && !empty(USE_TOOLS:Mgawk)
. if !empty(PKGPATH:Mlang/gawk)
MAKEFLAGS+= TOOLS_IGNORE.gawk=
. elif !empty(_TOOLS_USE_PKGSRC.gawk:M[yY][eE][sS])
TOOLS_DEPENDS.gawk?= gawk>=3.1.1:../../lang/gawk
TOOLS_SYMLINK+= gawk
TOOLS_REAL_CMD.gawk= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}awk
. if exists(${TOOLS_REAL_CMD.gawk})
${_TOOLS_VARNAME.gawk}= ${TOOLS_REAL_CMD.gawk}
. endif
. endif
TOOLS_CMD.gawk= ${TOOLS_DIR}/bin/awk
.endif
.if !defined(TOOLS_IGNORE.gm4) && !empty(USE_TOOLS:Mgm4)
. if !empty(PKGPATH:Mdevel/m4)
MAKEFLAGS+= TOOLS_IGNORE.gm4=
. elif !empty(_TOOLS_USE_PKGSRC.gm4:M[yY][eE][sS])
TOOLS_DEPENDS.gm4?= m4>=1.4:../../devel/m4
TOOLS_SYMLINK+= gm4
TOOLS_REAL_CMD.gm4= ${LOCALBASE}/bin/gm4
. if exists(${TOOLS_REAL_CMD.gm4})
${_TOOLS_VARNAME.gm4}= ${TOOLS_REAL_CMD.gm4}
. endif
. endif
TOOLS_CMD.gm4= ${TOOLS_DIR}/bin/m4
.endif
.if !defined(TOOLS_IGNORE.gmake) && !empty(USE_TOOLS:Mgmake)
. if !empty(PKGPATH:Mdevel/gmake)
MAKEFLAGS+= TOOLS_IGNORE.gmake=
. elif !empty(_TOOLS_USE_PKGSRC.gmake:M[yY][eE][sS])
TOOLS_DEPENDS.gmake?= gmake>=3.78:../../devel/gmake
TOOLS_SYMLINK+= gmake
TOOLS_REAL_CMD.gmake= ${LOCALBASE}/bin/gmake
. if exists(${TOOLS_REAL_CMD.gmake})
${_TOOLS_VARNAME.gmake}= ${TOOLS_REAL_CMD.gmake}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.grep) && !empty(USE_TOOLS:Mgrep)
. if !empty(PKGPATH:Mtextproc/grep)
MAKEFLAGS+= TOOLS_IGNORE.grep=
. elif !empty(_TOOLS_USE_PKGSRC.grep:M[yY][eE][sS])
TOOLS_DEPENDS.grep?= grep>=2.5.1:../../textproc/grep
TOOLS_SYMLINK+= grep
TOOLS_REAL_CMD.grep= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}grep
. if exists(${TOOLS_REAL_CMD.grep})
${_TOOLS_VARNAME.grep}= ${TOOLS_REAL_CMD.grep}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.gsed) && !empty(USE_TOOLS:Mgsed)
. if !empty(PKGPATH:Mtextproc/sed)
MAKEFLAGS+= TOOLS_IGNORE.gsed=
. elif !empty(_TOOLS_USE_PKGSRC.gsed:M[yY][eE][sS])
TOOLS_DEPENDS.gsed?= gsed>=3.0.2:../../textproc/gsed
TOOLS_SYMLINK+= gsed
TOOLS_REAL_CMD.gsed= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}sed
. if exists(${TOOLS_REAL_CMD.gsed})
${_TOOLS_VARNAME.gsed}= ${TOOLS_REAL_CMD.gsed}
. endif
. endif
TOOLS_CMD.gsed= ${TOOLS_DIR}/bin/sed
.endif
.if !defined(TOOLS_IGNORE.gtar) && !empty(USE_TOOLS:Mgtar)
. if !empty(PKGPATH:Marchivers/pax)
MAKEFLAGS+= TOOLS_IGNORE.gtar=
. elif !empty(_TOOLS_USE_PKGSRC.gtar:M[yY][eE][sS])
#
# This is installed by pkgsrc bootstrap, and is never registered, so
# comment out the dependency on it.
#
#TOOLS_DEPENDS.gtar?= pax>=20040802:../../archivers/pax
TOOLS_SYMLINK+= gtar
TOOLS_REAL_CMD.gtar= ${LOCALBASE}/bin/tar
. if exists(${TOOLS_REAL_CMD.gtar})
${_TOOLS_VARNAME.gtar}= ${TOOLS_REAL_CMD.gtar}
. endif
. endif
TOOLS_CMD.gtar= ${TOOLS_DIR}/bin/tar
.endif
.if !defined(TOOLS_IGNORE.gunzip) && !empty(USE_TOOLS:Mgunzip)
. if !empty(PKGPATH:Marchivers/gzip)
MAKEFLAGS+= TOOLS_IGNORE.gunzip=
. elif !empty(_TOOLS_USE_PKGSRC.gunzip:M[yY][eE][sS])
TOOLS_DEPENDS.gunzip?= gzip-base>=1.2.4b:../../archivers/gzip-base
TOOLS_SYMLINK+= gunzip
TOOLS_REAL_CMD.gunzip= ${LOCALBASE}/bin/gunzip
. if exists(${TOOLS_REAL_CMD.gunzip})
${_TOOLS_VARNAME.gunzip}= ${TOOLS_REAL_CMD.gunzip}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.gzcat) && !empty(USE_TOOLS:Mgzcat)
. if !empty(PKGPATH:Marchivers/gzip)
MAKEFLAGS+= TOOLS_IGNORE.gzcat=
. elif !empty(_TOOLS_USE_PKGSRC.gzcat:M[yY][eE][sS])
TOOLS_DEPENDS.gzcat?= gzip-base>=1.2.4b:../../archivers/gzip-base
TOOLS_SYMLINK+= gzcat
TOOLS_REAL_CMD.gzcat= ${LOCALBASE}/bin/gzcat
. if exists(${TOOLS_REAL_CMD.gzcat})
${_TOOLS_VARNAME.gzcat}= ${TOOLS_REAL_CMD.gzcat}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.gzip) && !empty(USE_TOOLS:Mgzip)
. if !empty(PKGPATH:Marchivers/gzip)
MAKEFLAGS+= TOOLS_IGNORE.gzip=
. elif !empty(_TOOLS_USE_PKGSRC.gzip:M[yY][eE][sS])
TOOLS_DEPENDS.gzip?= gzip-base>=1.2.4b:../../archivers/gzip-base
TOOLS_SYMLINK+= gzip
TOOLS_REAL_CMD.gzip= ${LOCALBASE}/bin/gzip
. if exists(${TOOLS_REAL_CMD.gzip})
${_TOOLS_VARNAME.gzip}= ${TOOLS_REAL_CMD.gzip}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.lex) && !empty(USE_TOOLS:Mlex)
. if !empty(PKGPATH:Mdevel/flex)
MAKEFLAGS+= TOOLS_IGNORE.lex=
. elif !empty(_TOOLS_USE_PKGSRC.lex:M[yY][eE][sS])
. include "../../devel/flex/buildlink3.mk"
TOOLS_DEPENDS.lex?= ${BUILDLINK_DEPENDS.flex}:${BUILDLINK_PKGSRCDIR.flex}
TOOLS_SYMLINK+= lex
TOOLS_REAL_CMD.lex= ${LOCALBASE}/bin/flex
. if exists(${TOOLS_REAL_CMD.lex})
${_TOOLS_VARNAME.lex}= ${TOOLS_REAL_CMD.lex}
. endif
. endif
.endif
# "gm4" overrides "m4"
.if !defined(TOOLS_IGNORE.m4) && !empty(USE_TOOLS:Mm4) && \
empty(USE_TOOLS:Mgm4)
. if !empty(PKGPATH:Mdevel/m4)
MAKEFLAGS+= TOOLS_IGNORE.m4=
. elif !empty(_TOOLS_USE_PKGSRC.m4:M[yY][eE][sS])
TOOLS_DEPENDS.m4?= m4>=1.4:../../devel/m4
TOOLS_SYMLINK+= m4
TOOLS_REAL_CMD.m4= ${LOCALBASE}/bin/gm4
. if exists(${TOOLS_REAL_CMD.m4})
${_TOOLS_VARNAME.m4}= ${TOOLS_REAL_CMD.m4}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.mtree) && !empty(USE_TOOLS:Mmtree)
. if !empty(PKGPATH:Mpkgtools/mtree)
MAKEFLAGS+= TOOLS_IGNORE.mtree=
. elif !empty(_TOOLS_USE_PKGSRC.mtree:M[yY][eE][sS])
#
# This is installed by pkgsrc bootstrap, and is never registered, so
# comment out the dependency on it.
#
#TOOLS_DEPENDS.mtree?= mtree>=20040722:../../pkgtools/mtree
TOOLS_SYMLINK+= mtree
TOOLS_REAL_CMD.mtree= ${LOCALBASE}/bin/mtree
. if exists(${TOOLS_REAL_CMD.mtree})
${_TOOLS_VARNAME.mtree}= ${TOOLS_REAL_CMD.mtree}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.patch) && !empty(USE_TOOLS:Mpatch)
. if !empty(PKGPATH:Mdevel/patch)
MAKEFLAGS+= TOOLS_IGNORE.patch=
. elif !empty(_TOOLS_USE_PKGSRC.patch:M[yY][eE][sS])
TOOLS_DEPENDS.patch?= patch>=2.2:../../devel/patch
TOOLS_SYMLINK+= patch
TOOLS_REAL_CMD.patch= ${LOCALBASE}/bin/gpatch
. if exists(${TOOLS_REAL_CMD.patch})
${_TOOLS_VARNAME.patch}= ${TOOLS_REAL_CMD.patch}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.pax) && !empty(USE_TOOLS:Mpax)
. if !empty(PKGPATH:Marchivers/pax)
MAKEFLAGS+= TOOLS_IGNORE.pax=
. elif !empty(_TOOLS_USE_PKGSRC.pax:M[yY][eE][sS])
#
# This is installed by pkgsrc bootstrap, and is never registered, so
# comment out the dependency on it.
#
#TOOLS_DEPENDS.pax?= pax>=20040802:../../archivers/pax
TOOLS_SYMLINK+= pax
TOOLS_REAL_CMD.pax= ${LOCALBASE}/bin/pax
. if exists(${TOOLS_REAL_CMD.pax})
${_TOOLS_VARNAME.pax}= ${TOOLS_REAL_CMD.pax}
. endif
. endif
.endif
# "gsed" overrides "sed"
.if !defined(TOOLS_IGNORE.sed) && !empty(USE_TOOLS:Msed) && \
empty(USE_TOOLS:Mgsed)
. if !empty(PKGPATH:Mtextproc/nbsed)
MAKEFLAGS+= TOOLS_IGNORE.sed=
. elif !empty(_TOOLS_USE_PKGSRC.sed:M[yY][eE][sS])
TOOLS_DEPENDS.sed?= nbsed>=20040821:../../textproc/nbsed
TOOLS_SYMLINK+= sed
TOOLS_REAL_CMD.sed= ${LOCALBASE}/bin/nbsed
. if exists(${TOOLS_REAL_CMD.sed})
${_TOOLS_VARNAME.sed}= ${TOOLS_REAL_CMD.sed}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.sh) && !empty(USE_TOOLS:Msh)
. if !empty(PKGPATH:Mshells/pdksh)
MAKEFLAGS+= TOOLS_IGNORE.sh=
. elif !empty(_TOOLS_USE_PKGSRC.sh:M[yY][eE][sS])
TOOLS_DEPENDS.sh?= pdksh>=5.2.14:../../shells/pdksh
TOOLS_SYMLINK+= sh
TOOLS_REAL_CMD.sh= ${LOCALBASE}/bin/pdksh
. if exists(${TOOLS_REAL_CMD.sh})
${_TOOLS_VARNAME.sh}= ${TOOLS_REAL_CMD.sh}
. endif
. endif
TOOLS_CMD.sh= ${TOOLS_DIR}/bin/sh
.endif
.if !defined(TOOLS_IGNORE.shlock) && !empty(USE_TOOLS:Mshlock)
. if !empty(PKGPATH:Mpkgtools/shlock)
MAKEFLAGS+= TOOLS_IGNORE.shlock=
. elif !empty(_TOOLS_USE_PKGSRC.shlock:M[yY][eE][sS])
TOOLS_DEPENDS.shlock?= shlock>=20020114:../../pkgtools/shlock
TOOLS_SYMLINK+= shlock
TOOLS_REAL_CMD.shlock= ${LOCALBASE}/bin/shlock
. if exists(${TOOLS_REAL_CMD.shlock})
${_TOOLS_VARNAME.shlock}= ${TOOLS_REAL_CMD.shlock}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.tbl) && !empty(USE_TOOLS:Mtbl)
. if !empty(PKGPATH:Mtextproc/groff)
MAKEFLAGS+= TOOLS_IGNORE.tbl=
. elif !empty(_TOOLS_USE_PKGSRC.tbl:M[yY][eE][sS])
TOOLS_DEPENDS.tbl?= groff>=1.19nb4:../../textproc/groff
TOOLS_SYMLINK+= tbl
TOOLS_REAL_CMD.tbl= ${LOCALBASE}/bin/tbl
. if exists(${TOOLS_REAL_CMD.tbl})
${_TOOLS_VARNAME.tbl}= ${TOOLS_REAL_CMD.tbl}
. endif
. endif
.endif
.if !defined(TOOLS_IGNORE.xargs) && !empty(USE_TOOLS:Mxargs)
. if !empty(PKGPATH:Msysutils/findutils)
MAKEFLAGS+= TOOLS_IGNORE.xargs=
. elif !empty(_TOOLS_USE_PKGSRC.xargs:M[yY][eE][sS])
TOOLS_DEPENDS.xargs?= findutils>=4.1:../../sysutils/findutils
TOOLS_SYMLINK+= xargs
TOOLS_REAL_CMD.xargs= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}xargs
. if exists(${TOOLS_REAL_CMD.xargs})
${_TOOLS_VARNAME.xargs}= ${TOOLS_REAL_CMD.xargs}
. endif
. endif
.endif
# "bison" overrides "yacc"
.if !defined(TOOLS_IGNORE.yacc) && !empty(USE_TOOLS:Myacc) && \
empty(USE_TOOLS:Mbison)
. if !empty(PKGPATH:Mdevel/bison)
MAKEFLAGS+= TOOLS_IGNORE.yacc=
. elif !empty(_TOOLS_USE_PKGSRC.yacc:M[yY][eE][sS])
TOOLS_DEPENDS.yacc?= bison>=1.0:../../devel/bison
TOOLS_WRAP+= yacc
TOOLS_REAL_CMD.yacc= ${LOCALBASE}/bin/bison
TOOLS_ARGS.yacc= -y
. if exists(${TOOLS_REAL_CMD.yacc})
${_TOOLS_VARNAME.yacc}= ${TOOLS_REAL_CMD.yacc} ${TOOLS_ARGS.yacc}
. endif
. endif
.endif
# Add the dependencies for each pkgsrc-supplied tool.
.for _t_ in ${_TOOLS_REPLACE_LIST}
. if defined(TOOLS_DEPMETHOD.${_t_}) && defined(TOOLS_DEPENDS.${_t_}) && \
!empty(USE_TOOLS:M${_t_})
. if empty(${TOOLS_DEPMETHOD.${_t_}}:M${TOOLS_DEPENDS.${_t_}})
${TOOLS_DEPMETHOD.${_t_}}+= ${TOOLS_DEPENDS.${_t_}}
. endif
. endif
.endfor
######################################################################
# Set TOOLS_REAL_CMD.<tool> appropriately in the case where we are
# using the system-supplied tool. Here, we first check to see if
# TOOLS_PLATFORM.<tool> is defined. If it is, then use that as the path
# to the real command and extract any arguments into TOOLS_ARGS.<tool>.
# We also create either a wrapper or a symlink depending on whether
# there are any arguments or not. If TOOLS_PLATFORM.<tool> is undefined
# or empty, then we fall back to checking if TOOL is defined. Lastly,
# always set the TOOL name for each tool to point to the real command,
# e.g., TBL, YACC, etc., provided that "TOOL" has been associated with
# <tool>.
#
.for _t_ in ${_TOOLS_REPLACE_LIST}
. if !defined(TOOLS_IGNORE.${_t_}) && !empty(USE_TOOLS:M${_t_}) && \
!empty(_TOOLS_USE_PKGSRC.${_t_}:M[nN][oO])
. if defined(TOOLS_PLATFORM.${_t_}) && !empty(TOOLS_PLATFORM.${_t_})
TOOLS_REAL_CMD.${_t_}?= \
${TOOLS_PLATFORM.${_t_}:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}
TOOLS_ARGS.${_t_}?= \
${TOOLS_PLATFORM.${_t_}:C/^/_asdf_/1:N_asdf_*}
${_TOOLS_VARNAME.${_t_}}= ${TOOLS_PLATFORM.${_t_}}
. if !empty(TOOLS_ARGS.${_t_})
TOOLS_WRAP+= ${_t_}
. else
TOOLS_SYMLINK+= ${_t_}
. endif
. elif defined(${_TOOLS_VARNAME.${_t_}})
TOOLS_REAL_CMD.${_t_}?= \
${${_TOOLS_VARNAME.${_t_}}:C/^/_asdf_/1:M_asdf_*:S/^_asdf_//}
TOOLS_ARGS.${_t_}?= \
${${_TOOLS_VARNAME.${_t_}}:C/^/_asdf_/1:N_asdf_*}
. if !empty(TOOLS_ARGS.${_t_})
TOOLS_WRAP+= ${_t_}
. else
TOOLS_SYMLINK+= ${_t_}
. endif
. elif defined(_TOOLS_VARNAME.${_t_})
. if defined(TOOLS_REAL_CMD.${_t_})
${_TOOLS_VARNAME.${_t_}}= ${TOOLS_REAL_CMD.${_t_}} ${TOOLS_ARGS.${_t_}}
. else
${_TOOLS_VARNAME.${_t_}}= ${_TOOLS_VARNAME.${_t_}}_not_defined_
. endif
. endif
. endif
.endfor
.undef _t_