Added ~amd64. Fixed gcc-3.4 compile issues
authorKarol Wojtaszek <sekretarz@gentoo.org>
Tue, 26 Oct 2004 22:05:33 +0000 (22:05 +0000)
committerKarol Wojtaszek <sekretarz@gentoo.org>
Tue, 26 Oct 2004 22:05:33 +0000 (22:05 +0000)
dev-tcltk/tclcl/ChangeLog
dev-tcltk/tclcl/files/tclcl-1.15-gcc34.patch [new file with mode: 0644]
dev-tcltk/tclcl/tclcl-1.15.ebuild

index f66bfc04a0a083fa5b29efd4c96eb472fe420e99..e6b72a3d6c1256356327de12bc6af09e2c2e34ad 100644 (file)
@@ -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 (file)
index 0000000..70314eb
--- /dev/null
@@ -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 {
index cbbea9db44a2ad28bad0027ec50a8c297fc06581..059e6b88365d8bc920642778515943e5b8ec0fe0 100644 (file)
@@ -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/')