summaryrefslogtreecommitdiff
path: root/other/burneye2/ia32/Makefile
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