openbsd-ports/lang/tcl/tcl.port.mk
2018-07-20 21:31:15 +00:00

44 lines
1.5 KiB
Makefile

# $OpenBSD: tcl.port.mk,v 1.17 2018/07/20 21:31:15 stu Exp $
CATEGORIES += lang/tcl
MODTCL_VERSION ?= 8.5
.if ${MODTCL_VERSION} == 8.5
_MODTCL_SPEC = tcl->=${MODTCL_VERSION},<8.6
MODTCL_LIB ?= tcl85
.elif ${MODTCL_VERSION} == 8.6
_MODTCL_SPEC = tcl->=${MODTCL_VERSION},<8.7
MODTCL_LIB ?= tcl86
.endif
MODTCL_BIN ?= ${LOCALBASE}/bin/tclsh${MODTCL_VERSION}
MODTCL_INCDIR ?= ${LOCALBASE}/include/tcl${MODTCL_VERSION}
MODTCL_TCLDIR ?= ${LOCALBASE}/lib/tcl
MODTCL_MODDIR ?= ${LOCALBASE}/lib/tcl/modules
MODTCL_LIBDIR ?= ${MODTCL_TCLDIR}/tcl${MODTCL_VERSION}
MODTCL_CONFIG ?= ${MODTCL_LIBDIR}/tclConfig.sh
MODTCL_BUILD_DEPENDS ?= ${_MODTCL_SPEC}:lang/tcl/${MODTCL_VERSION}
MODTCL_RUN_DEPENDS ?= ${_MODTCL_SPEC}:lang/tcl/${MODTCL_VERSION}
MODTCL_LIB_DEPENDS ?= ${_MODTCL_SPEC}:lang/tcl/${MODTCL_VERSION}
MODTCL_WANTLIB ?= ${MODTCL_LIB}
# Handle the two most commonly used methods
# for starting up executable Tcl scripts.
# See http://wiki.tcl.tk/812 for more information.
# Set 'tclsh' for executable scripts (in-place modification).
# Do not convert (tcl|wi)sh to (tclsh|wish), or the MODTCL_WISH_ADJ
# macro below will be broken.
MODTCL_TCLSH_ADJ = perl -pi \
-e '$$. == 1 && s!/\S*(?:/env\s+|bin/)(?:tcl|wi)sh\S*(\s+.+)?$$!${MODTCL_BIN}$$1!;' \
-e '$$. >= 3 && $$. <= 30 && s!exec\s+(?:tcl|wi)sh.*$$!exec ${MODTCL_BIN} "\$$0" \$${1+"\$$@"}!;' \
-e 'close ARGV if eof;'
# Same for 'wish'.
MODTCL_WISH_ADJ = ${MODTCL_TCLSH_ADJ:S/tclsh/wish/}
SUBST_VARS += MODTCL_VERSION MODTCL_BIN