diff --git a/Makefile b/Makefile index 00891539491..dbf54f56b56 100644 --- a/Makefile +++ b/Makefile @@ -162,7 +162,8 @@ docs: rels: $(ELF) $(RELS) @echo generating RELs from .plf - @$(PYTHON) $(MAKEREL) build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF) + @echo $(RELS) > build/plf_files + $(PYTHON) $(MAKEREL) build --string-table $(BUILD_DIR)/frameworkF.str @build/plf_files $(ELF) $(ELF): $(LIBS) $(O_FILES) @echo $(O_FILES) > build/o_files diff --git a/tools/makerel.py b/tools/makerel.py index 763ce1726d8..4ed4fb30508 100644 --- a/tools/makerel.py +++ b/tools/makerel.py @@ -583,5 +583,27 @@ def load_elfs(str_paths): return static, plfs +def convert_arg_line_to_args(arg_line: str): + return arg_line.split(' ') + + +def _read_args_from_files(args: List[str]): + new_args: List[str] = [] + for arg in args: + if not arg or arg[0] != '@': + new_args.append(arg) + else: + with open(arg[1:], 'r') as file: + file_args: List[str] = [] + for line in file: + for file_arg in convert_arg_line_to_args(line.strip()): + file_args.append(file_arg) + file_args = _read_args_from_files(file_args) + new_args.extend(file_args) + + return new_args + + if __name__ == "__main__": - makerel() + args = _read_args_from_files(sys.argv[1:]) + makerel(args)