meson improvements (#10617)
* meson.build: fix meson build when not on git
* meson.build: make capstone a dependency
* meson.build: make r_magic library optional
* meson.build: capstone include is already in the dependency
* meson.build: use dependencies instead of manual linking + includes
* meson.build: add travis
* flag/meson.build: include sdb dependency
* travis-script: print messages based on install system
* io/meson.build: add sdb as dependency
* syscall/meson.build: missing sdb dependency
* {parse,config}/meson.build: add sdb dependency
* travis.yml: pass INSTALL_SYSTEM var to docker
* {bin/shlr}/meson.build: add sdb_dep to r2java and bin
* install meson and ninja-build in r2-travis docker
* travis.yml: allow meson build to fail for now
* anal/meson.build: add sdb and java dependencies
* egg/meson.build: add sdb dependency
* travis.yml: meson build env should be also in the includes list
* core/meson.build: add java dep
* meson.build: use dependencies also to create main r2 dependency
* rasm2/meson.build: replace link_with with dependencies
* rasm2/meson.build: add sdb as dependency
* meson.builds: convert link_with to dependencies and fix tabs
* travis-script: change meson install prefix and set PKG_CONFIG_PATH
* travis-script: add lib64 to LD_LIBRARY_PATH
This commit is contained in:
parent
6e08e452a7
commit
7572f315ea
40 changed files with 660 additions and 497 deletions
|
|
@ -14,11 +14,15 @@ matrix:
|
|||
env: COMPILER_NAME=gcc CXX=g++ CC=gcc
|
||||
- os: linux
|
||||
env: COMPILER_NAME=clang CXX=clang++ CC=clang
|
||||
- os: linux
|
||||
env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson
|
||||
- os: linux
|
||||
env: COMPILER_NAME=clang CXX=clang++ CC=clang CFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS=detect_odr_violation=0 LSAN_OPTIONS=detect_leaks=0
|
||||
- os: osx
|
||||
env: COMPILER_NAME=clang CXX=clang++ CC=clang
|
||||
allow_failures:
|
||||
- os: linux
|
||||
env: COMPILER_NAME=gcc CXX=g++ CC=gcc INSTALL_SYSTEM=meson
|
||||
- os: linux
|
||||
env: COMPILER_NAME=clang CXX=clang++ CC=clang CFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" LDFLAGS="-O0 -ggdb -fsanitize=address -fno-omit-frame-pointer" ASAN_OPTIONS=detect_odr_violation=0 LSAN_OPTIONS=detect_leaks=0
|
||||
cache:
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ RUN dnf install -y \
|
|||
ncurses-devel \
|
||||
gnupg2 \
|
||||
python2-pip \
|
||||
meson \
|
||||
ninja-build \
|
||||
xz
|
||||
|
||||
RUN rm -rf /src/.nvm && git clone https://github.com/creationix/nvm.git /src/.nvm && (cd /src/.nvm && git checkout `git describe --abbrev=0 --tags`) && . /src/.nvm/nvm.sh && nvm install 8.11.3
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
executable('r2agent', 'r2agent.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util, r_socket, r_cons],
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_socket_dep,
|
||||
r_cons_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,16 @@
|
|||
executable('rabin2', 'rabin2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util, r_cons, r_config, r_hash, r_io, r_crypto, r_core, r_magic, r_bin,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_cons_dep,
|
||||
r_config_dep,
|
||||
r_hash_dep,
|
||||
r_io_dep,
|
||||
r_crypto_dep,
|
||||
r_core_dep,
|
||||
r_magic_dep,
|
||||
r_bin_dep,
|
||||
sdb_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
|
|
|
|||
|
|
@ -1,9 +1,27 @@
|
|||
executable('radare2', 'radare2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util, r_socket, r_core, r_io, r_magic, r_fs, r_bin, r_flag, r_cons,
|
||||
r_asm, r_debug, r_config, r_bp, r_reg, r_syscall, r_anal, r_parse, r_egg,
|
||||
r_search, r_hash, r_crypto,
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_socket_dep,
|
||||
r_core_dep,
|
||||
r_io_dep,
|
||||
r_fs_dep,
|
||||
r_bin_dep,
|
||||
r_flag_dep,
|
||||
r_cons_dep,
|
||||
r_asm_dep,
|
||||
r_debug_dep,
|
||||
r_config_dep,
|
||||
r_bp_dep,
|
||||
r_reg_dep,
|
||||
r_syscall_dep,
|
||||
r_anal_dep,
|
||||
r_parse_dep,
|
||||
r_egg_dep,
|
||||
r_search_dep,
|
||||
r_hash_dep,
|
||||
r_crypto_dep,
|
||||
r_magic_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
|
|
|
|||
|
|
@ -86,7 +86,9 @@ static int verify_version(int show) {
|
|||
{ "r_hash", &r_hash_version },
|
||||
{ "r_fs", &r_fs_version },
|
||||
{ "r_io", &r_io_version },
|
||||
#if !USE_LIB_MAGIC
|
||||
{ "r_magic", &r_magic_version },
|
||||
#endif
|
||||
{ "r_parse", &r_parse_version },
|
||||
{ "r_reg", &r_reg_version },
|
||||
{ "r_sign", &r_sign_version },
|
||||
|
|
|
|||
|
|
@ -1,7 +1,16 @@
|
|||
executable('radiff2', 'radiff2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util, r_io, r_search, r_cons, r_core, r_bin, r_anal, r_asm, r_hash, r_config
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_io_dep,
|
||||
r_search_dep,
|
||||
r_cons_dep,
|
||||
r_core_dep,
|
||||
r_bin_dep,
|
||||
r_anal_dep,
|
||||
r_asm_dep,
|
||||
r_hash_dep,
|
||||
r_config_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
|
|
|
|||
|
|
@ -1,6 +1,11 @@
|
|||
executable('rafind2', 'rafind2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util, r_search, r_io, r_cons],
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_search_dep,
|
||||
r_io_dep,
|
||||
r_cons_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,16 @@
|
|||
executable('ragg2', 'ragg2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util, r_egg, r_bin, r_core, r_hash, r_debug, r_fs, r_config, r_bp, r_crypto
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_egg_dep,
|
||||
r_bin_dep,
|
||||
r_core_dep,
|
||||
r_hash_dep,
|
||||
r_debug_dep,
|
||||
r_fs_dep,
|
||||
r_config_dep,
|
||||
r_bp_dep,
|
||||
r_crypto_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
executable('rahash2', 'rahash2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util, r_hash, r_io, r_crypto, r_socket],
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_hash_dep,
|
||||
r_io_dep,
|
||||
r_crypto_dep,
|
||||
r_socket_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
executable('rarun2', 'rarun2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util, r_socket],
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_socket_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
executable('rasm2', 'rasm2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util, r_asm, r_anal, r_syscall, libr_shlr],
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_asm_dep,
|
||||
r_anal_dep,
|
||||
r_syscall_dep,
|
||||
sdb_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
executable('rax2', 'rax2.c',
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util],
|
||||
dependencies: [r_util_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
|
|
|||
|
|
@ -108,45 +108,37 @@ files = [
|
|||
'../asm/arch/xtensa/gnu/xtensa-modules.c'
|
||||
]
|
||||
|
||||
r_anal_inc = [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'arch/gb',
|
||||
'arch/hexagon',
|
||||
)
|
||||
]
|
||||
|
||||
r_anal = library('r_anal', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'arch/gb',
|
||||
'arch/hexagon',
|
||||
'../asm/arch/8051',
|
||||
'../asm/arch/cr16',
|
||||
'../asm/arch/ebc',
|
||||
'../asm/arch/h8300',
|
||||
'../asm/arch/hexagon',
|
||||
'../asm/arch/msp430',
|
||||
'../asm/arch/propeller',
|
||||
'../asm/arch/rsp',
|
||||
'../asm/arch/tms320',
|
||||
'../asm/arch/v810',
|
||||
'../asm/arch/v850',
|
||||
'../asm/arch/wasm',
|
||||
'../asm/arch/include/',
|
||||
'../../shlr/capstone/include',
|
||||
'../../shlr'
|
||||
)
|
||||
],
|
||||
include_directories: r_anal_inc,
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_reg,
|
||||
r_asm,
|
||||
r_syscall,
|
||||
r_search,
|
||||
r_cons,
|
||||
r_flag,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_reg_dep,
|
||||
r_asm_dep,
|
||||
r_search_dep,
|
||||
r_cons_dep,
|
||||
r_syscall_dep,
|
||||
r_flag_dep,
|
||||
sdb_dep,
|
||||
java_dep,
|
||||
capstone_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_anal_dep = declare_dependency(link_with: r_anal,
|
||||
include_directories: r_anal_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_anal],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -150,40 +150,47 @@ files = [
|
|||
#'arch/z80/z80asm.c',
|
||||
]
|
||||
|
||||
r_asm_inc = [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../../shlr',
|
||||
'arch/include',
|
||||
'arch',
|
||||
'arch/h8300',
|
||||
'arch/hexagon',
|
||||
'arch/msp430',
|
||||
'arch/rsp',
|
||||
'arch/v850',
|
||||
'arch/propeller',
|
||||
'arch/ebc',
|
||||
'arch/cr16',
|
||||
'arch/8051',
|
||||
'arch/v810'
|
||||
)
|
||||
]
|
||||
|
||||
r_asm = library('r_asm', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../../shlr/capstone/include',
|
||||
'../../shlr',
|
||||
'arch/include',
|
||||
'arch',
|
||||
'arch/h8300',
|
||||
'arch/hexagon',
|
||||
'arch/msp430',
|
||||
'arch/rsp',
|
||||
'arch/v850',
|
||||
'arch/propeller',
|
||||
'arch/ebc',
|
||||
'arch/cr16',
|
||||
'arch/8051',
|
||||
)
|
||||
],
|
||||
include_directories: r_asm_inc,
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_syscall,
|
||||
r_parse,
|
||||
r_lang,
|
||||
r_flag,
|
||||
r_socket,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_syscall_dep,
|
||||
r_parse_dep,
|
||||
r_lang_dep,
|
||||
r_flag_dep,
|
||||
r_socket_dep,
|
||||
capstone_dep,
|
||||
spp_dep,
|
||||
java_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_asm_dep = declare_dependency(link_with: r_asm,
|
||||
include_directories: r_asm_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_asm],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -115,27 +115,27 @@ files = [
|
|||
'pdb/tpi.c'
|
||||
]
|
||||
|
||||
r_bin_inc = [platform_inc, include_directories('mangling', 'format')]
|
||||
|
||||
r_bin = library('r_bin', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'mangling',
|
||||
'format'
|
||||
)
|
||||
],
|
||||
include_directories: r_bin_inc,
|
||||
c_args: ['-DCORELIB=1', '-DR_API_BIN_ONLY=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_io,
|
||||
r_socket,
|
||||
r_magic,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_io_dep,
|
||||
r_magic_dep,
|
||||
r_socket_dep,
|
||||
sdb_dep,
|
||||
java_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_bin_dep = declare_dependency(link_with: r_bin,
|
||||
include_directories: r_bin_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_bin],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -15,12 +15,15 @@ files = [
|
|||
r_bp = library('r_bp', files,
|
||||
include_directories: [platform_inc],
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [r_util],
|
||||
dependencies: [r_util_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_bp_dep = declare_dependency(link_with: r_bp,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_bp],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -5,15 +5,18 @@ files = [
|
|||
|
||||
r_config = library('r_config', files,
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
sdb_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_config_dep = declare_dependency(link_with: r_config,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_config],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -19,15 +19,15 @@ files = [
|
|||
|
||||
r_cons = library('r_cons', files,
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util,
|
||||
libr_shlr
|
||||
],
|
||||
dependencies: [r_util_dep, sdb_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_cons_dep = declare_dependency(link_with: r_cons,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_cons],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -61,48 +61,51 @@ files = [
|
|||
'p/core_java.c',
|
||||
]
|
||||
|
||||
|
||||
includes = ['../../shlr']
|
||||
r_core_inc = []
|
||||
if host_machine.system() != 'windows'
|
||||
includes += ['../../shlr/heap/include']
|
||||
r_core_inc += ['../../shlr/heap/include']
|
||||
endif
|
||||
r_core_inc = [platform_inc, include_directories(r_core_inc)]
|
||||
|
||||
r_core = library('r_core', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(includes)
|
||||
],
|
||||
include_directories: r_core_inc,
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_reg,
|
||||
r_syscall,
|
||||
r_search,
|
||||
r_cons,
|
||||
r_anal,
|
||||
r_socket,
|
||||
r_io,
|
||||
r_fs,
|
||||
r_lang,
|
||||
r_hash,
|
||||
r_flag,
|
||||
r_parse,
|
||||
r_egg,
|
||||
r_debug,
|
||||
r_magic,
|
||||
r_crypto,
|
||||
r_config,
|
||||
r_bin,
|
||||
r_asm,
|
||||
r_bp,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_reg_dep,
|
||||
r_syscall_dep,
|
||||
r_search_dep,
|
||||
r_cons_dep,
|
||||
r_anal_dep,
|
||||
r_socket_dep,
|
||||
r_io_dep,
|
||||
r_fs_dep,
|
||||
r_lang_dep,
|
||||
r_magic_dep,
|
||||
r_hash_dep,
|
||||
r_flag_dep,
|
||||
r_parse_dep,
|
||||
r_egg_dep,
|
||||
r_debug_dep,
|
||||
r_crypto_dep,
|
||||
r_config_dep,
|
||||
r_bin_dep,
|
||||
r_asm_dep,
|
||||
r_bp_dep,
|
||||
platform_deps,
|
||||
sdb_dep,
|
||||
spp_dep,
|
||||
gdb_dep,
|
||||
java_dep
|
||||
],
|
||||
dependencies: [platform_deps],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_core_dep = declare_dependency(link_with: r_core,
|
||||
include_directories: r_core_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_core],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -22,13 +22,16 @@ files = [
|
|||
|
||||
r_crypto = library('r_crypto', files,
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util],
|
||||
dependencies: [r_util_dep],
|
||||
c_args: ['-DCORELIB=1'],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_crypto_dep = declare_dependency(link_with: r_crypto,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_crypto],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -55,39 +55,44 @@ if host_machine.system() == 'darwin'
|
|||
]
|
||||
endif
|
||||
|
||||
r_debug_inc = [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../bin/format/elf'
|
||||
)
|
||||
]
|
||||
|
||||
r_debug = library('r_debug', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../bin/format/elf',
|
||||
'../../shlr/gdb/include',
|
||||
'../../shlr/qnx/include',
|
||||
'../../shlr/bochs/include',
|
||||
'../../shlr/windbg'
|
||||
)
|
||||
],
|
||||
include_directories: r_debug_inc,
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_hash,
|
||||
r_reg,
|
||||
r_syscall,
|
||||
r_anal,
|
||||
r_flag,
|
||||
r_io,
|
||||
r_bp,
|
||||
r_search,
|
||||
r_cons,
|
||||
r_lang,
|
||||
r_egg,
|
||||
r_socket,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_hash_dep,
|
||||
r_reg_dep,
|
||||
r_syscall_dep,
|
||||
r_anal_dep,
|
||||
r_flag_dep,
|
||||
r_io_dep,
|
||||
r_bp_dep,
|
||||
r_search_dep,
|
||||
r_cons_dep,
|
||||
r_lang_dep,
|
||||
r_egg_dep,
|
||||
r_socket_dep,
|
||||
windbg_dep,
|
||||
qnx_dep,
|
||||
gdb_dep,
|
||||
bochs_dep,
|
||||
sdb_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_debug_dep = declare_dependency(link_with: r_debug,
|
||||
include_directories: r_debug_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_debug],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -17,17 +17,20 @@ files = [
|
|||
r_egg = library('r_egg', files,
|
||||
include_directories: [platform_inc],
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_asm,
|
||||
r_syscall,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_asm_dep,
|
||||
r_syscall_dep,
|
||||
sdb_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_egg_dep = declare_dependency(link_with: r_egg,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_egg],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -8,15 +8,18 @@ files = [
|
|||
|
||||
r_flag = library('r_flag', files,
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
sdb_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_flag_dep = declare_dependency(link_with: r_flag,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_flag],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -27,22 +27,20 @@ files = [
|
|||
]
|
||||
|
||||
r_fs = library('r_fs', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../../shlr/grub/include'
|
||||
)
|
||||
],
|
||||
include_directories: platform_inc,
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
grub_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_fs_dep = declare_dependency(link_with: r_fs,
|
||||
include_directories: platform_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_fs],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -16,13 +16,15 @@ files = [
|
|||
|
||||
r_hash = library('r_hash', files,
|
||||
include_directories: [platform_inc],
|
||||
dependencies: [mth],
|
||||
link_with: [r_util],
|
||||
dependencies: [mth, r_util_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_hash_dep = declare_dependency(link_with: r_hash,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_hash],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -56,21 +56,17 @@ if host_machine.system() == 'windows'
|
|||
endif
|
||||
|
||||
r_io = library('r_io', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../../shlr/bochs/include',
|
||||
'../../shlr/gdb/include',
|
||||
'../../shlr/qnx/include',
|
||||
'../../shlr/windbg',
|
||||
'../../shlr/ar',
|
||||
'../../shlr/zip/include'
|
||||
)
|
||||
],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_socket,
|
||||
libr_shlr
|
||||
include_directories: platform_inc,
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_socket_dep,
|
||||
sdb_dep,
|
||||
bochs_dep,
|
||||
gdb_dep,
|
||||
windbg_dep,
|
||||
qnx_dep,
|
||||
zip_dep,
|
||||
ar_dep
|
||||
],
|
||||
c_args: ['-DCORELIB=1'],
|
||||
install: true,
|
||||
|
|
@ -78,6 +74,9 @@ r_io = library('r_io', files,
|
|||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_io_dep = declare_dependency(link_with: r_io,
|
||||
include_directories: platform_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_io],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -11,15 +11,15 @@ files = [
|
|||
r_lang = library('r_lang', files,
|
||||
include_directories: [platform_inc],
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_cons
|
||||
],
|
||||
dependencies: [r_util_dep, r_cons_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_lang_dep = declare_dependency(link_with: r_lang,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_lang],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -9,23 +9,32 @@ files = [
|
|||
'softmagic.c'
|
||||
]
|
||||
|
||||
r_magic = library('r_magic', files,
|
||||
include_directories: [platform_inc],
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [r_util],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
if use_lib_magic
|
||||
message('Use system-provided magic library')
|
||||
r_magic_dep = sys_magic
|
||||
else
|
||||
message('Use bundled magic library')
|
||||
r_magic = library('r_magic', files,
|
||||
include_directories: platform_inc,
|
||||
c_args: ['-DCORELIB=1'],
|
||||
dependencies: [r_util_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_magic],
|
||||
subdirs: 'libr',
|
||||
version: r2_version,
|
||||
name: 'r_magic',
|
||||
filebase: 'r_magic',
|
||||
requires: [
|
||||
'r_util'
|
||||
],
|
||||
description: 'radare foundation libraries'
|
||||
)
|
||||
r_magic_dep = declare_dependency(link_with: r_magic,
|
||||
include_directories: platform_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_magic],
|
||||
subdirs: 'libr',
|
||||
version: r2_version,
|
||||
name: 'r_magic',
|
||||
filebase: 'r_magic',
|
||||
requires: [
|
||||
'r_util'
|
||||
],
|
||||
description: 'radare foundation libraries'
|
||||
)
|
||||
endif
|
||||
|
|
|
|||
|
|
@ -18,25 +18,24 @@ files = [
|
|||
]
|
||||
|
||||
r_parse = library('r_parse', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../../shlr/tcc',
|
||||
)
|
||||
],
|
||||
include_directories: platform_inc,
|
||||
c_args: ['-DCORELIB=1'],
|
||||
link_with: [
|
||||
r_util,
|
||||
r_flag,
|
||||
r_syscall,
|
||||
r_reg,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
r_flag_dep,
|
||||
r_syscall_dep,
|
||||
r_reg_dep,
|
||||
sdb_dep,
|
||||
tcc_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_parse_dep = declare_dependency(link_with: r_parse,
|
||||
include_directories: platform_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_parse],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -9,12 +9,15 @@ files = [
|
|||
|
||||
r_reg = library('r_reg', files,
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util],
|
||||
dependencies: [r_util_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_reg_dep = declare_dependency(link_with: r_reg,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_reg],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -12,12 +12,15 @@ files = [
|
|||
|
||||
r_search = library('r_search', files,
|
||||
include_directories: [platform_inc],
|
||||
link_with: [r_util],
|
||||
dependencies: [r_util_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_search_dep = declare_dependency(link_with: r_search,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_search],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -11,14 +11,16 @@ files = [
|
|||
|
||||
r_socket = library('r_socket', files,
|
||||
include_directories: [platform_inc],
|
||||
dependencies: [utl, platform_deps],
|
||||
link_with: [r_util],
|
||||
dependencies: [utl, r_util_dep, platform_deps],
|
||||
c_args: ['-DCORELIB=1'],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_socket_dep = declare_dependency(link_with: r_socket,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_socket],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
|
|
@ -5,15 +5,18 @@ files = [
|
|||
|
||||
r_syscall = library('r_syscall', files,
|
||||
include_directories: [platform_inc],
|
||||
link_with: [
|
||||
r_util,
|
||||
libr_shlr
|
||||
dependencies: [
|
||||
r_util_dep,
|
||||
sdb_dep
|
||||
],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_syscall_dep = declare_dependency(link_with: r_syscall,
|
||||
include_directories: [platform_inc])
|
||||
|
||||
pkgconfig_mod.generate(libraries: [r_syscall],
|
||||
subdirs: 'libr',
|
||||
version: r2_version,
|
||||
|
|
|
|||
|
|
@ -1,7 +1,3 @@
|
|||
# 'big-gmp.c',
|
||||
# 'big-ssl.c',
|
||||
# 'mixed.c',
|
||||
# 'iconv.c',
|
||||
|
||||
files = [
|
||||
'ascii_table.c',
|
||||
|
|
@ -85,19 +81,16 @@ files = [
|
|||
]
|
||||
|
||||
r_util = library('r_util', files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories(
|
||||
'../../shlr/zip/include'
|
||||
)
|
||||
],
|
||||
dependencies: [ldl, mth, pth, utl],
|
||||
link_with: [libr_shlr],
|
||||
include_directories: platform_inc,
|
||||
dependencies: [ldl, mth, pth, utl, sdb_dep, zip_dep],
|
||||
install: true,
|
||||
implicit_include_directories: false,
|
||||
soversion: r2_libversion
|
||||
)
|
||||
|
||||
r_util_dep = declare_dependency(link_with: r_util,
|
||||
include_directories: platform_inc)
|
||||
|
||||
pkgconfig_mod.generate(
|
||||
libraries: [r_util],
|
||||
subdirs: 'libr',
|
||||
|
|
|
|||
59
meson.build
59
meson.build
|
|
@ -26,7 +26,9 @@ if meson.is_subproject()
|
|||
endif
|
||||
endif
|
||||
|
||||
version_commit = ''
|
||||
# by default, not version commit is used
|
||||
version_commit = '0'
|
||||
|
||||
gittap = ''
|
||||
gittip = 'unknown'
|
||||
|
||||
|
|
@ -195,7 +197,16 @@ config_h = configure_file(
|
|||
configuration: conf_data
|
||||
)
|
||||
|
||||
sys_magic = cc.find_library('magic', required: false)
|
||||
use_lib_magic = false
|
||||
|
||||
if sys_magic.found() and get_option('use_sys_magic')
|
||||
use_lib_magic = true
|
||||
endif
|
||||
|
||||
userconf = configuration_data()
|
||||
userconf.set('HAVE_LIB_MAGIC', sys_magic.found().to_int())
|
||||
userconf.set('USE_LIB_MAGIC', use_lib_magic.to_int())
|
||||
userconf.set('DEBUGGER', 1)
|
||||
userconf.set('PREFIX', r2_prefix)
|
||||
userconf.set('LIBDIR', r2_libdir)
|
||||
|
|
@ -211,8 +222,6 @@ userconf.set('HUD', r2_hud)
|
|||
userconf.set('PLUGINS', r2_plugins)
|
||||
userconf.set('EXTRAS', r2_extras)
|
||||
userconf.set('BINDINGS', r2_bindings)
|
||||
userconf.set('HAVE_LIB_MAGIC', 0)
|
||||
userconf.set('USE_LIB_MAGIC', 0)
|
||||
userconf.set('HAVE_OPENSSL', 0)
|
||||
userconf.set('HAVE_FORK', 1)
|
||||
userconf.set('WITH_GPL', 1)
|
||||
|
|
@ -322,28 +331,28 @@ if not meson.is_subproject()
|
|||
subdir('binr/rax2')
|
||||
else
|
||||
libr2_dep = declare_dependency(
|
||||
link_with: [
|
||||
r_anal,
|
||||
r_asm,
|
||||
r_bin,
|
||||
r_bp,
|
||||
r_config,
|
||||
r_cons,
|
||||
r_core,
|
||||
r_crypto,
|
||||
r_egg,
|
||||
r_flag,
|
||||
r_fs,
|
||||
r_hash,
|
||||
r_io,
|
||||
r_lang,
|
||||
r_magic,
|
||||
r_parse,
|
||||
r_reg,
|
||||
r_search,
|
||||
r_socket,
|
||||
r_syscall,
|
||||
r_util
|
||||
dependencies: [
|
||||
r_anal_dep,
|
||||
r_asm_dep,
|
||||
r_bin_dep,
|
||||
r_bp_dep,
|
||||
r_config_dep,
|
||||
r_cons_dep,
|
||||
r_core_dep,
|
||||
r_crypto_dep,
|
||||
r_egg_dep,
|
||||
r_flag_dep,
|
||||
r_fs_dep,
|
||||
r_hash_dep,
|
||||
r_io_dep,
|
||||
r_lang_dep,
|
||||
r_magic_dep,
|
||||
r_parse_dep,
|
||||
r_reg_dep,
|
||||
r_search_dep,
|
||||
r_socket_dep,
|
||||
r_syscall_dep,
|
||||
r_util_dep
|
||||
],
|
||||
include_directories: include_directories('.', 'libr/include'),
|
||||
version: r2_version
|
||||
|
|
|
|||
|
|
@ -12,3 +12,5 @@ option('r2_hud', type: 'string', value: '')
|
|||
option('r2_version_commit', type: 'string', value: '')
|
||||
option('r2_gittap', type: 'string', value: '')
|
||||
option('r2_gittip', type: 'string', value: '')
|
||||
option('use_sys_capstone', type: 'boolean', value: false)
|
||||
option('use_sys_magic', type: 'boolean', value: false)
|
||||
|
|
|
|||
484
shlr/meson.build
484
shlr/meson.build
|
|
@ -1,121 +1,102 @@
|
|||
res = run_command(py3_exe, '-c', '__import__("sys").exit(__import__("os").path.exists("capstone"))')
|
||||
if res.returncode() == 0
|
||||
if not git_exe.found()
|
||||
error('Cannot load capstone library. Either provide capstone in ./shlr/capstone or install git, so it can be downloaded')
|
||||
# handle capstone dependency
|
||||
capstone_dep = dependency('capstone', version: '>=3.0.4', required: false)
|
||||
if not capstone_dep.found() or not get_option('use_sys_capstone')
|
||||
message('Use bundled capstone')
|
||||
|
||||
res = run_command(py3_exe, '-c', '__import__("sys").exit(__import__("os").path.exists("capstone"))')
|
||||
if res.returncode() == 0
|
||||
if not git_exe.found()
|
||||
error('Cannot load capstone library. Either provide capstone in ./shlr/capstone or install git, so it can be downloaded')
|
||||
endif
|
||||
|
||||
message('Cloning capstone')
|
||||
git_cmd = 'clone -b next --depth 10 https://github.com/aquynh/capstone.git capstone'
|
||||
run_command(git_exe, git_cmd.split())
|
||||
endif
|
||||
|
||||
message('Cloning capstone')
|
||||
git_cmd = 'clone -b next --depth 10 https://github.com/aquynh/capstone.git capstone'
|
||||
run_command(git_exe, git_cmd.split())
|
||||
cs_files = [
|
||||
'capstone/arch/AArch64/AArch64BaseInfo.c',
|
||||
'capstone/arch/AArch64/AArch64Disassembler.c',
|
||||
'capstone/arch/AArch64/AArch64InstPrinter.c',
|
||||
'capstone/arch/AArch64/AArch64Mapping.c',
|
||||
'capstone/arch/AArch64/AArch64Module.c',
|
||||
'capstone/arch/ARM/ARMDisassembler.c',
|
||||
'capstone/arch/ARM/ARMInstPrinter.c',
|
||||
'capstone/arch/ARM/ARMMapping.c',
|
||||
'capstone/arch/ARM/ARMModule.c',
|
||||
'capstone/arch/M68K/M68KDisassembler.c',
|
||||
'capstone/arch/M68K/M68KInstPrinter.c',
|
||||
'capstone/arch/M68K/M68KModule.c',
|
||||
'capstone/arch/Mips/MipsDisassembler.c',
|
||||
'capstone/arch/Mips/MipsInstPrinter.c',
|
||||
'capstone/arch/Mips/MipsMapping.c',
|
||||
'capstone/arch/Mips/MipsModule.c',
|
||||
'capstone/arch/PowerPC/PPCDisassembler.c',
|
||||
'capstone/arch/PowerPC/PPCInstPrinter.c',
|
||||
'capstone/arch/PowerPC/PPCMapping.c',
|
||||
'capstone/arch/PowerPC/PPCModule.c',
|
||||
'capstone/arch/Sparc/SparcDisassembler.c',
|
||||
'capstone/arch/Sparc/SparcInstPrinter.c',
|
||||
'capstone/arch/Sparc/SparcMapping.c',
|
||||
'capstone/arch/Sparc/SparcModule.c',
|
||||
'capstone/arch/SystemZ/SystemZDisassembler.c',
|
||||
'capstone/arch/SystemZ/SystemZInstPrinter.c',
|
||||
'capstone/arch/SystemZ/SystemZMapping.c',
|
||||
'capstone/arch/SystemZ/SystemZMCTargetDesc.c',
|
||||
'capstone/arch/SystemZ/SystemZModule.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xDisassembler.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xInstPrinter.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xMapping.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xModule.c',
|
||||
'capstone/arch/X86/X86ATTInstPrinter.c',
|
||||
'capstone/arch/X86/X86Disassembler.c',
|
||||
'capstone/arch/X86/X86DisassemblerDecoder.c',
|
||||
'capstone/arch/X86/X86IntelInstPrinter.c',
|
||||
'capstone/arch/X86/X86Mapping.c',
|
||||
'capstone/arch/X86/X86Module.c',
|
||||
'capstone/arch/XCore/XCoreDisassembler.c',
|
||||
'capstone/arch/XCore/XCoreInstPrinter.c',
|
||||
'capstone/arch/XCore/XCoreMapping.c',
|
||||
'capstone/arch/XCore/XCoreModule.c',
|
||||
'capstone/cs.c',
|
||||
'capstone/MCInst.c',
|
||||
'capstone/MCInstrDesc.c',
|
||||
'capstone/MCRegisterInfo.c',
|
||||
'capstone/SStream.c',
|
||||
'capstone/utils.c',
|
||||
]
|
||||
|
||||
capstone_includes = [platform_inc, include_directories('capstone/include')]
|
||||
|
||||
libr2capstone = static_library('r2capstone', cs_files,
|
||||
c_args: [
|
||||
'-DCAPSTONE_X86_ATT_DISABLE_NO',
|
||||
'-DCAPSTONE_X86_REDUCE_NO',
|
||||
'-DCAPSTONE_USE_SYS_DYN_MEM',
|
||||
'-DCAPSTONE_DIET_NO',
|
||||
'-DCAPSTONE_HAS_ARM',
|
||||
'-DCAPSTONE_HAS_ARM64',
|
||||
'-DCAPSTONE_HAS_M68K',
|
||||
'-DCAPSTONE_HAS_MIPS',
|
||||
'-DCAPSTONE_HAS_POWERPC',
|
||||
'-DCAPSTONE_HAS_SPARC',
|
||||
'-DCAPSTONE_HAS_SYSZ',
|
||||
'-DCAPSTONE_HAS_X86',
|
||||
'-DCAPSTONE_HAS_XCORE',
|
||||
'-DCAPSTONE_HAS_TMS320C64X',
|
||||
],
|
||||
include_directories: capstone_includes,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
capstone_dep = declare_dependency(link_with: libr2capstone,
|
||||
include_directories: capstone_includes)
|
||||
else
|
||||
message('Use system-provided capstone library')
|
||||
endif
|
||||
|
||||
bochs_files = [
|
||||
'bochs/src/libbochs.c'
|
||||
]
|
||||
|
||||
libr2bochs = static_library('r2bochs', bochs_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'bochs/include'
|
||||
])
|
||||
],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
gdb_files = [
|
||||
'gdb/src/arch.c',
|
||||
'gdb/src/common.c',
|
||||
'gdb/src/packet.c',
|
||||
'gdb/src/utils.c',
|
||||
'gdb/src/libgdbr.c',
|
||||
|
||||
'gdb/src/gdbclient/core.c',
|
||||
'gdb/src/gdbclient/responses.c',
|
||||
'gdb/src/gdbclient/xml.c',
|
||||
|
||||
'gdb/src/gdbserver/core.c',
|
||||
]
|
||||
|
||||
libr2gdb = static_library('r2gdb', gdb_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'./gdb/include',
|
||||
'./gdb/include/gdbclient',
|
||||
'./gdb/include/gdbserver'
|
||||
])
|
||||
],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
java_files = [
|
||||
'java/class.c',
|
||||
'java/code.c',
|
||||
'java/dsojson.c',
|
||||
'java/ops.c',
|
||||
#'java/main.c',
|
||||
]
|
||||
|
||||
libr2java = static_library('r2java', java_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'java'
|
||||
])
|
||||
],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
qnx_files = [
|
||||
'qnx/src/core.c',
|
||||
'qnx/src/libqnxr.c',
|
||||
'qnx/src/packet.c',
|
||||
'qnx/src/sigutil.c',
|
||||
'qnx/src/utils.c',
|
||||
]
|
||||
|
||||
libr2qnx = static_library('r2qnx', qnx_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'qnx/include'
|
||||
])
|
||||
],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
tcc_files = [
|
||||
'tcc/libtcc.c',
|
||||
'tcc/tccgen.c',
|
||||
'tcc/tccpp.c'
|
||||
]
|
||||
|
||||
libr2tcc = static_library('r2tcc', tcc_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'tcc'
|
||||
])
|
||||
],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
spp_files = [
|
||||
'spp/spp.c'
|
||||
]
|
||||
|
||||
libr2spp = static_library('r2spp', spp_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'spp/'
|
||||
])
|
||||
],
|
||||
c_args: ['-DHAVE_R_UTIL'],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
# handle sdb dependency
|
||||
sdb_files = [
|
||||
'sdb/src/array.c',
|
||||
'sdb/src/base64.c',
|
||||
|
|
@ -140,31 +121,152 @@ sdb_files = [
|
|||
'sdb/src/util.c'
|
||||
]
|
||||
|
||||
sdb_inc = [platform_inc, include_directories('sdb/src')]
|
||||
|
||||
libr2sdb = static_library('r2sdb', sdb_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'sdb/src',
|
||||
'../libr/include/sdb'
|
||||
])
|
||||
],
|
||||
include_directories: sdb_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
sdb_dep = declare_dependency(link_with: libr2sdb,
|
||||
include_directories: sdb_inc)
|
||||
|
||||
|
||||
# handle bochs dependency
|
||||
bochs_files = [
|
||||
'bochs/src/libbochs.c'
|
||||
]
|
||||
|
||||
bochs_inc = [platform_inc, include_directories('bochs/include')]
|
||||
|
||||
libr2bochs = static_library('r2bochs', bochs_files,
|
||||
include_directories: bochs_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
bochs_dep = declare_dependency(link_with: libr2bochs,
|
||||
include_directories: bochs_inc)
|
||||
|
||||
|
||||
# handle gdb dependency
|
||||
gdb_files = [
|
||||
'gdb/src/arch.c',
|
||||
'gdb/src/common.c',
|
||||
'gdb/src/packet.c',
|
||||
'gdb/src/utils.c',
|
||||
'gdb/src/libgdbr.c',
|
||||
|
||||
'gdb/src/gdbclient/core.c',
|
||||
'gdb/src/gdbclient/responses.c',
|
||||
'gdb/src/gdbclient/xml.c',
|
||||
|
||||
'gdb/src/gdbserver/core.c',
|
||||
]
|
||||
|
||||
gdb_inc = [platform_inc, include_directories('./gdb/include', './gdb/include/gdbclient', './gdb/include/gdbserver')]
|
||||
|
||||
libr2gdb = static_library('r2gdb', gdb_files,
|
||||
include_directories: gdb_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
gdb_dep = declare_dependency(link_with: libr2gdb,
|
||||
include_directories: gdb_inc)
|
||||
|
||||
|
||||
# handle java dependency
|
||||
java_files = [
|
||||
'java/class.c',
|
||||
'java/code.c',
|
||||
'java/dsojson.c',
|
||||
'java/ops.c',
|
||||
#'java/main.c',
|
||||
]
|
||||
|
||||
java_inc = [platform_inc, include_directories('java')]
|
||||
|
||||
libr2java = static_library('r2java', java_files,
|
||||
include_directories: java_inc,
|
||||
dependencies: [sdb_dep],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
java_dep = declare_dependency(link_with: libr2java,
|
||||
include_directories: java_inc)
|
||||
|
||||
|
||||
# handle qnx dependency
|
||||
qnx_files = [
|
||||
'qnx/src/core.c',
|
||||
'qnx/src/libqnxr.c',
|
||||
'qnx/src/packet.c',
|
||||
'qnx/src/sigutil.c',
|
||||
'qnx/src/utils.c',
|
||||
]
|
||||
|
||||
qnx_inc = [platform_inc, include_directories('qnx/include')]
|
||||
|
||||
libr2qnx = static_library('r2qnx', qnx_files,
|
||||
include_directories: qnx_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
qnx_dep = declare_dependency(link_with: libr2qnx,
|
||||
include_directories: qnx_inc)
|
||||
|
||||
|
||||
# handle tcc dependency (heavily modified version)
|
||||
tcc_files = [
|
||||
'tcc/libtcc.c',
|
||||
'tcc/tccgen.c',
|
||||
'tcc/tccpp.c'
|
||||
]
|
||||
|
||||
tcc_inc = [platform_inc, include_directories('tcc')]
|
||||
|
||||
libr2tcc = static_library('r2tcc', tcc_files,
|
||||
include_directories: tcc_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
tcc_dep = declare_dependency(link_with: libr2tcc,
|
||||
include_directories: tcc_inc)
|
||||
|
||||
|
||||
# handle spp dependency
|
||||
spp_files = [
|
||||
'spp/spp.c'
|
||||
]
|
||||
|
||||
spp_inc = [platform_inc, include_directories('spp')]
|
||||
|
||||
libr2spp = static_library('r2spp', spp_files,
|
||||
include_directories: spp_inc,
|
||||
c_args: ['-DHAVE_R_UTIL'],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
spp_dep = declare_dependency(link_with: libr2spp,
|
||||
include_directories: spp_inc)
|
||||
|
||||
|
||||
# handle lz4 dependency
|
||||
lz4_files = [
|
||||
'lz4/lz4.c',
|
||||
]
|
||||
|
||||
lz4_inc = [platform_inc, include_directories('lz4')]
|
||||
|
||||
libr2lz4 = static_library('r2lz4', lz4_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'lz4'
|
||||
])
|
||||
],
|
||||
include_directories: lz4_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
lz4_dep = declare_dependency(link_with: libr2lz4,
|
||||
include_directories: lz4_inc)
|
||||
|
||||
|
||||
# handle zip dependency
|
||||
zlib_files = [
|
||||
'zip/zip/zip_add.c',
|
||||
'zip/zip/zip_add_dir.c',
|
||||
|
|
@ -265,93 +367,18 @@ zlib_files = [
|
|||
'zip/zlib/zutil.c'
|
||||
]
|
||||
|
||||
zip_inc = [platform_inc, include_directories('zip/include')]
|
||||
|
||||
libr2zip = static_library('r2zip', zlib_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'zip/include'
|
||||
])
|
||||
],
|
||||
include_directories: zip_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
cs_files = [
|
||||
'capstone/arch/AArch64/AArch64BaseInfo.c',
|
||||
'capstone/arch/AArch64/AArch64Disassembler.c',
|
||||
'capstone/arch/AArch64/AArch64InstPrinter.c',
|
||||
'capstone/arch/AArch64/AArch64Mapping.c',
|
||||
'capstone/arch/AArch64/AArch64Module.c',
|
||||
'capstone/arch/ARM/ARMDisassembler.c',
|
||||
'capstone/arch/ARM/ARMInstPrinter.c',
|
||||
'capstone/arch/ARM/ARMMapping.c',
|
||||
'capstone/arch/ARM/ARMModule.c',
|
||||
'capstone/arch/M68K/M68KDisassembler.c',
|
||||
'capstone/arch/M68K/M68KInstPrinter.c',
|
||||
'capstone/arch/M68K/M68KModule.c',
|
||||
'capstone/arch/Mips/MipsDisassembler.c',
|
||||
'capstone/arch/Mips/MipsInstPrinter.c',
|
||||
'capstone/arch/Mips/MipsMapping.c',
|
||||
'capstone/arch/Mips/MipsModule.c',
|
||||
'capstone/arch/PowerPC/PPCDisassembler.c',
|
||||
'capstone/arch/PowerPC/PPCInstPrinter.c',
|
||||
'capstone/arch/PowerPC/PPCMapping.c',
|
||||
'capstone/arch/PowerPC/PPCModule.c',
|
||||
'capstone/arch/Sparc/SparcDisassembler.c',
|
||||
'capstone/arch/Sparc/SparcInstPrinter.c',
|
||||
'capstone/arch/Sparc/SparcMapping.c',
|
||||
'capstone/arch/Sparc/SparcModule.c',
|
||||
'capstone/arch/SystemZ/SystemZDisassembler.c',
|
||||
'capstone/arch/SystemZ/SystemZInstPrinter.c',
|
||||
'capstone/arch/SystemZ/SystemZMapping.c',
|
||||
'capstone/arch/SystemZ/SystemZMCTargetDesc.c',
|
||||
'capstone/arch/SystemZ/SystemZModule.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xDisassembler.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xInstPrinter.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xMapping.c',
|
||||
'capstone/arch/TMS320C64x/TMS320C64xModule.c',
|
||||
'capstone/arch/X86/X86ATTInstPrinter.c',
|
||||
'capstone/arch/X86/X86Disassembler.c',
|
||||
'capstone/arch/X86/X86DisassemblerDecoder.c',
|
||||
'capstone/arch/X86/X86IntelInstPrinter.c',
|
||||
'capstone/arch/X86/X86Mapping.c',
|
||||
'capstone/arch/X86/X86Module.c',
|
||||
'capstone/arch/XCore/XCoreDisassembler.c',
|
||||
'capstone/arch/XCore/XCoreInstPrinter.c',
|
||||
'capstone/arch/XCore/XCoreMapping.c',
|
||||
'capstone/arch/XCore/XCoreModule.c',
|
||||
'capstone/cs.c',
|
||||
'capstone/MCInst.c',
|
||||
'capstone/MCInstrDesc.c',
|
||||
'capstone/MCRegisterInfo.c',
|
||||
'capstone/SStream.c',
|
||||
'capstone/utils.c',
|
||||
]
|
||||
zip_dep = declare_dependency(link_with: libr2zip,
|
||||
include_directories: zip_inc)
|
||||
|
||||
libr2capstone = static_library('r2capstone', cs_files,
|
||||
c_args: [
|
||||
'-DCAPSTONE_X86_ATT_DISABLE_NO',
|
||||
'-DCAPSTONE_X86_REDUCE_NO',
|
||||
'-DCAPSTONE_USE_SYS_DYN_MEM',
|
||||
'-DCAPSTONE_DIET_NO',
|
||||
'-DCAPSTONE_HAS_ARM',
|
||||
'-DCAPSTONE_HAS_ARM64',
|
||||
'-DCAPSTONE_HAS_M68K',
|
||||
'-DCAPSTONE_HAS_MIPS',
|
||||
'-DCAPSTONE_HAS_POWERPC',
|
||||
'-DCAPSTONE_HAS_SPARC',
|
||||
'-DCAPSTONE_HAS_SYSZ',
|
||||
'-DCAPSTONE_HAS_X86',
|
||||
'-DCAPSTONE_HAS_XCORE',
|
||||
'-DCAPSTONE_HAS_TMS320C64X',
|
||||
],
|
||||
include_directories: [
|
||||
include_directories([
|
||||
'capstone/include'
|
||||
])
|
||||
],
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
# handle grub dependency
|
||||
grub_files = [
|
||||
'grub/fs/affs.c',
|
||||
#'grub/fs/afs.c',
|
||||
|
|
@ -405,17 +432,18 @@ grub_files = [
|
|||
'grub/partmap/sunpc.c',
|
||||
]
|
||||
|
||||
grub_inc = [platform_inc, include_directories('grub', 'grub/include')]
|
||||
|
||||
libr2grub = static_library('r2grub', grub_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'grub',
|
||||
'grub/include'
|
||||
])
|
||||
],
|
||||
include_directories: grub_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
grub_dep = declare_dependency(link_with: libr2grub,
|
||||
include_directories: grub_inc)
|
||||
|
||||
|
||||
# handle windbg dependency
|
||||
windbg_files = [
|
||||
'windbg/iob_pipe.c',
|
||||
'windbg/kd.c',
|
||||
|
|
@ -423,32 +451,34 @@ windbg_files = [
|
|||
'windbg/windbg.c',
|
||||
]
|
||||
|
||||
windbg_inc = [platform_inc, include_directories('windbg')]
|
||||
|
||||
libr2windbg = static_library('r2windbg', windbg_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'windbg'
|
||||
])
|
||||
],
|
||||
include_directories: windbg_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
windbg_dep = declare_dependency(link_with: libr2windbg,
|
||||
include_directories: windbg_inc)
|
||||
|
||||
|
||||
# handle ar dependency
|
||||
ar_files = [
|
||||
'ar/ar.c'
|
||||
]
|
||||
|
||||
ar_inc = [platform_inc, include_directories(['ar'])]
|
||||
|
||||
libr2ar = static_library('r2ar', ar_files,
|
||||
include_directories: [
|
||||
platform_inc,
|
||||
include_directories([
|
||||
'ar'
|
||||
])
|
||||
],
|
||||
include_directories: ar_inc,
|
||||
implicit_include_directories: false
|
||||
)
|
||||
|
||||
ar_dep = declare_dependency(link_with: libr2ar,
|
||||
include_directories: ar_inc)
|
||||
|
||||
libr_shlr = [
|
||||
libr2ar, libr2bochs, libr2capstone, libr2gdb, libr2grub, libr2java, libr2lz4,
|
||||
libr2ar, libr2bochs, libr2gdb, libr2grub, libr2java, libr2lz4,
|
||||
libr2qnx, libr2sdb, libr2spp, libr2spp, libr2tcc, libr2windbg, libr2zip
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -21,3 +21,4 @@ print_var CXX "${CXX}"
|
|||
print_var CFLAGS "${CFLAGS}"
|
||||
print_var LDFLAGS "${LDFLAGS}"
|
||||
print_var CXXFLAGS "${CXXFLAGS}"
|
||||
print_var INSTALL_SYSTEM "${INSTALL_SYSTEM}"
|
||||
|
|
|
|||
|
|
@ -1,14 +1,26 @@
|
|||
#!/bin/bash
|
||||
set -x
|
||||
|
||||
export PKG_CONFIG_PATH=${TRAVIS_BUILD_DIR}/pkgcfg:${PKG_CONFIG_PATH}
|
||||
export PATH=${TRAVIS_BUILD_DIR}/install/bin:${PATH}
|
||||
export LD_LIBRARY_PATH=${TRAVIS_BUILD_DIR}/install/lib:${LD_LIBRARY_PATH}
|
||||
export LD_LIBRARY_PATH=${TRAVIS_BUILD_DIR}/install/lib:${TRAVIS_BUILD_DIR}/install/lib64:${LD_LIBRARY_PATH}
|
||||
git clone --depth 1 --branch "${R2R_BRANCH}" "${R2R_REPO}" || true # If cloning fails that's not an error: we simply fallback to master.
|
||||
ls radare2-regressions >/dev/null 2>&1 || git clone --depth 1 --branch "${R2R_DEFAULT_BRANCH}" "${R2R_DEFAULT_REPO}"
|
||||
./configure --prefix=${TRAVIS_BUILD_DIR}/install > /dev/null || exit 1
|
||||
make -s -j2 > /dev/null || exit 1
|
||||
make install > /dev/null || exit 1
|
||||
|
||||
if [ "${INSTALL_SYSTEM}" == "meson" ] ; then
|
||||
echo "Installing with meson + ninja"
|
||||
meson --prefix=${TRAVIS_BUILD_DIR}/install build
|
||||
pushd build
|
||||
ninja
|
||||
ninja install
|
||||
popd
|
||||
export PKG_CONFIG_PATH=$(pwd)/build/meson-private:${PKG_CONFIG_PATH}
|
||||
else
|
||||
echo "Installing with acr + make"
|
||||
./configure --prefix=${TRAVIS_BUILD_DIR}/install > /dev/null || exit 1
|
||||
make -s -j2 > /dev/null || exit 1
|
||||
make install > /dev/null || exit 1
|
||||
export PKG_CONFIG_PATH=${TRAVIS_BUILD_DIR}/pkgcfg:${PKG_CONFIG_PATH}
|
||||
fi
|
||||
#[ "$TRAVIS_OS_NAME" != "osx" ] && mkdir -p /tmp/kcov && pushd /tmp/kcov
|
||||
#[ "$TRAVIS_OS_NAME" != "osx" ] && mkdir ${TRAVIS_BUILD_DIR}/kcov
|
||||
#[ "$TRAVIS_OS_NAME" != "osx" ] && wget https://github.com/SimonKagstrom/kcov/archive/master.tar.gz && tar xzf master.tar.gz && mkdir kcov-master/build && cd kcov-master/build && cmake .. && make && make install DESTDIR=../tmp && popd
|
||||
|
|
|
|||
Loading…
Reference in a new issue