sources = glob(['**/*.c']) sources += glob(['**/Makefile']) out = 'out' clean_cmd = ' '.join(['rm', '-rf', out]) env_cmd = ' '.join(['export', 'INFER_REPORT_CUSTOM_ERROR=1']) infer_cmd = ' '.join([ 'infer', '--no-progress-bar', '--no-filtering', '-o', 'out', '--testing_mode', '--', 'make' ]) copy_cmd = ' '.join(['cp', out + '/report.csv', '$OUT']) command = ' && '.join([clean_cmd, env_cmd, infer_cmd, copy_cmd]) genrule( name = 'analyze', srcs = sources, out = 'report.csv', cmd = command, visibility = [ 'PUBLIC', ], )