
FLAGS_DEBUG = -g
LIBINTEL64ASM_LIB =	libintel64asm.a
LIBINTEL64ASM_OBJS = 	drd64_intel64_db.o \
						drd64_intel64_disasm.o \
						drd64_intel64_asm.o \
						drd64_intel64_debug.o \
						drd64_intel64_asm_system.o \
						drd64_intel64_common.o \
						drd64_intel64_dbcommon.o \
						drd64_intel64_function.o \
						drd64_intel64_error.o

LIBINTEL64ASM_HEADERS =	drd64_intel64_dbtype.h \
						drd64_intel64_asm.h \
						drd64_intel64_disasm.h \
						drd64_intel64_asm_system.h \
						drd64_intel64_error.h \
						drd64_intel64_common.h \
						drd64_intel64_db.h \
						drd64_intel64_dbcommon.h \
						drd64_intel64_dbfile.h \
						../include/drd64_types.h \
						../include/libintel64asm.h
INTEL64ASM_TARGET = intel64asm
INTEL64ASM_OBJS = intel64asm.o

all:	$(LIBINTEL64ASM_LIB) $(INTEL64ASM_TARGET)

$(INTEL64ASM_TARGET): $(INTEL64ASM_OBJS) $(LIBINTEL64ASM_LIB)
	gcc -o $(INTEL64ASM_TARGET) $(INTEL64ASM_OBJS) $(LIBINTEL64ASM_LIB)

$(INTEL64ASM_OBJS): intel64asm.c ../include/libintel64asm.h
	gcc -c -o $(INTEL64ASM_OBJS) $(FLAGS_DEBUG) intel64asm.c

$(LIBINTEL64ASM_LIB): $(LIBINTEL64ASM_OBJS)
	ar rv $(LIBINTEL64ASM_LIB) $(LIBINTEL64ASM_OBJS)
	ranlib $(LIBINTEL64ASM_LIB)
	cp $(LIBINTEL64ASM_LIB) ..

drd64_intel64_function.o: drd64_intel64_function.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_function.o $(FLAGS_DEBUG) drd64_intel64_function.c

drd64_intel64_db.o: drd64_intel64_db.c  $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_db.o $(FLAGS_DEBUG) drd64_intel64_db.c

drd64_intel64_disasm.o: drd64_intel64_disasm.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_disasm.o $(FLAGS_DEBUG) drd64_intel64_disasm.c

drd64_intel64_asm.o: drd64_intel64_asm.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_asm.o $(FLAGS_DEBUG) drd64_intel64_asm.c

drd64_intel64_debug.o: drd64_intel64_debug.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_debug.o $(FLAGS_DEBUG) drd64_intel64_debug.c

drd64_intel64_asm_system.o: drd64_intel64_asm_system.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_asm_system.o $(FLAGS_DEBUG) drd64_intel64_asm_system.c

drd64_intel64_common.o: drd64_intel64_common.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_common.o $(FLAGS_DEBUG) drd64_intel64_common.c

drd64_intel64_dbcommon.o: drd64_intel64_dbcommon.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_dbcommon.o $(FLAGS_DEBUG) drd64_intel64_dbcommon.c

drd64_intel64_error.o: drd64_intel64_error.c $(LIBINTEL64ASM_HEADERS)
	gcc -c -o drd64_intel64_error.o $(FLAGS_DEBUG) drd64_intel64_error.c

drd64_intel64_csvcompiler.o: drd64_intel64_csvcompiler.c drd64_intel64_db.h drd64_intel64_dbfile.h
	gcc -c -o drd64_intel64_csvcompiler.o $(FLAGS_DEBUG) drd64_intel64_csvcompiler.c

compile: drd64_intel64_csvcompiler.o drd64_intel64_dbcommon.o
	gcc -o drd64_intel64_csvcompiler drd64_intel64_csvcompiler.o drd64_intel64_dbcommon.o
	rm -f drd64_intel64db.bin
	./drd64_intel64_csvcompiler x8664db.csv

clean:
	rm -f *.o
	rm -f $(LIBINTEL64ASM_LIB)
	rm -f $(INTEL64ASM_TARGET)
	rm -f *.core

