xref: /OK3568_Linux_fs/buildroot/package/tcl/tcl.mk (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1################################################################################
2#
3# tcl
4#
5################################################################################
6
7TCL_VERSION_MAJOR = 8.6
8TCL_VERSION = $(TCL_VERSION_MAJOR).9
9TCL_SOURCE = tcl$(TCL_VERSION)-src.tar.gz
10TCL_SITE = http://downloads.sourceforge.net/project/tcl/Tcl/$(TCL_VERSION)
11TCL_LICENSE = TCL
12TCL_LICENSE_FILES = license.terms
13TCL_CPE_ID_VENDOR = tcl
14TCL_SUBDIR = unix
15TCL_INSTALL_STAGING = YES
16TCL_AUTORECONF = YES
17
18TCL_CONF_OPTS = \
19	--disable-symbols \
20	--disable-langinfo \
21	--disable-framework
22
23HOST_TCL_CONF_OPTS = \
24	--disable-symbols \
25	--disable-langinfo \
26	--disable-framework
27
28# I haven't found a good way to force pkgs to not build
29# or configure without just removing the entire pkg directory.
30define HOST_TCL_REMOVE_PACKAGES
31	rm -fr $(@D)/pkgs/sqlite3* $(@D)/pkgs/tdbc*
32endef
33HOST_TCL_PRE_CONFIGURE_HOOKS += HOST_TCL_REMOVE_PACKAGES
34
35# We remove the bundled sqlite as we prefer to not use bundled stuff at all.
36define TCL_REMOVE_PACKAGES
37	rm -fr $(@D)/pkgs/sqlite3* \
38		$(if $(BR2_PACKAGE_MYSQL),,$(@D)/pkgs/tdbcmysql*) \
39		$(@D)/pkgs/tdbcodbc* \
40		$(if $(BR2_PACKAGE_POSTGRESQL),,$(@D)/pkgs/tdbcpostgres*) \
41		$(if $(BR2_PACKAGE_SQLITE),,$(@D)/pkgs/tdbcsqlite3*)
42endef
43TCL_PRE_CONFIGURE_HOOKS += TCL_REMOVE_PACKAGES
44
45ifeq ($(BR2_PACKAGE_TCL_DEL_ENCODINGS),y)
46define TCL_REMOVE_ENCODINGS
47	rm -rf $(TARGET_DIR)/usr/lib/tcl$(TCL_VERSION_MAJOR)/encoding/*
48endef
49TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_ENCODINGS
50endif
51
52ifeq ($(BR2_PACKAGE_TCL_SHLIB_ONLY),y)
53define TCL_REMOVE_TCLSH
54	rm -f $(TARGET_DIR)/usr/bin/tclsh$(TCL_VERSION_MAJOR)
55endef
56TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_TCLSH
57else
58define TCL_SYMLINK_TCLSH
59	ln -sf tclsh$(TCL_VERSION_MAJOR) $(TARGET_DIR)/usr/bin/tclsh
60endef
61TCL_POST_INSTALL_TARGET_HOOKS += TCL_SYMLINK_TCLSH
62endif
63
64# Until someone needs it, we don't handle locale installation.  tcl has
65# a complicated method of translating LANG-style locale names into its internal
66# .msg name which makes it difficult to save the correct locales per the
67# configured whitelist.
68define TCL_REMOVE_EXTRA
69	rm -fr $(TARGET_DIR)/usr/lib/tclConfig.sh \
70		$(TARGET_DIR)/usr/lib/tclooConfig.sh \
71		$(TARGET_DIR)/usr/lib/tcl$(TCL_VERSION_MAJOR)/tclAppInit.c \
72		$(TARGET_DIR)/usr/lib/tcl$(TCL_VERSION_MAJOR)/msgs
73endef
74TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA
75
76TCL_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) \
77	$(if $(BR2_PACKAGE_MYSQL),mysql) \
78	$(if $(BR2_PACKAGE_POSTGRESQL),postgresql)
79
80$(eval $(autotools-package))
81$(eval $(host-autotools-package))
82