Package imagesΒΆ
Each EDA tool/project is built once only for each collection and architecture in this image/container ecosystem.
However, some (many) of the tools need to be included in multiple images for different purposes.
Moreover, it is desirable to keep build recipes separated, in order to better understand the dependencies of each
tool/project.
Therefore, REGISTRY/[ARCHITECTURE/][COLLECTION/]pkg/
images are created/used (coloured BLUE in the
Graphs).
These are all based on scratch
and are not runnable.
Instead, they contain pre-built artifacts, to be then added into other images through COPY --from=
.
Since pkg
images are not runnable per se, but an intermediate utility, the usage of environment variables
PREFIX
and DESTDIR
in the dockerfiles might be misleading.
All the tools in the ecosystem are expected to be installed into /usr/local
, the standard location for user built
tools on most GNU/Linux distributions.
Hence:
PREFIX
should typically not need to be modified. Most of the tools will default toPREFIX=/usr/local
, which is correct. Yet, some tools might default to/
or/usr
. In those cases, setting it explicitly is required.DESTDIR
must be set to an empty location when callingmake install
or when copying the artifacts otherhow. The content of the corresponding package images is taken from that empty location. Therefore, ifDESTDIR
was unset, the artifacts of the tool might potentially be mixed with other existing assets in/usr/local
. In most of the dockerfiles,/opt/TOOL_NAME
is used as the temporary empty location.
Despite the usage of these variables being documented in GNU Coding Standards,
DESTDIR
seems not to be very used, except by packagers.
As a result, contributors might need to patch the build scripts upstream.
Sometimes DESTDIR
is not supported at all, or it is supported but some lines in the makefiles are missing it.
Do not hesitate to reach for help through the issues or the chat!