diff options
Diffstat (limited to 'yocto-poky/meta/recipes-devtools/tcltk')
9 files changed, 481 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch b/yocto-poky/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch new file mode 100644 index 000000000..c8530e1f5 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/alter-includedir.patch @@ -0,0 +1,76 @@ +Lets install the include header and private header files into +usr/include/tcl8.6 when version of tcl is 8.6.x + +Upstream-Status: Inappropriate [Configuration Specific] + +Signed-off-by: Khem Raj <raj.khem@gmai.com> + +Fixed the TCL_INCLUDE_SPEC + +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +--- + Makefile.in | 2 +- + configure | 4 ++-- + configure.in | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 97b983b..dc2a4df 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -53,7 +53,7 @@ DLL_INSTALL_DIR = @DLL_INSTALL_DIR@ + SCRIPT_INSTALL_DIR = $(INSTALL_ROOT)$(TCL_LIBRARY) + + # Directory in which to install the include file tcl.h: +-INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir) ++INCLUDE_INSTALL_DIR = $(INSTALL_ROOT)$(includedir)/tcl$(VERSION) + + # Path to the private tcl header dir: + PRIVATE_INCLUDE_DIR = @PRIVATE_INCLUDE_DIR@ +diff --git a/configure b/configure +index 3e78b49..24b3f92 100755 +--- a/configure ++++ b/configure +@@ -19134,7 +19134,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}" + eval "TCL_LIB_FILE=${TCL_LIB_FILE}" + + TCL_LIBRARY='$(libdir)/tcl$(VERSION)' +-PRIVATE_INCLUDE_DIR='$(includedir)' ++PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)' + HTML_DIR='$(DISTDIR)/html' + + # Note: in the following variable, it's important to use the absolute +@@ -19293,7 +19293,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}" + TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}" + + # Install time header dir can be set via --includedir +-eval "TCL_INCLUDE_SPEC=\"-I${includedir}\"" ++eval "TCL_INCLUDE_SPEC=\"-I${includedir}/tcl${VERSION}\"" + + #------------------------------------------------------------------------ + # tclConfig.sh refers to this by a different name +diff --git a/configure.in b/configure.in +index 0e28b14..62d9b41 100755 +--- a/configure.in ++++ b/configure.in +@@ -791,7 +791,7 @@ eval "TCL_LIB_FILE=libtcl${LIB_SUFFIX}" + eval "TCL_LIB_FILE=${TCL_LIB_FILE}" + + TCL_LIBRARY='$(libdir)/tcl$(VERSION)' +-PRIVATE_INCLUDE_DIR='$(includedir)' ++PRIVATE_INCLUDE_DIR='$(includedir)/tcl$(VERSION)' + HTML_DIR='$(DISTDIR)/html' + + # Note: in the following variable, it's important to use the absolute +@@ -912,7 +912,7 @@ TCL_BUILD_STUB_LIB_PATH="`pwd`/${TCL_STUB_LIB_FILE}" + TCL_STUB_LIB_PATH="${TCL_STUB_LIB_DIR}/${TCL_STUB_LIB_FILE}" + + # Install time header dir can be set via --includedir +-eval "TCL_INCLUDE_SPEC=\"-I${includedir}\"" ++eval "TCL_INCLUDE_SPEC=\"-I${includedir}/tcl${VERSION}\"" + + #------------------------------------------------------------------------ + # tclConfig.sh refers to this by a different name +-- +1.7.10.4 + diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix-configure.patch b/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix-configure.patch new file mode 100644 index 000000000..b692a0ebe --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix-configure.patch @@ -0,0 +1,46 @@ +Upstream-Status: Pending + +Index: unix/tcl.m4 +=================================================================== +--- tcl8.4.11/unix.orig/tcl.m4 ++++ tcl8.4.11/unix/tcl.m4 +@@ -845,7 +845,7 @@ AC_DEFUN(SC_CONFIG_CFLAGS, [ + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print $3}' /etc/.relid'` ++ system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` +@@ -2250,7 +2250,7 @@ AC_DEFUN(SC_BLOCKING_STYLE, [ + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print $3}' /etc/.relid'` ++ system=MP-RAS-`awk '{print $3}' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` +Index: unix/configure +=================================================================== +--- tcl8.4.11/unix.orig/configure ++++ tcl8.4.11/unix/configure +@@ -2130,7 +2130,7 @@ echo "configure:2121: checking system ve + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print }' /etc/.relid'` ++ system=MP-RAS-`awk '{print }' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` +@@ -7608,7 +7608,7 @@ echo "configure:7600: checking FIONBIO v + # results, and the version is kept in special file). + + if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then +- system=MP-RAS-`awk '{print }' /etc/.relid'` ++ system=MP-RAS-`awk '{print }' /etc/.relid` + fi + if test "`uname -s`" = "AIX" ; then + system=AIX-`uname -v`.`uname -r` diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch b/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch new file mode 100644 index 000000000..be273419a --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_issue_with_old_distro_glibc.patch @@ -0,0 +1,39 @@ +Upstream-Status: inappropriate [embedded specific] + +Fixes tcl target recipe build on old distros which have glibc older than 2.14 + +| + echo 'NOTE: make DESTDIR=/srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image install' +| NOTE: make DESTDIR=/srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image install +| + make DESTDIR=/srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image install +| Making directory /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image/usr/lib +| Installing message catalogs +| Making directory /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image/usr/share/man +| tclsh: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/tcl8.5.11/unix/libtcl8.5.so) +| Making directory /srv/home/nitin/builds/build-gcc47/tmp/work/x86_64-poky-linux/tcl-8.5.11-r5/image/usr/bin +| make: *** [install-msgs] Error 1 + +Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com> +2012/04/26 + +Index: unix/Makefile.in +=================================================================== +--- unix.orig/Makefile.in 2013-11-10 23:38:01.787425628 -0800 ++++ unix/Makefile.in 2013-11-10 23:37:59.807425578 -0800 +@@ -686,7 +686,7 @@ + # tcltest executable gets the build directory burned into its ld search path. + # This keeps tcltest from picking up an already installed version of the Tcl + # library. +-SHELL_ENV = @LD_LIBRARY_PATH_VAR@=`pwd`:${@LD_LIBRARY_PATH_VAR@} \ ++SHELL_ENV = @LD_LIBRARY_PATH_VAR@=${@LD_LIBRARY_PATH_VAR@} \ + TCLLIBPATH="@abs_builddir@/pkgs" \ + TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}" + +@@ -712,7 +712,7 @@ + $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) + + gdb-test: ${TCLTEST_EXE} +- @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}" > gdb.run ++ @echo "set env @LD_LIBRARY_PATH_VAR@=$${@LD_LIBRARY_PATH_VAR@}" > gdb.run + @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run + @echo "set args $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) -singleproc 1" >> gdb.run + $(GDB) ${TCLTEST_EXE} --command=gdb.run diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch b/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch new file mode 100644 index 000000000..c60eb7537 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/fix_non_native_build_issue.patch @@ -0,0 +1,64 @@ +Upstream-Status: Pending + +Index: unix/Makefile.in +=================================================================== +--- unix.orig/Makefile.in 2013-11-10 23:37:34.243424934 -0800 ++++ unix/Makefile.in 2013-11-10 23:37:34.243424934 -0800 +@@ -709,23 +709,23 @@ + test: test-tcl test-packages + + test-tcl: ${TCLTEST_EXE} +- $(SHELL_ENV) ./${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) ++ $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) + + gdb-test: ${TCLTEST_EXE} + @echo "set env @LD_LIBRARY_PATH_VAR@=`pwd`:$${@LD_LIBRARY_PATH_VAR@}" > gdb.run + @echo "set env TCL_LIBRARY=${TCL_BUILDTIME_LIBRARY}" >> gdb.run + @echo "set args $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) -singleproc 1" >> gdb.run +- $(GDB) ./${TCLTEST_EXE} --command=gdb.run ++ $(GDB) ${TCLTEST_EXE} --command=gdb.run + rm gdb.run + + # Useful target to launch a built tcltest with the proper path,... + runtest: ${TCLTEST_EXE} +- $(SHELL_ENV) ./${TCLTEST_EXE} ++ $(SHELL_ENV) ${TCLTEST_EXE} + + # Useful target for running the test suite with an unwritable current + # directory... + ro-test: ${TCLTEST_EXE} +- echo 'exec chmod -w .;package require tcltest;tcltest::temporaryDirectory /tmp;source ../tests/all.tcl;exec chmod +w .' | $(SHELL_ENV) ./${TCLTEST_EXE} ++ echo 'exec chmod -w .;package require tcltest;tcltest::temporaryDirectory /tmp;source ../tests/all.tcl;exec chmod +w .' | $(SHELL_ENV) ${TCLTEST_EXE} + + # The following target generates the shared libraries in dltest/ that are used + # for testing; they are included as part of the "tcltest" target (via the +@@ -743,23 +743,23 @@ + # This target can be used to run tclsh from the build directory + # via `make shell SCRIPT=/tmp/foo.tcl` + shell: ${TCL_EXE} +- $(SHELL_ENV) ./${TCL_EXE} $(SCRIPT) ++ $(SHELL_ENV) ${TCL_EXE} $(SCRIPT) + + # This target can be used to run tclsh inside either gdb or insight + gdb: ${TCL_EXE} +- $(SHELL_ENV) $(GDB) ./${TCL_EXE} ++ $(SHELL_ENV) $(GDB) ${TCL_EXE} + + valgrind: ${TCL_EXE} ${TCLTEST_EXE} +- $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl -singleproc 1 -constraints valgrind $(TESTFLAGS) ++ $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl -singleproc 1 -constraints valgrind $(TESTFLAGS) + + valgrindshell: ${TCL_EXE} +- $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ./${TCL_EXE} $(SCRIPT) ++ $(SHELL_ENV) $(VALGRIND) $(VALGRINDARGS) ${TCL_EXE} $(SCRIPT) + + trace-shell: ${TCL_EXE} +- $(SHELL_ENV) ${TRACE} $(TRACE_OPTS) ./${TCL_EXE} $(SCRIPT) ++ $(SHELL_ENV) ${TRACE} $(TRACE_OPTS) ${TCL_EXE} $(SCRIPT) + + trace-test: ${TCLTEST_EXE} +- $(SHELL_ENV) ${TRACE} $(TRACE_OPTS) ./${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl -singleproc 1 $(TESTFLAGS) ++ $(SHELL_ENV) ${TRACE} $(TRACE_OPTS) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl -singleproc 1 $(TESTFLAGS) + + #-------------------------------------------------------------------------- + # Installation rules diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch b/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch new file mode 100644 index 000000000..ab6cc4316 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/no_packages.patch @@ -0,0 +1,53 @@ +tcl 8.6.0 builds by default a number of packages that are not needed in Yocto. +This patch changes the makefile so that these packages are not built by default. + +Upstream-Status:Inappropriate [embedded specific] + +Signed-off-by: Bogdan Marinescu <bogdan.a.marinescu@intel.com> + +Index: unix/Makefile.in +=================================================================== +--- unix.orig/Makefile.in 2013-11-10 23:38:12.235425891 -0800 ++++ unix/Makefile.in 2013-11-10 23:38:12.231425891 -0800 +@@ -611,7 +611,7 @@ + # Start of rules + #-------------------------------------------------------------------------- + +-all: binaries libraries doc packages ++all: binaries libraries doc + + binaries: ${LIB_FILE} $(STUB_LIB_FILE) ${TCL_EXE} + +@@ -653,12 +653,12 @@ + #tclConfig.h: $(UNIX_DIR)/tclConfig.h.in + # $(SHELL) config.status + +-clean: clean-packages ++clean: + rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \ + errors ${TCL_EXE} ${TCLTEST_EXE} lib.exp Tcl @DTRACE_HDR@ + cd dltest ; $(MAKE) clean + +-distclean: distclean-packages clean ++distclean: clean + rm -rf Makefile config.status config.cache config.log tclConfig.sh \ + tclConfig.h *.plist Tcl.framework tcl.pc + cd dltest ; $(MAKE) distclean +@@ -706,7 +706,7 @@ + # tcltest, ie: + # % make test TESTFLAGS="-verbose bps -file fileName.test" + +-test: test-tcl test-packages ++test: test-tcl + + test-tcl: ${TCLTEST_EXE} + $(SHELL_ENV) ${TCLTEST_EXE} $(TOP_DIR)/tests/all.tcl $(TESTFLAGS) +@@ -771,7 +771,7 @@ + INSTALL_DEV_TARGETS = install-headers + INSTALL_EXTRA_TARGETS = @EXTRA_INSTALL@ + INSTALL_TARGETS = $(INSTALL_BASE_TARGETS) $(INSTALL_DOC_TARGETS) $(INSTALL_DEV_TARGETS) \ +- $(INSTALL_PACKAGE_TARGETS) $(INSTALL_EXTRA_TARGETS) ++ $(INSTALL_EXTRA_TARGETS) + + install: $(INSTALL_TARGETS) + diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/run-ptest b/yocto-poky/meta/recipes-devtools/tcltk/tcl/run-ptest new file mode 100644 index 000000000..dadba655f --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/run-ptest @@ -0,0 +1,8 @@ +#!/bin/sh + +for i in `ls tests/*.test |awk -F/ '{print $2}'`; \ + do TCL_LIBRARY=library ./tcltest tests/all.tcl -file $i >$i.tmp 2>&1; \ + grep -q "^Files with failing tests:" $i.tmp; \ + if [ $? -eq 0 ]; then echo "FAIL: $i"; \ + else echo "PASS: $i"; rm -f $i.tmp; fi; \ +done diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch b/yocto-poky/meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch new file mode 100644 index 000000000..96276eab0 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/tcl-add-soname.patch @@ -0,0 +1,46 @@ +Upstream-Status: Pending + +Index: unix/configure +=================================================================== +--- unix.orig/configure 2013-09-19 13:17:13.000000000 -0700 ++++ unix/configure 2013-11-11 00:20:51.519490342 -0800 +@@ -7599,6 +7599,9 @@ + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + ++ # following line added by CW for Debian GNU/Linux ++ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0" ++ + SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" +Index: unix/tcl.m4 +=================================================================== +--- unix.orig/tcl.m4 2013-09-19 13:17:13.000000000 -0700 ++++ unix/tcl.m4 2013-11-11 00:17:24.263485123 -0800 +@@ -1415,6 +1415,9 @@ + # get rid of the warnings. + #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" + ++ # following line added by CW for Debian GNU/Linux ++ TCL_SHLIB_LD_EXTRAS="-Wl,-soname,\${TCL_LIB_FILE}.0" ++ + SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' + DL_OBJS="tclLoadDl.o" + DL_LIBS="-ldl" +Index: unix/Makefile.in +=================================================================== +--- unix.orig/Makefile.in 2013-09-19 13:17:13.000000000 -0700 ++++ unix/Makefile.in 2013-11-11 00:20:32.423489861 -0800 +@@ -796,7 +796,10 @@ + done; + @echo "Installing $(LIB_FILE) to $(DLL_INSTALL_DIR)/" + @@INSTALL_LIB@ +- @chmod 555 "$(DLL_INSTALL_DIR)/$(LIB_FILE)" ++ mv "$(DLL_INSTALL_DIR)"/$(LIB_FILE) "$(DLL_INSTALL_DIR)"/$(LIB_FILE).0 ++ ln -sf $(LIB_FILE).0 "$(DLL_INSTALL_DIR)"/$(LIB_FILE) ++ ln -sf "$(DLL_INSTALL_DIR)"/$(LIB_FILE).0 ./ ++ @chmod 555 "$(DLL_INSTALL_DIR)"/$(LIB_FILE).0 + @echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}" + @$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}" + @echo "Installing tclConfig.sh to $(CONFIG_INSTALL_DIR)/" diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch b/yocto-poky/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch new file mode 100644 index 000000000..16f7c8051 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl/tcl-remove-hardcoded-install-path.patch @@ -0,0 +1,47 @@ +From 6efc98774681795712073c2b91e5e9d1763239b8 Mon Sep 17 00:00:00 2001 +From: "Song.Li" <Song.Li@windriver.com> +Date: Wed, 1 Aug 2012 19:05:51 +0800 +Subject: [PATCH] tcl:install tcl to lib64 instead of lib on 64bit target + +Remove hardcoded library install path. Change $(prefix)/lib/ to ${libdir}. + +[YOCTO #2876] + +This is not a bug, but libraries should be installed into directory .../lib/. +On 64bit target that should be lib64/. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Song.Li <Song.Li@windriver.com> +Signed-off-by: Kai Kang <kai.kang@windriver.com> + +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: unix/configure +=================================================================== +--- unix.orig/configure 2013-11-10 23:38:33.643426430 -0800 ++++ unix/configure 2013-11-10 23:39:51.347428387 -0800 +@@ -19134,7 +19134,7 @@ + + eval "TCL_LIB_FILE=${TCL_LIB_FILE}" + +-TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' ++TCL_LIBRARY='$(libdir)/tcl$(VERSION)' + PRIVATE_INCLUDE_DIR='$(includedir)' + HTML_DIR='$(DISTDIR)/html' + +Index: unix/configure.in +=================================================================== +--- unix.orig/configure.in 2013-11-10 23:20:50.000000000 -0800 ++++ unix/configure.in 2013-11-10 23:39:41.199428131 -0800 +@@ -790,7 +790,7 @@ + + eval "TCL_LIB_FILE=${TCL_LIB_FILE}" + +-TCL_LIBRARY='$(prefix)/lib/tcl$(VERSION)' ++TCL_LIBRARY='$(libdir)/tcl$(VERSION)' + PRIVATE_INCLUDE_DIR='$(includedir)' + HTML_DIR='$(DISTDIR)/html' + diff --git a/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.4.bb b/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.4.bb new file mode 100644 index 000000000..8e92b3e24 --- /dev/null +++ b/yocto-poky/meta/recipes-devtools/tcltk/tcl_8.6.4.bb @@ -0,0 +1,102 @@ +SUMMARY = "Tool Command Language" +HOMEPAGE = "http://tcl.sourceforge.net" +SECTION = "devel/tcltk" + +# http://www.tcl.tk/software/tcltk/license.html +LICENSE = "tcl & BSD-3-Clause" +LIC_FILES_CHKSUM = "file://../license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://../compat/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://../library/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://../macosx/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://../tests/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ + file://../win/license.terms;md5=058f6229798281bbcac4239c788cfa38 \ +" + +DEPENDS = "tcl-native zlib" + +BASE_SRC_URI = "${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \ + file://tcl-add-soname.patch" +SRC_URI = "${BASE_SRC_URI} \ + file://fix_non_native_build_issue.patch \ + file://fix_issue_with_old_distro_glibc.patch \ + file://no_packages.patch \ + file://tcl-remove-hardcoded-install-path.patch \ + file://alter-includedir.patch \ + file://run-ptest \ +" +SRC_URI[md5sum] = "d7cbb91f1ded1919370a30edd1534304" +SRC_URI[sha256sum] = "9e6ed94c981c1d0c5f5fefb8112d06c6bf4d050a7327e95e71d417c416519c8d" + +SRC_URI_class-native = "${BASE_SRC_URI}" + +S = "${WORKDIR}/${BPN}${PV}/unix" + +VER = "${PV}" + +inherit autotools ptest binconfig + +DEPENDS_class-native = "zlib-native" + +EXTRA_OECONF = "--enable-threads --disable-rpath --libdir=${libdir}" + +do_configure() { + cd ${S} + gnu-configize + cd ${B} + oe_runconf +} + +do_compile_prepend() { + echo > ${S}/../compat/fixstrtod.c +} + +do_install() { + autotools_do_install install-private-headers + ln -sf ./tclsh${VER} ${D}${bindir}/tclsh + ln -sf tclsh8.6 ${D}${bindir}/tclsh${VER} + sed -i "s+-L${B}+-L${STAGING_LIBDIR}+g" tclConfig.sh + sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh + sed -i "s,-L${libdir},-L=${libdir},g" tclConfig.sh + sed -i "s,-I${includedir},-I=${includedir},g" tclConfig.sh + install -d ${D}${bindir_crossscripts} + install -m 0755 tclConfig.sh ${D}${bindir_crossscripts} + install -m 0755 tclConfig.sh ${D}${libdir} + cd .. + for dir in compat generic unix; do + install -d ${D}${includedir}/${BPN}${VER}/$dir + install -m 0644 ${S}/../$dir/*.h ${D}${includedir}/${BPN}${VER}/$dir/ + done +} + +SYSROOT_PREPROCESS_FUNCS += "tcl_sysroot_preprocess" +tcl_sysroot_preprocess () { + sysroot_stage_dir ${D}${bindir_crossscripts} ${SYSROOT_DESTDIR}${bindir_crossscripts} +} + +PACKAGES =+ "tcl-lib" +FILES_tcl-lib = "${libdir}/libtcl8.6.so.*" +FILES_${PN} += "${libdir}/tcl${VER} ${libdir}/tcl8.6 ${libdir}/tcl8" +FILES_${PN}-dev += "${libdir}/tclConfig.sh ${libdir}/tclooConfig.sh" + +# isn't getting picked up by shlibs code +RDEPENDS_${PN} += "tcl-lib" +RDEPENDS_${PN}_class-native = "" +RDEPENDS_${PN}-ptest += "libgcc" + +BBCLASSEXTEND = "native" + +do_compile_ptest() { + oe_runmake tcltest +} + +do_install_ptest() { + cp ${B}/tcltest ${D}${PTEST_PATH} + cp -r ${S}/../library ${D}${PTEST_PATH} + cp -r ${S}/../tests ${D}${PTEST_PATH} +} + +# Fix some paths that might be used by Tcl extensions +BINCONFIG_GLOB = "*Config.sh" + +# Fix the path in sstate +SSTATE_SCAN_FILES += "*Config.sh" |