Make it possible to use sysmagic again (#15658)

This commit is contained in:
Riccardo Schirone 2019-12-16 23:24:29 +01:00 committed by radare
parent fd1f980eca
commit 982be50499
3 changed files with 32 additions and 50 deletions

View File

@ -15,27 +15,6 @@ R_LIB_VERSION_HEADER(r_magic);
#define MAGICFILE "/etc/magic"
#endif
#if USE_LIB_MAGIC
#include <magic.h>
#ifdef R_API
#define RMagic struct magic_set
#define r_magic_new(x) magic_open(x)
#define r_magic_free(x) { if (x) { magic_close(x); }}
#define r_magic_file(x,y) magic_file(x,y)
#define r_magic_buffer(x,y,z) magic_buffer(x,y,z)
#define r_magic_descriptor(x,y) magic_descriptor(x,y)
#define r_magic_error(x) magic_error(x)
#define r_magic_setflags(x,y) magic_setflags(x,y)
#define r_magic_load(x,y) magic_load(x,y)
#define r_magic_compile(x,y) magic_compile(x,y)
#define r_magic_check(x,y) magic_check(x,y)
#define r_magic_errno(x) magic_errno(x)
#endif
#else
#ifdef R_API
#ifdef __EMX__
@ -291,7 +270,11 @@ struct r_magic_set {
union VALUETYPE ms_value; /* either number or string */
};
#if USE_LIB_MAGIC
#define RMagic struct magic_set
#else
typedef struct r_magic_set RMagic;
#endif
#ifdef R_API
R_API RMagic* r_magic_new(int flags);
@ -313,7 +296,6 @@ R_API int r_magic_errno(RMagic*);
#endif
#endif // USE_LIB_MAGIC
#ifdef __cplusplus
}

View File

@ -21,7 +21,6 @@ R_LIB_VERSION (r_magic);
// we keep this code just to make debian happy, but we should use
// our own magic implementation for consistency reasons
#include <magic.h>
#define RMagic void
#undef R_API
#define R_API

View File

@ -9,35 +9,36 @@ r_magic_sources = [
'softmagic.c'
]
r_magic_deps = [r_util_dep]
if use_syslib_magic
message('Use system-provided magic library')
r_magic_dep = sys_magic
pkgconfig_magic_requires = []
r_magic_deps += [sys_magic]
else
message('Use bundled magic library')
r_magic = library('r_magic', r_magic_sources,
include_directories: platform_inc,
c_args: library_cflags,
dependencies: [r_util_dep],
install: true,
implicit_include_directories: false,
soversion: r2_libversion
)
r_magic_dep = declare_dependency(
link_with: r_magic,
include_directories: platform_inc
)
pkgconfig_mod.generate(r_magic,
subdirs: 'libr',
version: r2_version,
name: 'r_magic',
filebase: 'r_magic',
requires: [
'r_util'
],
description: 'radare foundation libraries'
)
pkgconfig_magic_requires = ['r_magic']
endif
r_magic = library('r_magic', r_magic_sources,
include_directories: platform_inc,
c_args: library_cflags,
dependencies: r_magic_deps,
install: true,
implicit_include_directories: false,
soversion: r2_libversion
)
r_magic_dep = declare_dependency(
link_with: r_magic,
include_directories: platform_inc
)
pkgconfig_mod.generate(r_magic,
subdirs: 'libr',
version: r2_version,
name: 'r_magic',
filebase: 'r_magic',
requires: [
'r_util'
],
description: 'radare foundation libraries'
)
pkgconfig_magic_requires = ['r_magic']