cxx = meson.get_compiler('cpp') # gcc_dep = cxx.find_library('gcc', required: true) objcopy = find_program('riscv64-linux-gnu-objcopy') mkimage = find_program('mkimage') arch_sources += [ ] elf = executable( 'kernel.elf', arch_sources, include_directories: includes, # dependencies: gcc_dep, cpp_args: arch_cpp_args, link_args: [ arch_link_args, '-Wl,-T,' + meson.current_source_dir() + '/platform.ld', ], link_depends: files('platform.ld'), install: true, install_dir: meson.build_root() ) bin = custom_target( 'kernel.bin', command: [objcopy, '-O', 'binary', '@INPUT@', '@OUTPUT@'], input: elf, output: 'kernel.bin' ) uboot_img = custom_target( 'kernel.uboot', command: [ mkimage, '-d', '@INPUT@', '-A', 'riscv', '-O', 'u-boot', '-a', '0x45000000', '-e', '0x45000000', '-C', 'none', '@OUTPUT@' ], input: bin, output: 'kernel.uboot', install: true, install_dir: meson.build_root() ) run_target('uart', command: [ find_program(meson.source_root() + '/tools/uboot_upload'), elf ] )