Remove limited use HAVE_ZLIB wrapper API into separate header as
utils.h is used in many places and most source files don't need
to drag in the header file from this external dependency.
Copyright date(s) taken from original source file / git blame.
This is a low level thing that other lowlevel API (platform shims for
strlen_s() and ctime_r() want to make use of, without any application
global pollution).
Copyright date(s) taken from git blame information for moved lines.
The ../database/database.h dependency is already described (only when
necessary) inside the Depend file for the specific complication unit.
Not all objects are affected by database.h changes, so it doesn't need
to be forced as a dependency for all OBJS.
Depend itself was never rebuilt when a source file changed. This now
happens, however technically the superior MAKE process needs to restart
so it includes the new updated copy of Depend file we just updated.
However in practice when developing, modifying #include directives does
not happen often and doing 'make; make' will fix the issue performing
an incremental build both times. So a minor caveat.
Previously when a single source file was changed the entire module was
recompiled, but we have a Depends file to manage the incremental build
problem and we are not really using it (if we always recompile the entire
module due to any one file change, there would be no need for Depends).
Now when developing, a single *.c file change results in the Depends
being rebuilt, then the single file compiled, then the module relinked.
This is exactly the kind of incremental build speedup having a Depends
file is designed to achieve.
Additionally the use of a direct pipeline to create the file does not
manage error scenarios. MAKE itself is driven by file existance and
their timestamps for targets, so even if 'make depend' failed, it
would still create an output file that MAKE can not distunguish
between a well formed (possibly empty) Depend file and an incorrectly
created partial. So building in a *.tmp file first and only if all the
commands are successful then rename to target filename. This has the
effect of making 'make depend' able to fail now.
This was more a clarity matter as relocatable autoconf makes all
references to the path look longer and more unweildly making it
a variable makes shorter and easier to read work through.
Especially when related to risks with RM arguments using the output
of a shell call in the argument list. What could go wrong ?
This target consumes ~50% of the total build time due to the
serialization of the shell for loop method.
Also the removal of the */Depend is deferred to the subdir
Makefile's responsibility.
rename symlink(s) use phony targets, delegate the symlink creation
management command sequence to a single point in the project inside
the readline/Makefile
This split has the effect (with modified .o.c Makefile rule of
correctly using the $CC for .c files and not try to build .cpp
with C compiler, which fails in oa/** for example.
This can only cause trouble being a global default setting.
All project include files are qualified with a path prefix to help
disambiguate duplication of header file names to effectively provide
a namespace.
When removing it nothing seemed break. Maybe more configurations
should be tested. They were all ok.
Previously the variable resolution was passed to compiler command line
when ideally this only needs to be resolved once per build and the
entrie build uses the same value.
Compiler command line is computed at least once per file (plus Depends
pass), so this is forking at least 5 extra times during the build.
This improves things somewhat so resolution is performed less.
This may have the effect of making the build appear faster when
ccache is working. As the command line options maybe seen as a
constant.
not to re-process processed tiles made an incorrect assumption,
causing tiles not to be re-processed when the clip area changed,
such that areas would be missed. It is not clear that in its
corrected version, "bloat-all ... [dist]" is any more efficient
than the original implementation of an incremental series of bloat
+ AND. At least the syntax in the tech file is much simplified.
This switches the 'remotes/origin/HEAD' and uses the current HEAD of the
current checked out git repo.
Revised the sed rule that is transforming (to be more specific on the
matching regex /-\d+-g/ than just the first /-/):
8.3.530-7-gb64321d4 => 8.3.530+7-gb64321d4 (replace first '-' with '+'
to indicate it is tag plus this many commits)
8.3.530 => 8.3.530 (no change)
This switches to the 'continuous' tag release, that will auto update.
This broke the very old AppImage7 tool since that release not return
HTTP/404. But I updated all to use their current recommendation.
cast as "bool", causing issues with the proper/strict use of
the "bool" type. Changed the version back so that it will
update the github mirror tonight, since the current version
appears to be working.
int spcnAP() follows K&R param ordering
int spcnAPHier() follows K&R param ordering
TODO mergeAttr() sharing references (does this setup a future potential
use-after-free concern?)