2021-05-23 07:11:30 +02:00
|
|
|
cpu_family = host_machine.cpu_family()
|
|
|
|
if cpu_family == 'x86_64'
|
2021-01-30 22:21:22 +01:00
|
|
|
dynasm_arch = 'x64'
|
2021-05-23 07:11:30 +02:00
|
|
|
elif cpu_family == 'aarch64'
|
|
|
|
dynasm_arch = 'arm64'
|
2017-11-15 17:25:11 +01:00
|
|
|
else
|
2021-05-23 07:11:30 +02:00
|
|
|
dynasm_arch = cpu_family
|
2017-11-15 17:25:11 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
dynasm_dasc = files('../vm_@0@.dasc'.format(dynasm_arch))
|
|
|
|
dasm = [minilua, files('../../dynasm/dynasm.lua')]
|
|
|
|
|
2020-10-27 18:07:14 +01:00
|
|
|
if cc.get_id() == 'msvc'
|
|
|
|
# the cl.exe preprocessor seemingly removes/expands macros, so hardcode flags
|
|
|
|
dasm += ['-D', 'WIN', '-D', 'JIT', '-D', 'FFI']
|
|
|
|
if host_machine.cpu_family() == 'x86_64'
|
|
|
|
dasm += ['-D', 'P64']
|
|
|
|
endif
|
|
|
|
else
|
|
|
|
# BUG: meson does not resolve paths correctly for subprojects
|
|
|
|
hpre = '#include "@0@/../lj_arch.h"'.format(meson.current_source_dir())
|
|
|
|
|
|
|
|
checkdefs = [
|
|
|
|
['LJ_ARCH_BITS', '64', ['-D', 'P64']],
|
|
|
|
['LJ_HASJIT', '1', ['-D', 'JIT']],
|
|
|
|
['LJ_HASFFI', '1', ['-D', 'FFI']],
|
|
|
|
]
|
|
|
|
|
|
|
|
if host_machine.cpu_family() == 'x86'
|
|
|
|
checkdefs += ['__SSE2__', '1', ['-D', 'SSE']]
|
2017-11-15 17:25:11 +01:00
|
|
|
endif
|
2020-10-27 18:07:14 +01:00
|
|
|
|
|
|
|
foreach def: checkdefs
|
|
|
|
if cc.get_define(def[0], prefix: hpre) == def[1]
|
|
|
|
dasm += def[2]
|
|
|
|
endif
|
|
|
|
endforeach
|
|
|
|
endif
|
2017-11-15 17:25:11 +01:00
|
|
|
|
|
|
|
buildvm_src = files(
|
|
|
|
'buildvm.c',
|
|
|
|
'buildvm_asm.c',
|
|
|
|
'buildvm_peobj.c',
|
|
|
|
'buildvm_lib.c',
|
|
|
|
'buildvm_fold.c',
|
|
|
|
)
|
|
|
|
|
|
|
|
buildvm_arch = custom_target('buildvm_arch.h',
|
2019-01-31 00:33:39 +01:00
|
|
|
command: dasm + ['-o', '@OUTPUT@', '@INPUT@'],
|
|
|
|
input: dynasm_dasc,
|
|
|
|
output: 'buildvm_arch.h')
|
2017-11-15 17:25:11 +01:00
|
|
|
|
2023-09-10 14:04:04 +02:00
|
|
|
buildvm = executable('buildvm', buildvm_src, buildvm_arch, luajit_h,
|
2019-02-17 18:22:30 +01:00
|
|
|
dependencies: system_deps,
|
2019-01-31 00:33:39 +01:00
|
|
|
include_directories: src_inc,
|
|
|
|
native: true)
|