1*61046927SAndroid Build Coastguard Worker# Copyright © 2020 Google, Inc 2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Workerif with_tests 5*61046927SAndroid Build Coastguard Worker diff = find_program('diff') 6*61046927SAndroid Build Coastguard Workerendif 7*61046927SAndroid Build Coastguard Worker 8*61046927SAndroid Build Coastguard Workerafuc_parser = custom_target( 9*61046927SAndroid Build Coastguard Worker 'parser.[ch]', 10*61046927SAndroid Build Coastguard Worker input: 'parser.y', 11*61046927SAndroid Build Coastguard Worker output: ['parser.c', 'parser.h'], 12*61046927SAndroid Build Coastguard Worker command: [ 13*61046927SAndroid Build Coastguard Worker prog_bison, '@INPUT@', '--defines=@OUTPUT1@', '--output=@OUTPUT0@' 14*61046927SAndroid Build Coastguard Worker ] 15*61046927SAndroid Build Coastguard Worker) 16*61046927SAndroid Build Coastguard Worker 17*61046927SAndroid Build Coastguard Workerafuc_lexer = custom_target( 18*61046927SAndroid Build Coastguard Worker 'lexer.c', 19*61046927SAndroid Build Coastguard Worker input: 'lexer.l', 20*61046927SAndroid Build Coastguard Worker output: 'lexer.c', 21*61046927SAndroid Build Coastguard Worker command: [ 22*61046927SAndroid Build Coastguard Worker prog_flex, '-o', '@OUTPUT@', '@INPUT@' 23*61046927SAndroid Build Coastguard Worker ] 24*61046927SAndroid Build Coastguard Worker) 25*61046927SAndroid Build Coastguard Worker 26*61046927SAndroid Build Coastguard Workerencode_h = custom_target( 27*61046927SAndroid Build Coastguard Worker 'encode.h', 28*61046927SAndroid Build Coastguard Worker input: ['afuc.xml'], 29*61046927SAndroid Build Coastguard Worker output: 'encode.h', 30*61046927SAndroid Build Coastguard Worker command: [ 31*61046927SAndroid Build Coastguard Worker prog_isaspec_encode, '--xml', '@INPUT@', '--out-h', '@OUTPUT@' 32*61046927SAndroid Build Coastguard Worker ], 33*61046927SAndroid Build Coastguard Worker) 34*61046927SAndroid Build Coastguard Worker 35*61046927SAndroid Build Coastguard Workerasm = executable( 36*61046927SAndroid Build Coastguard Worker 'afuc-asm', 37*61046927SAndroid Build Coastguard Worker [ 38*61046927SAndroid Build Coastguard Worker 'asm.c', 39*61046927SAndroid Build Coastguard Worker 'util.c', 40*61046927SAndroid Build Coastguard Worker 'util.h', 41*61046927SAndroid Build Coastguard Worker afuc_lexer, 42*61046927SAndroid Build Coastguard Worker afuc_parser, 43*61046927SAndroid Build Coastguard Worker encode_h, 44*61046927SAndroid Build Coastguard Worker ], 45*61046927SAndroid Build Coastguard Worker include_directories: [ 46*61046927SAndroid Build Coastguard Worker inc_freedreno_rnn, inc_include, inc_src, inc_util, 47*61046927SAndroid Build Coastguard Worker ], 48*61046927SAndroid Build Coastguard Worker link_with: [ 49*61046927SAndroid Build Coastguard Worker libfreedreno_rnn, 50*61046927SAndroid Build Coastguard Worker ], 51*61046927SAndroid Build Coastguard Worker dependencies: [], 52*61046927SAndroid Build Coastguard Worker build_by_default : with_tools.contains('freedreno'), 53*61046927SAndroid Build Coastguard Worker install: install_fd_decode_tools, 54*61046927SAndroid Build Coastguard Worker) 55*61046927SAndroid Build Coastguard Workerif with_tests 56*61046927SAndroid Build Coastguard Worker asm_fw = custom_target('afuc_test.fw', 57*61046927SAndroid Build Coastguard Worker output: 'afuc_test.fw', 58*61046927SAndroid Build Coastguard Worker command: [asm, files('../.gitlab-ci/traces/afuc_test.asm'), '@OUTPUT@'], 59*61046927SAndroid Build Coastguard Worker ) 60*61046927SAndroid Build Coastguard Worker asm_fw_a7xx = custom_target('afuc_test_a7xx.fw', 61*61046927SAndroid Build Coastguard Worker output: 'afuc_test_a7xx.fw', 62*61046927SAndroid Build Coastguard Worker command: [asm, files('../.gitlab-ci/traces/afuc_test_a7xx.asm'), '@OUTPUT@'], 63*61046927SAndroid Build Coastguard Worker ) 64*61046927SAndroid Build Coastguard Worker test('afuc-asm', 65*61046927SAndroid Build Coastguard Worker diff, 66*61046927SAndroid Build Coastguard Worker args: ['-u', files('../.gitlab-ci/reference/afuc_test.fw'), asm_fw], 67*61046927SAndroid Build Coastguard Worker suite: 'freedreno', 68*61046927SAndroid Build Coastguard Worker workdir: dir_source_root 69*61046927SAndroid Build Coastguard Worker ) 70*61046927SAndroid Build Coastguard Worker test('afuc-asm-a7xx', 71*61046927SAndroid Build Coastguard Worker diff, 72*61046927SAndroid Build Coastguard Worker args: ['-u', files('../.gitlab-ci/reference/afuc_test_a7xx.fw'), asm_fw_a7xx], 73*61046927SAndroid Build Coastguard Worker suite: 'freedreno', 74*61046927SAndroid Build Coastguard Worker workdir: dir_source_root 75*61046927SAndroid Build Coastguard Worker ) 76*61046927SAndroid Build Coastguard Workerendif 77*61046927SAndroid Build Coastguard Worker 78*61046927SAndroid Build Coastguard Workerafuc_isa = custom_target( 79*61046927SAndroid Build Coastguard Worker 'afuc-isa', 80*61046927SAndroid Build Coastguard Worker input: ['afuc.xml'], 81*61046927SAndroid Build Coastguard Worker output: ['afuc-isa.c', 'afuc-isa.h'], 82*61046927SAndroid Build Coastguard Worker command: [ 83*61046927SAndroid Build Coastguard Worker prog_isaspec_decode, '--xml', '@INPUT@', 84*61046927SAndroid Build Coastguard Worker '--out-c', '@OUTPUT0@', '--out-h', '@OUTPUT1@', 85*61046927SAndroid Build Coastguard Worker ], 86*61046927SAndroid Build Coastguard Worker) 87*61046927SAndroid Build Coastguard Worker 88*61046927SAndroid Build Coastguard Worker# Disasm requires mmaping >4GB 89*61046927SAndroid Build Coastguard Workerif cc.sizeof('size_t') > 4 90*61046927SAndroid Build Coastguard Worker disasm = executable( 91*61046927SAndroid Build Coastguard Worker 'afuc-disasm', 92*61046927SAndroid Build Coastguard Worker [ 93*61046927SAndroid Build Coastguard Worker 'disasm.c', 94*61046927SAndroid Build Coastguard Worker 'emu.c', 95*61046927SAndroid Build Coastguard Worker 'emu.h', 96*61046927SAndroid Build Coastguard Worker 'emu-ds.c', 97*61046927SAndroid Build Coastguard Worker 'emu-regs.c', 98*61046927SAndroid Build Coastguard Worker 'emu-ui.c', 99*61046927SAndroid Build Coastguard Worker 'util.c', 100*61046927SAndroid Build Coastguard Worker 'util.h', 101*61046927SAndroid Build Coastguard Worker afuc_isa, 102*61046927SAndroid Build Coastguard Worker ], 103*61046927SAndroid Build Coastguard Worker include_directories: [ 104*61046927SAndroid Build Coastguard Worker inc_freedreno, 105*61046927SAndroid Build Coastguard Worker inc_freedreno_rnn, 106*61046927SAndroid Build Coastguard Worker inc_include, 107*61046927SAndroid Build Coastguard Worker inc_src, 108*61046927SAndroid Build Coastguard Worker inc_util, 109*61046927SAndroid Build Coastguard Worker ], 110*61046927SAndroid Build Coastguard Worker link_with: [ 111*61046927SAndroid Build Coastguard Worker libfreedreno_rnn, 112*61046927SAndroid Build Coastguard Worker libisaspec 113*61046927SAndroid Build Coastguard Worker ], 114*61046927SAndroid Build Coastguard Worker dependencies: [idep_mesautil, idep_isaspec_decode], 115*61046927SAndroid Build Coastguard Worker build_by_default : with_tools.contains('freedreno'), 116*61046927SAndroid Build Coastguard Worker install: install_fd_decode_tools, 117*61046927SAndroid Build Coastguard Worker ) 118*61046927SAndroid Build Coastguard Worker 119*61046927SAndroid Build Coastguard Worker if with_tests 120*61046927SAndroid Build Coastguard Worker disasm_fw = custom_target('afuc_test.asm', 121*61046927SAndroid Build Coastguard Worker output: 'afuc_test.asm', 122*61046927SAndroid Build Coastguard Worker command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test.fw')], 123*61046927SAndroid Build Coastguard Worker capture: true 124*61046927SAndroid Build Coastguard Worker ) 125*61046927SAndroid Build Coastguard Worker disasm_fw_a7xx = custom_target('afuc_test_a7xx.asm', 126*61046927SAndroid Build Coastguard Worker output: 'afuc_test_a7xx.asm', 127*61046927SAndroid Build Coastguard Worker command: [disasm, '-u', files('../.gitlab-ci/reference/afuc_test_a7xx.fw')], 128*61046927SAndroid Build Coastguard Worker capture: true 129*61046927SAndroid Build Coastguard Worker ) 130*61046927SAndroid Build Coastguard Worker test('afuc-disasm', 131*61046927SAndroid Build Coastguard Worker diff, 132*61046927SAndroid Build Coastguard Worker args: ['-u', files('../.gitlab-ci/reference/afuc_test.asm'), disasm_fw], 133*61046927SAndroid Build Coastguard Worker suite: 'freedreno', 134*61046927SAndroid Build Coastguard Worker workdir: dir_source_root 135*61046927SAndroid Build Coastguard Worker ) 136*61046927SAndroid Build Coastguard Worker test('afuc-disasm-a7xx', 137*61046927SAndroid Build Coastguard Worker diff, 138*61046927SAndroid Build Coastguard Worker args: ['-u', files('../.gitlab-ci/reference/afuc_test_a7xx.asm'), disasm_fw_a7xx], 139*61046927SAndroid Build Coastguard Worker suite: 'freedreno', 140*61046927SAndroid Build Coastguard Worker workdir: dir_source_root 141*61046927SAndroid Build Coastguard Worker ) 142*61046927SAndroid Build Coastguard Worker endif 143*61046927SAndroid Build Coastguard Workerendif 144