pkgsrc/math/capc-calc/Makefile
chuck 5d202acf4a capc-calc: update to 2.12.7.1 and fix darwin compile
2.12.7.1 is the latest stable version.  for darwin use
${COMPILER_INCLUDE_DIRS} to find include dirs since
/usr/include may not be there.  also, we want INCDIR
to point to the system includes, but we want CALC_INCDIR
to point at ${PREFIX}/include/calc.  minor updates to Makefile
patch to do this.


2.12.4.13 to 2.12.7.1 changes from the calc maintainer's CHANGES file:

The following are the changes from calc version 2.12.7.1 to date:

    Corrected CHANGES notes that were mixed up for TAB, VT, CR &
    NL.  The code in 2.12.7.0 is correct.  The CHANGE notes should
    have read:

    The following is a partial list of escape sequences recognized
    in strings and in printf formats:

	\a	audible bell	byte 0x07 in ASCII encoding
	\b	backspace	byte 0x08 in ASCII encoding
	\f	form feed	byte 0x0c in ASCII encoding
	\n	newline		byte 0x0a in ASCII encoding
	\r	return		byte 0x0d in ASCII encoding
	\t	tab		byte 0x09 in ASCII encoding
	\v	vertical tab	byte 0x0b in ASCII encoding

    Sorry!


The following are the changes from calc version 2.12.6.10: to 2.12.7.0:

    Added a patch to replaces the manual search for include files
    in $(INCDIR) in the have_*.h targets with compiler invocations.
    Thanks goes to Helmut Grohne (helmut at subdivi dot de) who
    implemented the patch and posted it to the Debian bug tracker
    and Martin Buck (m at rtin-buck dor de) for forwarding it to us.

    The check_include make rule was fixed to not assume /usr/include.

    The qprintnum() function now takes outdigits as a 3rd argument.
    Most of the time, this 3rd argument is just conf->outdigits.
    But when it comes to the experimental '%g', this value can
    change.  This avoids having to modify conf->outdigits.

    Fixed a problem where gcc complains about E_FUNC not being defined
    for Linux systems as reported by Martin Buck (m at rtin-buck dor de).

    Updated the help files help/config, help/display, help/epsilon,
    help/fprint, help/printf, and help/strprintf to give more
    examples of how display digits and epsilon precision interact
    with displaying values.

    Added more information about %g in the help file help/printf.

    The '\a' is now recognized in a printf format string as the
    single byte audible bell character (byte 0x07 in ASCII encoding).

    The following is a partial list of escape sequences recognized
    in strings and in printf formats:

	\a	audible bell	byte 0x07 in ASCII encoding
	\b	backspace	byte 0x08 in ASCII encoding
	\f	form feed	byte 0x0c in ASCII encoding
	\n	newline		byte 0x0a in ASCII encoding
	\r	return		byte 0x0d in ASCII encoding
	\t	tab		byte 0x09 in ASCII encoding
	\v	vertical tab	byte 0x0b in ASCII encoding


The following are the changes from calc version 2.12.6.9 to 2.12.6.9:

    Fixed a number of core dump bugs related to the calculation of
    tan(), cot(), sec(), csc(), tanh(), coth(), sech(), and csch(),
    asin(), acos(), asinh(), acosh(), where when a call to an
    underlying function produced an invalid value.  Thanks goes to
    github user wuxiuheng for reporting this problem.

    A number of trigonometric and hyperbolic functions that incorrectly
    returned E_LOGINF, now return a new error code that is more
    specific to the trigonometric or hyperbolic function.  The
    following is a list of these new error codes: E_TAN3 E_TAN4
    E_COT3 E_COT4 E_SEC3 E_CSC3 E_TANH3 E_TANH4 E_COTH3 E_COTH4
    E_SECH3 E_CSCH3 E_ASIN3 E_ACOS3 E_ASINH3 E_ACOSH3 E_ATAN3 E_ACOT3
    E_ASEC3 E_ACSC3 E_ATANH3 E_ACOTH3 E_ASECH3 E_ACSCH3.

    Added regression tests 3729 thru 3732 to test E_TAN3, E_COT3,
    E_SEC3 and E_CSC3 respectively.

    Added experimential %g printf (and strprintf) format implementation
    based on pull request from github user 10110111.

    Made exterimental changes to macOS builds to not require use of
    /usr/include.  The INCDIR for macOS uses:

	INCDIR= $(shell xcrun --show-sdk-path --sdk macosx)/usr/include

    to determine the upper path of the /usr/include directory for macOS.
    In some rare cases, the Darwin target seems to not automatically detected.
    If you are running under macOS, and that happens, you can force
    the target to be Darwin:

	# for macOS users only, force the target to be darwin
	#
	make target=Darwin clobber
	make target=Darwin all
	make target=Darwin chk
	make target=Darwin install


The following are the changes from calc version 2.12.6.6 to 2.12.6.8:

    For historical purposes, in lucas.cal, gen_v1(1, n) always returns 4.

    Fixed some compiler warnings, thanks to a report by Mike
    <michael dot d dot ince at gmail dot com>.

    Added work around for a gcc warning bug, thanks to a report by Mike
    <michael dot d dot ince at gmail dot com>.

    Fixed errors in various help files such as:

	mat randbit seed srandom types

    Removed the MAXSTRING symbol because it was no longer used by calc.

    Increased HIST_SIZE (depth of the history stack) from 10k to 32k.

    Increased TTYSIZE (reallocation size for terminal buffers) from 100 to 8191.

    Increased MAXDEPTH (maximum depth of input stack) from 10 to 255.

    Increased interactive input buffer size from 1024 to 256k.  This has the
    effect of increasing the maximum length of an input line from a tty.
    This helps with an interactive bug that was reported by Ruslan Kabatsayev
    (b7 dot 10110111 at gmail dot com).

    The calc man page indicates that -d also disables the printing of the
    leading tilde.

    Added information to "help command" about how to silence messages
    while reading calc resource files.

    Fixed an error message buffer overflow thanks to a report by
    Frank Peters <nlp at northernlightsphoto dot biz>.

    Replaced all use of the C funcion sprintf() with snprintf().
    Replaced all use of the C funcion vsprintf() with vsnprintf().
    Replaced all DONT_HAVE_VSPRINTF with DONT_HAVE_VSNPRINTF.
    Replaced all Makefile var ${HAVE_VSPRINTF} with ${HAVE_VSNPRINTF}.


The following are the changes from calc version 2.12.6.4 to 2.12.6.5:

    Fixed warning about undefined operations involving the qlink(q)
    macro by replacing that macro with an inline-function.  Thanks goes
    to David Haller <dnh at opensuse dot org> for this fix.

    NOTE for Windows 10 users: Pavel Nemec <pane at seznam dot cz>
    reported that calc version 2.12.6.4 has been successfully
    compiled, installed and running on Windows 10.  See README.WINDOWS
    for more details.


The following are the changes from calc version 2.12.6.1 to 2.12.6.3:

    Improved gen_v1(h,n) in lucas.cal to use an even faster search method.

    Improved are checking in lucas.cal.  In particular both h and n must be
    integers >= 1.  In the case of both rodseth_xhn(x, h, n) and gen_v1(h, n)
    h must be odd.

    Fixed an C code indenting issue that was reported by Thomas Walter
    <th dot walter42 at gmx dot de> in zfunc.c.

    Fixed a man page warning about ./myfile where the leading dot
    was mistook for an nroff macro.  Thanks goes to David Haller
    <dnh at opensuse dot org> for providing the patch.

    Improved gen_v1(h,n) in lucas.cal for cases where h is not a
    multiple of 3. Optimized the search for v(1) when h is a
    multiple of 3.

    Fixed a Makefile problem, reported by Doug Hays <doughays6 at gmail
    dot com>, where if a macOS user set BINDIR, LIBDIR, CALC_SHAREDIR
    or INCDIR in the top section, their values will be overwritten by
    the Darwin specific section.


The following are the changes from calc version 2.12.6.0 to 2.12.6.0:

    Added the makefile variable ${COMMON_ADD} that will add flags
    to all compile and link commands. The ${COMMON_ADD} flags are
    appended to both ${COMMON_CFLAGS} and ${COMMON_LDFLAGS}.  This
    facility is available to nearly all platforms except those with
    very old make commands that do not understand the += operator.

    Example on macOS (Darwin), one may invoke clang's -fsanitize
    facility by:

	make clobber all \
	  COMMON_ADD='-fsanitize=undefined -fsanitize=address'

    Another example.  To force C warnings to be treated as errors:

	make COMMON_ADD='-Werror'

    Created a GitHub repository for calc:

	https://github.com/lcn2/calc

    NOTE: The calc GitHub repository represents the an active
	  development stream.  While an effort will be made to keep
	  the master branch of the calc GitHub repository in working
	  order, that tree may be unstable.  Those wishing for more
	  reliable releases use releases found at calc mirror sites:

	    http://www.isthe.com/chongo/tech/comp/calc/calc-mirror.html

    IMPORTANT NOTE:

	On 2017 June 05, the calc GitHub history was re-written.
	Anyone who was tracking the calc "pre-release" on GitHub prior
	to version 2.12.6.0 should do a:

	    git reset --hard origin/master
	    git cleanup -f

	Or you may just want to start over:

	    rm -rf calc
	    git clone https://github.com/lcn2/calc.git

	Sorry about that.  The previous GitHub repository was an useful
	experiment.  Based on what we learned, we decided to rebuild it.

    Renamed README to README.FIRST.  Added README.md for the
    GitHub repository.

    Fixed reading from standard input (stdin) when -p is given on
    the command line.  This now prints hello:

	echo hello | calc -p 'stdin = files(0); print fgetline(stdin);'

    Added more debugging related to stdin when bit 4 of calc_debug
    is set (e.g., running calc with -D16).

    Updated the calc(1) man page and 'help file' to explain about
    reading from standard input (stdin).

    Added some clarifying remarks for 'help ptest' explaining that
    the ptest builtin can return 1 is some cases where the test
    value is a pseudoprime.

    Removed duplicate copyright comments from the help/builtin that
    is built.

    Fixed a number of typos in the CHANGES file.

The following are the changes from calc version 2.12.5.4 to 2.12.5.6:

    Recompile to match current RHEL7.2 libc and friends.

    Added fix by Alexandre Fedotov <fedotov at mail dot desy dot de>
    to prepend ${T} in front of the CALCPATH path components
    ${CALC_SHAREDIR} and ${CUSTOMDIR}.  Add ${T} in front of ${HELPDIR}
    and ${CUSTONHELPDIR} when making conf.h.

    Improved the jacobi help page.

    Rewrote gen_v1() in the lucas.cal resource file using the method
    based on a paper:

 	"A note on primality tests for N = h*2^n-1", by Oystein J. Rodseth,
	Department of Mathematics, University of Bergen, BIT Numerical
	Mathematics. 34 (3): pp 451-454.

	http://folk.uib.no/nmaoy/papers/luc.pdf

    The improved gen_v1() function is capable of returning a value
    for all valid values of h and n.  As a result, the trial tables
    used by gen_v1() have been changed to a short list of values
    to try, in order ot likelyhood of success, before doing an
    exhaustive search for a v1 value to return.

    Removed lucas_tbl.cal calc resource file.  This file was made
    obsolete by the above rewrite of the lucas.cal resource file.
    This file will be removed from the local cal directory and
    from CALC_SHAREDIR during a 'make install', 'make clobber',
    and 'make uninstall'.

    Renamed gen_u0() to gen_u2() in lucas.cal.  Provided a gen_u0()
    stub function that calls gen_u2() for backward compatibility.

    The old gen_v1() method used by the Amdahl 6 group has been
    renamed legacy_gen_v1() in lucas.cal.  This function is no
    longer used by the lucas(h, n) function to test the primality of
    h*2^n-1.  It is preserved in lucas.cal for historical purposes.

    The 'make clobber' rule will attempt to remove all files that
    start with libcalc and start with libcustcalc.

    The 'man' command is now an alias for the 'help' command.

    Fixed extra /'s that were put into CALCPATH because of ${T}.
    Fixed extra /'s that were compiled into HELPDIR and CUSTOMHELPDIR.

    The fix in 2.12.5.4 to to prepend ${T} in front of the CALCPATH
    path components ${CALC_SHAREDIR} and ${CUSTOMDIR} broke the
    calc rpm build process.  The check-buildroot tool discovered
    that the BUILDROOT directory had been improperly put into various
    paths and binaries.  This has been fixed in 2.12.5.5.

    Fixed a crash that showed up on macOS (Darwin) that was reported
    by Richard Outerbridge <outer at interlog dot com> and
    fixed by Stuart Henderson <stu at spacehopper dot org>.
    Thanks goes to both!


The following are the changes from calc version 2.12.5.3 to 2.12.5.3:

    Calc version 2.12.5.2 for macOS (Darwin) users, code to installed
    calc under /opt/calc.  Moreover the CHANGES file did not mention
    /opt/calc.  Sorry about that!.

    A much better tree for macOS (Darwin) users would have been
    to install cal under /opt/calc.  This release ONLY changes the
    macOS (Darwin) install tree to /usr/local.

    macOS (Darwin) users who installed calc version 2.12.5.2
    should, after installing version 2.12.5.3:

    	rm -rf /opt/calc


The following are the changes from calc version 2.12.5.1 to 2.12.5.2:

    NOTE: calc version 2.12.5.2, for macOS (Darwin) users,
    	  installed under /opt/calc.  We neglected to mention this
	  AND /usr/local would have been a better choice.  Sorry!
	  Fixed in calc version 2.12.5.3.

    Removed rules and makefile variables associated with shortened
    calc version numbers of less than 4 levels.

    Under OS X (Darwin), if /usr/include is missing, warnings
    are issued to help the user use xcode-select --install
    so that one may properly compile C code.

    Lowered REDC levels:

	#define MAXREDC 256	/* number of entries in REDC cache */

	#define SQ_ALG2 28	/* size for alternative squaring */
	    config("sq2") == 28		/* was 3388 */
	#define MUL_ALG2 28	/* size for alternative multiply */
	    config("mul2") == 28	/* was 1780 */
	#define POW_ALG2 20	/* size for using REDC for powers */
	    config("pow2") == 20	/* was 176 */
	#define REDC_ALG2 25	/* size for using alternative REDC */
	    config("redc2") == 25	/* was 220 */

    The alg_config.cal script appears to be not correctly finding the
    best REDC values.  While it has been improved, alg_config.cal still
    seems to be suspect on how it attempts to find the best values.

    Fixed an intro help file mistake found by Roger Hardiman
    <roger at rjh dot org dot uk>.


The following are the changes from calc version 2.12.5.0 to 2.12.5.1:

    Calc has a new calc-tester mailing list.  This list is for those
    who are using/testing calc.  We also use this list to announce
    new versions of calc.  To subscribe to the calc-tester mailing
    list, visit the following URL:

	    http://www.isthe.com/chongo/tech/comp/calc/calc-tester.html

	This is a low volume moderated mailing list.

	This mailing list replaces calc-tester at asthe dot com list.

	If you need a human to help you with your mailing list subscription,
	please send Email to our special:

	    calc-tester-maillist-help at asthe dot com

	address.  To be sure we see your Email asking for help with your
	mailing list subscription, please use the following phase in your
	Email Subject line:

	    calc tester mailing list help

	That phrase in your subject line will help ensure your
	request will get past our anti-spam filters.  You may have
	additional words in your subject line.

    There is a new calc bug report Email address:

	    calc-bug-report at asthe dot com

	This replaces the old calc-bugs at asthe dot com address.

	To be sure we see your Email reporting a calc bug, please use the
	following phase in your Email Subject line:

	    calc bug report

	That phrase in your subject line will help ensure your
	request will get past our anti-spam filters.  You may have
	additional words in your subject line.

	However, you may find it more helpful to simply subscribe
	to the calc-tester mailing list (see above) and then to
	send your report to that mailing list as a wider set calc
	testers may be able to help you.

    The following makefile rules that were related to printing the
    upper values of the calc version, rules that were made obsolete
    in calc version 2.12.4.14, have been removed:

	calc_vers calc_ver calc_ve
	vers ver ve

    Noted that the hash() builtin function, internally known as
    quickhash (used for internal objects such as the associative
    arrays as well as other internal processes) uses the deprecated
    32-bit FNV-0 hash.  The use of this deprecated hash is sufficient
    for calc internal purposes.  Use of FNV-1a is recommended for
    a general non-cryptographic quick hash.


The following are the changes from calc version 2.12.4.14 to 2.12.5.0:

    For Apple OS X / Darwin target:

    	MACOSX_DEPLOYMENT_TARGET is no longer defined
	using clang compiler

	By default, -install-name is used when forming shared libs.
	To force -install-name to not be used, set SET_INSTALL_NAME=no.

    The have_stdvs.c test uses <stdlib.h> and fixed va_start() test call
    that didn't use last arg.

    Fixed math_fmt (printf) in value.c where a LEN (SB32) be printed as %d.

    Fixed a significant bug where that resulted in an incorrect
    complex number comparison.  Thanks goes to David Binderman
    <dcb314 at hotmail dot com> for identifying the subtle typo!

    Make minor fixes to the make depend rule.

    Fixed places were calc defined a reserved identifier that
    begin with either __ or _[A-Z].  For example, __FILE_H__ has
    been replaced with INCLUDE_FILE_H.

    Fixed the addall3 example in the script help file.  Thanks for this
    fix goes to Igor Furlan <igor dot furlan at gmail dot com>.

    We made important fixes to the calc command line history:

	Fixed a bug in the command line history where calc would sometimes
	crash.  There was code that used memcpy() instead of memmove()
	that could corrupt the command line history when entering a
	into into history that was similar to a previous entry.  Thanks
	goes to Einar Lielmanis <einars at spicausis dot lv> for first
	identifying this mistake.

	The calc command line history code, in general was not robust.
	We made use a patch from Mathias Buhr <napcode at users dot sf
	dot net>, that while it uses a bit more memory: is much more
	flexible, readable and robust.  This patch replaced the improper
	use of memcpy() (see above) with better code.  Thanks!

    The alg_config.cal calc resource file has been reworked to produce
    better diagnostics while attempting to determine the ideal values
    for mul2, sq2, and pow2.  However, it has been shown that this
    code is not correct.  Suggestions for a replacement are welcome!

   	calc -u 'read alg_config; config("user_debug", 2),; best_mul2();'
   	calc -u 'read alg_config; config("user_debug", 2),; best_sq2();'
   	calc -u 'read alg_config; config("user_debug", 2),; best_pow2();'

    Fixed a number of pedantic compiler warnings.

    Removed -W and -Wno-comment from the the CCWARN makefile variable.

    Removed no_implicit.arg makefile rule.  Removed HAVE_NO_IMPLICIT
    makefile variable.  Removed no_implicit.c source file.

    Added WNO_IMPLICT makefile variable to hold the compiler flag
    -Wno-implicit for use on selective compile lines.

    Added WNO_ERROR_LONG_LONG makefile variable to hold the compiler flag
    -Wno-error=long-long for use on selective compile lines.

    Added WNO_LONG_LONG makefile variable to hold the compiler flag
    -Wno-long-long for use on selective compile lines.

    The makefile variable ${MKDIR_ARG} has been replaced with just -p.

    Minor fixes were made to the calc.spec.in file.

    The target rpm architecture changed from i686 to x86_64.  For those
    who do not run machine with x86_64, we continue to release a src
    rpm. For those without the ability to process an rpm, we will always
    to release src tarball.

    When building the libcalc and libcustcalc shared  libraries,
    ONLY the .so and .so.${VERSION} files are created.  The .so is
    a symlink to the .so.${VERSION} file.  Here ${VERSION} is the
    full "w.x.y.z" calc version.
2018-12-31 16:35:25 +00:00

30 lines
751 B
Makefile

# $NetBSD: Makefile,v 1.48 2018/12/31 16:35:25 chuck Exp $
#
DISTNAME= calc-2.12.7.1
PKGNAME= capc-${DISTNAME:S/t/./}
CATEGORIES= math
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=calc/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.isthe.com/chongo/tech/comp/calc/
COMMENT= C arbitrary precision calculator
MAKE_JOBS_SAFE= no
USE_TOOLS+= gmake
BUILD_TARGET= calc-static-only
MAKE_ENV+= BLD_TYPE=calc-static-only target=pkgsrc
MAKE_ENV+= DEBUG=${CFLAGS:M*:Q}
# XXX Doesn't use curses, but we patch for it for readline stupidly
FAKE_NCURSES= yes
INSTALL_MAKE_FLAGS+= T=${DESTDIR}
TEST_TARGET= check
.include "../../mk/curses.buildlink3.mk"
.include "../../mk/readline.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"