Artifact [bca5ddd570]

Artifact bca5ddd570a97141064fc1608c1f9e569f6ffa21:


     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
#! /bin/env bash

NAME=tcl
VERSION=8.6.4
RELEASE=1
CATEGORY="Interpreters"
SUMMARY="Tool Command Language"
DESCRIPTION="Tcl provides a powerful platform for creating integration
applications that tie together diverse applications, protocols, devices,
and frameworks. When paired with the Tk toolkit, Tcl provides the fastest
and most powerful way to create GUI applications that run on PCs, Unix, and
the Macintosh. Tcl can also be used for a variety of web-related tasks and
for creating powerful command languages for applications."
HOMEPAGE=http://tcl.tk/
SRC_URI="mirror://sourceforge/tcl/tcl${VERSION}-src.tar.gz
         http://tcl.cvs.sourceforge.net/viewvc/tcl/tclconfig/tcl.m4"
SRC_DIR="tcl${VERSION}"
PATCH_URI="
	tcl-8.6.4-cygwin_unix.patch
	tcl-8.6.4-cygwin_version.patch
	tcl-8.6.4-cygwin_library_tm.patch
	tcl-8.6.4-cygwin_library_configure_in.patch
	tcl-8.6.4-cygwin_makefile_tm.patch
	tcl-8.6.4-cygwin_platform.patch
"
if cross_compiling
then
	:
	# PATCH_URI+=" 8.5-cross-install.patch"
fi

PKG_NAMES="tcl86 tcl86-doc tcl86-devel"
tcl86_CONTENTS="
	$(__host_prefix | tail -c +2)/bin/
	$(__host_prefix | tail -c +2)/lib/
"
tcl86_devel_CONTENTS="
	$(__host_prefix | tail -c +2)/include/
	$(__host_prefix | tail -c +2)/share/aclocal/*.m4
"

tcl86_doc_CONTENTS="
	$(__host_prefix | tail -c +2)/share/doc/
	$(__host_prefix | tail -c +2)/share/man/
"

REQUIRES=tzcode

DIFF_EXCLUDES='aclocal.m4 configure pkgs'

src_compile() {
	cd "${S}/unix"
	cygautoreconf

	cd "${S}/win"
	cygautoreconf
	cd "${S}/unix"


	if [ -e "${S}/pkgs" ]; then
		mv "${S}/pkgs" "${S}/pkgs_cygport"
	fi

	mkdir -p "${B}/unix"
	cd "${B}/unix"
	mkdir -p ../win
	cygconf --enable-man-symlinks tcl_cv_strtod_buggy=no \
		tcl_cv_sys_version=CYGWIN_NT \
		--includedir="$(__host_prefix)/include/tcl$VERSION" \
		--libdir="$(__host_prefix)/lib/tcl$VERSION"
	cygmake -j1

	# This was an attempt to not make pkgs, but the Makefile thwarted that.
	# Instead, just move pkgs to pkgs_cygport
	#cygmake -j1 binaries libraries doc

	cygmake libtcl$VERSION.a STUB_LIB_FILE=libtcl$VERSION.a STUB_LIB_OBJS=\${OBJS}
}

src_install() {
	cd ${B}/unix
	cyginstall install-headers install-private-headers 

	#mv ${D}/usr/lib/libtcl${VERSION%.*}.dll ${D}/usr/bin/
	__doinstall 0644 libtcl$VERSION.dll.a "$(__host_prefix)/lib/tcl$VERSION"

	#sed -i.bak \
	#	-e "s|^\(TCL_BUILD_LIB_SPEC\)='.*|\1='-Wl,/usr/lib/libtcl${VERSION%.*}.dll.a'|" \
	#	-e "s|^\(TCL_SRC_DIR\)='.*'|\1='/usr/include/tcl${VERSION%.*}'|" \
	#	-e "s|^\(TCL_BUILD_STUB_LIB_SPEC\)='.*|\1='-Wl,/usr/lib/libtclstub${VERSION%.*}.a'|" \
	#	-e "s|^\(TCL_BUILD_STUB_LIB_PATH\)='.*/unix|\1='/usr/lib|" \
	#	-e "s|^\(TCL_STUB_LIB_SPEC\)='.*|\1='-Wl,-ltclstub${VERSION%.*}'|" \
	#	${D}/usr/lib/tclConfig.sh || error

	## install private headers
	#includeinto tcl${VERSION%.*}/unix
	#doinclude ${S}/unix/*.h
	#includeinto tcl${VERSION%.*}/generic
	#doinclude ${S}/generic/*.h

	# install build system macros
	insinto $(__host_prefix)/share/aclocal
	newins ${S}/unix/tcl.m4 tcl-sc.m4
	newins ${S}/tcl.m4 tcl-tea.m4

	## make the default tcl version
	dosym tclsh$VERSION.exe $(__host_prefix)/bin/tclsh${VERSION%.*}
	dosym tclsh${VERSION%.*} $(__host_prefix)/bin/tclsh${VERSION%.*.*}
	dosym tclsh${VERSION%.*.*} $(__host_prefix)/bin/tclsh
	dosym libtcl$VERSION.dll $(__host_prefix)/bin/libtcl${VERSION%.*}.dll
	dosym libtcl${VERSION%.*}.dll $(__host_prefix)/bin/libtcl.dll

	dosym tcl$VERSION $(__host_prefix)/include/tcl${VERSION%.*}

	dosym tcl$VERSION $(__host_prefix)/lib/tcl${VERSION%.*}
	dosym tcl${VERSION%.*} $(__host_prefix)/lib/tcl

	dosym tcl${VERSION}/tclConfig.sh $(__host_prefix)/lib/tclConfig.sh

	dosym libtcl$VERSION.dll.a \
		$(__host_prefix)/lib/tcl$VERSION/libtcl${VERSION%.*}.dll.a
	dosym libtcl${VERSION%.*}.dll.a \
		$(__host_prefix)/lib/tcl$VERSION/libtcl.dll.a

	dosym libtclstub$VERSION.a \
		"$(__host_prefix)/lib/tcl$VERSION/libtclstub${VERSION%.*}.a"
	dosym libtclstub${VERSION%.*}.a \
		"$(__host_prefix)/lib/tcl$VERSION/libtclstub.a"

	dosym tcl${VERSION}/libtcl$VERSION.dll.a \
		"$(__host_prefix)/lib/libtcl$VERSION.dll.a"
	dosym libtcl$VERSION.dll.a \
		"$(__host_prefix)/lib/libtcl${VERSION%.*}.dll.a"
	dosym libtcl${VERSION%.*}.dll.a \
		$(__host_prefix)/lib/libtcl.dll.a

	dosym tcl${VERSION}/libtclstub$VERSION.a \
		$(__host_prefix)/lib/libtclstub$VERSION.a
	dosym libtclstub$VERSION.a $(__host_prefix)/lib/libtclstub${VERSION%.*}.a
	dosym libtclstub${VERSION%.*}.a $(__host_prefix)/lib/libtclstub.a

}