##
# Initially, the sky driver is null
# Compiler & Directory Definition File
#

include makedir/default

# driver objects
GENERICDRVOBJ =					\
	$(DRVGENERICOBJDIR)/imrascnv.$(O)	\
	$(DRVGENERICOBJDIR)/palquant.$(O)

SPECIFICDRVOBJ =				\
	$(DRVSPECIFICOBJDIR)/badma.$(O)		\
	$(DRVSPECIFICOBJDIR)/baevent.$(O)	\
	$(DRVSPECIFICOBJDIR)/basky.$(O)		\
	$(DRVSPECIFICOBJDIR)/baskytran.$(O)	\
	$(DRVSPECIFICOBJDIR)/dmaalloc.$(O)	\
	$(DRVSPECIFICOBJDIR)/skyblit.$(O)	\
	$(DRVSPECIFICOBJDIR)/skyconv.$(O)	\
	$(DRVSPECIFICOBJDIR)/skyinst.$(O)	\
	$(DRVSPECIFICOBJDIR)/skywrins.$(O)	\
	$(DRVSPECIFICOBJDIR)/texcache.$(O)

DRVOBJ =					\
	$(OBJDIR)/GenericPRL.$(O)		\
	$(OBJDIR)/GenericPRS.$(O)		\
	$(OBJDIR)/CullFacerPRS.$(O)		\
	$(OBJDIR)/SegmentsPRL.$(O)		\
	$(OBJDIR)/SegmentsPRS.$(O)		\
	$(OBJDIR)/baasm.$(O)			\
	$(OBJDIR)/baim2dll.$(O)			\
	$(OBJDIR)/baim2dtl.$(O)			\
	$(OBJDIR)/baisotrans.$(O)		\
	$(OBJDIR)/baisotransl.$(O)		\
	$(OBJDIR)/baisotristc.$(O)		\
	$(OBJDIR)/banfim2dll.$(O)		\
	$(OBJDIR)/banfim2dtl.$(O)		\
	$(OBJDIR)/banftristr.$(O)		\
	$(OBJDIR)/banftristrenv.$(O)	\
	$(OBJDIR)/banfztristr.$(O)		\
	$(OBJDIR)/batrans.$(O)			\
	$(OBJDIR)/batransf.$(O)			\
	$(OBJDIR)/batransl.$(O)			\
	$(OBJDIR)/batransnc.$(O)		\
	$(OBJDIR)/batristc.$(O)			\
	$(OBJDIR)/batristclif.$(O)		\
	$(OBJDIR)/batristclip.$(O)		\
	$(OBJDIR)/batristr.$(O)			\
	$(OBJDIR)/nulltrans.$(O)
	

ifeq ($(PGA), 1)
SPECIFICDRVOBJ += $(DRVSPECIFICOBJDIR)/skygmon.$(O)
endif

DRVOBJ += $(SPECIFICDRVOBJ) $(GENERICDRVOBJ)

# driver includes
DRVINC += -I$(BASEDIR)/world
DVPASMFLAGS += -I$(SRCDIR) -I$(DEVDIR)/$(RWTARGET)

# driver defines
DRVDEF =

# Attempt to overload build rules with someting more useful

#
#.SUFFIXES: .c .s .cc .dsm
#
#crt0.o: $(SCELIBDIR)/crt0.s
#	$(AS) $(ASFLAGS) $(TMPFLAGS) -o $@ $< > $*.lst
#
#.s.o:
#	$(AS) $(ASFLAGS) $(TMPFLAGS) -I$(INCDIR) -I$(SCEINCDIR) -o $@ $< > $*.lst
#
#.dsm.o:
#	$(DVPASM) $(DVPASMFLAGS) -I$(INCDIR) -I$(SCEINCDIR) -o $@ $< > $*.lst
#
#.c.o:
#	$(CC) $(CFLAGS) $(TMPFLAGS) -I$(INCDIR) -I$(SCEINCDIR) $< -o $*.o > $*.lst
#
#.cc.o:
#	$(CC) $(CXXFLAGS) $(TMPFLAGS) -I$(INCDIR) -I$(SCEINCDIR) -c $< -o $*.o > $*.lst
#

########################
# Build Rules
########################

.SUFFIXES: .c .$(O) .asm .dsm

#VPATH += $(SRCDIR) $(OSDIR) $(DRVPATH)

# Use a separate .obj file suffix to allow different error macros to be 
# define for each module

#$(DRVSPECIFICOBJDIR)/%.$(O) : %.c
#	$(CC) $(CFLAGS) -Wa,-al $(CODEGENCFLAGS) $(ERRCOREFLAGS) $(COUT)$@ $^ > $(DRVSPECIFICOBJDIR)/$*.lsc
#

ifeq ("$(RWCOMPILER)", "skygcc")
$(DRVSPECIFICOBJDIR)/%.$(O) : %.c
	$(CC) $(CFLAGS) -Wa,-al $(CODEGENCFLAGS) $(ERRCOREFLAGS) $(COUT)$@ $<

$(DRVSPECIFICOBJDIR)/%.$(O) : %.asm
	$(AS) $(ASFLAGS) -Wa,-al $(AOUT)$@ $^ > $(DRVSPECIFICOBJDIR)/$*.lsa
endif

$(DRVSPECIFICOBJDIR)/%.$(O) : %.dsm
	$(DVPASM) $(DVPASMFLAGS) -alhs $(DVPAOUT)$@ $^ > $(DRVSPECIFICOBJDIR)/$*.lsd


