QTechOS/kernel/arch/riscv64/platform/allwinner-d1/meson.build
Quantum 8274a93abb
Make: Throwing more random shit at the makefiles
Switched to an acutal cross compiler instead of using the linux gcc

Stole more ideas from managarm

Figured out the "right" way to handle warnings and flags in meson

Removed libgcc dependency because it doesnt exist in riscv64-elf-
will need to figure out how to use things like  __builtin_memcpy
properly
2022-07-31 22:57:40 -04:00

56 lines
1.1 KiB
Meson

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
]
)