This will cause the system to automatically run all of the unit tests
after a short pause on boot. Will be used by an automatic test script.
At the moment there aren't a lot of unit tests in the list, but this
should greatly increase the utility of them since they'll be
automatically run.
If some included rule.mk defines an additional make target that the user
might want to call (e.g., "flash"), and user specifies a project name on
the command line, then previously the outer "makefile" would call
engine.mk multiple times. The new logic prevents that.
Additionally, silence extra "Nothing to be done" messages when calling
engine.mk again after removing the project name from make goals.
Previously, if lk was built from an external directory that contained
"lk" in the name, the "findstring" check would succeed and not add lk's
directory to LKINC. This switches to a word comparison instead of
a substring search.
Add LKROOT to LKINC only if it is not already there.
This would allow to specify particular overlay processing
order if required.
Remove adding separate LKROOT/include to GLOBAL_DEFINES as
It is already a part of LKINC list.
Add all directories specified by LKINC to GLOBAL_LDFLAGS instead
of just LKROOT
Change-Id: Ia61623f88f2c5978182c40b09d98b6e5b84e3955
Using environment variables LKROOT and LKINC you can specify multiple
parallel top level directories (outside of the lk root) that are overlayed
on top of the build system. This allows for a structure like
lk/
testproject/
someotherfirmware/
Where each of these subdirs has an entire overlayed tree of libraries, platforms,
targets, and projects.
To accomplish this, copy makefile into the root dir and build a lk_inc.mk that
sets LKROOT and LKINC.
-Each module's rules.mk defines a seperate linkage unit. Each
module can have a private set of CFLAGS, DEFINES, INCLUDES, and so
forth.
-Files to be compiled are now added by source, not object.
Most rules.mk files can be converted easily by following these steps:
1) add 'MODULE := $(LOCAL_DIR)' near the top of the file
2) change OBJS += to MODULE_SRCS += and list source files instead of .os
3) add 'include make/module.mk' at the bottom of the file
See make/module.mk for directions.