diff options
31 files changed, 137 insertions, 600 deletions
@@ -1,5 +1,73 @@ 17-02-14 Cyrille Bagard <nocbos@gmail.com> + * Makefile.am: + Extend EXTRA_DIST. + + * configure.ac: + Remove directories which are not included in SUBDIRS. + + * pixmaps/Makefile.am: + Extend EXTRA_DIST. + + * plugins/Makefile.am: + Fix SUBDIRS. + + * plugins/python/apkfiles/Makefile.am: + * plugins/python/samples/Makefile.am: + Extend EXTRA_DIST. + + * src/analysis/disass/instructions.c: + Fix included headers. + + * src/analysis/disass/macro.c: + * src/analysis/disass/macro.h: + Deleted entries. + + * src/analysis/disass/routines.c: + Fix included headers. + + * src/arch/Makefile.am: + Remove the 'translate.h' file from libarch_la_SOURCES. + + * src/arch/arm/Makefile.am: + Add the 'processor-int.h' file to libarcharm_la_SOURCES. + + * src/arch/arm/v7/opcodes/Makefile.am: + * src/arch/arm/v7/opdefs/Makefile.am: + * src/arch/dalvik/opdefs/Makefile.am: + Extend EXTRA_DIST. + + * src/core/processors.c: + Fix included headers. + + * src/debug/Makefile.am: + Add the 'debugger-int.h' file to libdebug_la_SOURCES. + + * src/format/dwarf/Makefile.am: + Add the 'dwarf_def.h' to libformatdwarf_la_SOURCES. + + * src/format/mangling/itanium/Makefile.am: + Add the 'component-int.h' to libformatmanglingitanium_la_SOURCES. + + * src/gui/dialogs/Makefile.am: + Extend EXTRA_DIST. + + * src/gui/panels/Makefile.am: + Add the 'panel-int.h' to libguipanels_la_SOURCES. Extend EXTRA_DIST. + + * themes/Adwaita/Makefile.am: + * tools/d2c/Makefile.am: + * tools/d2c/args/Makefile.am: + * tools/d2c/bits/Makefile.am: + * tools/d2c/conv/Makefile.am: + * tools/d2c/format/Makefile.am: + * tools/d2c/hooks/Makefile.am: + * tools/d2c/rules/Makefile.am: + * tools/d2c/syntax/Makefile.am: + Extend EXTRA_DIST. + +17-02-14 Cyrille Bagard <nocbos@gmail.com> + * src/arch/processor.c: Fix a typo that breaks compilation if DEBUG is not defined. diff --git a/Makefile.am b/Makefile.am index 747cd30..0b2a436 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,5 +1,5 @@ -EXTRA_DIST = config.rpath ChangeLog +EXTRA_DIST = config.rpath ChangeLog gettext.h i18n.h SUBDIRS = tools pixmaps src plugins po themes diff --git a/configure.ac b/configure.ac index 55c2b7a..b646361 100644 --- a/configure.ac +++ b/configure.ac @@ -314,9 +314,7 @@ AC_CONFIG_COMMANDS([marshal], [echo -e "VOID:UINT64\nVOID:UINT64,UINT64\nVOID:IN AC_CONFIG_FILES([Makefile pixmaps/Makefile plugins/Makefile - plugins/androhelpers/Makefile plugins/devdbg/Makefile - plugins/govm/Makefile plugins/libcsem/Makefile plugins/mobicore/Makefile plugins/pychrysa/Makefile @@ -329,7 +327,6 @@ AC_CONFIG_FILES([Makefile plugins/pychrysa/arch/arm/v7/Makefile plugins/pychrysa/common/Makefile plugins/pychrysa/core/Makefile - plugins/pychrysa/debug/Makefile plugins/pychrysa/format/Makefile plugins/pychrysa/format/dex/Makefile plugins/pychrysa/format/elf/Makefile @@ -339,19 +336,16 @@ AC_CONFIG_FILES([Makefile plugins/pychrysa/gui/panels/Makefile plugins/python/Makefile plugins/python/apkfiles/Makefile - plugins/python/exectracer/Makefile plugins/python/samples/Makefile plugins/readdex/Makefile plugins/readelf/Makefile plugins/ropgadgets/Makefile - plugins/stackvars/Makefile src/Makefile src/analysis/Makefile src/analysis/contents/Makefile src/analysis/db/Makefile src/analysis/db/items/Makefile src/analysis/db/misc/Makefile - src/analysis/decomp/Makefile src/analysis/disass/Makefile src/analysis/human/Makefile src/analysis/human/asm/Makefile @@ -367,12 +361,7 @@ AC_CONFIG_FILES([Makefile src/arch/dalvik/opcodes/Makefile src/arch/dalvik/operands/Makefile src/arch/dalvik/pseudo/Makefile - src/arch/jvm/Makefile - src/arch/mips/Makefile src/arch/sharing/Makefile - src/arch/x86/Makefile - src/arch/x86/opcodes/Makefile - src/arch/x86/operands/Makefile src/common/Makefile src/core/Makefile src/debug/Makefile @@ -402,9 +391,7 @@ AC_CONFIG_FILES([Makefile src/gui/menus/Makefile src/gui/panels/Makefile src/gui/tb/Makefile - src/panels/Makefile src/plugins/Makefile - src/plugins/overjump/Makefile tools/Makefile tools/d2c/Makefile tools/d2c/args/Makefile diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index e6dd92a..26f3b5f 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -42,6 +42,7 @@ EXTRA_DIST = \ openida.xcf \ openida_text.xcf \ before-after.png \ + $(APP_ICONS) \ $(REVISION_PIX) \ $(TOOLBAR_BUTTONS) \ $(LIST_ICONS) \ diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 9b5cd17..d0b8fc8 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am @@ -4,4 +4,4 @@ if HAVE_PYTHON3_CONFIG endif # androhelpers -SUBDIRS = devdbg libcsem mobicore $(PYTHON3_SUBDIRS) readdex readelf ropgadgets stackvars +SUBDIRS = devdbg libcsem mobicore $(PYTHON3_SUBDIRS) readdex readelf ropgadgets diff --git a/plugins/python/apkfiles/Makefile.am b/plugins/python/apkfiles/Makefile.am index 931e0e8..dfa27b7 100644 --- a/plugins/python/apkfiles/Makefile.am +++ b/plugins/python/apkfiles/Makefile.am @@ -4,3 +4,5 @@ apkfilesdir = $(datadir)/openida/plugins/python/apkfiles apkfiles_DATA = \ __init__.py \ apkfiles.py + +EXTRA_DIST = $(apkfiles_DATA) diff --git a/plugins/python/samples/Makefile.am b/plugins/python/samples/Makefile.am index 38ab6c8..1268032 100644 --- a/plugins/python/samples/Makefile.am +++ b/plugins/python/samples/Makefile.am @@ -5,3 +5,5 @@ samples_DATA = \ __init__.py \ basic_blocks.py \ demo.py + +EXTRA_DIST = $(samples_DATA) diff --git a/src/analysis/disass/instructions.c b/src/analysis/disass/instructions.c index 6d2819b..fc16186 100644 --- a/src/analysis/disass/instructions.c +++ b/src/analysis/disass/instructions.c @@ -24,11 +24,7 @@ #include "instructions.h" -#include "dragon.h" #include "links.h" -#include "loop.h" -#include "macro.h" -#include "rank.h" #include "../../glibext/delayed-int.h" diff --git a/src/analysis/disass/macro.c b/src/analysis/disass/macro.c deleted file mode 100644 index c40df04..0000000 --- a/src/analysis/disass/macro.c +++ /dev/null @@ -1,540 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * macro.c - vue macroscopique des liens entre blocs d'instructions - * - * Copyright (C) 2012-2017 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * Chrysalide is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Chrysalide is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see <http://www.gnu.org/licenses/>. - */ - - -#include "macro.h" - - -#include <assert.h> - - -#include "../blocks/flow.h" -#include "../blocks/virtual.h" - - - -/** - * Procédure d'ajout de blocs : pour le premier, on conserve le bloc en mémoire - * et on attend. Si rien ne suit, il constitura l'unique retour. Sinon, on - * l'ajoute à partir de la sauvegarde, et le reste suit. - */ -#define DELAYED_BLOCK_ADDING(res, cache, blk) \ - do \ - { \ - if (res == NULL) \ - { \ - if (cache == NULL) \ - cache = blk; \ - else \ - { \ - res = g_virtual_block_new(); \ - g_virtual_block_add_child(G_VIRTUAL_BLOCK(res), cache); \ - } \ - } \ - \ - if (res != NULL) \ - g_virtual_block_add_child(G_VIRTUAL_BLOCK(res), blk); \ - \ - } \ - while (0) - - -/* Détermine la couverture d'un ensemble de chemins. */ -static bitfield_t *compute_other_paths_mask(const dragon_knight *, GArchInstruction **, InstructionLinkType *, size_t, size_t); - -/* Procède à la définition de bloc regroupant des instructions. */ -static GInstrBlock *build_instruction_blocks(GArchProcessor *, const dragon_knight *, dragon_node *, const bitfield_t *, bitfield_t *, size_t *); - - - -/****************************************************************************** -* * -* Paramètres : knight = représentation de la complexité du code. * -* dests = instructions pointées à consulter. * -* types = types associés aux destinations. * -* dcount = nombre de destinations. * -* current = indice de la destionation courante. * -* * -* Description : Détermine la couverture d'un ensemble de chemins. * -* * -* Retour : Champ de bits mis en place. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static bitfield_t *compute_other_paths_mask(const dragon_knight *knight, GArchInstruction **dests, InstructionLinkType *types, size_t dcount, size_t current) -{ - bitfield_t *result; /* Couverture à retourner */ - size_t length; /* Taille du champ de bits */ - InstructionLinkType target; /* Type de noeud à cibler */ - size_t i; /* Boucle de parcours */ - dragon_node *node; /* Noeud à considérer */ - - get_dragon_knight_content(knight, NULL, &length); - - result = create_bit_field(length, false); - - target = types[current]; - - if (target == ILT_JUMP_IF_TRUE) - target = ILT_JUMP_IF_FALSE; - else if (target == ILT_JUMP_IF_FALSE) - target = ILT_JUMP_IF_TRUE; - - assert(target == ILT_CASE_JUMP || target == ILT_JUMP_IF_TRUE || target == ILT_JUMP_IF_FALSE); - - for (i = 0; i < dcount; i++) - { - if (i == current) - continue; - - if (types[i] == target) - { - node = find_knight_node_for_instruction(knight, false, dests[i]); - if (node == NULL) continue; - - or_bit_field(result, get_paths_bits(node)); - - } - - } - - return result; - -} - - -/****************************************************************************** -* * -* Paramètres : proc = ensemble des instructions d'assemblage. * -* coverage = délimitations de la zone à couvrir. * -* * -* Description : Procède à la définition de bloc regroupant des instructions. * -* * -* Retour : Bloc créé et enregistré, ou NULL si erreur. * -* * -* Remarques : - * -* * -******************************************************************************/ - -static GInstrBlock *build_instruction_blocks(GArchProcessor *proc, const dragon_knight *knight, dragon_node *node, const bitfield_t *stop, bitfield_t *converted, size_t *next) -{ - GInstrBlock *result; /* Regroupement à retourner */ - GInstrBlock *result_cached; /* Temporisation pour unicité */ - size_t id; /* Indice du bit associé */ - GArchInstruction *first; /* Première instruction de bloc*/ - GArchInstruction *last; /* Dernière instruction de bloc*/ - GInstrBlock *block; /* Nouveau bloc mis en place */ - bitfield_t *local_stop; /* Arrêts pour les sous-blocs */ - bitfield_t *others; /* Couvertures des autres */ - GArchInstruction **dests; /* Instr. visée par une autre */ - InstructionLinkType *types; /* Type de lien entre lignes */ - size_t dcount; /* Nombre de liens de dest. */ - size_t i; /* Boucle de parcours */ - dragon_node *target; /* Noeud suivant à traiter */ - GInstrBlock *group; /* Regroupement à retourner */ - GInstrBlock *group_cached ; /* Temporisation pour unicité */ - - result = NULL; - result_cached = NULL; - - - - - while (1) - { - id = get_dragon_knight_node_index(knight, node); - - /** - * Si on traite une des branches Vrai/Faux et que cette branche est vide, - * on doit s'arrêter. - */ - - - //printf("=== [%d] PROCESSING NODE %u (0x%x) in 0x%08x\n", fff, id, 1 << id, gfw(stop)); - - - if (test_in_bit_field(stop, id, 1)) - { - //printf(" -- STOP\n"); - *next = id; - break; - } - - /** - * Si le bloc a déjà été converti, on arrête la conversion pour la branche courante. - * - * Cela peut correspondre à la situation suivante quand on revient sur le bloc - * inférieur droit : - * - * ====== - * / \ - * === | - * / \ | - * | `.| - * | || - * === === - */ - - if (test_in_bit_field(converted, id, 1)) - { - //printf(" HALT\n"); - - *next = 0; - break; - } - - /* Constitution et ajout d'un bloc */ - - get_dragon_node_bounding_instructions(node, &first, &last); - - /* - printf(" -- [%d] process block %u @ 0x%08x <-> 0x%08x\n", - fff, (unsigned int)id, - (unsigned int)first->range.addr.virtual, - (unsigned int)last->range.addr.virtual); - */ - - block = g_flow_block_new(proc, first, last); - - DELAYED_BLOCK_ADDING(result, result_cached, block); - - set_in_bit_field(converted, id, 1); - - /* Détermination du prochain arrêt */ - - local_stop = create_bit_field_from(stop, true); - - others = NULL; - - g_arch_instruction_rlock_dest(last); - dcount = g_arch_instruction_get_destinations(last, &dests, &types); - - for (i = 0; i < dcount && others == NULL; i++) - switch (types[i]) - { - case ILT_EXEC_FLOW: - case ILT_JUMP: - break; - - case ILT_LOOP: - break; - - case ILT_CASE_JUMP: - case ILT_JUMP_IF_TRUE: - case ILT_JUMP_IF_FALSE: - - target = find_knight_node_for_instruction(knight, false, dests[i]); - if (target == NULL) break; - - id = get_dragon_knight_node_index(knight, target); - - others = compute_other_paths_mask(knight, dests, types, dcount, i); - - /** - * Si une patte est contenue dans une autre, on place la branche - * incluse comme borne de fin. - */ - if (test_in_bit_field(others, id, 1)) - { - reset_all_in_bit_field(others); - set_in_bit_field(others, id, 1); - } - - /** - * Sinon la borne de fin est la sortie commune. - */ - else - { - delete_bit_field(others); - others = NULL; - - and_bit_field(local_stop, get_paths_bits(target)); - - } - - break; - - case ILT_CATCH_EXCEPTION: - break; - - default: - //assert(false); - break; - - } - - g_arch_instruction_runlock_dest(last); - - if (others != NULL) - { - //printf(" HO \n"); - delete_bit_field(local_stop); - local_stop = others; - } - - - - //printf(" -- [%d] common :: 0x%08x\n", fff, gfw(local_stop)); - - - //or_bit_field(local_stop, stop); - - - //printf(" -- [%d] common :: 0x%08x\n", fff, gfw(local_stop)); - - - /* Récupération des sous-blocs */ - - *next = 0; - - group = NULL; - group_cached = NULL; - - for (i = 0; i < dcount; i++) - switch (types[i]) - { - case ILT_EXEC_FLOW: - case ILT_JUMP: - - /* Il ne peut y en avoir qu'un ! */ - assert(*next == 0); - - target = find_knight_node_for_instruction(knight, false, dests[i]); - if (target == NULL) break; - - *next = get_dragon_knight_node_index(knight, target); - break; - - case ILT_LOOP: - break; - - case ILT_CASE_JUMP: - case ILT_JUMP_IF_TRUE: - case ILT_JUMP_IF_FALSE: - - target = find_knight_node_for_instruction(knight, false, dests[i]); - if (target == NULL) break; - - /* - printf(" -- call %d -> %zu -> %zu\n", - fff, - get_dragon_knight_node_index(knight, node), - get_dragon_knight_node_index(knight, target)); - */ - - block = build_instruction_blocks(proc, knight, target, local_stop, converted, &id); - - //printf(" -> next id = %zu\n", id); - - - - /* Le premier passage crée la référence */ - if (*next == 0) - *next = id; - - /** - * Une patte, première ou nom, peut se terminer alors que - * ses voisines continuent. - * - * Il y a donc plusieurs valeurs pour l'indice suivant : - * un nul et un strictement positif. - * - * Le cas typique est le suivant : - * - * ====== - * / \ - * | | - * ret | - * | - * === - */ - - else if (id > 0) - { - //printf(" NEXT :: %u vs %u\n", *next, id); - assert(*next == id); - } - - if (block != NULL) - DELAYED_BLOCK_ADDING(group, group_cached, block); - - break; - - case ILT_CATCH_EXCEPTION: - break; - - default: - //assert(false); - break; - - } - - if (/*group != NULL || */group_cached != NULL) - DELAYED_BLOCK_ADDING(result, result_cached, group != NULL ? group : group_cached); - - delete_bit_field(local_stop); - - /* On passe au noeud suivant */ - - if (*next == 0) - break; - - node = get_dragon_knight_node(knight, *next); - - } - - return (result != NULL ? result : result_cached); - -} - - -/****************************************************************************** -* * -* Paramètres : routine = routine en code exécutable à traiter. * -* knight = rassemblement des complexités de code. * -* * -* Description : Procède à la définition de blocs regroupant des instructions.* -* * -* Retour : Blocs créés et enregistrés, ou NULL si erreur. * -* * -* Remarques : - * -* * -******************************************************************************/ - -void group_routine_instructions(GBinRoutine *routine, const dragon_knight *knight) -{ - - - dragon_node *nodes; /* Liste des noeuds détectés */ - size_t count; /* Taille de cette liste */ - dragon_node *node; /* Noeud à traiter */ - bitfield_t *stop; /* Bloc d'arrêt de l'analyse */ - bitfield_t *converted; /* Cartographie des traitements*/ - GInstrBlock *blocks; /* Blocs basiques construits */ - - - - - - get_dragon_knight_content(knight, &nodes, &count); - - compute_all_paths(nodes, count); - - - - -#if 0 - size_t k; - - for (k = 0; k < count; k++) - { - GArchInstruction *first; - GArchInstruction *last; - const bitfield_t *paths; - - node = get_dragon_node(nodes, k); - - paths = get_paths_bits(node); - - get_dragon_node_bounding_instructions(node, &first, &last); - - - printf("#[ node %zu ]# @ 0x%08x / 0x%08x - mask = 0x%08lx\n", k, - (unsigned int)g_arch_instruction_get_range(first)->addr.virtual, - (unsigned int)g_arch_instruction_get_range(last)->addr.virtual, - gfw(paths)); - - } -#endif - - - - - node = get_dragon_node(nodes, 0); - - stop = create_bit_field(count, false); - converted = create_bit_field(count, false); - - blocks = build_instruction_blocks(NULL, knight, node, stop, converted, (size_t []) { 0 }); - - delete_bit_field(stop); - - - - -#if 0 - bool visit_block(GInstrBlock *blk, BlockVisitOrder order, int *indent) - { - int i; - - switch (order) - { - case BVO_IN: - case BVO_PENDING: - - for (i = 0; i < *indent; i++) - printf(" "); - - printf("%p '%s'", blk, G_OBJECT_TYPE_NAME(blk)); - - if (G_IS_FLOW_BLOCK(blk)) - { - vmpa2t start; - vmpa2t end; - - g_flow_block_get_boundary_addresses(G_FLOW_BLOCK(blk), &start, &end); - - printf(" 0x%08x -> 0x%08x", - (unsigned int)start.virtual, - (unsigned int)end.virtual); - - } - - printf("\n"); - - if (order == BVO_IN) (*indent)++; - break; - - case BVO_OUT: - (*indent)--; - break; - - } - - return true; - - } - - g_instr_block_visit(blocks, (instr_block_visitor_cb)visit_block, (int []){ 0 }); - - printf("\n"); -#endif - - - //if (blocks != NULL) - - - g_binary_routine_set_basic_blocks(routine, blocks); - -} diff --git a/src/analysis/disass/macro.h b/src/analysis/disass/macro.h deleted file mode 100644 index 555d48a..0000000 --- a/src/analysis/disass/macro.h +++ /dev/null @@ -1,38 +0,0 @@ - -/* Chrysalide - Outil d'analyse de fichiers binaires - * macro.h - prototypes pour la vue macroscopique des liens entre blocs d'instructions - * - * Copyright (C) 2012-2017 Cyrille Bagard - * - * This file is part of Chrysalide. - * - * Chrysalide is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * Chrysalide is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Foobar. If not, see <http://www.gnu.org/licenses/>. - */ - - -#ifndef _ANALYSIS_DISASS_MACRO_H -#define _ANALYSIS_DISASS_MACRO_H - - -#include "dragon.h" -#include "../routine.h" - - - -/* Procède à la définition de blocs regroupant des instructions. */ -void group_routine_instructions(GBinRoutine *, const dragon_knight *); - - - -#endif /* _ANALYSIS_DISASS_MACRO_H */ diff --git a/src/analysis/disass/routines.c b/src/analysis/disass/routines.c index 7493af3..32a2259 100644 --- a/src/analysis/disass/routines.c +++ b/src/analysis/disass/routines.c @@ -27,7 +27,6 @@ #include "dragon.h" #include "limit.h" #include "loop.h" -#include "macro.h" #include "rank.h" #include "../../glibext/delayed-int.h" diff --git a/src/arch/Makefile.am b/src/arch/Makefile.am index a7ff3a2..58474d7 100644 --- a/src/arch/Makefile.am +++ b/src/arch/Makefile.am @@ -19,7 +19,6 @@ libarch_la_SOURCES = \ register-int.h \ register.h register.c \ target.h target.c \ - translate.h \ undefined.h undefined.c \ vmpa.h vmpa.c diff --git a/src/arch/arm/Makefile.am b/src/arch/arm/Makefile.am index c0bbdf7..496872a 100644 --- a/src/arch/arm/Makefile.am +++ b/src/arch/arm/Makefile.am @@ -8,6 +8,7 @@ libarcharm_la_SOURCES = \ instruction-int.h \ instruction.h instruction.c \ link.h link.c \ + processor-int.h \ processor.h processor.c \ register-int.h \ register.h register.c diff --git a/src/arch/arm/v7/opcodes/Makefile.am b/src/arch/arm/v7/opcodes/Makefile.am index a7313b1..fb00143 100644 --- a/src/arch/arm/v7/opcodes/Makefile.am +++ b/src/arch/arm/v7/opcodes/Makefile.am @@ -21,3 +21,6 @@ libarcharmv7opcodes_la_CFLAGS = $(AM_CFLAGS) AM_CPPFLAGS = $(LIBGTK_CFLAGS) $(LIBXML_CFLAGS) AM_CFLAGS = $(DEBUG_CFLAGS) $(WARNING_FLAGS) $(COMPLIANCE_FLAGS) + + +EXTRA_DIST = opcodes_tmp_arm.h opcodes_tmp_simd.h opcodes_tmp_thumb_16.h opcodes_tmp_thumb_32.h diff --git a/src/arch/arm/v7/opdefs/Makefile.am b/src/arch/arm/v7/opdefs/Makefile.am index 41785c6..a702d10 100644 --- a/src/arch/arm/v7/opdefs/Makefile.am +++ b/src/arch/arm/v7/opdefs/Makefile.am @@ -279,6 +279,17 @@ ARMV7_DEFS = \ # subs_B9320.d +# make dist procède répertoire par répertoire. Or le répertoire opcodes utilise +# le contenu du répertoire opdefs. Il faut donc générer les fichiers nécessaires +# au répertoire opcodes. Et comme on ne peut pas compléter la règle dist, on +# ajoute à la distribution les cibles marquant la génération. (1/2) + +EXTRA_DIST = $(ARMV7_DEFS) $(ARMV7_DEFS:.d=.g) + +# Après coup, on supprime les fichiers inutiles de la distribution/ (2/2) + +dist-hook: + cd $(distdir) && rm $(ARMV7_DEFS:.d=.g) all: $(ARMV7_DEFS:.d=.g) fmk.done d2c_final_rules diff --git a/src/arch/dalvik/opdefs/Makefile.am b/src/arch/dalvik/opdefs/Makefile.am index 055e8a4..822e593 100644 --- a/src/arch/dalvik/opdefs/Makefile.am +++ b/src/arch/dalvik/opdefs/Makefile.am @@ -263,6 +263,17 @@ DALVIK_DEFS = \ shr_e1.d \ ushr_e2.d +# make dist procède répertoire par répertoire. Or le répertoire opcodes utilise +# le contenu du répertoire opdefs. Il faut donc générer les fichiers nécessaires +# au répertoire opcodes. Et comme on ne peut pas compléter la règle dist, on +# ajoute à la distribution les cibles marquant la génération. (1/2) + +EXTRA_DIST = $(DALVIK_DEFS) $(DALVIK_DEFS:.d=.g) + +# Après coup, on supprime les fichiers inutiles de la distribution/ (2/2) + +dist-hook: + cd $(distdir) && rm $(DALVIK_DEFS:.d=.g) all: $(DALVIK_DEFS:.d=.g) fmk.done d2c_final_rules diff --git a/src/core/processors.c b/src/core/processors.c index 27d0e34..864b066 100644 --- a/src/core/processors.c +++ b/src/core/processors.c @@ -33,7 +33,7 @@ #include "../arch/arm/v7/processor.h" #include "../arch/dalvik/core.h" #include "../arch/dalvik/processor.h" -#include "../arch/jvm/processor.h" +//#include "../arch/jvm/processor.h" diff --git a/src/debug/Makefile.am b/src/debug/Makefile.am index e9dd1fd..b2f4685 100755 --- a/src/debug/Makefile.am +++ b/src/debug/Makefile.am @@ -3,6 +3,7 @@ noinst_LTLIBRARIES = libdebug.la libdebug_la_SOURCES = \ break.h break.c \ + debugger-int.h \ debugger.h debugger.c \ packet-int.h \ packet.h packet.c \ diff --git a/src/format/dwarf/Makefile.am b/src/format/dwarf/Makefile.am index 6ebea4e..c2954fc 100644 --- a/src/format/dwarf/Makefile.am +++ b/src/format/dwarf/Makefile.am @@ -6,6 +6,7 @@ libformatdwarf_la_SOURCES = \ die.h die.c \ dwarf.h dwarf.c \ dwarf-int.h dwarf-int.c \ + dwarf_def.h \ form.h form.c \ info.h info.c \ symbols.h symbols.c diff --git a/src/format/mangling/itanium/Makefile.am b/src/format/mangling/itanium/Makefile.am index 6265691..21a62c0 100755 --- a/src/format/mangling/itanium/Makefile.am +++ b/src/format/mangling/itanium/Makefile.am @@ -3,6 +3,7 @@ noinst_LTLIBRARIES = libformatmanglingitanium.la libformatmanglingitanium_la_SOURCES = \ abi.h abi.c \ + component-int.h \ component.h component.c \ context.h context.c diff --git a/src/gui/dialogs/Makefile.am b/src/gui/dialogs/Makefile.am index 5a60f25..e1774d7 100644 --- a/src/gui/dialogs/Makefile.am +++ b/src/gui/dialogs/Makefile.am @@ -35,3 +35,5 @@ resources.h: gresource.xml CLEANFILES = resources.h resources.c + +EXTRA_DIST = gresource.xml $(UI_FILES) diff --git a/src/gui/panels/Makefile.am b/src/gui/panels/Makefile.am index 929aef1..bd4572d 100644 --- a/src/gui/panels/Makefile.am +++ b/src/gui/panels/Makefile.am @@ -11,6 +11,7 @@ libguipanels_la_SOURCES = \ glance.h glance.c \ history.h history.c \ log.h log.c \ + panel-int.h \ panel.h panel.c \ regedit.h regedit.c \ resources.h resources.c \ @@ -36,3 +37,5 @@ resources.h: gresource.xml CLEANFILES = resources.h resources.c + +EXTRA_DIST = gresource.xml $(UI_FILES) diff --git a/themes/Adwaita/Makefile.am b/themes/Adwaita/Makefile.am index 9ef46c5..338d65b 100644 --- a/themes/Adwaita/Makefile.am +++ b/themes/Adwaita/Makefile.am @@ -10,3 +10,5 @@ GTK3_CSS = \ cssdir = $(datadir)/themes/Adwaita css_DATA = $(GTK3_CSS) + +EXTRA_DIST = $(css_DATA) diff --git a/tools/d2c/Makefile.am b/tools/d2c/Makefile.am index 53904be..5b9eb48 100644 --- a/tools/d2c/Makefile.am +++ b/tools/d2c/Makefile.am @@ -46,5 +46,9 @@ d2c_LDADD = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +# On rajoute également de quoi générer les Makefiles. +EXTRA_DIST = tokens.h d2c_genmakefile.sh + SUBDIRS = args bits conv format hooks rules syntax diff --git a/tools/d2c/args/Makefile.am b/tools/d2c/args/Makefile.am index c26dea4..1a2647c 100644 --- a/tools/d2c/args/Makefile.am +++ b/tools/d2c/args/Makefile.am @@ -29,3 +29,6 @@ libd2cargs_la_SOURCES = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h + +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +EXTRA_DIST = tokens.h diff --git a/tools/d2c/bits/Makefile.am b/tools/d2c/bits/Makefile.am index 8459770..b1d79b6 100644 --- a/tools/d2c/bits/Makefile.am +++ b/tools/d2c/bits/Makefile.am @@ -29,3 +29,6 @@ libd2cbits_la_SOURCES = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h + +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +EXTRA_DIST = tokens.h diff --git a/tools/d2c/conv/Makefile.am b/tools/d2c/conv/Makefile.am index 0a49e97..d2d495b 100644 --- a/tools/d2c/conv/Makefile.am +++ b/tools/d2c/conv/Makefile.am @@ -29,3 +29,6 @@ libd2cconv_la_SOURCES = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h + +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +EXTRA_DIST = tokens.h diff --git a/tools/d2c/format/Makefile.am b/tools/d2c/format/Makefile.am index 5b1dcee..c40b38e 100644 --- a/tools/d2c/format/Makefile.am +++ b/tools/d2c/format/Makefile.am @@ -29,3 +29,6 @@ libd2cformat_la_SOURCES = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h + +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +EXTRA_DIST = tokens.h diff --git a/tools/d2c/hooks/Makefile.am b/tools/d2c/hooks/Makefile.am index 4dc34e4..27d88ec 100644 --- a/tools/d2c/hooks/Makefile.am +++ b/tools/d2c/hooks/Makefile.am @@ -29,3 +29,6 @@ libd2chooks_la_SOURCES = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h + +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +EXTRA_DIST = tokens.h diff --git a/tools/d2c/rules/Makefile.am b/tools/d2c/rules/Makefile.am index 9db9905..81bf7b8 100644 --- a/tools/d2c/rules/Makefile.am +++ b/tools/d2c/rules/Makefile.am @@ -29,3 +29,6 @@ libd2crules_la_SOURCES = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h + +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +EXTRA_DIST = tokens.h diff --git a/tools/d2c/syntax/Makefile.am b/tools/d2c/syntax/Makefile.am index 95da241..7529978 100644 --- a/tools/d2c/syntax/Makefile.am +++ b/tools/d2c/syntax/Makefile.am @@ -29,3 +29,6 @@ libd2csyntax_la_SOURCES = \ # Automake fait les choses à moitié CLEANFILES = grammar.h grammar.c grammar.output tokens.c tokens.h + +# Pareil : de tous les fichiers générés, seule la sortie de Flex saute pour les distributions ! +EXTRA_DIST = tokens.h |