src/Makefile
branchpyrit
changeset 22 76b7bd51d64a
child 24 d0d76e8a5203
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Makefile	Mon Dec 03 01:49:23 2007 +0100
@@ -0,0 +1,50 @@
+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 kdtree.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)"
+
+libs-double:
+	mkdir -p $(ROOT)/bin/$@
+	$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile libs ROOT="$(ROOT)" DEFS="$(DEFS) -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 $@ $(DEFS) $(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
+kdtree.o: kdtree.cc kdtree.h scene.h common.h
+raytracer.o: raytracer.cc raytracer.h scene.h vector.h noise.h common.h
+
+raytracermodule.o: raytracermodule.cc raytracer.h scene.h vector.h common.h
+	$(CXX) -c -o $@ $(DEFS) $(CCFLAGS) $(PY_CCFLAGS) $<