22
|
1 |
ifndef $(ROOT)
|
|
2 |
ROOT=$(shell pwd)/..
|
|
3 |
endif
|
|
4 |
|
|
5 |
include $(ROOT)/config.mk
|
|
6 |
|
|
7 |
vpath %.cc $(ROOT)/src
|
|
8 |
vpath %.h $(ROOT)/include
|
|
9 |
LIBOBJS=raytracer.o scene.o noise.o kdtree.o
|
|
10 |
CCFLAGS+=-I$(ROOT)/include
|
|
11 |
|
|
12 |
### Targets ###
|
|
13 |
all: libs-float libs-double python-module
|
|
14 |
|
|
15 |
libs-float:
|
|
16 |
mkdir -p $(ROOT)/bin/$@
|
|
17 |
$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile libs ROOT="$(ROOT)"
|
|
18 |
|
|
19 |
libs-double:
|
|
20 |
mkdir -p $(ROOT)/bin/$@
|
|
21 |
$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile libs ROOT="$(ROOT)" DEFS="$(DEFS) -DPYRIT_DOUBLE"
|
|
22 |
|
|
23 |
libs: $(LIBOBJS)
|
|
24 |
|
|
25 |
python-module: libs-float
|
|
26 |
mkdir -p $(ROOT)/bin/$@
|
|
27 |
$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile $(MODULENAME) ROOT="$(ROOT)"
|
|
28 |
|
|
29 |
$(MODULENAME): raytracermodule.o
|
|
30 |
$(CXX) -shared -o $@ $< $(ROOT)/bin/libs-float/*.o $(LDFLAGS) $(PY_LDFLAGS)
|
|
31 |
|
|
32 |
clean:
|
|
33 |
rm -rf $(ROOT)/bin/libs-*
|
|
34 |
rm -rf $(ROOT)/bin/python-module
|
|
35 |
|
|
36 |
|
|
37 |
### Rules ###
|
|
38 |
%.o: %.cc
|
|
39 |
$(CXX) -c -o $@ $(DEFS) $(CCFLAGS) $<
|
|
40 |
|
|
41 |
|
|
42 |
### Dependencies ###
|
|
43 |
matrix.o: matrix.cc matrix.h vector.h common.h
|
|
44 |
noise.o: noise.cc noise.h common.h
|
|
45 |
scene.o: scene.cc scene.h vector.h noise.h common.h
|
|
46 |
kdtree.o: kdtree.cc kdtree.h scene.h common.h
|
|
47 |
raytracer.o: raytracer.cc raytracer.h scene.h vector.h noise.h common.h
|
|
48 |
|
|
49 |
raytracermodule.o: raytracermodule.cc raytracer.h scene.h vector.h common.h
|
|
50 |
$(CXX) -c -o $@ $(DEFS) $(CCFLAGS) $(PY_CCFLAGS) $<
|