From 81c04604da51829086e87b6993affbad24e02d4f Mon Sep 17 00:00:00 2001 From: edwin Date: Mon, 6 Oct 2003 02:43:46 +0000 Subject: new port for mpexpr Mpexpr adds two new commands to Tcl, 'mpexpr' and 'mpformat'. Mpexpr works much like Tcl's native 'expr', but does all calculations using an arbitrary precision math package. Mpexpr numbers can be any number of digits, with any decimal precision. Final precision is controlled by a Tcl variable 'mp_precision', which can be any reasonable integer, limiting only the number of digits to the right of the decimal point. PR: ports/48764 Submitted by: chein@GeekDude.com --- math/Makefile | 1 + math/mpexpr/Makefile | 28 +++++++++++++ math/mpexpr/distinfo | 1 + math/mpexpr/files/patch-aa | 51 +++++++++++++++++++++++ math/mpexpr/files/patch-ab | 100 +++++++++++++++++++++++++++++++++++++++++++++ math/mpexpr/pkg-descr | 15 +++++++ math/mpexpr/pkg-plist | 3 ++ 7 files changed, 199 insertions(+) create mode 100644 math/mpexpr/Makefile create mode 100644 math/mpexpr/distinfo create mode 100644 math/mpexpr/files/patch-aa create mode 100644 math/mpexpr/files/patch-ab create mode 100644 math/mpexpr/pkg-descr create mode 100644 math/mpexpr/pkg-plist diff --git a/math/Makefile b/math/Makefile index e48a1543d4c1..6ebb3daa53af 100644 --- a/math/Makefile +++ b/math/Makefile @@ -79,6 +79,7 @@ SUBDIR += matrix SUBDIR += maxima SUBDIR += metis + SUBDIR += mpexpr SUBDIR += mprime SUBDIR += mtl SUBDIR += mtrxmath diff --git a/math/mpexpr/Makefile b/math/mpexpr/Makefile new file mode 100644 index 000000000000..e2d53b1f4a57 --- /dev/null +++ b/math/mpexpr/Makefile @@ -0,0 +1,28 @@ +# New ports collection makefile for: mpexpr +# Date created: 20 April 2001 +# Whom: Chuck Hein +# +# $FreeBSD$ +# + +PORTNAME= mpexpr +PORTVERSION= 1.0 +CATEGORIES= math tcl83 +MASTER_SITES= http://www.neosoft.com/tcl/ftparchive/sorted/math/Mpexpr-1.0/1.0/ + +MAINTAINER= geekdude@pacbell.net +COMMENT= Multiple precision math for Tcl + +LIB_DEPENDS= tcl83.1:${PORTSDIR}/lang/tcl83 + +WRKSRC= ${WRKDIR}/mpexpr-1.0/unix + +CONFIGURE_ARGS= --prefix=${PREFIX} \ + --exec-prefix=${PREFIX} + +GNU_CONFIGURE= yes +#INSTALLS_SHLIB= yes + +MANN= mpexpr.n + +.include diff --git a/math/mpexpr/distinfo b/math/mpexpr/distinfo new file mode 100644 index 000000000000..87bfa15fa9dc --- /dev/null +++ b/math/mpexpr/distinfo @@ -0,0 +1 @@ +MD5 (mpexpr-1.0.tar.gz) = 7978df5a42de32215b0d2f559cd55071 diff --git a/math/mpexpr/files/patch-aa b/math/mpexpr/files/patch-aa new file mode 100644 index 000000000000..e1cf4af6ded2 --- /dev/null +++ b/math/mpexpr/files/patch-aa @@ -0,0 +1,51 @@ +*** configure.orig Fri Dec 4 16:04:23 1998 +--- configure Fri May 11 17:31:55 2001 +*************** +*** 21,26 **** +--- 21,28 ---- + # Initialize some variables set by options. + # The variables have the same names as the options, with + # dashes changed to underlines. ++ TCL_EXEC=tclsh8.3 ++ WISH_EXEC=wish8.3 + build=NONE + cache_file=./config.cache + exec_prefix=NONE +*************** +*** 704,711 **** + + # find include/tcl.h + for f in $prefix_locations ; do +! if test -r "$f/include/tcl.h"; then +! TCL_INC_DIR=$f/include + echo "$ac_t""setting TCL_INC_DIR to $TCL_INC_DIR" 1>&6 + break + fi +--- 706,713 ---- + + # find include/tcl.h + for f in $prefix_locations ; do +! if test -r "$f/include/tcl8.3/tcl.h"; then +! TCL_INC_DIR=$f/include/tcl8.3 + echo "$ac_t""setting TCL_INC_DIR to $TCL_INC_DIR" 1>&6 + break + fi +*************** +*** 713,720 **** + + # find lib/tclConfig.sh + for f in $exec_prefix_locations ; do +! if test -r "$f/lib/tclConfig.sh"; then +! TCL_LIB_DIR=$f/lib + echo "$ac_t""setting TCL_LIB_DIR to $TCL_LIB_DIR" 1>&6 + break + fi +--- 715,722 ---- + + # find lib/tclConfig.sh + for f in $exec_prefix_locations ; do +! if test -r "$f/lib/tcl8.3/tclConfig.sh"; then +! TCL_LIB_DIR=$f/lib/tcl8.3 + echo "$ac_t""setting TCL_LIB_DIR to $TCL_LIB_DIR" 1>&6 + break + fi diff --git a/math/mpexpr/files/patch-ab b/math/mpexpr/files/patch-ab new file mode 100644 index 000000000000..632f872ecc8e --- /dev/null +++ b/math/mpexpr/files/patch-ab @@ -0,0 +1,100 @@ +*** Makefile.in.orig Fri Dec 4 16:04:23 1998 +--- Makefile.in Thu Feb 27 18:37:45 2003 +*************** +*** 83,95 **** + #------------------------------------------------------------------------------ + # define names for Mpexpr tclsh/tcl executable + +! TCL_EXEC = tclsh + TCLX_EXEC = tcl + + #------------------------------------------------------------------------------ + # define name for Mpexpr wish/wishx executable + +! WISH_EXEC = wish + WISHX_EXEC = wishx + + #------------------------------------------------------------------------------ +--- 83,95 ---- + #------------------------------------------------------------------------------ + # define names for Mpexpr tclsh/tcl executable + +! TCL_EXEC = tclsh8.3 + TCLX_EXEC = tcl + + #------------------------------------------------------------------------------ + # define name for Mpexpr wish/wishx executable + +! WISH_EXEC = wish8.3 + WISHX_EXEC = wishx + + #------------------------------------------------------------------------------ +*************** +*** 210,226 **** + # a make clobber and try LITTLE_ENDIAN. If that fails, ask a wizard + # for help. + # +! BYTE_ORDER= + #BYTE_ORDER= BIG_ENDIAN +! #BYTE_ORDER= LITTLE_ENDIAN + + # Determine the number of bits in a long + # + # If in doubt, leave LONG_BITS empty. This makefile will run + # the longbits program to determine the length. + # +! LONG_BITS= +! #LONG_BITS= 32 + #LONG_BITS= 64 + + +--- 210,226 ---- + # a make clobber and try LITTLE_ENDIAN. If that fails, ask a wizard + # for help. + # +! #BYTE_ORDER= + #BYTE_ORDER= BIG_ENDIAN +! BYTE_ORDER= LITTLE_ENDIAN + + # Determine the number of bits in a long + # + # If in doubt, leave LONG_BITS empty. This makefile will run + # the longbits program to determine the length. + # +! #LONG_BITS= +! LONG_BITS= 32 + #LONG_BITS= 64 + + +*************** +*** 473,486 **** + #------------------------------------------------------------------------------ + # install targets + +! install: @INSTALL_TARGET@ install-man install-tools + + install-shared: $(LIB_SH_MPEXPR) + @echo installing $(LIB_SH_MPEXPR) + $(INSTALL_PROGRAM) $(LIB_SH_MPEXPR) $(LIB_DIR)/$(LIB_SH_MPEXPR) + @echo installing pkgIndex.tcl + -mkdir $(LIB_DIR)/Mpexpr$(MPEXPR_LIBVER) +! $(INSTALL_PROGRAM) pkgIndex.tcl $(LIB_DIR)/Mpexpr$(MPEXPR_LIBVER)/pkgIndex.tcl + + install-static: @PROGS@ $(LIB_MPEXPR) + @for f in $(T_EXEC) $(W_EXEC) ; do \ +--- 473,487 ---- + #------------------------------------------------------------------------------ + # install targets + +! #install: @INSTALL_TARGET@ install-man install-tools +! install: @INSTALL_TARGET@ install-man + + install-shared: $(LIB_SH_MPEXPR) + @echo installing $(LIB_SH_MPEXPR) + $(INSTALL_PROGRAM) $(LIB_SH_MPEXPR) $(LIB_DIR)/$(LIB_SH_MPEXPR) + @echo installing pkgIndex.tcl + -mkdir $(LIB_DIR)/Mpexpr$(MPEXPR_LIBVER) +! $(INSTALL_DATA) pkgIndex.tcl $(LIB_DIR)/Mpexpr$(MPEXPR_LIBVER)/pkgIndex.tcl + + install-static: @PROGS@ $(LIB_MPEXPR) + @for f in $(T_EXEC) $(W_EXEC) ; do \ diff --git a/math/mpexpr/pkg-descr b/math/mpexpr/pkg-descr new file mode 100644 index 000000000000..a552bc20b2fe --- /dev/null +++ b/math/mpexpr/pkg-descr @@ -0,0 +1,15 @@ +Mpexpr adds two new commands to Tcl, 'mpexpr' and 'mpformat'. Mpexpr works +much like Tcl's native 'expr', but does all calculations using an arbitrary +precision math package. Mpexpr numbers can be any number of digits, with any +decimal precision. Final precision is controlled by a Tcl variable +'mp_precision', which can be any reasonable integer, limiting only the +number of digits to the right of the decimal point. + +Mpformat works much like Tcl's 'format', except it formats multiple +precision numbers in a variety of formats. + +Mpexpr also includes most math functions provided by 'expr', as well +as several new functions. Mpexpr also supports Tcl variables and +nested evaluation, just like 'expr': + +WWW: http://www.neosoft.com/tcl/ftparchive/sorted/math/mpexpr-1.0 diff --git a/math/mpexpr/pkg-plist b/math/mpexpr/pkg-plist new file mode 100644 index 000000000000..fa2d7e4faece --- /dev/null +++ b/math/mpexpr/pkg-plist @@ -0,0 +1,3 @@ +lib/libMpexpr10.so +lib/Mpexpr10/pkgIndex.tcl +@dirrm lib/Mpexpr10 -- cgit