Fixed Makefile dependenies for the args.h rule.
Fixed Makefile cases where echo with -n is used. On some systems,
/bin/sh does not use -n, so we must call /bin/echo -n instead
via the ${ECHON} Makefile variable.
Add missing standard tools to sub-Makefiles to make them
easier to invoke directly.
Sort lists of standard tool Makefile variables and remove duplicates.
Declare the SHELL at the top of Makefiles.
Fixed the depend rule in the custom Makefile.
Fixed a mistake in "help intro" where some inserted text
changed the value of "." and thus made the next result
incorrect.
Clarified in "help factor" that 1 is returned if no
factor below the limit was found.
Removed Makefile variable ${MAKEFILE_REV}.
The missing cscript/square.calc file has been restored.
Fixed compiler errors and warnings related to GCC.
In particular, gcc/9.3.1 and gcc/10.2.1 now compile
calc without any compiler errors or warnings,
even with -Werror -Wextra -pedantic.
To print out information about the calc compliation
environment, we added the following make rule:
make calcinfo
Improved how 'make debug' operates.
Moved help/contrib to CONTRIB-CODE. The help/contrib file
is now build from a copy of CONTRIB-CODE.
Created a new calc bug report Email address. Created a new calc
question Email address. Created a new calc contribution Email
address. See the BUGS file for details.
Added "help questions" to print the QUESIONS help file.
If the environment variable $CALCHELP is defined and is non-empty,
then calc help files will be in the direcgory by the $CALCHISTFILE
environment variable.
If the environment variable $CALCCUSTOMHELP is defined and is
non-empty, then custom calc help files will be in the direcgory
by the $CALCCUSTOMHELP environment variable.
The calc-tester mailing list has been retired. See:
* How to submit a calc bug report:
http://www.isthe.com/chongo/tech/comp/calc/calc-bugrept.html
* How to contribute code to calc:
http://www.isthe.com/chongo/tech/comp/calc/calc-contrib.html
* How to submit a question about calc:
http://www.isthe.com/chongo/tech/comp/calc/calc-question.html
We are not ready, just yet, to enable:
-fsanitize=undefined -fsanitize=address
Instead we need to test with:
make clobber all check COMMON_ADD='-fsanitize=undefined -fsanitize=address'
Once the regression test passes, we can consider how to use COMMON_ADD
during development.
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 comamnds that do not understand the += operator.
Example on masOS (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'
Some folks might think: “you still use RCS”?!? And we will say,
hey, at least we switched from SCCS to RCS back in … I think it was
around 1994 ... at least we are keeping up! :-) :-) :-)
Logs say that SCCS version 18 became RCS version 19 on 1994 March 18.
RCS served us well. But now it is time to move on. And so we are
switching to git.
Calc releases produce a lot of file changes. In the 125 releases
of calc since 1996, when I started managing calc releases, there
have been 15473 file mods!
calc GitHub philosophy
All of the previous commits in the master branch are the consists
of compressed source tarballs. The 125 git tags represent calc
releases from version 2.10.2t30 (Sat Jul 06 1996 04:17:00 GMT-0700)
to version 2.12.5.6 (Sun May 21 2017 15:03:29 GMT-0700).
At this point master branch will switch from those released tarballs
to the development tree. While we will make an effort to verify
that commits won't break calc: sometimes we will end up breaking
calc. You should consider the top of the master branch as potentially
unstable.
When we are ready to release calc, we will tag the commit with the
calc version and submit a release on GitHub. The GitHub release
will contain the usual RPMs, SRPMs, a release README and a released
source tarball.