TOP         = /usr/local/sce/ee
LIBDIR      = $(TOP)/lib
INCDIR      = $(TOP)/include

TARGET      = ps2pc
OBJS        = $(TARGET).o \
              cpu.o \
              debug.o \
              devices.o \
              dynrec.o \
              mem.o \
              video.o \
              x86.o \
              x86arith.o \
              x86bit.o \
              x86fpu.o \
              x86io.o \
              x86jmp.o \
              x86misc.o \
              x86mov.o \
              x86pmode.o \
              x86stack.o \
              r59basic.o

LCFILE      = $(TOP)/gcc/mips64r5900-sky-elf/lib/sky.ld
LIBS        = $(LIBDIR)/libgraph.a \
              $(LIBDIR)/libdma.a \
              $(LIBDIR)/libdev.a \
              $(LIBDIR)/libpkt.a

DEVLIB      = devices.a

AR          = ee-ar
AS          = ee-gcc
CC          = ee-gcc
LD          = ee-gcc
DVPASM      = ee-dvpasm
OBJDUMP     = ee-objdump
RUN         = ee-run
#RUN         = dsedb -r run
RM          = /bin/rm -f

CFLAGS      = -g -Wall -Werror -Wa,-al -fno-common
CXXFLAGS    = -g -Wall -Werror -Wa,-al -fno-exceptions -fno-common
ASFLAGS     = -c -xassembler-with-cpp -Wa,-al
DVPASMFLAGS = -g 
LDFLAGS     = -Wl,-Map,$(TARGET).map -L$(LIBDIR) -lm
TMPFLAGS    =

.SUFFIXES: .c .s .cpp .dvpasm

all: $(TARGET).elf

$(TARGET).elf: $(OBJS) $(LIBS) $(DEVLIB)
	$(LD) -o $@ -T$(LCFILE) $(OBJS) $(DEVLIB) $(LIBS) $(LDFLAGS)

$(DEVLIB):
	make -C Devices

.s.o:
	$(AS) $(ASFLAGS) $(TMPFLAGS) -I$(INCDIR) -o $@ $< > $*.lst

.dvpasm.o:
	$(DVPASM) $(DVPASMFLAGS) -I$(INCDIR) -o $@ $< > $*.lst

.c.o:
	$(CC) $(CFLAGS) $(TMPFLAGS) -I$(INCDIR) -c $< -o $*.o > $*.lst

.cpp.o:
	$(CC) $(CXXFLAGS) $(TMPFLAGS) -I$(INCDIR) -c $< -o $*.o > $*.lst

run: $(TARGET).elf
	$(RUN) $(TARGET).elf

clean:
	$(RM) *.o *.a *.map *.lst core *.dis *.elf
	make -C Devices clean

