summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarol Wojtaszek <sekretarz@gentoo.org>2004-10-26 22:05:33 +0000
committerKarol Wojtaszek <sekretarz@gentoo.org>2004-10-26 22:05:33 +0000
commit22792f4a06ecbd193b27a3eeca2bca29e584a3d7 (patch)
tree3e75f50b2ae0a9687195efe620e1bceef0c80e19 /dev-tcltk/tclcl
parent~amd64 - closes bug #59344 (diff)
downloadhistorical-22792f4a06ecbd193b27a3eeca2bca29e584a3d7.tar.gz
historical-22792f4a06ecbd193b27a3eeca2bca29e584a3d7.tar.bz2
historical-22792f4a06ecbd193b27a3eeca2bca29e584a3d7.zip
Added ~amd64. Fixed gcc-3.4 compile issues
Diffstat (limited to 'dev-tcltk/tclcl')
-rw-r--r--dev-tcltk/tclcl/ChangeLog7
-rw-r--r--dev-tcltk/tclcl/files/tclcl-1.15-gcc34.patch240
-rw-r--r--dev-tcltk/tclcl/tclcl-1.15.ebuild15
3 files changed, 259 insertions, 3 deletions
diff --git a/dev-tcltk/tclcl/ChangeLog b/dev-tcltk/tclcl/ChangeLog
index f66bfc04a0a0..e6b72a3d6c12 100644
--- a/dev-tcltk/tclcl/ChangeLog
+++ b/dev-tcltk/tclcl/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for dev-tcltk/tclcl
# Copyright 2000-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/tclcl/ChangeLog,v 1.6 2004/08/26 14:08:36 fmccor Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/tclcl/ChangeLog,v 1.7 2004/10/26 22:05:33 sekretarz Exp $
+
+ 27 Oct 2004; Karol Wojtaszek <sekretarz@gentoo.org>
+ +files/tclcl-1.15-gcc34.patch, tclcl-1.15.ebuild:
+ Added ~amd64. Fixed gcc-34 compile issues. Thanks to aye@gentoo.pl in bug
+ #58455
26 Aug 2004; Ferris McCormick <fmccor@gentoo.org> tclcl-1.15.ebuild:
Stable for sparc.
diff --git a/dev-tcltk/tclcl/files/tclcl-1.15-gcc34.patch b/dev-tcltk/tclcl/files/tclcl-1.15-gcc34.patch
new file mode 100644
index 000000000000..70314ebcf359
--- /dev/null
+++ b/dev-tcltk/tclcl/files/tclcl-1.15-gcc34.patch
@@ -0,0 +1,240 @@
+diff -Naur tclcl-1.15/tclcl.h tclcl-1.15-fix/tclcl.h
+--- tclcl-1.15/tclcl.h 2004-01-06 02:50:24.000000000 +0100
++++ tclcl-1.15-fix/tclcl.h 2004-10-18 14:46:15.123314528 +0200
+@@ -49,115 +49,6 @@
+ #include "tracedvar.h"
+
+ struct Tk_Window_;
+-
+-class Tcl {
+- public:
+- /* constructor should be private but SGIs C++ compiler complains*/
+- Tcl();
+-
+- static void init(const char* application);
+- static void init(Tcl_Interp*, const char* application);
+- static inline Tcl& instance() { return (instance_); }
+- inline int dark() const { return (tcl_ == 0); }
+- inline Tcl_Interp* interp() const { return (tcl_); }
+-
+-#if TCL_MAJOR_VERSION >= 8
+- int evalObj(Tcl_Obj *pObj) { return Tcl_GlobalEvalObj(tcl_, pObj); }
+- int evalObjs(int objc, Tcl_Obj **objv) {
+- Tcl_Obj* pListObj = Tcl_NewListObj(objc, objv);
+- int retcode = evalObj(pListObj);
+- Tcl_DecrRefCount(pListObj);
+- return retcode;
+- }
+- Tcl_Obj* objResult() const { return Tcl_GetObjResult(tcl_); }
+- int resultAs(int* pInt) {
+- return Tcl_GetIntFromObj(tcl_, objResult(), pInt);
+- }
+- int resultAs(long* pLong) {
+- return Tcl_GetLongFromObj(tcl_, objResult(), pLong);
+- }
+- int resultAs(double* pDbl) {
+- return Tcl_GetDoubleFromObj(tcl_, objResult(), pDbl);
+- }
+- void result(Tcl_Obj *pObj) { Tcl_SetObjResult(tcl_, pObj); }
+- inline const char* result() const { return Tcl_GetStringResult(tcl_); }
+-#else /* TCL_MAJOR_VERSION >= 8 */
+- /* may not work at all! */
+- inline char* result() const { return (tcl_->result); }
+-#endif /* TCL_MAJOR_VERSION >= 8 */
+- inline void result(const char* p) { tcl_->result = (char*)p; }
+- void resultf(const char* fmt, ...);
+- inline void CreateCommand(const char* cmd, Tcl_CmdProc* cproc,
+- ClientData cd = 0,
+- Tcl_CmdDeleteProc* dproc = 0) {
+- Tcl_CreateCommand(tcl_, (char*)cmd, cproc, cd, dproc);
+- }
+- inline void CreateCommand(Tcl_CmdProc* cproc,
+- ClientData cd = 0,
+- Tcl_CmdDeleteProc* dproc = 0) {
+- Tcl_CreateCommand(tcl_, buffer_, cproc, cd, dproc);
+- }
+- inline void DeleteCommand(const char* cmd) {
+- Tcl_DeleteCommand(tcl_, (char*)cmd);
+- }
+- inline void EvalFile(const char* file) {
+- if (Tcl_EvalFile(tcl_, (char*)file) != TCL_OK)
+- error(file);
+- }
+- inline const char* var(const char* varname, int flags = TCL_GLOBAL_ONLY) {
+- return (Tcl_GetVar(tcl_, (char*)varname, flags));
+- }
+- /*
+- * Hooks for invoking the tcl interpreter:
+- * eval(char*) - when string is in writable store
+- * evalc() - when string is in read-only store (e.g., string consts)
+- * [ eval(const char*) is a synonym ]
+- * evalf() - printf style formatting of command
+- * Or, write into the buffer returned by buffer() and
+- * then call eval(void).
+- */
+- void eval(char* s);
+- void eval(const char* s) { evalc(s); };
+- void evalc(const char* s);
+- void eval();
+- char* buffer() { return (bp_); }
+- /*
+- * This routine used to be inlined, but SGI's C++ compiler
+- * can't hack stdarg inlining. No big deal here.
+- */
+- void evalf(const char* fmt, ...);
+-
+- inline void add_error(const char *string) {
+- Tcl_AddErrorInfo(interp(), (char *) string);
+- }
+- void add_errorf(const char *fmt, ...);
+-
+- inline struct Tk_Window_* tkmain() const { return (tkmain_); }
+- inline void tkmain(struct Tk_Window_* w) { tkmain_ = w; }
+- void add_option(const char* name, const char* value);
+- void add_default(const char* name, const char* value);
+- const char* attr(const char* attr) const;
+- const char* application() const { return (application_); }
+- inline const char* rds(const char* a, const char* fld) const {
+- return (Tcl_GetVar2(tcl_, (char*)a, (char*)fld,
+- TCL_GLOBAL_ONLY));
+- }
+-
+- TclObject* lookup(const char* name);
+- void enter(TclObject*);
+- void remove(TclObject*);
+- private:
+- void error(const char*);
+-
+- static Tcl instance_;
+- Tcl_Interp* tcl_;
+- Tk_Window_* tkmain_;
+- char* bp_;
+- const char* application_;
+- char buffer_[4096];
+- Tcl_HashTable objs_;
+-};
+-
+ class InstVar;
+
+ class TclObject {
+diff -Naur tclcl-1.15/tclcl-mappings.h tclcl-1.15-fix/tclcl-mappings.h
+--- tclcl-1.15/tclcl-mappings.h 2004-01-06 02:50:24.000000000 +0100
++++ tclcl-1.15-fix/tclcl-mappings.h 2004-10-18 14:47:14.457294392 +0200
+@@ -38,7 +38,116 @@
+
+
+ class TclObject;
+-class Tcl;
++class Tcl {
++ public:
++ /* constructor should be private but SGIs C++ compiler complains*/
++ Tcl();
++
++ static void init(const char* application);
++ static void init(Tcl_Interp*, const char* application);
++ static inline Tcl& instance() { return (instance_); }
++ inline int dark() const { return (tcl_ == 0); }
++ inline Tcl_Interp* interp() const { return (tcl_); }
++
++#if TCL_MAJOR_VERSION >= 8
++ int evalObj(Tcl_Obj *pObj) { return Tcl_GlobalEvalObj(tcl_, pObj); }
++ int evalObjs(int objc, Tcl_Obj **objv) {
++ Tcl_Obj* pListObj = Tcl_NewListObj(objc, objv);
++ int retcode = evalObj(pListObj);
++ Tcl_DecrRefCount(pListObj);
++ return retcode;
++ }
++ Tcl_Obj* objResult() const { return Tcl_GetObjResult(tcl_); }
++ int resultAs(int* pInt) {
++ return Tcl_GetIntFromObj(tcl_, objResult(), pInt);
++ }
++ int resultAs(long* pLong) {
++ return Tcl_GetLongFromObj(tcl_, objResult(), pLong);
++ }
++ int resultAs(double* pDbl) {
++ return Tcl_GetDoubleFromObj(tcl_, objResult(), pDbl);
++ }
++ void result(Tcl_Obj *pObj) { Tcl_SetObjResult(tcl_, pObj); }
++ inline const char* result() const { return Tcl_GetStringResult(tcl_); }
++#else /* TCL_MAJOR_VERSION >= 8 */
++ /* may not work at all! */
++ inline char* result() const { return (tcl_->result); }
++#endif /* TCL_MAJOR_VERSION >= 8 */
++ inline void result(const char* p) { tcl_->result = (char*)p; }
++ void resultf(const char* fmt, ...);
++ inline void CreateCommand(const char* cmd, Tcl_CmdProc* cproc,
++ ClientData cd = 0,
++ Tcl_CmdDeleteProc* dproc = 0) {
++ Tcl_CreateCommand(tcl_, (char*)cmd, cproc, cd, dproc);
++ }
++ inline void CreateCommand(Tcl_CmdProc* cproc,
++ ClientData cd = 0,
++ Tcl_CmdDeleteProc* dproc = 0) {
++ Tcl_CreateCommand(tcl_, buffer_, cproc, cd, dproc);
++ }
++ inline void DeleteCommand(const char* cmd) {
++ Tcl_DeleteCommand(tcl_, (char*)cmd);
++ }
++ inline void EvalFile(const char* file) {
++ if (Tcl_EvalFile(tcl_, (char*)file) != TCL_OK)
++ error(file);
++ }
++ inline const char* var(const char* varname, int flags = TCL_GLOBAL_ONLY) {
++ return (Tcl_GetVar(tcl_, (char*)varname, flags));
++ }
++ /*
++ * Hooks for invoking the tcl interpreter:
++ * eval(char*) - when string is in writable store
++ * evalc() - when string is in read-only store (e.g., string consts)
++ * [ eval(const char*) is a synonym ]
++ * evalf() - printf style formatting of command
++ * Or, write into the buffer returned by buffer() and
++ * then call eval(void).
++ */
++ void eval(char* s);
++ void eval(const char* s) { evalc(s); };
++ void evalc(const char* s);
++ void eval();
++ char* buffer() { return (bp_); }
++ /*
++ * This routine used to be inlined, but SGI's C++ compiler
++ * can't hack stdarg inlining. No big deal here.
++ */
++ void evalf(const char* fmt, ...);
++
++ inline void add_error(const char *string) {
++ Tcl_AddErrorInfo(interp(), (char *) string);
++ }
++ void add_errorf(const char *fmt, ...);
++
++ inline struct Tk_Window_* tkmain() const { return (tkmain_); }
++ inline void tkmain(struct Tk_Window_* w) { tkmain_ = w; }
++ void add_option(const char* name, const char* value);
++ void add_default(const char* name, const char* value);
++ const char* attr(const char* attr) const;
++ const char* application() const { return (application_); }
++ inline const char* rds(const char* a, const char* fld) const {
++ return (Tcl_GetVar2(tcl_, (char*)a, (char*)fld,
++ TCL_GLOBAL_ONLY));
++ }
++
++ TclObject* lookup(const char* name);
++ void enter(TclObject*);
++ void remove(TclObject*);
++ private:
++ void error(const char*);
++
++ static Tcl instance_;
++ Tcl_Interp* tcl_;
++ Tk_Window_* tkmain_;
++ char* bp_;
++ const char* application_;
++ char buffer_[4096];
++ Tcl_HashTable objs_;
++};
++
++
++
+
+ template <class T>
+ class TclObjectHelper {
diff --git a/dev-tcltk/tclcl/tclcl-1.15.ebuild b/dev-tcltk/tclcl/tclcl-1.15.ebuild
index cbbea9db44a2..059e6b88365d 100644
--- a/dev-tcltk/tclcl/tclcl-1.15.ebuild
+++ b/dev-tcltk/tclcl/tclcl-1.15.ebuild
@@ -1,6 +1,8 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/tclcl/tclcl-1.15.ebuild,v 1.7 2004/08/26 14:08:36 fmccor Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-tcltk/tclcl/tclcl-1.15.ebuild,v 1.8 2004/10/26 22:05:33 sekretarz Exp $
+
+inherit eutils
DESCRIPTION="Tcl/C++ interface library"
SF_PN="otcl-tclcl"
@@ -9,12 +11,21 @@ MY_P="${PN}-src-${PV}"
SRC_URI="mirror://sourceforge/${SF_PN}/${MY_P}.tar.gz"
LICENSE="as-is"
SLOT="0"
-KEYWORDS="x86 sparc"
+KEYWORDS="x86 sparc ~amd64"
IUSE=""
DEPEND=">=dev-lang/tcl-8.3.2
>=dev-lang/tk-8.3.2
>=dev-tcltk/otcl-1.0.8"
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ epatch ${FILESDIR}/${P}-gcc34.patch
+
+ libtoolize -f
+}
+
src_compile() {
local tclv tkv
tclv=$(grep TCL_VER /usr/include/tcl.h | sed 's/^.*"\(.*\)".*/\1/')