src/Makefile
author Radek Brich <radek.brich@devl.cz>
Thu, 03 Jan 2008 18:06:34 +0100
branchpyrit
changeset 44 3763b26244f0
parent 41 c1080cb5bd6d
child 47 320d5d466864
permissions -rw-r--r--
MIT license for sources update README, DEVNOTES and TODO

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

include $(ROOT)/config.mk

vpath %.cc $(ROOT)/src
vpath %.h $(ROOT)/include
LIBOBJS=raytracer.o scene.o noise.o container.o kdtree.o octree.o
CCFLAGS+=-I$(ROOT)/include

### Targets ###
all: libs-float libs-double python-module

libs-float:
	mkdir -p $(ROOT)/bin/$@
	$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile libs ROOT="$(ROOT)" CCFLAGS="$(CCFLAGS) -fsingle-precision-constant"

libs-double:
	mkdir -p $(ROOT)/bin/$@
	$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile libs ROOT="$(ROOT)" CCFLAGS="$(CCFLAGS) -DPYRIT_DOUBLE"

libs: $(LIBOBJS)

python-module: libs-float
	mkdir -p $(ROOT)/bin/$@
	$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile $(MODULENAME) ROOT="$(ROOT)"

$(MODULENAME): raytracermodule.o
	$(CXX) -shared -o $@ $< $(ROOT)/bin/libs-float/*.o $(LDFLAGS) $(PY_LDFLAGS)

clean:
	rm -rf $(ROOT)/bin/libs-*
	rm -rf $(ROOT)/bin/python-module


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


### Dependencies ###
matrix.o: matrix.cc matrix.h vector.h common.h
noise.o: noise.cc noise.h common.h
scene.o: scene.cc scene.h vector.h noise.h common.h
container.o: container.cc container.h scene.h common.h
kdtree.o: kdtree.cc kdtree.h scene.h common.h
octree.o: octree.cc octree.h scene.h common.h
raytracer.o: raytracer.cc raytracer.h scene.h vector.h noise.h common.h

raytracermodule.o: raytracermodule.cc $(LIBOBJS)
	$(CXX) -c -o $@ $(CCFLAGS) $(PY_CCFLAGS) $<