diff options
author | Karol Wojtaszek <sekretarz@gentoo.org> | 2004-10-26 22:05:33 +0000 |
---|---|---|
committer | Karol Wojtaszek <sekretarz@gentoo.org> | 2004-10-26 22:05:33 +0000 |
commit | 22792f4a06ecbd193b27a3eeca2bca29e584a3d7 (patch) | |
tree | 3e75f50b2ae0a9687195efe620e1bceef0c80e19 /dev-tcltk/tclcl | |
parent | ~amd64 - closes bug #59344 (diff) | |
download | historical-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/ChangeLog | 7 | ||||
-rw-r--r-- | dev-tcltk/tclcl/files/tclcl-1.15-gcc34.patch | 240 | ||||
-rw-r--r-- | dev-tcltk/tclcl/tclcl-1.15.ebuild | 15 |
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/') |