Makefile: Do not dump the environment during db-prepare
The resources.yaml file does not exists at the beginning of the db-prepare calls
but the environment wants to read it which leads to the following error:
Preparing artix7 files
============================
Traceback (most recent call last):
File ".../prjxray/utils/create_environment.py", line 62, in <module>
main()
File ".../prjxray/utils/create_environment.py", line 55, in main
environment = get_environment_variables()
File ".../prjxray/utils/create_environment.py", line 37, in get_environment_variables
part_info = get_part_information(db_root, part)
File ".../prjxray/prjxray/util.py", line 44, in get_part_information
"Mapping file {} does not exists".format(filename)
AssertionError: Mapping file .../prjxray/database/artix7/mapping/parts.yaml does not exists
Do not dump the environment during this stage because the XRAY_PART is the only
neccessary information which is set in the <family>.sh script.
Signed-off-by: Daniel Schultz <d.schultz@phytec.de>
diff --git a/Makefile b/Makefile
index 782f250..f436df8 100644
--- a/Makefile
+++ b/Makefile
@@ -144,8 +144,8 @@
@echo "============================"
@mkdir -p database/$(1)/mapping
@cp settings/$(1)/devices.yaml database/$(1)/mapping/
- @+source settings/$(1).sh && $(IN_ENV) ./utils/update_parts.py $(1)
- @+source settings/$(1).sh && $(IN_ENV) ./utils/update_resources.py $(1)
+ @+SKIP_ENV=true source settings/$(1).sh && $(IN_ENV) ./utils/update_parts.py $(1)
+ @+SKIP_ENV=true source settings/$(1).sh && $(IN_ENV) ./utils/update_resources.py $(1)
db-$(1):
+source settings/$(1).sh && $$(MAKE) -C fuzzers
diff --git a/utils/create_environment.py b/utils/create_environment.py
index 852c221..9303ebd 100755
--- a/utils/create_environment.py
+++ b/utils/create_environment.py
@@ -49,6 +49,13 @@
def main():
+ # Only dump the environment when the resource.yaml file for the family
+ # exists to prevent errors during the creation on the stdout.
+ # SKIP_ENV in the environment turns off the environment dump for updating
+ # all parts and resources, which will create the resource.yaml file.
+ if 'SKIP_ENV' in os.environ:
+ return
+
environment = get_environment_variables()
for key, value in environment.items():