summaryrefslogtreecommitdiff
path: root/package/tcl/tcl.mk
blob: 72fb834d31f882dc360f21927656f298250b779c (plain)
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
#############################################################
#
# TCL8.4
#
#############################################################
TCL_VERSION:=8.4.9
TCL_SOURCE:=tcl$(TCL_VERSION)-src.tar.gz
TCL_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/tcl
TCL_DIR:=$(BUILD_DIR)/tcl$(TCL_VERSION)

$(DL_DIR)/$(TCL_SOURCE):
	$(WGET) -P $(DL_DIR) $(TCL_SITE)/$(TCL_SOURCE)

$(TCL_DIR)/.source: $(DL_DIR)/$(TCL_SOURCE)
	zcat $(DL_DIR)/$(TCL_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	toolchain/patch-kernel.sh $(TCL_DIR) package/tcl/ tcl\*.patch
	touch $(TCL_DIR)/.source

$(TCL_DIR)/.configured: $(TCL_DIR)/.source
	(cd $(TCL_DIR)/unix; \
		$(TARGET_CONFIGURE_OPTS) \
		CFLAGS="$(TARGET_CFLAGS)" \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--sysconfdir=/etc \
		--enable-shared \
		--disable-symbols \
		--disable-langinfo \
		--disable-framework \
	);
	touch $(TCL_DIR)/.configured;

$(TCL_DIR)/unix/libtcl8.4.so: $(TCL_DIR)/.configured
	$(MAKE) CC=$(TARGET_CC) -C $(TCL_DIR)/unix

$(TARGET_DIR)/usr/lib/libtcl8.4.so: $(TCL_DIR)/unix/libtcl8.4.so
	$(MAKE) INSTALL_ROOT=$(TARGET_DIR) -C $(TCL_DIR)/unix install
	-$(STRIP) --strip-unneeded $(TARGET_DIR)/usr/lib/libtcl8.4.so
	rm -Rf $(TARGET_DIR)/usr/man
	rm -Rf $(TARGET_DIR)/usr/include
	-if [ "$(strip $(BR2_PACKAGE_TCL_DEL_ENCODINGS))" == "y" ]; then \
	rm -Rf $(TARGET_DIR)/usr/lib/tcl8.4/encoding/*; \
	fi
	-if [ "$(strip $(BR2_PACKAGE_TCL_SHLIB_ONLY))" == "y" ]; then \
	rm -f $(TARGET_DIR)/usr/bin/tclsh8.4; \
	fi

tcl: uclibc $(TARGET_DIR)/usr/lib/libtcl8.4.so

tcl-source: $(DL_DIR)/$(TCL_SOURCE)

tcl-clean:
	$(MAKE) prefix=$(TARGET_DIR)/usr -C $(TCL_DIR)/unix uninstall
	-$(MAKE) -C $(TCL_DIR)/unix clean

tcl-dirclean:
	rm -rf $(TCL_DIR)

#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_TCL)),y)
TARGETS+=tcl
endif