# What plugin are we building ?
PLUGIN = rpmatfx

# Who are the maintainers ?
MAINTAINERS = jamesa

#
# Platform specific objects:-
#

DOCSRC = multiTex.c multiTex.h

sky2OBJS 	= $(OBJDIR)/effectPipesSky.$(O)
sky2DOCSRC	= sky2/effectPipesSky.c

d3d7OBJS 	= $(OBJDIR)/effectPipesD3D7.$(O)
d3d7DOCSRC 	= d3d7/effectPipesD3D7.c

d3d8OBJS 	= $(OBJDIR)/effectPipesD3D8.$(O) \
                  $(OBJDIR)/multitexd3d8.$(O)

d3d8DOCSRC 	= d3d8/effectPipesD3D8.c \
                  d3d8/multitexd3d8.c

openglOBJS 	= $(OBJDIR)/effectPipesOpenGL.$(O)
openglDOCSRC 	= opengl/effectPipesOpenGL.c

softrasOBJS 	= $(OBJDIR)/effectPipesSoftras.$(O)
softrasDOCSRC 	= softras/effectPipesSoftras.c

xboxOBJS 	= $(OBJDIR)/effectPipesXbox.$(O) \
                  $(OBJDIR)/multitexxbox.$(O)

xboxDOCSRC 	= xbox/effectPipesXbox.c \
                  xbox/rpmfxxbx.h

gcnOBJS 	= $(OBJDIR)/effectPipesGcn.$(O) \
		  $(OBJDIR)/multiTexGcn.$(O) \
 	  	  $(OBJDIR)/multiTex.$(O)

gcnDOCSRC 	= gcn/effectPipesGcn.c \
		  gcn/multiTexGcn.c

nullOBJS 	= $(OBJDIR)/effectPipesNull.$(O) \
                  $(OBJDIR)/multitexxbox.$(O) \
                  $(OBJDIR)/multiTexNull.$(O) \
                  $(OBJDIR)/multiTex.$(O)

nullDOCSRC 	= null/effectPipesNull.c

nullgcnOBJS 	= $(OBJDIR)/effectPipesNull.$(O) \
 	 	  $(OBJDIR)/multiTexGcn.$(O) \
		  $(OBJDIR)/multiTex.$(O)
nullgcnDOCSRC 	= null/effectPipesNull.c

nullskyOBJS 	= $(OBJDIR)/effectPipesNull.$(O)
nullskyDOCSRC 	= null/effectPipesNull.c

nullxboxOBJS 	= $(OBJDIR)/effectPipesNull.$(O) \
                        $(OBJDIR)/multitexxbox.$(O)

nullxboxDOCSRC 	= null/effectPipesNull.c

#
# GCN
#
RPGCNHEAD = $(SDKINCDIR)/rpmfxgcn.h
gcnHDRS += $(RPGCNHEAD)
nullgcnHDRS += $(RPGCNHEAD)

#
# XBOX
#
RPXBOXHEAD = $(SDKINCDIR)/rpmfxxbx.h
xboxHDRS += $(RPXBOXHEAD)
nullxboxHDRS += $(RPXBOXHEAD)

nullHDRS += $(RPXBOXHEAD)

#
# SKY2 VU pipe specific:-
#

sky2OBJS +=					\
	$(OBJDIR)/bumpPipe.$(O)			\
	$(OBJDIR)/envPipe.$(O)			\
	$(OBJDIR)/bumpEnvPipe.$(O)		\
	$(OBJDIR)/dualPassPipe.$(O)		\
	$(OBJDIR)/BumpMappingPRL.$(O)		\
	$(OBJDIR)/BumpMappingPRS.$(O)		\
	$(OBJDIR)/GlosEnvMapPRL.$(O)		\
	$(OBJDIR)/GlosEnvMapPRS.$(O)		\
	$(OBJDIR)/BumpEnvMapPRL.$(O)		\
	$(OBJDIR)/BumpEnvMapPRS.$(O)		\
	$(OBJDIR)/AlphaBlenderPRS.$(O)		\
	$(OBJDIR)/AlphaBlenderPRL.$(O)

#Only requires in the RPSKINLEGACY case. (use matfx310 if required)
#sky2OBJS +=					\
#	$(OBJDIR)/skinBumpPipe.$(O)		\
#	$(OBJDIR)/skinEnvPipe.$(O)		\
#	$(OBJDIR)/skinBumpEnvPipe.$(O)		\
#	$(OBJDIR)/skinDualPassPipe.$(O)		\
#	$(OBJDIR)/SkinBumpMappingPRL.$(O)	\
#	$(OBJDIR)/SkinBumpMappingPRS.$(O)	\
#	$(OBJDIR)/SkinGlosEnvMapPRL.$(O)	\
#	$(OBJDIR)/SkinGlosEnvMapPRS.$(O)	\
#	$(OBJDIR)/SkinBumpEnvMapPRL.$(O)	\
#	$(OBJDIR)/SkinBumpEnvMapPRS.$(O)	\
#	$(OBJDIR)/SkinAlphaBlenderPRS.$(O)	\
#	$(OBJDIR)/SkinAlphaBlenderPRL.$(O)	

SKYPIPEDIRS := 					\
	sky2/SKY2_AlphaBlender			\
	sky2/SKY2_BumpEnvMap			\
	sky2/SKY2_BumpMapping			\
	sky2/SKY2_GlosEnvMap


#Only requires in the RPSKINLEGACY case. (use matfx310 if required)
#SKYPIPEDIRS +=					\
#	sky2/SKY2_SkinAlphaBlender		\
#	sky2/SKY2_SkinBumpEnvMap		\
#	sky2/SKY2_SkinBumpMapping		\
#	sky2/SKY2_SkinGlosEnvMap

sky2HDRS += $(addsuffix /stddata.h,$(SKYPIPEDIRS))

#
# Make the plugin
#

include ../makeplug

#
# Add platform specific search/include paths.
# 'null' is used for all null targets (nullgcn etc).
#

$(RPGCNHEAD): gcn/rpmfxgcn.h
	$(CP) $< $@

$(RPXBOXHEAD): xbox/rpmfxxbx.h
	$(CP) $< $@

ifeq ($(RWTARGET),nullgcn)
VPATH  += ./gcn
CFLAGS += -I./gcn
endif

ifeq ($(findstring null,$(RWTARGET)),null)
VPATH  += ./null ./xbox
CFLAGS += -I./null -I./xbox
else
VPATH  += ./$(RWTARGET)
CFLAGS += -I./$(RWTARGET)
endif

ifeq ($(RWTARGET),sky2)

VPATH  += $(SKYPIPEDIRS)
CFLAGS += $(addprefix -I,$(SKYPIPEDIRS))
DVPASMFLAGS += -I./sky2

# Rule for stddata.h headers
%stddata.h : %stddata.i %stddata.sed
	sed -f $*stddata.sed $< > $@

endif


