# Object files
RAYTRACEROBJS = $(OUTRENDER)/AbstractBVH.o $(OUTRENDER)/AbstractRenderer.o $(OUTRENDER)/BVHBottom.o $(OUTRENDER)/BVHTop.o $(OUTRENDER)/BVHOptimizer.o \
	$(OUTRENDER)/BVHBuilder.o $(OUTRENDER)/BVHBinnedBuilder.o $(OUTRENDER)/BVHSAHBuilder.o $(OUTRENDER)/FPSSampler.o $(OUTRENDER)/HaltonSampler.o \
	$(OUTRENDER)/MaterialCache.o $(OUTRENDER)/PathRenderer.o $(OUTRENDER)/RayBundle.o $(OUTRENDER)/RayCaster.o $(OUTRENDER)/RayStream.o \
	$(OUTRENDER)/RayTracer.o $(OUTRENDER)/TextureMap.o $(OUTRENDER)/UniformSampler.o $(OUTRENDER)/WhittedRenderer.o $(OUTRENDER)/WhittedRendererWorker.o
	
RAYTRACERSPECOBJS = $(OUTRENDER)/rt_filter.vert $(OUTRENDER)/rt_filter.frag

ifeq ("$(BASE_MODULES)", "internal")
LIBOBJS += $(RAYTRACEROBJS)
SPECCFLAGS+=-DRAYTRACER_INTERNAL
#SPECLFLAGS+=-lOpenCL
SPECOBJS += $(RAYTRACERSPECOBJS)
else
MODULES += $(OUTRENDER)/RayTracer.so
$(OUTRENDER)/RayTracer.so: $(RAYTRACEROBJS) $(RAYTRACERSPECOBJS) ../bin/libvrut.a
	$(LINK) $(LFLAGS) $(SPECLFLAGS) -shared -Wl,-soname,RayTracer.so.1 -o $(OUTRENDER)/RayTracer.so $(RAYTRACEROBJS) -L../bin -lvrut
endif

$(OUTRENDER)/%.o : ../base_modules/RayTracer/%.cpp
	$(CC) $(CFLAGS) $(SPECCFLAGS) -std=c++0x $< -o $@

# Copy shaders
$(OUTRENDER)/%.frag : ../base_modules/RayTracer/shaders/%.frag
	cp $< $(OUTRENDER)

$(OUTRENDER)/%.vert : ../base_modules/RayTracer/shaders/%.vert
	cp $< $(OUTRENDER)
	