blob: 886bfeb20624ea2bb8d9e68ce1e9893ca22e7775 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
# $FreeBSD$
#
# vim: ts=8 noexpandtab
#
# Provide support to use Tcl/Tk
#
# MAINTAINER: tcltk@FreeBSD.org
#
#
# Variables set by this file:
#
# TCL_VER - Major.Minor version of Tcl
#
# TCLSH - Set to full path of the Tcl interpreter
#
# TCL_LIBDIR - Path where the Tcl libraries can be found
#
# TCL_INCLUDEDIR - Path where the Tcl C headers can be found
#
#
# TK_VER - Major.Minor version of Tk
#
# WISH - Set to full path of the Tk interpreter
#
# TK_LIBDIR - Path where the Tk libraries can be found
#
# TK_INCLUDEDIR - Path where the Tk C headers can be found
#
#
#
# Usage:
#
# USES+= PORT[:(VERSION|wrapper),build,run]
#
# where PORT is one of:
#
# - tcl - Depend on Tcl
# - tk - Depend on both Tk and Tcl (Tk itself depends on Tcl)
#
# and VERSION is in one of the following formats:
#
# - (empty) - Depend on any installed version of PORT. If none
# is installed, bring in the default version. See
# ${_TCLTK_DEFAULT_VERSION} below.
#
# - 84, 85, 86 - Depend on a specific version series of PORT.
#
# - 84+, 85+, 86+ - Depend on any installed version greater or equal to
# the specified version.
#
# If wrapper is specified, an additional dependency on tcl-wrapper or
# tk-wrapper is added. It is NOT possible to select a specific version of
# Tcl/Tk when using the wrapper.
#
# Build-time / Run-time only dependencies can be specified with build or run.
#
.if !defined(_INCLUDE_USES_TCL_MK)
_INCLUDE_USES_TCL_MK= yes
_TCLTK_VALID_VERSIONS= 84 85 86
.include "${PORTSDIR}/Mk/bsd.default-versions.mk"
_TCLTK_DEFAULT_VERSION= ${TCLTK_DEFAULT:S/.//}
.if ! ${_TCLTK_VALID_VERSIONS:M${_TCLTK_DEFAULT_VERSION}}
IGNORE= Invalid tcltk version ${TCLTK_DEFAULT}
.endif
# _TCLTK_PORT might be set to tk if USES+= tk was used
_TCLTK_PORT?= tcl
# Parse arguments
_TCL_ARGS= ${tcl_ARGS:S/,/ /g}
.if ${_TCL_ARGS:M*+}
# using the ver+ variant
_TCLTK_MIN_VERSION:= ${_TCL_ARGS:M*+:S/+//}
_TCLTK_WANTED_VERSION:= ${_TCLTK_DEFAULT_VERSION}
.endif
.if ${_TCL_ARGS:M8[4-6]}
# assume we specified a version
_TCLTK_WANTED_VERSION:= ${_TCL_ARGS:M8[4-6]}
.endif
.if ${_TCL_ARGS:Mwrapper} && defined(_TCLTK_WANTED_VERSION)
IGNORE= USES=${_TCLTK_PORT}: it is not possible to specify both a version and the wrapper: ${tcl_ARGS}
.endif
.if !defined(_TCLTK_WANTED_VERSION)
_TCLTK_WANTED_VERSION= ${_TCLTK_DEFAULT_VERSION}
.endif
# check that the specified ver+ is valid
.if ! ${_TCLTK_VALID_VERSIONS:M${_TCLTK_WANTED_VERSION}}
IGNORE= USES=${_TCLTK_PORT}: incorrect ${_TCLTK_PORT} version specified: ${_TCLTK_WANTED_VERSION}
.endif
.if defined(_TCLTK_MIN_VERSION)
. for _v in ${_TCLTK_VALID_VERSIONS}
. if ${_v} >= ${_TCLTK_MIN_VERSION} && exists(${LOCALBASE}/lib/lib${_TCLTK_PORT}${_v}.so)
_TCLTK_WANTED_VERSION= ${_v}
. endif
. endfor
.endif
#
# Exported variables
#
TCL_VER:= ${_TCLTK_WANTED_VERSION:S/8/8./}
TCL_SHLIB_VER:= ${_TCLTK_WANTED_VERSION}
TCLSH:= ${LOCALBASE}/bin/tclsh${TCL_VER}
TCL_LIBDIR:= ${LOCALBASE}/lib/tcl${TCL_VER}
TCL_INCLUDEDIR:=${LOCALBASE}/include/tcl${TCL_VER}
.if ${_TCLTK_PORT} == "tk"
TK_VER:= ${_TCLTK_WANTED_VERSION:S/8/8./}
TK_SHLIB_VER:= ${_TCLTK_WANTED_VERSION}
WISH:= ${LOCALBASE}/bin/wish${TCL_VER}
TK_LIBDIR:= ${LOCALBASE}/lib/tcl${TK_VER}
TK_INCLUDEDIR:= ${LOCALBASE}/include/tcl${TK_VER}
.endif
#
# Dependencies
#
_TCLTK_BUILD_DEPENDS=
_TCLTK_RUN_DEPENDS=
_TCLTK_LIB_DEPENDS=
# Construct the correct dependency lines (wrapper)
.if ${_TCL_ARGS:Mwrapper}
. if ${_TCLTK_PORT} == "tcl"
_TCLTK_WRAPPER_PORT= tclsh:${PORTSDIR}/lang/tcl-wrapper
. elif ${_TCLTK_PORT} == "tk"
_TCLTK_WRAPPER_PORT= wish:${PORTSDIR}/x11-toolkits/tk-wrapper
. endif
.endif
# Construct the correct dependency lines (Tcl/Tk)
. if ${_TCLTK_PORT} == "tcl"
_TCLTK_EXE_LINE= tclsh${TCL_VER}:${PORTSDIR}/lang/tcl${_TCLTK_WANTED_VERSION}
_TCLTK_LIB_LINE= libtcl${TCL_SHLIB_VER}.so:${PORTSDIR}/lang/tcl${_TCLTK_WANTED_VERSION}
. elif ${_TCLTK_PORT} == "tk"
_TCLTK_EXE_LINE= wish${TK_VER}:${PORTSDIR}/x11-toolkits/tk${_TCLTK_WANTED_VERSION}
_TCLTK_LIB_LINE= libtk${TK_SHLIB_VER}.so:${PORTSDIR}/x11-toolkits/tk${_TCLTK_WANTED_VERSION}
.endif
.if ${_TCL_ARGS:Mbuild}
BUILD_DEPENDS+= ${_TCLTK_WRAPPER_PORT} \
${_TCLTK_EXE_LINE}
.elif ${_TCL_ARGS:Mrun}
RUN_DEPENDS+= ${_TCLTK_WRAPPER_PORT} \
${_TCLTK_EXE_LINE}
.else
RUN_DEPENDS+= ${_TCLTK_WRAPPER_PORT}
LIB_DEPENDS+= ${_TCLTK_LIB_LINE}
.endif
.endif # defined(_INCLUDE_USES_TCL_MK)
|