summaryrefslogtreecommitdiff
path: root/plugins/dalvik
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/dalvik')
-rw-r--r--plugins/dalvik/Makefile.am39
-rw-r--r--plugins/dalvik/context.c4
-rw-r--r--plugins/dalvik/context.h2
-rw-r--r--plugins/dalvik/core.c7
-rw-r--r--plugins/dalvik/operands/Makefile.am16
-rw-r--r--plugins/dalvik/operands/args.c123
-rw-r--r--plugins/dalvik/operands/pool.c10
-rw-r--r--plugins/dalvik/pseudo/Makefile.am13
-rw-r--r--plugins/dalvik/python/Makefile.am16
-rw-r--r--plugins/dalvik/python/instruction.c5
-rw-r--r--plugins/dalvik/python/processor.c5
-rw-r--r--plugins/dalvik/python/v35/Makefile.am15
-rw-r--r--plugins/dalvik/python/v35/instruction.c5
-rw-r--r--plugins/dalvik/python/v35/processor.c5
-rw-r--r--plugins/dalvik/register.c2
-rw-r--r--plugins/dalvik/v35/Makefile.am17
-rw-r--r--plugins/dalvik/v35/opcodes/Makefile.am7
17 files changed, 86 insertions, 205 deletions
diff --git a/plugins/dalvik/Makefile.am b/plugins/dalvik/Makefile.am
index 644c38a..62ee8a6 100644
--- a/plugins/dalvik/Makefile.am
+++ b/plugins/dalvik/Makefile.am
@@ -39,26 +39,28 @@ PYTHON3_SUBDIRS = python
endif
-libdalvik_la_SOURCES = \
- context.h context.c \
- core.h core.c \
- fetch.h fetch.c \
- helpers.h \
- instruction-int.h \
- instruction.h instruction.c \
- link.h link.c \
- operand.h operand.c \
- post.h post.c \
- processor-int.h \
- processor.h processor.c \
+libdalvik_la_SOURCES = \
+ context.h context.c \
+ core.h core.c \
+ fetch.h fetch.c \
+ helpers.h \
+ instruction-int.h \
+ instruction.h instruction.c \
+ link.h link.c \
+ operand.h operand.c \
+ post.h post.c \
+ processor-int.h \
+ processor.h processor.c \
register.h register.c
-libdalvik_la_LIBADD = \
- operands/libdalvikoperands.la \
- pseudo/libdalvikpseudo.la \
- $(PYTHON3_LIBADD) \
+libdalvik_la_LIBADD = \
+ operands/libdalvikoperands.la \
+ pseudo/libdalvikpseudo.la \
+ $(PYTHON3_LIBADD) \
v35/libdalvik35.la
+libdalvik_la_CFLAGS = $(TOOLKIT_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
+
libdalvik_la_LDFLAGS = \
-avoid-version \
-L$(top_srcdir)/src/.libs -lchrysacore \
@@ -71,9 +73,4 @@ devdir = $(includedir)/chrysalide/$(subdir)
dev_HEADERS = $(libdalvik_la_SOURCES:%c=)
-AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
-
-AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
-
-
SUBDIRS = operands pseudo $(PYTHON3_SUBDIRS) v35
diff --git a/plugins/dalvik/context.c b/plugins/dalvik/context.c
index b08678c..9cf878b 100644
--- a/plugins/dalvik/context.c
+++ b/plugins/dalvik/context.c
@@ -373,7 +373,7 @@ bool g_dalvik_context_register_array_data_padding(GDalvikContext *ctx, const vmp
* *
******************************************************************************/
-GArchInstruction *g_dalvik_context_get_raw_data(GDalvikContext *ctx, const GBinContent *content, vmpa2t *pos)
+GArchInstruction *g_dalvik_context_get_raw_data(GDalvikContext *ctx, GBinContent *content, vmpa2t *pos)
{
GArchInstruction *result; /* Instruction à retourner */
raw_data_area *found; /* Zone de couverture trouvée */
@@ -390,7 +390,7 @@ GArchInstruction *g_dalvik_context_get_raw_data(GDalvikContext *ctx, const GBinC
if (found)
{
- restricted = g_restricted_content_new_ro(content, &found->range);
+ restricted = g_restricted_content_new(content, &found->range);
length = get_mrange_length(&found->range);
count = length / found->item_len;
diff --git a/plugins/dalvik/context.h b/plugins/dalvik/context.h
index bfa2757..f09cfa6 100644
--- a/plugins/dalvik/context.h
+++ b/plugins/dalvik/context.h
@@ -67,7 +67,7 @@ bool g_dalvik_context_register_array_data(GDalvikContext *, const vmpa2t *, uint
bool g_dalvik_context_register_array_data_padding(GDalvikContext *, const vmpa2t *);
/* Place une donnée en tant qu'instruction si besoin est. */
-GArchInstruction *g_dalvik_context_get_raw_data(GDalvikContext *, const GBinContent *, vmpa2t *);
+GArchInstruction *g_dalvik_context_get_raw_data(GDalvikContext *, GBinContent *, vmpa2t *);
diff --git a/plugins/dalvik/core.c b/plugins/dalvik/core.c
index 2294ed4..8344825 100644
--- a/plugins/dalvik/core.c
+++ b/plugins/dalvik/core.c
@@ -24,7 +24,6 @@
#include "core.h"
-#include <config.h>
#include <plugins/self.h>
@@ -32,13 +31,13 @@
#include "operands/args.h"
#include "operands/pool.h"
#include "operands/register.h"
-#ifdef HAVE_PYTHON3_BINDINGS
+#ifdef INCLUDE_PYTHON3_BINDINGS
# include "python/module.h"
#endif
#include "v35/core.h"
-#ifdef HAVE_PYTHON3_BINDINGS
+#ifdef INCLUDE_PYTHON3_BINDINGS
# define PG_REQ RL("PyChrysalide")
#else
# define PG_REQ NO_REQ
@@ -100,7 +99,7 @@ G_MODULE_EXPORT bool chrysalide_plugin_init(GPluginModule *plugin)
result = init_dalvik35_core();
-#ifdef HAVE_PYTHON3_BINDINGS
+#ifdef INCLUDE_PYTHON3_BINDINGS
if (result)
result = add_arch_dalvik_module_to_python_module();
#endif
diff --git a/plugins/dalvik/operands/Makefile.am b/plugins/dalvik/operands/Makefile.am
index 4ce597a..3a4ddc1 100644
--- a/plugins/dalvik/operands/Makefile.am
+++ b/plugins/dalvik/operands/Makefile.am
@@ -1,20 +1,14 @@
noinst_LTLIBRARIES = libdalvikoperands.la
-libdalvikoperands_la_SOURCES = \
- args.h args.c \
- pool.h pool.c \
+libdalvikoperands_la_SOURCES = \
+ args.h args.c \
+ pool.h pool.c \
register.h register.c
+libdalvikoperands_la_CFLAGS = $(TOOLKIT_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
+
devdir = $(includedir)/chrysalide/$(subdir)
dev_HEADERS = $(libdalvikoperands_la_SOURCES:%c=)
-
-
-AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
-
-AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
-
-
-SUBDIRS =
diff --git a/plugins/dalvik/operands/args.c b/plugins/dalvik/operands/args.c
index 7eec5d7..64f8eea 100644
--- a/plugins/dalvik/operands/args.c
+++ b/plugins/dalvik/operands/args.c
@@ -32,8 +32,8 @@
#include <arch/operand-int.h>
#include <common/sort.h>
+#include <core/columns.h>
#include <core/logs.h>
-#include <gtkext/gtkblockdisplay.h>
@@ -97,12 +97,6 @@ static void g_dalvik_args_operand_update_inner_instances(GDalvikArgsOperand *, G
/* Fournit l'empreinte d'un candidat à une centralisation. */
static guint g_dalvik_args_operand_hash(const GDalvikArgsOperand *, bool);
-/* Charge un contenu depuis une mémoire tampon. */
-static bool g_dalvik_args_operand_load(GDalvikArgsOperand *, GObjectStorage *, packed_buffer_t *);
-
-/* Sauvegarde un contenu dans une mémoire tampon. */
-static bool g_dalvik_args_operand_store(GDalvikArgsOperand *, GObjectStorage *, packed_buffer_t *);
-
/* ---------------------------------------------------------------------------------- */
@@ -148,8 +142,8 @@ static void g_dalvik_args_operand_class_init(GDalvikArgsOperandClass *klass)
operand->update_inner = (operand_update_inners_fc)g_dalvik_args_operand_update_inner_instances;
operand->hash = (operand_hash_fc)g_dalvik_args_operand_hash;
- operand->load = (load_operand_fc)g_dalvik_args_operand_load;
- operand->store = (store_operand_fc)g_dalvik_args_operand_store;
+ operand->load = g_arch_operand_load_generic_variadic;
+ operand->store = g_arch_operand_store_generic_variadic;
}
@@ -330,8 +324,8 @@ GArchOperand *g_dalvik_args_operand_get(const GDalvikArgsOperand *operand, size_
static int g_dalvik_args_operand_compare(const GDalvikArgsOperand *a, const GDalvikArgsOperand *b, bool lock)
{
int result; /* Bilan à renvoyer */
- lockable_obj_extra_t *ea; /* Données insérées à consulter*/
- lockable_obj_extra_t *eb; /* Données insérées à consulter*/
+ operand_extra_data_t *ea; /* Données insérées à consulter*/
+ operand_extra_data_t *eb; /* Données insérées à consulter*/
size_t i; /* Boucle de parcours */
GArchOperandClass *class; /* Classe parente normalisée */
@@ -341,8 +335,8 @@ static int g_dalvik_args_operand_compare(const GDalvikArgsOperand *a, const GDal
else
{
- ea = GET_GOBJECT_EXTRA(G_OBJECT(a), lockable_obj_extra_t);
- eb = GET_GOBJECT_EXTRA(G_OBJECT(b), lockable_obj_extra_t);
+ ea = GET_ARCH_OP_EXTRA(G_ARCH_OPERAND(a));
+ eb = GET_ARCH_OP_EXTRA(G_ARCH_OPERAND(b));
if (lock)
{
@@ -586,15 +580,16 @@ static void g_dalvik_args_operand_update_inner_instances(GDalvikArgsOperand *ope
{
size_t i; /* Boucle de parcours */
- assert(count == operand->count);
-
for (i = 0; i < count; i++)
- {
g_object_unref(G_OBJECT(operand->args[i]));
+ operand->count = count;
+ operand->args = realloc(operand->args, operand->count * sizeof(GArchOperand *));
+
+ for (i = 0; i < count; i++)
+ {
operand->args[i] = instances[i];
g_object_ref(G_OBJECT(instances[i]));
-
}
}
@@ -616,10 +611,10 @@ static void g_dalvik_args_operand_update_inner_instances(GDalvikArgsOperand *ope
static guint g_dalvik_args_operand_hash(const GDalvikArgsOperand *operand, bool lock)
{
guint result; /* Valeur à retourner */
- lockable_obj_extra_t *extra; /* Données insérées à consulter*/
+ operand_extra_data_t *extra; /* Données insérées à consulter*/
GArchOperandClass *class; /* Classe parente normalisée */
- extra = GET_GOBJECT_EXTRA(G_OBJECT(operand), lockable_obj_extra_t);
+ extra = GET_ARCH_OP_EXTRA(G_ARCH_OPERAND(operand));
if (lock)
LOCK_GOBJECT_EXTRA(extra);
@@ -635,93 +630,3 @@ static guint g_dalvik_args_operand_hash(const GDalvikArgsOperand *operand, bool
return result;
}
-
-
-/******************************************************************************
-* *
-* Paramètres : operand = élément GLib à constuire. *
-* storage = conservateur de données à manipuler ou NULL. *
-* pbuf = zone tampon à lire. *
-* *
-* Description : Charge un contenu depuis une mémoire tampon. *
-* *
-* Retour : Bilan de l'opération. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static bool g_dalvik_args_operand_load(GDalvikArgsOperand *operand, GObjectStorage *storage, packed_buffer_t *pbuf)
-{
- bool result; /* Bilan à retourner */
- GArchOperandClass *parent; /* Classe parente à consulter */
- uleb128_t value; /* Valeur ULEB128 à charger */
- size_t i; /* Boucle de parcours */
- GSerializableObject *arg; /* Nouvel argument à intégrer */
-
- parent = G_ARCH_OPERAND_CLASS(g_dalvik_args_operand_parent_class);
-
- result = parent->load(G_ARCH_OPERAND(operand), storage, pbuf);
-
- if (result)
- result = unpack_uleb128(&value, pbuf);
-
- if (result)
- {
- operand->count = value;
- operand->args = calloc(operand->count, sizeof(GArchOperand *));
- }
-
- for (i = 0; i < operand->count && result; i++)
- {
- arg = g_object_storage_unpack_object(storage, "operands", pbuf);
- if (arg == NULL) break;
-
- operand->args[operand->count - 1] = G_ARCH_OPERAND(arg);
-
- }
-
- result = (i == operand->count);
-
- return result;
-
-}
-
-
-/******************************************************************************
-* *
-* Paramètres : operand = élément GLib à consulter. *
-* storage = conservateur de données à manipuler ou NULL. *
-* pbuf = zone tampon à remplir. *
-* *
-* Description : Sauvegarde un contenu dans une mémoire tampon. *
-* *
-* Retour : Bilan de l'opération. *
-* *
-* Remarques : - *
-* *
-******************************************************************************/
-
-static bool g_dalvik_args_operand_store(GDalvikArgsOperand *operand, GObjectStorage *storage, packed_buffer_t *pbuf)
-{
- bool result; /* Bilan à retourner */
- GArchOperandClass *parent; /* Classe parente à consulter */
- size_t i; /* Boucle de parcours */
- GSerializableObject *arg; /* Nouvel argument à intégrer */
-
- parent = G_ARCH_OPERAND_CLASS(g_dalvik_args_operand_parent_class);
-
- result = parent->store(G_ARCH_OPERAND(operand), storage, pbuf);
-
- if (result)
- result = pack_uleb128((uleb128_t []){ operand->count }, pbuf);
-
- for (i = 0; i < operand->count && result; i++)
- {
- arg = G_SERIALIZABLE_OBJECT(operand->args[i]);
- result = g_object_storage_pack_object(storage, "operands", arg, pbuf);
- }
-
- return result;
-
-}
diff --git a/plugins/dalvik/operands/pool.c b/plugins/dalvik/operands/pool.c
index 4570c86..5b99b45 100644
--- a/plugins/dalvik/operands/pool.c
+++ b/plugins/dalvik/operands/pool.c
@@ -34,7 +34,7 @@
#include <arch/operand-int.h>
#include <arch/operands/targetable-int.h>
#include <common/sort.h>
-#include <gtkext/gtkblockdisplay.h>
+#include <core/columns.h>
#include <plugins/dex/pool.h>
@@ -75,9 +75,9 @@ struct _GDalvikPoolOperandClass
* Accès aux informations éventuellement déportées.
*/
-#if __SIZEOF_INT__ == __SIZEOF_LONG__
+#if 1 //__SIZEOF_INT__ == __SIZEOF_LONG__
-# define GET_DALVIK_POOL_OP_EXTRA(op) (dpoolop_extra_data_t *)&op->extra
+# define GET_DALVIK_POOL_OP_EXTRA(op) ((dpoolop_extra_data_t *)&((GArchOperand *)op)->extra)
#else
@@ -662,12 +662,12 @@ static void g_dalvik_pool_operand_print(const GDalvikPoolOperand *operand, GBuff
static guint g_dalvik_pool_operand_hash(const GDalvikPoolOperand *operand, bool lock)
{
guint result; /* Valeur à retourner */
- lockable_obj_extra_t *extra; /* Données insérées à consulter*/
+ dpoolop_extra_data_t *extra; /* Données insérées à consulter*/
GArchOperandClass *class; /* Classe parente normalisée */
DalvikPoolType type; /* Type porté par l'opérande */
uint32_t index; /* Indice de l'élément */
- extra = GET_GOBJECT_EXTRA(G_OBJECT(operand), lockable_obj_extra_t);
+ extra = GET_DALVIK_POOL_OP_EXTRA(G_DALVIK_POOL_OPERAND(operand));
if (lock)
LOCK_GOBJECT_EXTRA(extra);
diff --git a/plugins/dalvik/pseudo/Makefile.am b/plugins/dalvik/pseudo/Makefile.am
index 687aa72..74cc574 100644
--- a/plugins/dalvik/pseudo/Makefile.am
+++ b/plugins/dalvik/pseudo/Makefile.am
@@ -1,19 +1,14 @@
noinst_LTLIBRARIES = libdalvikpseudo.la
-libdalvikpseudo_la_SOURCES = \
- fill.h fill.c \
- identifiers.h \
+libdalvikpseudo_la_SOURCES = \
+ fill.h fill.c \
+ identifiers.h \
switch.h switch.c
-libdalvikpseudo_la_LIBADD =
+libdalvikpseudo_la_CFLAGS = $(TOOLKIT_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
devdir = $(includedir)/chrysalide/$(subdir)
dev_HEADERS = $(libdalvikpseudo_la_SOURCES:%c=)
-
-
-AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
-
-AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
diff --git a/plugins/dalvik/python/Makefile.am b/plugins/dalvik/python/Makefile.am
index 90c8924..74fe00d 100644
--- a/plugins/dalvik/python/Makefile.am
+++ b/plugins/dalvik/python/Makefile.am
@@ -1,15 +1,16 @@
noinst_LTLIBRARIES = libdalvikpython.la
-libdalvikpython_la_SOURCES = \
- instruction.h instruction.c \
- module.h module.c \
+libdalvikpython_la_SOURCES = \
+ instruction.h instruction.c \
+ module.h module.c \
processor.h processor.c
-libdalvikpython_la_LIBADD = \
+libdalvikpython_la_LIBADD = \
v35/libdalvikpythonv35.la
-libdalvikpython_la_LDFLAGS =
+libdalvikpython_la_CFLAGS = $(TOOLKIT_CFLAGS) $(LIBXML_CFLAGS) $(LIBPYTHON_CFLAGS) $(LIBPYGOBJECT_CFLAGS) \
+ -I$(top_srcdir)/src -DNO_IMPORT_PYGOBJECT
devdir = $(includedir)/chrysalide/$(subdir)
@@ -17,9 +18,4 @@ devdir = $(includedir)/chrysalide/$(subdir)
dev_HEADERS = $(libdalvikpython_la_SOURCES:%c=)
-AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) $(LIBPYTHON_CFLAGS) $(LIBPYGOBJECT_CFLAGS) \
- -I$(top_srcdir)/src -DNO_IMPORT_PYGOBJECT
-
-AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
-
SUBDIRS = v35
diff --git a/plugins/dalvik/python/instruction.c b/plugins/dalvik/python/instruction.c
index c9d039f..a6d4ad4 100644
--- a/plugins/dalvik/python/instruction.c
+++ b/plugins/dalvik/python/instruction.c
@@ -102,7 +102,10 @@ bool register_python_dalvik_instruction(PyObject *module)
dict = PyModule_GetDict(module);
- if (!register_class_for_pygobject(dict, G_TYPE_DALVIK_INSTRUCTION, type, get_python_arch_instruction_type()))
+ if (!ensure_python_arch_instruction_is_registered())
+ return false;
+
+ if (!register_class_for_pygobject(dict, G_TYPE_DALVIK_INSTRUCTION, type))
return false;
return true;
diff --git a/plugins/dalvik/python/processor.c b/plugins/dalvik/python/processor.c
index 26fd8b7..9885a04 100644
--- a/plugins/dalvik/python/processor.c
+++ b/plugins/dalvik/python/processor.c
@@ -100,7 +100,10 @@ bool register_python_dalvik_processor(PyObject *module)
dict = PyModule_GetDict(module);
- if (!register_class_for_pygobject(dict, G_TYPE_DALVIK_PROCESSOR, type, get_python_arch_processor_type()))
+ if (!ensure_python_arch_processor_is_registered())
+ return false;
+
+ if (!register_class_for_pygobject(dict, G_TYPE_DALVIK_PROCESSOR, type))
return false;
return true;
diff --git a/plugins/dalvik/python/v35/Makefile.am b/plugins/dalvik/python/v35/Makefile.am
index 3dda5c1..4464dcc 100644
--- a/plugins/dalvik/python/v35/Makefile.am
+++ b/plugins/dalvik/python/v35/Makefile.am
@@ -1,20 +1,15 @@
noinst_LTLIBRARIES = libdalvikpythonv35.la
-libdalvikpythonv35_la_SOURCES = \
- instruction.h instruction.c \
- module.h module.c \
+libdalvikpythonv35_la_SOURCES = \
+ instruction.h instruction.c \
+ module.h module.c \
processor.h processor.c
-libdalvikpythonv35_la_LDFLAGS =
+libdalvikpythonv35_la_CFLAGS = $(TOOLKIT_CFLAGS) $(LIBXML_CFLAGS) $(LIBPYTHON_CFLAGS) $(LIBPYGOBJECT_CFLAGS) \
+ -I$(top_srcdir)/src -DNO_IMPORT_PYGOBJECT
devdir = $(includedir)/chrysalide/$(subdir)
dev_HEADERS = $(libdalvikpythonv35_la_SOURCES:%c=)
-
-
-AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) $(LIBPYTHON_CFLAGS) $(LIBPYGOBJECT_CFLAGS) \
- -I$(top_srcdir)/src -DNO_IMPORT_PYGOBJECT
-
-AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
diff --git a/plugins/dalvik/python/v35/instruction.c b/plugins/dalvik/python/v35/instruction.c
index f5ccc2c..7373e77 100644
--- a/plugins/dalvik/python/v35/instruction.c
+++ b/plugins/dalvik/python/v35/instruction.c
@@ -100,8 +100,9 @@ bool register_python_dalvik35_instruction(PyObject *module)
dict = PyModule_GetDict(module);
- if (!register_class_for_pygobject(dict, G_TYPE_DALVIK35_INSTRUCTION,
- type, get_python_dalvik_instruction_type()))
+ /* TODO : ensure get_python_dalvik_instruction_type() */
+
+ if (!register_class_for_pygobject(dict, G_TYPE_DALVIK35_INSTRUCTION, type))
return false;
return true;
diff --git a/plugins/dalvik/python/v35/processor.c b/plugins/dalvik/python/v35/processor.c
index fea342b..8df8249 100644
--- a/plugins/dalvik/python/v35/processor.c
+++ b/plugins/dalvik/python/v35/processor.c
@@ -100,8 +100,9 @@ bool register_python_dalvik35_processor(PyObject *module)
dict = PyModule_GetDict(module);
- if (!register_class_for_pygobject(dict, G_TYPE_DALVIK35_PROCESSOR,
- type, get_python_dalvik_processor_type()))
+ /* TODO : ensure get_python_dalvik_processor_type() */
+
+ if (!register_class_for_pygobject(dict, G_TYPE_DALVIK35_PROCESSOR, type))
return false;
return true;
diff --git a/plugins/dalvik/register.c b/plugins/dalvik/register.c
index b350b04..8413108 100644
--- a/plugins/dalvik/register.c
+++ b/plugins/dalvik/register.c
@@ -30,7 +30,7 @@
#include <arch/register-int.h>
#include <common/sort.h>
-#include <gtkext/gtkblockdisplay.h>
+#include <core/columns.h>
diff --git a/plugins/dalvik/v35/Makefile.am b/plugins/dalvik/v35/Makefile.am
index 8a7be09..73e09a0 100644
--- a/plugins/dalvik/v35/Makefile.am
+++ b/plugins/dalvik/v35/Makefile.am
@@ -1,13 +1,15 @@
noinst_LTLIBRARIES = libdalvik35.la
-libdalvik35_la_SOURCES = \
- core.h core.c \
- instruction.h instruction.c \
- operand.h \
+libdalvik35_la_SOURCES = \
+ core.h core.c \
+ instruction.h instruction.c \
+ operand.h \
processor.h processor.c
-libdalvik35_la_LIBADD = \
+libdalvik35_la_CFLAGS = $(TOOLKIT_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
+
+libdalvik35_la_LIBADD = \
opcodes/libdalvik35opcodes.la
@@ -16,9 +18,4 @@ devdir = $(includedir)/chrysalide/$(subdir)
dev_HEADERS = $(libdalvik35_la_SOURCES:%c=)
-AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
-
-AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
-
-
SUBDIRS = opdefs opcodes
diff --git a/plugins/dalvik/v35/opcodes/Makefile.am b/plugins/dalvik/v35/opcodes/Makefile.am
index fd26224..8a766f9 100644
--- a/plugins/dalvik/v35/opcodes/Makefile.am
+++ b/plugins/dalvik/v35/opcodes/Makefile.am
@@ -13,7 +13,7 @@ noinst_LTLIBRARIES = libdalvik35opcodes.la
libdalvik35opcodes_la_SOURCES = $(GENERATED_FILES)
-libdalvik35opcodes_la_LIBADD =
+libdalvik35opcodes_la_CFLAGS = $(TOOLKIT_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
devdir = $(includedir)/chrysalide/$(subdir)
@@ -21,11 +21,6 @@ devdir = $(includedir)/chrysalide/$(subdir)
dev_HEADERS = $(libdalvik35opcodes_la_SOURCES:%c=)
-AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) -I$(top_srcdir)/src
-
-AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS)
-
-
CLEANFILES = $(GENERATED_FILES)
dist-hook: