Directories listed in this variable are added to include and
source (vpath) search paths.
Contents of this variable aren't automatically prefixed with
Contki root. This allows for inclusion of folders that are
outside Contiki root.
The commit bddd96d5c8 "Removed all module
makefiles. Instead, all .c files in a module directory are compiled."
made the MODULESSUBST variable useless, but it did not remove it, so do
it now.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
By changing RELSTR= into RELSTR:= we force Make to evaluate the Git
version string only during Makefile read, and not on every single build
command execution.
The reduction in file system I/O cut the time to build
examples/er-rest-example on my development machine by a significant
amount, see below.
Core i7 notebook with ext4 file system on an SSD (building for TARGET=mulle):
"RELSTR=" make 19.70s user 1.07s system 82% cpu 25.291 total
"RELSTR:=" make 11.81s user 1.27s system 79% cpu 16.499 total
Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
rm -f can still fail, e.g., if trying to delete a directory.
If there was, say, a directory called "core", a "make clean" would
therefore only try to delete the files listed in the first command but
not proceed with the rest of the cleanup.
"make clean" itself failing may also affect any outside build process
that invokes it.
This should be more friendly to legacy operating systems that
don't support multiple shell commands per line. Note that
architecture-specific overrides need to be adapted, if verbosity
control is desired for them as well.
This shortens $(CC) and $(AR) lines to a much more readable length,
making warnings stick out clearly.
The spaces after "CC" and "AR" are to reserve space for other operations
that may use longer names, such as the communly found "BUILD" or
"GENERATE".
Historically $(OBJECTDIR) was created when Makefile.include is read. A
consequence is that combining "clean" with "all" (or any other build
target) results in an error because the clean removes the object
directory that is required to exist when building dependencies.
Creating $(OBJECTDIR) on-demand ensures it is present when needed.
Removed creation of $(OBJECTDIR) on initial read, and added an order-only
dependency forcing its creation all Makefile* rules where the target is
explicitly or implicitly in $(OBJECTDIR).