summaryrefslogtreecommitdiffstats
path: root/package/tcl
diff options
context:
space:
mode:
Diffstat (limited to 'package/tcl')
-rw-r--r--package/tcl/Config.in24
-rw-r--r--package/tcl/tcl-strstr.patch11
-rw-r--r--package/tcl/tcl-strtod.patch11
-rw-r--r--package/tcl/tcl.mk70
4 files changed, 116 insertions, 0 deletions
diff --git a/package/tcl/Config.in b/package/tcl/Config.in
new file mode 100644
index 000000000..1f75266f0
--- /dev/null
+++ b/package/tcl/Config.in
@@ -0,0 +1,24 @@
+config BR2_PACKAGE_TCL
+ bool "tcl"
+ default n
+ help
+ TCL(Tool Command Language) is a simple textual language.
+
+ http://www.tcl.tk
+
+config BR2_PACKAGE_TCL_DEL_ENCODINGS
+ bool "delete encodings (saves 1.4Mb)"
+ default y
+ depends BR2_PACKAGE_TCL
+ help
+ Delete encoding files for TCL. If your programs do not use various tcl
+ character recoding functions, you may safely choose Y here.
+ It saves approx. 1.4 Mb of space.
+
+config BR2_PACKAGE_TCL_SHLIB_ONLY
+ bool "install only shared library"
+ default y
+ depends BR2_PACKAGE_TCL
+ help
+ Install only TCL shared library and not binary tcl interpreter(tclsh8.4).
+ Saves ~14kb.
diff --git a/package/tcl/tcl-strstr.patch b/package/tcl/tcl-strstr.patch
new file mode 100644
index 000000000..3bed414cf
--- /dev/null
+++ b/package/tcl/tcl-strstr.patch
@@ -0,0 +1,11 @@
+--- tcl8.4.9/compat/strstr.c 2002-01-26 03:10:08.000000000 +0200
++++ tcl8.4.9/compat/strstr.c 2005-05-30 06:53:40.000000000 +0300
+@@ -33,6 +33,8 @@
+ *----------------------------------------------------------------------
+ */
+
++#include <unistd.h>
++
+ char *
+ strstr(string, substring)
+ register char *string; /* String to search. */
diff --git a/package/tcl/tcl-strtod.patch b/package/tcl/tcl-strtod.patch
new file mode 100644
index 000000000..a9974546b
--- /dev/null
+++ b/package/tcl/tcl-strtod.patch
@@ -0,0 +1,11 @@
+--- tcl8.4.9/compat/strtod.c 2002-02-25 16:26:12.000000000 +0200
++++ tcl8.4.9/compat/strtod.c 2005-05-30 08:55:18.000000000 +0300
+@@ -24,6 +24,8 @@
+ #define NULL 0
+ #endif
+
++#undef strtod
++
+ static int maxExponent = 511; /* Largest possible base 10 exponent. Any
+ * exponent larger than this will already
+ * produce underflow or overflow, so there's
diff --git a/package/tcl/tcl.mk b/package/tcl/tcl.mk
new file mode 100644
index 000000000..bf396bb83
--- /dev/null
+++ b/package/tcl/tcl.mk
@@ -0,0 +1,70 @@
+#############################################################
+#
+# TCL8.4
+#
+#############################################################
+TCL_VERSION:=8.4.9
+TCL_SOURCE:=tcl$(TCL_VERSION)-src.tar.gz
+TCL_SITE:=http://heanet.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
+
+less-dirclean:
+ rm -rf $(LESS_DIR)
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_TCL)),y)
+TARGETS+=tcl
+endif
+