Closed Colin-Holehouse closed 5 years ago
In the current incarnation, a "design" is intrinsically linked to a "platform" for a few reasons:
The current implementation is more akin to a whitelist of design-platform combinations. Allowing arbitrary combinations of design and platforms will inherently require some sort of blacklist on incompatible permutations
We will defer this for a future more robust "flow" infrastructure
Currently in the flow/Makefile a DESIGN_CONFIG is specified which references a makefile fragment that sets variables for the design and library configuration
Separating these out into DESIGN only and PLATFORM only makefile fragments allows ALL the base platform information to be defined within the platform, reducing errors setting up to run with a new platform.
The resulting makefile could be as follows:
DESIGN_CONFIG ?= ./designs/gcd.mk PLATFORM ?= nangate45
include $(DESIGN_CONFIG) include ./platforms/$(PLATFORM)/config.mk
Need to think about how to deal with design specific generated library elements