blob: 5b0b805dd29b8e07f95875521bd5799a007a7c57 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
ifndef CC
CC=gcc
endif
ifndef DFLAGS
DFLAGS=-g -ggdb #-pg -a
endif
DFLAGS+=$(FLAGS_DUPE_DEBUG)
ifndef CFLAGS
CFLAGS=-pedantic -Wall
endif
CFLAGS+=$(DFLAGS)
CFLAGS+=-I. -I../common -I../elf
CFLAGS+=$(FLAGS_OPTIMIZE)
OBJS=../common/common.o ia32-debug.o ia32-function.o ../elf/elf_reloc.o
LOBJS=ia32-codeflow.o ia32-debug.o ia32-decode.o ia32-encode.o ia32-trace.o \
ia32-function.o ia32-dataflow.o ia32_opcodes.o
LIBS=-L../elf -lxelf
all: opcode-table libia32 ia32-decode ia32-trace test $(OBJS)
clean:
rm -f *.o ia32-decode ia32-trace test libia32.a
rm -f ia32_opcodes.c ia32_opcodes.h
opcode-table: ia32-decode.c
./build-opcode-list.sh
libia32: opcode-table $(LOBJS)
ar rc libia32.a $(LOBJS)
ia32_opcodes.o: opcode-table
gcc -c -o ia32_opcodes.o ia32_opcodes.c $(CFLAGS)
ia32-trace: ia32-trace.c ia32-decode.o ia32-function.o
$(CC) -o ia32-trace $(CFLAGS) -DTESTING $(OBJS) \
ia32-trace.c ia32-decode.o ia32-codeflow.o ia32-dataflow.o \
ia32_opcodes.o \
$(LIBS)
ia32-decode: ia32-decode.c libia32
$(CC) -o ia32-decode $(CFLAGS) -DTESTING ia32-decode.c libia32.a \
$(LIBS)
test: test.asm
nasm -f bin -o test test.asm
|