Makefile
author Radek Brich <radek.brich@devl.cz>
Mon, 26 Nov 2007 23:12:40 +0100
branchpyrit
changeset 19 4e0955fca797
parent 17 5176ba000a67
child 22 76b7bd51d64a
permissions -rw-r--r--
added Camera, currently w/o Python binding new #define option: OVERSAMPLING fixed all demos to work with new camera (they had inverted z axis)

CCFLAGS=-I./src -Wall -Wno-write-strings -fno-strict-aliasing -DPTHREADS
LDFLAGS=

ifeq ($(OS), Windows_NT)
  CCFLAGS+=-I"C:/Program Files/Python25/include"
  LDFLAGS+=-L"C:\Program Files\Python25\libs" -lpython25 -lpthreadGC2
  MODULENAME=raytracer.pyd
else
  CCFLAGS+=-pthread -fPIC `python-config --includes`
  MODULENAME=raytracermodule.so
endif

# optimizations
#CCFLAGS+=-g -O0
CCFLAGS+=-O3 -pipe -fomit-frame-pointer -ffast-math -msse3


# TARGETS
#########

all: python-module

python-module: $(MODULENAME)

tests: testvector testmatrix

clean:
	rm -f *.o $(MODULENAME)


# RULES
#######

%.o: src/%.cc
	$(CXX) -c -o $@ src/$*.cc $(CCFLAGS)

test%: tests/%.cc
	$(CXX) -o $@ tests/$*.cc $(CCFLAGS)
	./$@


# DEPENDENCIES
##############

# C++ raytracer
vector.o: src/vector.cc src/vector.h
matrix.o: src/matrix.cc src/matrix.h src/vector.h
noise.o: src/noise.cc src/noise.h
scene.o: src/scene.cc src/scene.h src/vector.h src/noise.h src/common.h
kdtree.o: src/kdtree.cc src/kdtree.h src/scene.h
raytracer.o: src/raytracer.cc src/raytracer.h src/scene.h src/vector.h src/noise.h

# python module
raytracermodule.o: src/raytracermodule.cc src/raytracer.h src/scene.h src/vector.h
$(MODULENAME): raytracermodule.o raytracer.o scene.o noise.o kdtree.o
	$(CXX) $^ -shared -o $@ $(LDFLAGS)

# library tests
testvector: tests/vector.cc src/vector.h