summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/packages/tcltk/tcl/fix-configure.patch44
-rw-r--r--meta/packages/tcltk/tcl/tcl-add-soname.patch72
-rw-r--r--meta/packages/tcltk/tcl_8.4.19.bb47
3 files changed, 163 insertions, 0 deletions
diff --git a/meta/packages/tcltk/tcl/fix-configure.patch b/meta/packages/tcltk/tcl/fix-configure.patch
new file mode 100644
index 000000000..8b2654bae
--- /dev/null
+++ b/meta/packages/tcltk/tcl/fix-configure.patch
@@ -0,0 +1,44 @@
+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/meta/packages/tcltk/tcl/tcl-add-soname.patch b/meta/packages/tcltk/tcl/tcl-add-soname.patch
new file mode 100644
index 000000000..38762644c
--- /dev/null
+++ b/meta/packages/tcltk/tcl/tcl-add-soname.patch
@@ -0,0 +1,72 @@
+--- clean/tcl8.4.19/unix/configure 2008-04-17 21:29:49.000000000 +0100
++++ tcl8.4.19/unix/configure 2009-11-13 11:46:36.000000000 +0000
+@@ -3065,6 +3065,7 @@
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
++ SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.so.0'
+
+ CFLAGS_OPTIMIZE=-O2
+ # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+@@ -3072,12 +3073,15 @@
+ # 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}"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
++ CC_SEARCH_FLAGS=""
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ else
+ ac_safe=`echo "dld.h" | sed 'y%./+-%__p_%'`
+@@ -4299,7 +4303,7 @@
+
+ if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then
+ LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+- MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
++ MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} ; ln -s $(LIB_FILE) `basename $(LIB_FILE) .so.0`\${SHLIB_SUFFIX}'
+ INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
+ else
+ LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
+--- clean/tcl8.4.19/unix/tcl.m4 2008-04-17 21:29:49.000000000 +0100
++++ tcl8.4.19/unix/tcl.m4 2009-11-13 11:53:57.000000000 +0000
+@@ -1337,6 +1337,7 @@
+ SHLIB_CFLAGS="-fPIC"
+ SHLIB_LD_LIBS='${LIBS}'
+ SHLIB_SUFFIX=".so"
++ SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.0'
+
+ CFLAGS_OPTIMIZE=-O2
+ # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings
+@@ -1344,12 +1345,15 @@
+ # 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"
++
+ if test "$have_dl" = yes; then
+ SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}'
+ DL_OBJS="tclLoadDl.o"
+ DL_LIBS="-ldl"
+ LDFLAGS="$LDFLAGS -Wl,--export-dynamic"
+- CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}'
++ CC_SEARCH_FLAGS=""
+ LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}
+ else
+ AC_CHECK_HEADER(dld.h, [
+@@ -2117,7 +2121,7 @@
+
+ if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then
+ LIB_SUFFIX=${SHARED_LIB_SUFFIX}
+- MAKE_LIB='${SHLIB_LD} -o [$]@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}'
++ MAKE_LIB='${SHLIB_LD} -o $@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS} ; ln -s $(LIB_FILE) `basename $(LIB_FILE) .so.0`\${SHLIB_SUFFIX}'
+ INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)'
+ else
+ LIB_SUFFIX=${UNSHARED_LIB_SUFFIX}
diff --git a/meta/packages/tcltk/tcl_8.4.19.bb b/meta/packages/tcltk/tcl_8.4.19.bb
new file mode 100644
index 000000000..33d600bc7
--- /dev/null
+++ b/meta/packages/tcltk/tcl_8.4.19.bb
@@ -0,0 +1,47 @@
+DESCRIPTION = "Tool Command Language"
+LICENSE = "tcl"
+SECTION = "devel/tcltk"
+HOMEPAGE = "http://tcl.sourceforge.net"
+PR = "r3"
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/tcl/tcl${PV}-src.tar.gz \
+ file://tcl-add-soname.patch;patch=1;pnum=2"
+
+S = "${WORKDIR}/tcl${PV}/unix"
+
+inherit autotools
+
+EXTRA_OECONF = "--enable-threads"
+
+do_configure() {
+ gnu-configize
+ oe_runconf
+}
+
+do_compile_prepend() {
+ echo > ../compat/fixstrtod.c
+}
+
+do_install() {
+ autotools_do_install
+ oe_libinstall -so libtcl8.4 ${STAGING_LIBDIR}
+ ln -sf ./tclsh8.4 ${D}${bindir}/tclsh
+ sed -i "s+${WORKDIR}+${STAGING_INCDIR}+g" tclConfig.sh
+ sed -i "s,-L${libdir},," tclConfig.sh
+ install -d ${STAGING_BINDIR_CROSS}/
+ install -m 0755 tclConfig.sh ${STAGING_BINDIR_CROSS}
+ cd ..
+ for dir in compat generic unix
+ do
+ install -d ${STAGING_INCDIR}/tcl${PV}/$dir
+ install -m 0644 $dir/*.h ${STAGING_INCDIR}/tcl${PV}/$dir/
+ done
+}
+
+PACKAGES =+ "${PN}-lib"
+FILES_${PN}-lib = "${libdir}/libtcl8.4.so.*"
+FILES_${PN} += "${libdir}/tcl8.4"
+FILES_${PN}-dev += "${libdir}/tclConfig.sh"
+
+BBCLASSEXTEND = "native"