2003-08-02 07:07:35 +02:00
|
|
|
# $NetBSD: tools.mk,v 1.3 2003/08/02 05:07:35 grant Exp $
|
2003-08-02 05:46:34 +02:00
|
|
|
#
|
|
|
|
# handle platforms with broken tools in the base system, such as sed
|
|
|
|
# and awk.
|
|
|
|
#
|
|
|
|
# symlink the suitable versions of tools into .buildlink/bin (if they
|
2003-08-02 06:49:14 +02:00
|
|
|
# exist in the base system) and allow packages to force the use of
|
|
|
|
# pkgsrc GNU tools when they are not present in the base system by
|
|
|
|
# defining e.g. USE_GNU_TOOLS+="awk sed". version numbers are not
|
2003-08-02 05:46:34 +02:00
|
|
|
# considered.
|
|
|
|
#
|
|
|
|
# this functionality is buildlink2 only.
|
|
|
|
#
|
2003-08-02 06:49:14 +02:00
|
|
|
# packages should always use eg.
|
|
|
|
#
|
|
|
|
# USE_GNU_TOOLS+= grep
|
|
|
|
#
|
|
|
|
# to be sure not to override the setting passed by the user.
|
|
|
|
#
|
2003-08-02 05:46:34 +02:00
|
|
|
|
|
|
|
.if !defined(TOOLS_MK)
|
|
|
|
TOOLS_MK= # defined
|
|
|
|
|
|
|
|
.if empty(USE_BUILDLINK2:M[nN][oO])
|
|
|
|
_TOOLS= awk grep sed
|
|
|
|
|
|
|
|
# define which platforms already have GNU tools, so no need to pull in
|
|
|
|
# the pkgsrc versions.
|
|
|
|
_TOOLS_OPSYS_HAS_GNU.awk+= FreeBSD-*-* Linux-*-* NetBSD-*-* OpenBSD-*-*
|
|
|
|
_TOOLS_OPSYS_HAS_GNU.grep+= Darwin-*-* FreeBSD-*-* Linux-*-*
|
|
|
|
_TOOLS_OPSYS_HAS_GNU.grep+= NetBSD-*-* OpenBSD-*-*
|
|
|
|
_TOOLS_OPSYS_HAS_GNU.sed+= Linux-*-*
|
|
|
|
|
|
|
|
# where said tool is completely unusable, and no suitable replacement
|
|
|
|
# is available.
|
|
|
|
_TOOLS_OPSYS_INCOMPAT.awk+= # empty
|
|
|
|
_TOOLS_OPSYS_INCOMPAT.grep+= # empty
|
|
|
|
|
|
|
|
# Solaris includes a less broken sed in /usr/xpg4/bin, which is mostly
|
|
|
|
# adequate for pkgsrc internal use, but pkg builds have shown they
|
|
|
|
# demand more, so mark it incompatible.
|
|
|
|
_TOOLS_OPSYS_INCOMPAT.sed+= SunOS-*-*
|
|
|
|
|
|
|
|
# a suitable alternative version is available in the base system, as
|
|
|
|
# eg. ${AWK}, ${SED}, ... refer to defs.*.mk for the definitions.
|
|
|
|
_TOOLS_REPLACE_OPSYS.awk+= SunOS-*-*
|
|
|
|
_TOOLS_REPLACE_OPSYS.grep+= SunOS-*-*
|
|
|
|
_TOOLS_REPLACE_OPSYS.sed+= # empty
|
|
|
|
|
|
|
|
# what GNU tools did the package or user ask for, and does the OS
|
|
|
|
# already have it?
|
|
|
|
.for _tool_ in ${USE_GNU_TOOLS}
|
|
|
|
_TOOLS_NEED_GNU.${_tool_}= YES
|
|
|
|
. for _pattern_ in ${_TOOLS_OPSYS_HAS_GNU.${_tool_}}
|
|
|
|
. if !empty(MACHINE_PLATFORM:M${_pattern_})
|
|
|
|
_TOOLS_NEED_GNU.${_tool_}= NO
|
|
|
|
. endif
|
|
|
|
. endfor
|
|
|
|
.endfor
|
|
|
|
|
|
|
|
# default to not requiring GNU tools.
|
|
|
|
.for _tool_ in ${_TOOLS}
|
|
|
|
_TOOLS_NEED_GNU.${_tool_}?= NO
|
|
|
|
_TOOLS_REPLACE.${_tool_}?= NO
|
|
|
|
|
|
|
|
# do we know it's broken?
|
|
|
|
. for _pattern_ in ${_TOOLS_OPSYS_INCOMPAT.${_tool_}}
|
|
|
|
. if !empty(MACHINE_PLATFORM:M${_pattern_})
|
|
|
|
_TOOLS_NEED_GNU.${_tool_}= YES
|
|
|
|
. endif
|
|
|
|
. endfor
|
|
|
|
|
|
|
|
# are we replacing it with a better version?
|
|
|
|
. for _pattern_ in ${_TOOLS_REPLACE_OPSYS.${_tool_}}
|
|
|
|
. if !empty(MACHINE_PLATFORM:M${_pattern_})
|
|
|
|
_TOOLS_REPLACE.${_tool_}= YES
|
|
|
|
. endif
|
|
|
|
. endfor
|
|
|
|
|
|
|
|
.endfor # ${_TOOLS}
|
|
|
|
|
|
|
|
.if ${_TOOLS_NEED_GNU.awk} == "YES" && empty(PKGPATH:Mlang/gawk)
|
|
|
|
_TOOLS_PROGNAME.gawk= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}awk
|
|
|
|
# catch the case where we are in between package installs, thus don't
|
|
|
|
# have gawk available yet.
|
|
|
|
. if exists(${_TOOLS_PROGNAME.gawk})
|
|
|
|
AWK= ${_TOOLS_PROGNAME.gawk}
|
|
|
|
. endif
|
|
|
|
BUILDLINK_DEPENDS.gawk?= gawk>=3.1.1
|
|
|
|
BUILDLINK_PKGSRCDIR.gawk?= ../../lang/gawk
|
|
|
|
BUILDLINK_DEPMETHOD.gawk?= build
|
|
|
|
BUILDLINK_PACKAGES+= gawk
|
|
|
|
BUILDLINK_PREFIX.gawk_DEFAULT= ${LOCALBASE}
|
|
|
|
BUILDLINK_FILES.gawk= bin/${GNU_PROGRAM_PREFIX}awk
|
|
|
|
EVAL_PREFIX+= BUILDLINK_PREFIX.gawk=gawk
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if ${_TOOLS_NEED_GNU.awk} == "YES" || ${_TOOLS_REPLACE.awk} == "YES"
|
|
|
|
BUILDLINK_TARGETS+= gawk-buildlink gawk-buildlink-bin
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if ${_TOOLS_NEED_GNU.grep} == "YES" && empty(PKGPATH:Mtextproc/grep)
|
|
|
|
_TOOLS_PROGNAME.grep= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}grep
|
|
|
|
. if exists(${_TOOLS_PROGNAME.grep})
|
|
|
|
GREP= ${_TOOLS_PROGNAME.grep}
|
|
|
|
. endif
|
2003-08-02 07:07:35 +02:00
|
|
|
BUILDLINK_DEPENDS.grep?= grep>=2.5.1
|
2003-08-02 05:46:34 +02:00
|
|
|
BUILDLINK_PKGSRCDIR.grep?= ../../textproc/grep
|
|
|
|
BUILDLINK_DEPMETHOD.grep?= build
|
|
|
|
BUILDLINK_PACKAGES+= grep
|
|
|
|
BUILDLINK_PREFIX.grep= ${LOCALBASE}
|
|
|
|
BUILDLINK_FILES.grep= bin/${GNU_PROGRAM_PREFIX}grep
|
|
|
|
EVAL_PREFIX+= BUILDLINK_PREFIX.grep=grep
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if ${_TOOLS_NEED_GNU.grep} == "YES" || ${_TOOLS_REPLACE.grep} == "YES"
|
|
|
|
BUILDLINK_TARGETS+= grep-buildlink grep-buildlink-bin
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if ${_TOOLS_NEED_GNU.sed} == "YES" && empty(PKGPATH:Mtextproc/gsed)
|
|
|
|
_TOOLS_PROGNAME.gsed= ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}sed
|
|
|
|
. if exists(${_TOOLS_PROGNAME.gsed})
|
|
|
|
SED= ${_TOOLS_PROGNAME.gsed}
|
|
|
|
. endif
|
|
|
|
BUILDLINK_DEPENDS.gsed?= gsed>=3.0.2
|
|
|
|
BUILDLINK_PKGSRCDIR.gsed?= ../../textproc/gsed
|
|
|
|
BUILDLINK_DEPMETHOD.gsed?= build
|
|
|
|
BUILDLINK_PACKAGES+= gsed
|
|
|
|
BUILDLINK_PREFIX.gsed_DEFAULT= ${LOCALBASE}
|
|
|
|
BUILDLINK_FILES.gsed= bin/${GNU_PROGRAM_PREFIX}sed
|
|
|
|
EVAL_PREFIX+= BUILDLINK_PREFIX.gsed=gsed
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.if ${_TOOLS_NEED_GNU.sed} == "YES" || ${_TOOLS_REPLACE.sed} == "YES"
|
|
|
|
BUILDLINK_TARGETS+= gsed-buildlink gsed-buildlink-bin
|
|
|
|
.endif
|
|
|
|
|
|
|
|
gawk-buildlink: _BUILDLINK_USE
|
|
|
|
gawk-buildlink-bin:
|
|
|
|
.if ${_TOOLS_NEED_GNU.awk} == "YES" && empty(PKGPATH:Mlang/gawk)
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
[ ! -f ${BUILDLINK_DIR}/bin/awk ] && \
|
|
|
|
${LN} -fs ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}awk \
|
|
|
|
${BUILDLINK_DIR}/bin/awk
|
|
|
|
.elif ${_TOOLS_REPLACE.awk} == "YES"
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
[ ! -f ${BUILDLINK_DIR}/bin/awk ] && \
|
|
|
|
${LN} -fs ${AWK} ${BUILDLINK_DIR}/bin/awk
|
|
|
|
.endif
|
|
|
|
|
|
|
|
grep-buildlink: _BUILDLINK_USE
|
|
|
|
grep-buildlink-bin:
|
|
|
|
.if ${_TOOLS_NEED_GNU.grep} == "YES" && empty(PKGPATH:Mtextproc/grep)
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
[ ! -f ${BUILDLINK_DIR}/bin/grep ] && \
|
|
|
|
${LN} -fs ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}grep \
|
|
|
|
${BUILDLINK_DIR}/bin/grep
|
|
|
|
.elif ${_TOOLS_REPLACE.grep} == "YES"
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
[ ! -f ${BUILDLINK_DIR}/bin/grep ] && \
|
|
|
|
${LN} -fs ${GREP} ${BUILDLINK_DIR}/bin/grep
|
|
|
|
.endif
|
|
|
|
|
|
|
|
gsed-buildlink: _BUILDLINK_USE
|
|
|
|
gsed-buildlink-bin:
|
|
|
|
.if ${_TOOLS_NEED_GNU.sed} == "YES" && empty(PKGPATH:Mtextproc/gsed)
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
[ ! -f ${BUILDLINK_DIR}/bin/sed ] && \
|
|
|
|
${LN} -fs ${LOCALBASE}/bin/${GNU_PROGRAM_PREFIX}sed \
|
|
|
|
${BUILDLINK_DIR}/bin/sed
|
|
|
|
.elif ${_TOOLS_REPLACE.sed} == "YES"
|
|
|
|
${_PKG_SILENT}${_PKG_DEBUG} \
|
|
|
|
[ ! -f ${BUILDLINK_DIR}/bin/sed ] && \
|
|
|
|
${LN} -fs ${SED} ${BUILDLINK_DIR}/bin/sed
|
|
|
|
.endif
|
|
|
|
|
|
|
|
.endif # USE_BUILDLINK2
|
|
|
|
|
|
|
|
.endif # TOOLS_MK
|