1#----------------------------------------------------------------------------
2# Project:  Horizon
3# File:     debuggerdefs.PARTNER.om
4#
5# Copyright (C)2009-2011 Nintendo Co., Ltd.  All rights reserved.
6#
7# These coded instructions, statements, and computer programs contain
8# proprietary information of Nintendo of America Inc. and/or Nintendo
9# Company Ltd., and are protected by Federal copyright law.  They may
10# not be disclosed to third parties or copied or duplicated in any form,
11# in whole or in part, without the prior written consent of Nintendo.
12#
13# $Rev: 35157 $
14#----------------------------------------------------------------------------
15
16#----------------------------------------------------------------------------
17# �֐���`
18#----------------------------------------------------------------------------
19public.ParseProcessAttribute(config, process, depends) =
20    RESULT_PROCESSES =
21    export RESULT_PROCESSES
22    foreach(DEPEND, $(depends))
23        if $(findstring $(DEPEND), $">")
24            DEPEND_PAIR = $(split >, $(DEPEND))
25            PROCESS_KEY = $(nth 0, $(DEPEND_PAIR))
26            if $(equal $(process), $(PROCESS_KEY))
27                RESULT_PROCESSES += $(split $",", $(nth 1, $(DEPEND_PAIR)))
28        else
29            RESULT_PROCESSES += $(DEPEND)
30
31    return $(RESULT_PROCESSES)
32
33public.ParseProcessAttributees(process, processlist) =
34    processes =
35    basedir = $(dirname $(absname $(process)))
36
37    foreach(proc, $(DEPEND_PROCESSES))
38        if $(not $(proc))
39            continue
40
41        if $(findstring $(proc),$"^@")
42            processes += $(absname $(file $(removeprefix $"@", $(proc))))
43            export
44
45        elseif $(findstring $(proc),$"^\.")
46            processes += $(file $(absname $(proc)))
47            export
48
49        else
50            tmp_image_dir = $(dirname $(proc))
51            tmp_image_dir = $(absname $(addprefix $(basedir)$(DIRSEP)..$(DIRSEP)..$(DIRSEP),$(tmp_image_dir)))
52            tmp_image     = $(addsuffix $(EXT_CDI),$(basename $(proc)))
53            tmp_image     = $(addprefix $(config.getTargetSubDirectory false)$(DIRSEP),$(tmp_image))
54            processes += $(file $(addprefix $(tmp_image_dir)$(DIRSEP),$(tmp_image)))
55            export
56        export
57
58    return $(processes)
59
60public.RunProgramBeforeTest(options, logfile) =
61    if $(defined BEFORE_TEST)
62        foreach(runner, $(BEFORE_TEST))
63            runner.run($(options), logfile)
64
65public.GetDependsBeforeTest() =
66    ret =
67        if $(defined BEFORE_TEST)
68            foreach(runner, $(BEFORE_TEST))
69                value $(runner.GetDepends)
70    return $(ret)
71
72public.RunProgramAfterTest(options, logfile) =
73    if $(defined AFTER_TEST)
74        foreach(runner, $(AFTER_TEST))
75            runner.run($(options), logfile)
76
77public.GetDependsAfterTest() =
78    ret =
79        if $(defined AFTER_TEST)
80            foreach(runner, $(AFTER_TEST))
81                value $(runner.GetDepends)
82    return $(ret)
83
84public.GetLoadrunOptions() =
85    options =
86
87    if $(and $(not $(defined RUN_TIMEOUT)), $(not $(isEmpty $(filter dotests-%, $(TARGETS)))))
88        RUN_TIMEOUT = 60
89        export RUN_TIMEOUT
90
91    if $(and $(not $(defined EXIT_PATTERN)), $(not $(isEmpty $(filter dotests-%, $(TARGETS)))))
92        EXIT_PATTERN=$"CU_TEST_EXIT|KernelPanic|nn::svc::Break\("
93        export EXIT_PATTERN
94
95    if $(and $(defined RUN_NOWAIT), $(RUN_NOWAIT))
96        options += --no-wait
97        export options
98
99    if $(defined EXIT_PATTERN)
100        options += --exit-pattern $(string $(EXIT_PATTERN))
101        export options
102
103    if $(defined RUN_TIMEOUT)
104        options += --timeout $(RUN_TIMEOUT)
105        export options
106
107    if $(and $(defined-env CTR_RUN_DEVICE), $(not $(defined RUN_DEVICE)))
108        RUN_DEVICE = $(getenv CTR_RUN_DEVICE)
109        export
110
111    if $(defined RUN_DEVICE)
112        options += -d $(RUN_DEVICE)
113        export options
114
115    if $(and $(defined RUN_VERBOSE), $(RUN_VERBOSE))
116        options += --verbose
117        export options
118
119    return $(options)
120
121public.GetLoadrunOptionsForTool() =
122    options =
123
124    if $(and $(defined RUN_NOWAIT), $(RUN_NOWAIT))
125        options += --no-wait
126        export options
127
128    return $(options)
129
130public.RunProgramBeforeTest(options, logfile) =
131    if $(defined BEFORE_TEST)
132        foreach(runner, $(BEFORE_TEST))
133            runner.run($(options), logfile)
134
135public.GetDependsBeforeTest() =
136    ret =
137        if $(defined BEFORE_TEST)
138            foreach(runner, $(BEFORE_TEST))
139                value $(runner.GetDepends)
140    return $(ret)
141
142public.RunProgramAfterTest(options, logfile) =
143    if $(defined AFTER_TEST)
144        foreach(runner, $(AFTER_TEST))
145            runner.run($(options), logfile)
146
147public.GetDependsAfterTest() =
148    ret =
149        if $(defined AFTER_TEST)
150            foreach(runner, $(AFTER_TEST))
151                value $(runner.GetDepends)
152    return $(ret)
153
154#----------------------------------------------------------------------------
155# �O���[�o���ϐ��̒�`
156#----------------------------------------------------------------------------
157
158# Partner Debugger�ploadrun
159public.LOADRUN = $(absname $(ROOT_TOOLS)$(DIRSEP)CommandLineTools$(DIRSEP)ctr_loadrun32.exe)
160
161# JTAG�ploadrun
162public.LOADRUNF = $(absname $(ROOT_TOOLS)$(DIRSEP)CommandLineTools$(DIRSEP)ctr_loadrunf32.exe)
163
164#----------------------------------------------------------------------------
165# ���[����`
166#----------------------------------------------------------------------------
167.PHONY: run
168.PHONY: dotests
169
170#----------------------------------------------------------------------------
171# �֐���`
172#----------------------------------------------------------------------------
173
174#----------------------------------------------------------------------------
175# �֐���`
176#----------------------------------------------------------------------------
177public.ParseProcessAttribute(config, process, depends) =
178    RESULT_PROCESSES =
179    export RESULT_PROCESSES
180    foreach(DEPEND, $(depends))
181        if $(findstring $(DEPEND), $">")
182            DEPEND_PAIR = $(split >, $(DEPEND))
183            PROCESS_KEY = $(nth 0, $(DEPEND_PAIR))
184            if $(equal $(process), $(PROCESS_KEY))
185                RESULT_PROCESSES += $(split $",", $(nth 1, $(DEPEND_PAIR)))
186        else
187            RESULT_PROCESSES += $(DEPEND)
188
189    return $(RESULT_PROCESSES)
190
191public.ParseProcessAttributees(process, processlist) =
192    processes =
193    basedir = $(dirname $(absname $(process)))
194
195    foreach(proc, $(DEPEND_PROCESSES))
196        if $(not $(proc))
197            continue
198
199        if $(findstring $(proc),$"^@")
200            processes += $(absname $(file $(removeprefix $"@", $(proc))))
201            export
202
203        elseif $(findstring $(proc),$"^\.")
204            processes += $(file $(absname $(proc)))
205            export
206
207        else
208            tmp_image_dir = $(dirname $(proc))
209            tmp_image_dir = $(absname $(addprefix $(basedir)$(DIRSEP)..$(DIRSEP)..$(DIRSEP),$(tmp_image_dir)))
210            tmp_image     = $(addsuffix $(EXT_CDI),$(basename $(proc)))
211            tmp_image     = $(addprefix $(config.getTargetSubDirectory false)$(DIRSEP),$(tmp_image))
212            processes += $(file $(addprefix $(tmp_image_dir)$(DIRSEP),$(tmp_image)))
213            export
214        export
215
216    return $(processes)
217
218public.GetLoadrunOptions() =
219    options =
220
221    if $(and $(not $(defined RUN_TIMEOUT)), $(not $(isEmpty $(filter dotests-%, $(TARGETS)))))
222        RUN_TIMEOUT = 60
223        export RUN_TIMEOUT
224
225    if $(and $(not $(defined EXIT_PATTERN)), $(not $(isEmpty $(filter dotests-%, $(TARGETS)))))
226        EXIT_PATTERN=$"CU_TEST_EXIT|KernelPanic|nn::svc::Break\("
227        export EXIT_PATTERN
228
229    if $(and $(defined RUN_NOWAIT), $(RUN_NOWAIT))
230        options += --no-wait
231        export options
232
233    if $(defined EXIT_PATTERN)
234        options += --exit-pattern $(string $(EXIT_PATTERN))
235        export options
236
237    if $(defined RUN_TIMEOUT)
238        options += --timeout $(RUN_TIMEOUT)
239        export options
240
241    if $(and $(defined-env CTR_RUN_DEVICE), $(not $(defined RUN_DEVICE)))
242        RUN_DEVICE = $(getenv CTR_RUN_DEVICE)
243        export
244
245    if $(defined RUN_DEVICE)
246        options += -d $(RUN_DEVICE)
247        export options
248
249    if $(and $(defined RUN_VERBOSE), $(RUN_VERBOSE))
250        options += --verbose
251        export options
252
253    return $(options)
254
255public.GetLoadrunOptionsForTool() =
256    options =
257
258    if $(and $(defined RUN_NOWAIT), $(RUN_NOWAIT))
259        options += --no-wait
260        export options
261
262    return $(options)
263
264public.TestProgram(config, files) =
265    BUILD_TESTS = true
266    name = $(removesuffix $(basename $(nth 0,$(files))))
267
268    if $(filter BOOT, $(CTR_APPTYPE))
269        CCFLAGS += -DNN_BUILD_IOPKIT
270        CTR_NO_BANNER_ICON = true
271
272        if $(not $(defined LIBS))
273            LIBS = $(EMPTY)
274            export
275
276        if $(not $(and $(defined NOT_LINK_IOPDEV), $(NOT_LINK_IOPDEV)))
277            LIBS += libnn_iopdev libnn_driversEs
278            export
279
280        LIBS += libnn_iopall
281        export
282
283    TARGET_FILES =
284
285    TARGET_FILES += $(Program $(config), $(name), $(files))
286
287    IMPORTER = $(MakeImporter $(TARGET_FILES))
288
289    LIST_PREFIX = $(removesuffix $(basename $(TARGET_FILES)))
290    CCIFile = $(filter %$(EXT_CCI), $(TARGET_FILES))
291    CIPFile = $(filter %$(EXT_CIP), $(TARGET_FILES))
292
293    BASENAME = $(basename $(nth 0, $(TARGET_FILES)))
294
295    RUN_PROCLIST_FILES  = $(FilesToRunProcessList $(config),$(absname $(TARGET_FILES)))
296    RUN_EMUMEM_FILES    = $(FilesToRunEmulationMemory $(config),$(absname $(TARGET_FILES)))
297    RUN_IMPORT_FILES    = $(FilesToRunEmulationMemory $(config),$(absname $(IMPORTER)))
298    RUN_SPI_FILES       = $(FilesToRunSPI $(config),$(absname $(TARGET_FILES)))
299
300    export RUN_ARM9_FILES
301    RUN_ARM9_FILES =
302    if $(and $(defined FilesToRunARM9), $(not $(isEmpty $(CIPFile))))
303        RUN_ARM9_FILES = $(FilesToRunARM9 $(config),$(absname $(CIPFile)))
304
305    run-emumem: $(RUN_EMUMEM_FILES)
306    run-spi:    $(RUN_SPI_FILES)
307
308    if $(not $(defined RUN_FILTER))
309        RUN_FILTER= *
310        export
311
312    if $(and $(defined BUILD_TESTS),$(equal $(BUILD_TESTS),true))
313        if $(and \
314                $(not $(equal $(FilterTestAttributes $(filter-out test__%,$(filter test_%, $(BASENAME)))),$(EMPTY))), \
315                $(isFilterMatch $(compileToRegex $(RUN_FILTER)),$(config.getScannerName)))
316
317            if $(and $(defined TEST_ENVIRONMENT_PROCESSLIST), $(TEST_ENVIRONMENT_PROCESSLIST))
318                dotests-proclist: $(RUN_PROCLIST_FILES)
319            if $(and $(defined TEST_ENVIRONMENT_EMUMEM), $(TEST_ENVIRONMENT_EMUMEM))
320                dotests-emumem: $(RUN_EMUMEM_FILES)
321            if $(and $(defined TEST_ENVIRONMENT_IMPORT), $(TEST_ENVIRONMENT_IMPORT))
322                dotests-import: $(RUN_IMPORT_FILES)
323                TARGET_FILES += $(IMPORTER)
324                export
325            if $(and $(defined TEST_ENVIRONMENT_ARM9), $(TEST_ENVIRONMENT_ARM9))
326                dotests-arm9: $(RUN_ARM9_FILES)
327            if $(and $(defined TEST_ENVIRONMENT_SPI), $(TEST_ENVIRONMENT_SPI))
328                dotests-spi:    $(RUN_SPI_FILES)
329            export
330        export
331
332    return $(TARGET_FILES)
333
334public.PartnerMCR(axf, process) =
335    export depend_files
336    depend_files =
337    if $(not $(SKIP_BUILD))
338        depend_files += $(axf) $(process)
339
340    export basefile
341    export axf_symbol
342    if $(not $(equal $(process), $(EMPTY)))
343        basefile = $(process)
344        axf_symbol = $(removesuffix $(process)).axf
345    else
346        basefile = $(axf)
347
348    mcr     = $(addsuffix .mcr,$(removesuffix $(basefile)))
349    log     = $(removesuffix $(absname $(basefile))).log
350    basedir = $(dirname $(absname $(basefile)))
351
352    $(mcr): $(dirname $(mcr)) $(ROOT_OMAKE)/debuggerdefs.partner.om $(depend_files)
353        section
354            f = $(fopen $(@), w)
355            fprintln($(f),ESC)
356            fprintln($(f),INITA)
357            fprintln($(f),CORE 0)
358            fprintln($(f),L "$(absname $(axf))")
359            if $(axf_symbol)
360                fprintln($(f),LSA "$(absname $(axf_symbol))")
361
362            fprintln($(f),CD "$(basedir)")
363            if $(not $(equal $(log),$(EMPTY)))
364                fprintln($(f),$">" "$(absname $(log))")
365            fprintln($(f),G)
366            close($(f))
367
368    if $(and $(defined TEST_ENVIRONMENT_PROCESSLIST), $(TEST_ENVIRONMENT_PROCESSLIST))
369        $(log): $(mcr) $(depend_files) $(RUNNER) :effects: $(RUNNER_LOCK)
370            bash $(RUNNER) $(mcr)
371
372    return $(mcr)
373
374public.FilesToRunProcessList(config, process) =
375    process = $(filter %.cdi,$(process))
376    if $(eq 0,$(length $(process)))
377        return
378    process = $(nth 0,$(process))
379
380    export depend_files
381    depend_files =
382
383    export processes
384    processes =
385
386    kernel = $(config.getSuitableKernelFilename)
387    kernel_core0 = $(gsub $(kernel),Kernel\.ARM946ES\.,Kernel.MPCore.)
388    kernel_core2 = $(gsub $(kernel),Kernel\.MPCore\.,Kernel.ARM946ES.)
389
390    if $(not $(and $(defined TEST_DEBUG_ARM9), $(TEST_DEBUG_ARM9)))
391        kernel_core2 = $(gsub $(kernel_core2),Development,Release)
392        kernel_core2 = $(gsub $(kernel_core2),Debug,Release)
393        export
394
395    log     = $(addsuffix .proclist.log,$(removesuffix $(process)))
396    setuplog = $(addsuffix .proclist.setup.log,$(removesuffix $(process)))
397    teardownlog = $(addsuffix .proclist.teardown.log,$(removesuffix $(process)))
398    basedir = $(dirname $(absname $(process)))
399
400    if $(defined DEPEND_PROCESSES)
401        DEPEND_PROCESSES = $(ParseProcessAttribute $(config), $(removesuffix $(basename $(process))), $(DEPEND_PROCESSES))
402        processes += $(ParseProcessAttributees $(process), $(DEPEND_PROCESSES))
403        export
404    processes += $(absname $(process))
405
406    if $(not $(SKIP_BUILD))
407        depend_files += $(kernel_core0) $(kernel_core2)
408        depend_files += $(processes)
409
410    processes = $(addprefix @,$(processes))
411
412    process_list = $(dirname $(kernel_core0))$(DIRSEP)process.list
413
414    tooloptions = -c0 esc -c0 init -k11 $(kernel_core0) -k9 $(kernel_core2) -pl $(process_list) $(GetLoadrunOptionsForTool)
415
416    if $(not $(and $(defined SKIP_RUN), $(SKIP_RUN)))
417        if $(and $(defined TEST_ENVIRONMENT_PROCESSLIST), $(TEST_ENVIRONMENT_PROCESSLIST))
418            $(log): $(LOADRUNF) $(depend_files) $(GetDependsBeforeTest) $(GetDependsAfterTest) :effects: $(LOADRUNF)  :value: $(random)
419                if $(defined RUN_HOSTPROGRAM)
420                    RUN_HOSTPROGRAM.run()
421                RunProgramBeforeTest($(tooloptions), $(setuplog))
422                section
423                    f = $(fopen $(process_list), w)
424                    foreach(filename, $(processes))
425                        fprintln($(f), $(filename))
426                    close($(f))
427
428                $(LOADRUNF) -c0 esc -c0 init -k11 $(kernel_core0) -k9 $(kernel_core2) $(GetLoadrunOptions) | tee $(absname $(log))
429                RunProgramAfterTest($(tooloptions), $(teardownlog))
430            depend_files += $(log)
431
432        if $(filter run-proclist, $(TARGETS))
433            $(log): $(LOADRUNF) $(depend_files) $(GetDependsBeforeTest) $(GetDependsAfterTest) :effects: $(LOADRUNF) :value: $(random)
434                section
435                    f = $(fopen $(process_list), w)
436                    foreach(filename, $(processes))
437                        fprintln($(f), $(filename))
438                    close($(f))
439                $(LOADRUNF) -c0 esc -c0 init -k11 $(kernel_core0) -k9 $(kernel_core2) $(GetLoadrunOptions) | tee $(absname $(log))
440            depend_files += $(log)
441            export
442        export
443    return $(depend_files)
444
445public.FilesToRunEmulationMemory(config, process) =
446
447    process = $(filter %.cci %.csu,$(process))
448    if $(eq 0,$(length $(process)))
449        return
450    process = $(nth 0,$(process))
451
452    kernel = $(config.getSuitableKernelFilename)
453    kernel_core0 = $(gsub $(kernel),Kernel\.ARM946ES\.,Kernel.MPCore.)
454    kernel_core2 = $(gsub $(kernel),Kernel\.MPCore\.,Kernel.ARM946ES.)
455
456    if $(not $(and $(defined TEST_DEBUG_ARM9), $(TEST_DEBUG_ARM9)))
457        kernel_core2 = $(gsub $(kernel_core2),Development,Release)
458        kernel_core2 = $(gsub $(kernel_core2),Debug,Release)
459        export
460
461    if $(and $(defined RUN_FAST_KERNEL), $(RUN_FAST_KERNEL))
462        kernel_core0 = $(gsub $(kernel_core0),.small,.fast)
463        kernel_core2 = $(gsub $(kernel_core2),.small,.fast)
464        export
465
466    export processes
467    processes =
468
469    export options
470    options =
471
472    export depend_files
473    depend_files =
474
475    if $(defined DEPEND_PROCESSES)
476        DEPEND_PROCESSES = $(ParseProcessAttribute $(config), $(removesuffix $(basename $(process))), $(DEPEND_PROCESSES))
477        processes += $(ParseProcessAttributees $(process), $(DEPEND_PROCESSES))
478        export
479
480    if $(not $(SKIP_BUILD))
481        depend_files += $(process) $(kernel_core0) $(kernel_core2)
482        depend_files += $(processes)
483
484    foreach(proc, $(processes))
485        options += -rp $(proc)
486
487    if $(and $(defined RUN_FROMTESTMENU), $(RUN_FROMTESTMENU))
488        options += -c0 "rdc $(process),0"
489        options += -c0 "zn ID2_2=0x20"
490        options += -rid 0004013000008002
491        export
492    else
493        options += -re $(process)
494        export
495
496    log     = $(addsuffix .emumem.log,$(removesuffix $(process)))
497    setuplog = $(addsuffix .proclist.setup.log,$(removesuffix $(process)))
498    teardownlog = $(addsuffix .proclist.teardown.log,$(removesuffix $(process)))
499    basedir = $(dirname $(absname $(process)))
500
501    process_list = $(dirname $(kernel_core0))$(DIRSEP)process.list
502
503    tooloptions = -c0 esc -c0 init -k11 $(kernel_core0) -k9 $(kernel_core2) -pl $(process_list) $(GetLoadrunOptionsForTool)
504
505    if $(not $(and $(defined SKIP_RUN), $(SKIP_RUN)))
506        if $(or $(and $(defined TEST_ENVIRONMENT_EMUMEM), $(TEST_ENVIRONMENT_EMUMEM))\
507                $(and $(defined TEST_ENVIRONMENT_IMPORT), $(TEST_ENVIRONMENT_IMPORT)))
508            $(log): $(LOADRUNF) $(depend_files) $(GetDependsBeforeTest) $(GetDependsAfterTest) :effects: $(LOADRUNF) :value: $(random)
509                if $(defined RUN_HOSTPROGRAM)
510                    RUN_HOSTPROGRAM.run()
511                RunProgramBeforeTest($(tooloptions), $(setuplog))
512                echo $(LOADRUNF) -c0 esc -c0 init -k11 $(kernel_core0) -k9 $(kernel_core2) -pl $(process_list) $(options) $(GetLoadrunOptions)
513                $(LOADRUNF) -c0 esc -c0 init -k11 $(kernel_core0) -k9 $(kernel_core2) -pl $(process_list) $(options) $(GetLoadrunOptions) | tee $(absname $(log))
514                RunProgramAfterTest($(tooloptions), $(teardownlog))
515            depend_files += $(log)
516            export
517        export
518
519        if $(filter run-emumem, $(TARGETS))
520            $(log): $(LOADRUNF) $(depend_files) $(GetDependsBeforeTest) $(GetDependsAfterTest) :effects: $(LOADRUNF) :value: $(random)
521                 $(LOADRUNF) -c0 esc -c0 init -k11 $(kernel_core0) -k9 $(kernel_core2) -pl $(process_list) $(options) $(GetLoadrunOptions) | tee $(absname $(log))
522            depend_files += $(log)
523            export
524        export
525
526    return $(depend_files)
527
528public.FilesToRunSPI(config, process) =
529    process = $(filter %.cci,$(process))
530    if $(eq 0,$(length $(process)))
531        return
532    process = $(nth 0,$(process))
533
534    export depend_files
535    depend_files =
536    if $(not $(SKIP_BUILD))
537        depend_files += $(process)
538
539    log     = $(addsuffix .spi.log,$(removesuffix $(process)))
540
541    commands = -c esc -c reset
542    commands += -c "RDC \"$(process)\",0"
543    commands += -c NEWP
544
545    if $(and $(defined TEST_ENVIRONMENT_SPI), $(TEST_ENVIRONMENT_SPI))
546        $(log): $(LOADRUN) $(depend_files) :effects: $(LOADRUN) :value: $(random)
547            $(LOADRUN) $(commands) $(GetLoadrunOptions) | tee $(absname $(log))
548        depend_files += $(log)
549
550    if $(filter run-spi, $(TARGETS))
551        $(log): $(LOADRUN) $(depend_files) :effects: $(LOADRUN) :value: $(random)
552            $(LOADRUN) $(commands) $(GetLoadrunOptions) | tee $(absname $(log))
553        depend_files += $(log)
554
555    return $(depend_files)
556
557public.UserRunProcess(config, name, files) =
558    TARGET_FILE = $(Program $(config), $(name), $(files))
559    LIST_PREFIX = $(removesuffix $(basename $(TARGET_FILE)))
560    CCIFile = $(replacesuffixes $(EXT_ELF), $(EXT_CCI), $(TARGET_FILE))
561    CIPFile = $(replacesuffixes $(EXT_ELF), $(EXT_CIP), $(TARGET_FILE))
562
563    RUN_PROCLIST_FILES  = $(FilesToRunProcessList $(config),$(absname $(TARGET_FILE)))
564    RUN_EMUMEM_FILES    = $(FilesToRunEmulationMemory $(config),$(absname $(TARGET_FILE)))
565    RUN_SPI_FILES       = $(FilesToRunSPI $(config),$(absname $(TARGET_FILE)))
566
567    if $(not $(defined RUN_FILTER))
568        RUN_FILTER= *
569        export
570
571    if $(isFilterMatch $(compileToRegex $(RUN_FILTER)), $(config.getScannerName))
572        run-proclist:   $(RUN_PROCLIST_FILES)
573        run-scripts:    $(RUN_PROCLIST_FILES)
574        run-emumem:     $(RUN_EMUMEM_FILES)
575        run-spi:        $(RUN_SPI_FILES)
576
577    return $(TARGET_FILE)
578