Hi Johannes,
The point where I got stuck, however, is that I need to include the less-specific configuration files within base-hw, which I achieve by the following line:
include $(call select_from_repositories,lib/mk/spec/zynq/core.inc)
Now, the issue is that including makefiles from other repositories won't work properly. This is due to the fact that $REP_DIR (used e.g. in core.inc) will evaluate to `[...]/repos/world` and not `[...]/repos/base-hw`.
Do you have any idea on how to work around this or even on how to improve the build system in order to support this use case?
Hosting core.mk files outside the base-hw repository is a new pattern for us, but I see the appeal.
REP_DIR always points to the repository where the target resides - in your case, this is the core.mk library. The simplest solution would be to replace the occurrences of REP_DIR in core.inc by a new variable BASE_HW_DIR, which has to be defined by the one to includes core.inc. The core.mk files within the base-hw repository would simply define to as $(REP_DIR) but your "foreign" core.mk file could set the variable explicitly to the location of the base-hw repository.
Would that solve your problem?
Cheers Norman