<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_data_files_recursively(*rel_root_path, **kwargs):
 """ Adds all files of the specified path to a data_files compatible list :param tuple rel_root_path: List of path elements pointing to a directory of files :return: list of tuples of install directory and list of source files :rtype: list(tuple(str, [str])) """

    result_list = list()
    rel_root_dir = os.path.join(*rel_root_path)
    share_target_root = os.path.join("share", kwargs.get("share_target_root", "rafcon"))
    distutils.log.debug("recursively generating data files for folder '{}' ...".format(
        rel_root_dir))

    for dir_, _, files in os.walk(rel_root_dir):
        relative_directory = os.path.relpath(dir_, rel_root_dir)
        file_list = list()
        for fileName in files:
            rel_file_path = os.path.join(relative_directory, fileName)
            abs_file_path = os.path.join(rel_root_dir, rel_file_path)
            file_list.append(abs_file_path)
        if len(file_list) > 0:
            # this is a valid path in ~/.local folder: e.g. share/rafcon/libraries/generic/wait
            target_path = os.path.join(share_target_root, relative_directory)
            result_list.append((target_path, file_list))
    return result_list