TARGETS	= $(OBJDIR)amd64.o $(OBJDIR)arm.o $(OBJDIR)armeb.o $(OBJDIR)armel.o $(OBJDIR)coverage.log $(OBJDIR)clint.log $(OBJDIR)dalvik.o $(OBJDIR)eth.o $(OBJDIR)fixme.log $(OBJDIR)i386.o $(OBJDIR)i386_real.o $(OBJDIR)i486.o $(OBJDIR)i586.o $(OBJDIR)i686.o $(OBJDIR)mips.o $(OBJDIR)mipseb.o $(OBJDIR)mipsel.o $(OBJDIR)java.o $(OBJDIR)pylint.log $(OBJDIR)sparc.o $(OBJDIR)sparc64.o $(OBJDIR)template.o $(OBJDIR)tests.log $(OBJDIR)yasep.o $(OBJDIR)yasep16.o $(OBJDIR)yasep32.o
OBJDIR	=
PREFIX	= /usr/local
DESTDIR	=
BINDIR	= $(PREFIX)/bin
SBINDIR	= $(PREFIX)/sbin
AS	= $(OBJDIR)../tools/asm-static
ASFLAGSF=
ASFLAGS	=
EXEEXT	=
RM	= rm -f
LN	= ln -f
MKDIR	= mkdir -m 0755 -p
INSTALL	= install


all: $(OBJDIR)amd64.o $(OBJDIR)arm.o $(OBJDIR)armeb.o $(OBJDIR)armel.o $(OBJDIR)dalvik.o $(OBJDIR)eth.o $(OBJDIR)i386.o $(OBJDIR)i386_real.o $(OBJDIR)i486.o $(OBJDIR)i586.o $(OBJDIR)i686.o $(OBJDIR)mips.o $(OBJDIR)mipseb.o $(OBJDIR)mipsel.o $(OBJDIR)java.o $(OBJDIR)sparc.o $(OBJDIR)sparc64.o $(OBJDIR)template.o $(OBJDIR)yasep.o $(OBJDIR)yasep16.o $(OBJDIR)yasep32.o

amd64.o_OBJS = $(OBJDIR)amd64.o
amd64.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a amd64

arm.o_OBJS = $(OBJDIR)arm.o
arm.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a arm

armeb.o_OBJS = $(OBJDIR)armeb.o
armeb.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a armeb

armel.o_OBJS = $(OBJDIR)armel.o
armel.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a armel

$(OBJDIR)coverage.log: coverage.sh
	./coverage.sh -P "$(PREFIX)" -- "$(OBJDIR)coverage.log"

$(OBJDIR)clint.log: clint.sh
	./clint.sh -P "$(PREFIX)" -O CPPFLAGS="-I$(DESTDIR)$(PREFIX)/include -I../include `pkg-config --cflags python-2.7 cpp`" -- "$(OBJDIR)clint.log"

dalvik.o_OBJS = $(OBJDIR)dalvik.o
dalvik.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a dalvik -f flat

eth.o_OBJS = $(OBJDIR)eth.o
eth.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a eth

$(OBJDIR)fixme.log: fixme.sh
	./fixme.sh -P "$(PREFIX)" -- "$(OBJDIR)fixme.log"

i386.o_OBJS = $(OBJDIR)i386.o
i386.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a i386

i386_real.o_OBJS = $(OBJDIR)i386_real.o
i386_real.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a i386_real -f mbr

i486.o_OBJS = $(OBJDIR)i486.o
i486.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a i486

i586.o_OBJS = $(OBJDIR)i586.o
i586.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a i586

i686.o_OBJS = $(OBJDIR)i686.o
i686.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a i686

mips.o_OBJS = $(OBJDIR)mips.o
mips.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a mips

mipseb.o_OBJS = $(OBJDIR)mipseb.o
mipseb.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a mipseb

mipsel.o_OBJS = $(OBJDIR)mipsel.o
mipsel.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a mipsel

java.o_OBJS = $(OBJDIR)java.o
java.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a java -f flat

$(OBJDIR)pylint.log: pylint.sh
	./pylint.sh -P "$(PREFIX)" -- "$(OBJDIR)pylint.log"

sparc.o_OBJS = $(OBJDIR)sparc.o
sparc.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a sparc

sparc64.o_OBJS = $(OBJDIR)sparc64.o
sparc64.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a sparc64

template.o_OBJS = $(OBJDIR)template.o
template.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a template -f flat

$(OBJDIR)tests.log: $(OBJDIR)amd64.o $(OBJDIR)arm.o $(OBJDIR)armeb.o $(OBJDIR)armel.o $(OBJDIR)eth.o $(OBJDIR)i386.o $(OBJDIR)i386_real.o $(OBJDIR)i486.o $(OBJDIR)i586.o $(OBJDIR)i686.o python.sh $(OBJDIR)sparc.o $(OBJDIR)sparc64.o tests.sh $(OBJDIR)yasep.o $(OBJDIR)yasep16.o $(OBJDIR)yasep32.o $(OBJDIR)../tools/asm-static$(EXEEXT) $(OBJDIR)../tools/deasm-static$(EXEEXT)
	./tests.sh -P "$(PREFIX)" -v -- "$(OBJDIR)tests.log"

yasep.o_OBJS = $(OBJDIR)yasep.o
yasep.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a yasep -f flat

yasep16.o_OBJS = $(OBJDIR)yasep16.o
yasep16.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a yasep16 -f flat

yasep32.o_OBJS = $(OBJDIR)yasep32.o
yasep32.o_ASFLAGS = $(ASFLAGSF) $(ASFLAGS) -a yasep32 -f flat

$(OBJDIR)amd64.o: amd64.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(amd64.o_ASFLAGS) -o $(OBJDIR)amd64.o amd64.asm

$(OBJDIR)arm.o: arm.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(arm.o_ASFLAGS) -o $(OBJDIR)arm.o arm.asm

$(OBJDIR)armeb.o: armeb.asm arm.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(armeb.o_ASFLAGS) -o $(OBJDIR)armeb.o armeb.asm

$(OBJDIR)armel.o: armel.asm arm.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(armel.o_ASFLAGS) -o $(OBJDIR)armel.o armel.asm

$(OBJDIR)dalvik.o: dalvik.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(dalvik.o_ASFLAGS) -o $(OBJDIR)dalvik.o dalvik.asm

$(OBJDIR)eth.o: eth.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(eth.o_ASFLAGS) -o $(OBJDIR)eth.o eth.asm

$(OBJDIR)i386.o: i386.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(i386.o_ASFLAGS) -o $(OBJDIR)i386.o i386.asm

$(OBJDIR)i386_real.o: i386_real.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(i386_real.o_ASFLAGS) -o $(OBJDIR)i386_real.o i386_real.asm

$(OBJDIR)i486.o: i486.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(i486.o_ASFLAGS) -o $(OBJDIR)i486.o i486.asm

$(OBJDIR)i586.o: i586.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(i586.o_ASFLAGS) -o $(OBJDIR)i586.o i586.asm

$(OBJDIR)i686.o: i686.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(i686.o_ASFLAGS) -o $(OBJDIR)i686.o i686.asm

$(OBJDIR)mips.o: mips.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(mips.o_ASFLAGS) -o $(OBJDIR)mips.o mips.asm

$(OBJDIR)mipseb.o: mipseb.asm mips.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(mipseb.o_ASFLAGS) -o $(OBJDIR)mipseb.o mipseb.asm

$(OBJDIR)mipsel.o: mipsel.asm mips.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(mipsel.o_ASFLAGS) -o $(OBJDIR)mipsel.o mipsel.asm

$(OBJDIR)java.o: java.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(java.o_ASFLAGS) -o $(OBJDIR)java.o java.asm

$(OBJDIR)sparc.o: sparc.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(sparc.o_ASFLAGS) -o $(OBJDIR)sparc.o sparc.asm

$(OBJDIR)sparc64.o: sparc64.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(sparc64.o_ASFLAGS) -o $(OBJDIR)sparc64.o sparc64.asm

$(OBJDIR)template.o: template.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(template.o_ASFLAGS) -o $(OBJDIR)template.o template.asm

$(OBJDIR)yasep.o: yasep.asm $(OBJDIR)../tools/asm-static$(EXEEXT)
	$(AS) $(yasep.o_ASFLAGS) -o $(OBJDIR)yasep.o yasep.asm

$(OBJDIR)yasep16.o: yasep16.asm $(OBJDIR)../tools/asm-static$(EXEEXT) yasep.asm
	$(AS) $(yasep16.o_ASFLAGS) -o $(OBJDIR)yasep16.o yasep16.asm

$(OBJDIR)yasep32.o: yasep32.asm $(OBJDIR)../tools/asm-static$(EXEEXT) yasep.asm
	$(AS) $(yasep32.o_ASFLAGS) -o $(OBJDIR)yasep32.o yasep32.asm

clean:
	$(RM) -- $(amd64.o_OBJS) $(arm.o_OBJS) $(armeb.o_OBJS) $(armel.o_OBJS) $(dalvik.o_OBJS) $(eth.o_OBJS) $(i386.o_OBJS) $(i386_real.o_OBJS) $(i486.o_OBJS) $(i586.o_OBJS) $(i686.o_OBJS) $(mips.o_OBJS) $(mipseb.o_OBJS) $(mipsel.o_OBJS) $(java.o_OBJS) $(sparc.o_OBJS) $(sparc64.o_OBJS) $(template.o_OBJS) $(yasep.o_OBJS) $(yasep16.o_OBJS) $(yasep32.o_OBJS)
	./coverage.sh -c -P "$(PREFIX)" -- "$(OBJDIR)coverage.log"
	./clint.sh -c -P "$(PREFIX)" -O CPPFLAGS="-I$(DESTDIR)$(PREFIX)/include -I../include `pkg-config --cflags python-2.7 cpp`" -- "$(OBJDIR)clint.log"
	./fixme.sh -c -P "$(PREFIX)" -- "$(OBJDIR)fixme.log"
	./pylint.sh -c -P "$(PREFIX)" -- "$(OBJDIR)pylint.log"
	./tests.sh -c -P "$(PREFIX)" -v -- "$(OBJDIR)tests.log"

distclean: clean
	$(RM) -- $(TARGETS)

install: all

uninstall:

.PHONY: all clean distclean install uninstall
