- cpu_type = self.soc.cpu_type
- memory_regions = self.soc.get_memory_regions()
- flash_boot_address = getattr(self.soc, "flash_boot_address", None)
- csr_regions = self.soc.get_csr_regions()
- constants = self.soc.get_constants()
-
- buildinc_dir = os.path.join(self.output_dir, "software", "include")
- generated_dir = os.path.join(buildinc_dir, "generated")
- os.makedirs(generated_dir, exist_ok=True)
-
- variables_contents = []
- def define(k, v):
- variables_contents.append("{}={}\n".format(k, _makefile_escape(v)))
- for k, v in cpu_interface.get_cpu_mak(self.soc.cpu):
- define(k, v)
- # Distinguish between LiteX and MiSoC.
- define("LITEX", "1")
- # Distinguish between applications running from main RAM and
- # flash for user-provided software packages.
- if "main_ram" in (m[0] for m in memory_regions):
- define("COPY_TO_MAIN_RAM", "1")
- else:
- define("COPY_TO_MAIN_RAM", "0")
- define("SOC_DIRECTORY", soc_directory)
- variables_contents.append("export BUILDINC_DIRECTORY\n")
- define("BUILDINC_DIRECTORY", buildinc_dir)
- for name, src_dir in self.software_packages:
- define(name.upper() + "_DIRECTORY", src_dir)
- write_to_file(
- os.path.join(generated_dir, "variables.mak"),
- "".join(variables_contents))