* Build all pkgconfig files (fixes valaswig stuff)

* Split some install targets
* Fix segfault in r_anal when not setting any handler
* Rename R_ASM_SYN -> R_ASM_SYNTAX cprefix
  - R_ASM_*_NULL -> R_ASM_*_NONE
* Added nonworking scr.html eval key in r_core/config
* Add install-ruby target for swig bindings
* Use @VERSION@ in libr.pc.acr
* Lot of fixes for valaswig integration
This commit is contained in:
pancake 2010-01-25 11:54:25 +01:00
parent e5b6d1582b
commit 7ce3232747
19 changed files with 101 additions and 72 deletions

2
configure vendored
View File

@ -436,7 +436,7 @@ for A in ${ENVWORDS} ; do
SEDFLAGS="${SEDFLAGS}s,@${A}@,${VAR},g;" SEDFLAGS="${SEDFLAGS}s,@${A}@,${VAR},g;"
done done
SEDFLAGS="${SEDFLAGS}'" SEDFLAGS="${SEDFLAGS}'"
for A in ./config-user.mk libr/include/r_userconf.h pkgcfg/libr.pc pkgcfg/r_io.pc pkgcfg/r_asm.pc pkgcfg/r_bin.pc pkgcfg/r_cons.pc pkgcfg/r_diff.pc pkgcfg/r_core.pc pkgcfg/r_lang.pc pkgcfg/r_socket.pc pkgcfg/r_debug.pc pkgcfg/r_reg.pc pkgcfg/r_line.pc pkgcfg/r_syscall.pc pkgcfg/r_macro.pc pkgcfg/r_util.pc pkgcfg/r_search.pc pkgcfg/r_vm.pc pkgcfg/r_th.pc pkgcfg/r_bp.pc pkgcfg/r_db.pc ; do # SUBDIRS for A in ./config-user.mk libr/include/r_userconf.h pkgcfg/libr.pc pkgcfg/r_io.pc pkgcfg/r_asm.pc pkgcfg/r_bin.pc pkgcfg/r_bininfo.pc pkgcfg/r_anal.pc pkgcfg/r_hash.pc pkgcfg/r_cons.pc pkgcfg/r_diff.pc pkgcfg/r_core.pc pkgcfg/r_lang.pc pkgcfg/r_socket.pc pkgcfg/r_debug.pc pkgcfg/r_reg.pc pkgcfg/r_cmd.pc pkgcfg/r_config.pc pkgcfg/r_flags.pc pkgcfg/r_meta.pc pkgcfg/r_line.pc pkgcfg/r_syscall.pc pkgcfg/r_macro.pc pkgcfg/r_sign.pc pkgcfg/r_util.pc pkgcfg/r_trace.pc pkgcfg/r_search.pc pkgcfg/r_vm.pc pkgcfg/r_var.pc pkgcfg/r_th.pc pkgcfg/r_bp.pc pkgcfg/r_db.pc ; do # SUBDIRS
if [ -f "${VPATH}/${A}.acr" ]; then if [ -f "${VPATH}/${A}.acr" ]; then
SD_TARGET=${A} SD_TARGET=${A}
else else

View File

@ -57,6 +57,9 @@ SUBDIRS ./config-user.mk libr/include/r_userconf.h
pkgcfg/r_io.pc pkgcfg/r_io.pc
pkgcfg/r_asm.pc pkgcfg/r_asm.pc
pkgcfg/r_bin.pc pkgcfg/r_bin.pc
pkgcfg/r_bininfo.pc
pkgcfg/r_anal.pc
pkgcfg/r_hash.pc
pkgcfg/r_cons.pc pkgcfg/r_cons.pc
pkgcfg/r_diff.pc pkgcfg/r_diff.pc
pkgcfg/r_core.pc pkgcfg/r_core.pc
@ -64,12 +67,19 @@ SUBDIRS ./config-user.mk libr/include/r_userconf.h
pkgcfg/r_socket.pc pkgcfg/r_socket.pc
pkgcfg/r_debug.pc pkgcfg/r_debug.pc
pkgcfg/r_reg.pc pkgcfg/r_reg.pc
pkgcfg/r_cmd.pc
pkgcfg/r_config.pc
pkgcfg/r_flags.pc
pkgcfg/r_meta.pc
pkgcfg/r_line.pc pkgcfg/r_line.pc
pkgcfg/r_syscall.pc pkgcfg/r_syscall.pc
pkgcfg/r_macro.pc pkgcfg/r_macro.pc
pkgcfg/r_sign.pc
pkgcfg/r_util.pc pkgcfg/r_util.pc
pkgcfg/r_trace.pc
pkgcfg/r_search.pc pkgcfg/r_search.pc
pkgcfg/r_vm.pc pkgcfg/r_vm.pc
pkgcfg/r_var.pc
pkgcfg/r_th.pc pkgcfg/r_th.pc
pkgcfg/r_bp.pc pkgcfg/r_bp.pc
pkgcfg/r_db.pc pkgcfg/r_db.pc

View File

@ -52,7 +52,11 @@ install-vapi:
@${INSTALL_DIR} ${PFX}/share/vala/vapi @${INSTALL_DIR} ${PFX}/share/vala/vapi
${INSTALL_DATA} vapi/*.vapi vapi/*.deps ${PFX}/share/vala/vapi ${INSTALL_DATA} vapi/*.vapi vapi/*.deps ${PFX}/share/vala/vapi
install: install-vapi install-pkgconfig:
@${INSTALL_DIR} ${PFX}/lib/pkgconfig
for a in ../pkgcfg/*.pc ; do ${INSTALL_DATA} $$a ${PFX}/lib/pkgconfig ; done
install: install-vapi install-pkgconfig
# TODO :Use INSTALL_DATA_DIR instead of mkdir # TODO :Use INSTALL_DATA_DIR instead of mkdir
# libraries # libraries
@${INSTALL_DIR} ${PFX}/lib @${INSTALL_DIR} ${PFX}/lib
@ -69,8 +73,6 @@ install: install-vapi
@for a in `find */t -perm /u+x -type f | grep 2`; \ @for a in `find */t -perm /u+x -type f | grep 2`; \
do echo "$$a ${PFX}/bin"; ${INSTALL_PROGRAM} $$a ${PFX}/bin ; done do echo "$$a ${PFX}/bin"; ${INSTALL_PROGRAM} $$a ${PFX}/bin ; done
# plugins # plugins
@${INSTALL_DIR} ${PFX}/lib/pkgconfig
for a in ../pkgcfg/*.pc ; do ${INSTALL_DATA} $$a ${PFX}/lib/pkgconfig ; done
#${INSTALL_DATA} libr.pc ${PFX}/lib/pkgconfig #${INSTALL_DATA} libr.pc ${PFX}/lib/pkgconfig
@${INSTALL_DIR} ${PFX}/lib/radare2 @${INSTALL_DIR} ${PFX}/lib/radare2
@for a in `find */p -perm /u+x -type f`; \ @for a in `find */p -perm /u+x -type f`; \

View File

@ -23,6 +23,7 @@ R_API int r_anal_init(struct r_anal_t *anal)
{ {
anal->user = NULL; anal->user = NULL;
anal->ctx = NULL; anal->ctx = NULL;
anal->cur = NULL;
r_anal_set_bits(anal, 32); r_anal_set_bits(anal, 32);
r_anal_set_big_endian(anal, R_FALSE); r_anal_set_big_endian(anal, R_FALSE);
INIT_LIST_HEAD(&anal->anals); INIT_LIST_HEAD(&anal->anals);
@ -93,7 +94,7 @@ R_API int r_anal_set_pc(struct r_anal_t *a, ut64 pc)
R_API int r_anal_aop(struct r_anal_t *anal, struct r_anal_aop_t *aop, void *data) R_API int r_anal_aop(struct r_anal_t *anal, struct r_anal_aop_t *aop, void *data)
{ {
if (anal->cur && anal->cur->aop) if (anal && anal->cur && anal->cur->aop)
return anal->cur->aop(anal, aop, data); return anal->cur->aop(anal, aop, data);
return R_FALSE; return R_FALSE;
} }

View File

@ -370,7 +370,7 @@ static ut16 r_ntohs (ut16 foo) {
#if BIGENDIAN #if BIGENDIAN
/* do nothing */ /* do nothing */
#else #else
ut8 *p = &foo; ut8 *p = (ut8 *)&foo;
foo = p[1] | p[0]<<8; foo = p[1] | p[0]<<8;
#endif #endif
return foo; return foo;

View File

@ -102,7 +102,7 @@ R_API struct r_asm_t *r_asm_init(struct r_asm_t *a)
a->cur = NULL; a->cur = NULL;
a->bits = 32; a->bits = 32;
a->big_endian = 0; a->big_endian = 0;
a->syntax = R_ASM_SYN_INTEL; a->syntax = R_ASM_SYNTAX_INTEL;
a->pc = 0; a->pc = 0;
INIT_LIST_HEAD(&a->asms); INIT_LIST_HEAD(&a->asms);
for(i=0;asm_static_plugins[i];i++) for(i=0;asm_static_plugins[i];i++)
@ -199,8 +199,8 @@ R_API int r_asm_set_big_endian(struct r_asm_t *a, int boolean)
R_API int r_asm_set_syntax(struct r_asm_t *a, int syntax) R_API int r_asm_set_syntax(struct r_asm_t *a, int syntax)
{ {
switch (syntax) { switch (syntax) {
case R_ASM_SYN_INTEL: case R_ASM_SYNTAX_INTEL:
case R_ASM_SYN_ATT: case R_ASM_SYNTAX_ATT:
a->syntax = syntax; a->syntax = syntax;
return R_TRUE; return R_TRUE;
default: default:

View File

@ -18,7 +18,7 @@ static int disassemble(struct r_asm_t *a, struct r_asm_aop_t *aop, ut8 *buf, ut6
static ud_t disasm_obj; static ud_t disasm_obj;
ud_init(&disasm_obj); ud_init(&disasm_obj);
if (a->syntax == R_ASM_SYN_ATT) if (a->syntax == R_ASM_SYNTAX_ATT)
ud_set_syntax(&disasm_obj, UD_SYN_ATT); ud_set_syntax(&disasm_obj, UD_SYN_ATT);
else else
ud_set_syntax(&disasm_obj, UD_SYN_INTEL); ud_set_syntax(&disasm_obj, UD_SYN_INTEL);

View File

@ -20,7 +20,7 @@ static int disassemble(struct r_asm_t *a, struct r_asm_aop_t *aop, ut8 *buf, ut6
disasm_obj.VirtualAddr = a->pc; disasm_obj.VirtualAddr = a->pc;
disasm_obj.Archi = ((a->bits == 64) ? 64 : 0); disasm_obj.Archi = ((a->bits == 64) ? 64 : 0);
disasm_obj.SecurityBlock = len; disasm_obj.SecurityBlock = len;
if (a->syntax == R_ASM_SYN_ATT) if (a->syntax == R_ASM_SYNTAX_ATT)
disasm_obj.Options = 0x400; disasm_obj.Options = 0x400;
else disasm_obj.Options = 0; else disasm_obj.Options = 0;

View File

@ -137,8 +137,8 @@ int main(int argc, char *argv[])
break; break;
case 's': case 's':
if (!strcmp(optarg, "att")) if (!strcmp(optarg, "att"))
r_asm_set_syntax(&a, R_ASM_SYN_ATT); r_asm_set_syntax(&a, R_ASM_SYNTAX_ATT);
else r_asm_set_syntax(&a, R_ASM_SYN_INTEL); else r_asm_set_syntax(&a, R_ASM_SYNTAX_INTEL);
break; break;
case 'd': case 'd':
dis = 1; dis = 1;

View File

@ -1,9 +1,15 @@
/* radare - LGPL - Copyright 2009 pancake<nopcode.org> */ /* radare - LGPL - Copyright 2009 pancake<nopcode.org> */
#include <r_core.h> #include <r_core.h>
static int config_scrhtml_callback(void *user, void *data) {
struct r_core_t *core = (struct r_core_t *) user;
struct r_config_node_t *node = (struct r_config_node_t *) data;
r_cons_is_html = node->i_value;
// TODO: control error and restore old value (return false?) show errormsg?
return R_TRUE;
}
static int config_asm_arch_callback(void *user, void *data) static int config_asm_arch_callback(void *user, void *data) {
{
struct r_core_t *core = (struct r_core_t *) user; struct r_core_t *core = (struct r_core_t *) user;
struct r_config_node_t *node = (struct r_config_node_t *) data; struct r_config_node_t *node = (struct r_config_node_t *) data;
r_asm_use (&core->assembler, node->value); r_asm_use (&core->assembler, node->value);
@ -83,10 +89,12 @@ R_API int r_core_config_init(struct r_core_t *core)
r_config_set(cfg, "cmd.prompt", ""); r_config_set(cfg, "cmd.prompt", "");
r_config_set(cfg, "cmd.vprompt", ""); r_config_set(cfg, "cmd.vprompt", "");
r_config_set(cfg, "cmd.hit", ""); r_config_set(cfg, "cmd.hit", "");
r_config_set_cb(cfg, "scr.color", r_config_set_cb (cfg, "scr.color",
(core->print.flags&R_PRINT_FLAGS_COLOR)?"true":"false", (core->print.flags&R_PRINT_FLAGS_COLOR)?"true":"false",
&config_color_callback); &config_color_callback);
r_config_set (cfg, "scr.seek", ""); r_config_set (cfg, "scr.seek", "");
r_config_set_cb (cfg, "scr.html", "false", &config_scrhtml_callback);
r_config_set(cfg, "cfg.debug", "false");
#if 0 #if 0
node = config_set("asm.profile", "default"); node = config_set("asm.profile", "default");
// node->callback = &config_asm_profile; // node->callback = &config_asm_profile;
@ -153,7 +161,7 @@ R_API int r_core_config_init(struct r_core_t *core)
config_set("cmd.visual", ""); config_set("cmd.visual", "");
config_set("cmd.visualbind", ""); config_set("cmd.visualbind", "");
config_set("cmd.touchtrace", ""); config_set("cmd.touchtrace", "");
#endif
r_config_set(cfg, "cmd.prompt", ""); r_config_set(cfg, "cmd.prompt", "");
r_config_set(cfg, "cmd.visual", ""); //? eip && ?? s eip"); r_config_set(cfg, "cmd.visual", ""); //? eip && ?? s eip");
r_config_set(cfg, "cmd.vprompt", "p%"); r_config_set(cfg, "cmd.vprompt", "p%");
@ -162,12 +170,10 @@ R_API int r_core_config_init(struct r_core_t *core)
r_config_set(cfg, "cmd.bp", ""); r_config_set(cfg, "cmd.bp", "");
r_config_set(cfg, "cfg.fortunes", "true"); r_config_set(cfg, "cfg.fortunes", "true");
r_config_set(cfg, "cfg.debug", "false");
#if 0 r_config_set_i("search.from", 0);
config_set_i("search.from", 0); r_config_set_i("search.to", 0);
config_set_i("search.to", 0); r_config_set_i("search.align", 0);
config_set_i("search.align", 0);
config_set("search.flag", "true"); config_set("search.flag", "true");
config_set("search.verbose", "true"); config_set("search.verbose", "true");
@ -337,8 +343,6 @@ R_API int r_core_config_init(struct r_core_t *core)
node = config_set("zoom.byte", "head"); node = config_set("zoom.byte", "head");
node->callback = &config_zoombyte_callback; node->callback = &config_zoombyte_callback;
node = config_set("scr.html", "false");
node->callback = &config_scrhtml_callback;
config_set_i("scr.accel", 0); config_set_i("scr.accel", 0);
node = config_set("scr.palette", cons_palette_default); node = config_set("scr.palette", cons_palette_default);
@ -348,7 +352,6 @@ R_API int r_core_config_init(struct r_core_t *core)
node = config_set("scr.pal."x"", y); \ node = config_set("scr.pal."x"", y); \
node->callback = &config_palette_callback; \ node->callback = &config_palette_callback; \
node->callback(node); node->callback(node);
config_set_scr_pal("prompt","yellow") config_set_scr_pal("prompt","yellow")
config_set_scr_pal("default","white") config_set_scr_pal("default","white")
config_set_scr_pal("changed","green") config_set_scr_pal("changed","green")

View File

@ -71,7 +71,6 @@ int main(int argc, char **argv)
break; break;
case 'V': case 'V':
return main_version (); return main_version ();
break;
case 'w': case 'w':
perms = R_IO_READ | R_IO_WRITE; perms = R_IO_READ | R_IO_WRITE;
break; break;

View File

@ -10,7 +10,7 @@
#define R_ASM_FASTCALL_ARGS 6 #define R_ASM_FASTCALL_ARGS 6
enum { enum {
R_ASM_ARCH_NULL = 0, R_ASM_ARCH_NONE = 0,
R_ASM_ARCH_X86, R_ASM_ARCH_X86,
R_ASM_ARCH_ARM, R_ASM_ARCH_ARM,
R_ASM_ARCH_PPC, R_ASM_ARCH_PPC,
@ -25,9 +25,9 @@ enum {
}; };
enum { enum {
R_ASM_SYN_NULL = 0, R_ASM_SYNTAX_NONE = 0,
R_ASM_SYN_INTEL, R_ASM_SYNTAX_INTEL,
R_ASM_SYN_ATT R_ASM_SYNTAX_ATT
}; };
typedef struct r_asm_fastcall_t { typedef struct r_asm_fastcall_t {

View File

@ -34,25 +34,23 @@ typedef struct r_config_t {
struct list_head nodes; struct list_head nodes;
} rConfig; } rConfig;
#define O struct r_config_t *obj
#ifdef R_API #ifdef R_API
R_API struct r_config_t *r_config_new(void *user); R_API struct r_config_t *r_config_new(void *user);
R_API int r_config_free(struct r_config_t *cfg); R_API int r_config_free(struct r_config_t *cfg);
R_API int r_config_init(struct r_config_t *core, void *user); R_API int r_config_init(struct r_config_t *core, void *user);
R_API void r_config_lock(O, int l); R_API void r_config_lock(rConfig *cfg, int l);
R_API int r_config_eval(O, const char *str); R_API int r_config_eval(rConfig *cfg, const char *str);
R_API struct r_config_node_t *r_config_set_i(O, const char *name, const ut64 i); R_API struct r_config_node_t *r_config_set_i(rConfig *cfg, const char *name, const ut64 i);
R_API struct r_config_node_t *r_config_set_cb(struct r_config_t *cfg, const char *name, const char *value, int (*callback)(void *user, void *data)); R_API struct r_config_node_t *r_config_set_cb(rConfig *cfg, const char *name, const char *value, int (*callback)(void *user, void *data));
R_API struct r_config_node_t *r_config_set_i_cb(struct r_config_t *cfg, const char *name, int ivalue, int (*callback)(void *user, void *data)); R_API struct r_config_node_t *r_config_set_i_cb(rConfig *cfg, const char *name, int ivalue, int (*callback)(void *user, void *data));
R_API int r_config_rm(O, const char *name); R_API int r_config_rm(rConfig *cfg, const char *name);
R_API struct r_config_node_t *r_config_set(O, const char *name, const char *value); R_API struct r_config_node_t *r_config_set(rConfig *cfg, const char *name, const char *value);
R_API ut64 r_config_get_i(O, const char *name); R_API ut64 r_config_get_i(rConfig *cfg, const char *name);
R_API const char *r_config_get(O, const char *name); R_API const char *r_config_get(rConfig *cfg, const char *name);
R_API void r_config_list(O, const char *str, int rad); R_API void r_config_list(rConfig *cfg, const char *str, int rad);
R_API struct r_config_node_t *r_config_node_get(O, const char *name); R_API struct r_config_node_t *r_config_node_get(rConfig *cfg, const char *name);
R_API struct r_config_node_t *r_config_node_new(const char *name, const char *value); R_API struct r_config_node_t *r_config_node_new(const char *name, const char *value);
R_API int r_config_swap(struct r_config_t *cfg, const char *name); R_API int r_config_swap(rConfig *cfg, const char *name);
#endif #endif
#endif #endif

View File

@ -186,7 +186,7 @@ int r_macro_cmd_args(struct r_macro_t *mac, const char *ptr, const char *args, i
{ {
int i,j; int i,j;
char *cmd = alloca(strlen(ptr)+1024); char *cmd = alloca(strlen(ptr)+1024);
char *arg = strdup(args); char *arg = args?strdup(args):strdup("");
cmd[0]='\0'; cmd[0]='\0';
// eprintf("call(%s)\n", ptr); // eprintf("call(%s)\n", ptr);
@ -351,9 +351,8 @@ int r_macro_call(struct r_macro_t *mac, const char *name)
} }
/* Command execution */ /* Command execution */
if (*ptr) { if (*ptr)
r_macro_cmd_args(mac, ptr, args, nargs); r_macro_cmd_args(mac, ptr, args, nargs);
}
if (end) { if (end) {
*end='\n'; *end='\n';
ptr = end + 1; ptr = end + 1;

View File

@ -7,5 +7,5 @@ Name: libr
Description: radare framework libraries Description: radare framework libraries
Version: 0.1 Version: 0.1
Requires: Requires:
Libs: -L${libdir} -lr_core -lr_lang -lr_search -lr_cmd -lr_meta -lr_asm -lr_util Libs: -L${libdir} -lr_core -lr_lang -lr_search -lr_cmd -lr_meta -lr_asm -lr_util -lr_hash
Cflags: -I${includedir}/libr Cflags: -I${includedir}/libr

View File

@ -1,31 +1,30 @@
/* radare - LGPL - Copyright 2009 nibble<.ds@gmail.com> */ /* radare - LGPL - Copyright 2009, 2010 nibble<.ds@gmail.com> */
namespace Radare { namespace Radare {
[Compact] [Compact]
[CCode (cheader_filename="r_asm.h", cname="struct r_asm_t", free_function="r_asm_free", cprefix="r_asm_")] [CCode (cheader_filename="r_asm.h", cname="struct r_asm_t", free_function="r_asm_free", cprefix="r_asm_")]
public class rAsm { public class rAsm {
/* DEPRECATED? [CCode (cprefix="R_ASM_ARCH_", cname="int")]
public enum Arch { public enum Arch {
NULL = 0, NONE,
X86 = 1, X86,
ARM = 2, ARM,
PPC = 3, PPC,
M68K = 4, M68K,
JAVA = 5, JAVA,
MIPS = 6, MIPS,
SPARC = 7, SPARC,
CSR = 8, CSR,
MSIL = 9, MSIL,
OBJD = 10, OBJD,
BF = 11 BF
} }
*/
[CCode (cprefix="R_ASM_SYN_", cname="int")] [CCode (cprefix="R_ASM_SYNTAX_", cname="int")]
public enum Syntax { public enum Syntax {
NULL = 0, NONE,
INTEL = 1, INTEL,
ATT = 2, ATT
} }
[Compact] [Compact]

View File

@ -1,9 +1,8 @@
/* radare - LGPL - Copyright 2009 pancake<nopcode.org> */ /* radare - LGPL - Copyright 2009 pancake<nopcode.org> */
[CCode (cheader_filename="r_core.h", cprefix="r_core", lower_case_cprefix="r_core_")]
namespace Radare { namespace Radare {
[Compact] [Compact]
[CCode (cname="struct r_core_t", free_function="r_core_free", cprefix="r_core_")] [CCode (cheader_filename="r_core.h", cname="struct r_core_t", free_function="r_core_free", cprefix="r_core_")]
public class rCore { public class rCore {
/* lifecycle */ /* lifecycle */
public rCore(); public rCore();

View File

@ -5,7 +5,7 @@ includedir=${prefix}/include
Name: libr Name: libr
Description: radare foundation libraries Description: radare foundation libraries
Version: 0.2 Version: @VERSION@
Requires: Requires:
Libs: -L${libdir} -lr_io -lr_util -lr_lib -lr_meta -lr_lang -lr_flags -lr_bin -lr_bininfo -lr_macro -lr_hash -lr_line -lr_cons -lr_print -lr_config -lr_syscall -lr_range -lr_socket -lr_cmd -lr_asm -lr_anal -lr_parse -lr_search -lr_diff -lr_bp -lr_debug -lr_reg -lr_core -lr_var -lr_sign -lr_trace -lr_vm -lr_th -lr_db Libs: -L${libdir} -lr_io -lr_util -lr_lib -lr_meta -lr_lang -lr_flags -lr_bin -lr_bininfo -lr_macro -lr_hash -lr_line -lr_cons -lr_print -lr_config -lr_syscall -lr_range -lr_socket -lr_cmd -lr_asm -lr_anal -lr_parse -lr_search -lr_diff -lr_bp -lr_debug -lr_reg -lr_core -lr_var -lr_sign -lr_trace -lr_vm -lr_th -lr_db
Cflags: -I${includedir}/libr Cflags: -I${includedir}/libr

View File

@ -18,8 +18,7 @@ test:
cd python && make test cd python && make test
cd ruby && make test cd ruby && make test
install: install-python:
# python install
@if [ "`grep python supported.langs`" ]; then \ @if [ "`grep python supported.langs`" ]; then \
for a in python2.5 python2.6; do \ for a in python2.5 python2.6; do \
mkdir -p /usr/lib/$$a/r2 ; \ mkdir -p /usr/lib/$$a/r2 ; \
@ -30,6 +29,26 @@ install:
done ; \ done ; \
fi fi
install-ruby:
@if [ "`grep ruby supported.langs`" ]; then \
target=/usr/lib/ruby/1.9.1/ ; \
mkdir -p $$target/r2 ; \
echo "Installing ruby r2 modules..." ; \
cp -rf ruby/* $$target/r2 ; \
cp -rf ruby/*libr* $$target ; \
fi
install-perl:
@echo "Installing perl r2 modules... NOT YET IMPLEMENTED"
@#if [ "`grep perl supported.langs`" ]; then \
#target=/usr/lib/ruby/1.9.1/ ; \
#mkdir -p $$target/r2 ; \
#cp -rf ruby/* $$target/r2 ; \
#cp -rf ruby/*libr* $$target ; \
#fi
install: install-python install-ruby install-perl
oldtest: oldtest:
sh do-swig.sh r_bp sh do-swig.sh r_bp
python test.py python test.py