ifndef $(ROOT)
	ROOT=$(shell pwd)/..
endif

include $(ROOT)/config.mk

### single precision
#RTLIBS=libs-float
#CCFLAGS+=-fsingle-precision-constant

### double precision
RTLIBS=libs-double
CCFLAGS+=-DPYRIT_DOUBLE


### Rules ###
%.o: %.cc
	$(CXX) -c -o $@ $(CCFLAGS) $(SDL_CCFLAGS) $<

%: %.o
	$(CXX) -o $@ $(ROOT)/bin/$(RTLIBS)/*.o $< image.o $(LDFLAGS) $(SDL_LDFLAGS) -lpng

### Targets ###
all: realtime realtime_dragon realtime_bunny spheres_shadow textures

realtime: realtime.o $(RTLIBS) image.o
realtime_dragon: realtime_dragon.o $(RTLIBS) image.o
realtime_bunny: realtime_bunny.o $(RTLIBS) image.o
spheres_shadow: spheres_shadow.o $(RTLIBS) image.o
textures: textures.o $(RTLIBS) image.o

realtime.o: realtime.cc common_sdl.h
realtime_dragon.o: realtime_dragon.cc common_sdl.h common_ply.h
realtime_bunny.o: realtime_bunny.cc common_sdl.h common_ply.h
spheres_shadow.o: spheres_shadow.cc common_sdl.h
textures.o: textures.cc common_sdl.h

libs-float:
	$(MAKE) -C ../src libs-float

libs-double:
	$(MAKE) -C ../src libs-double

image.o: image.c
	$(CXX) -c -o $@ $*.c

clean:
	rm -f realtime realtime_dragon realtime_bunny spheres_shadow textures *.o

distclean: clean
	rm -rf *.png
