src/Makefile
branchpyrit
changeset 63 440e1ae80459
parent 62 07c2f8084719
child 64 5785cca4cdb9
equal deleted inserted replaced
62:07c2f8084719 63:440e1ae80459
     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 sampler.o noise.o container.o kdtree.o octree.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)" CCFLAGS="$(CCFLAGS) -fsingle-precision-constant"
       
    18 
       
    19 libs-double:
       
    20 	mkdir -p $(ROOT)/bin/$@
       
    21 	$(MAKE) -C $(ROOT)/bin/$@ -f $(ROOT)/src/Makefile libs ROOT="$(ROOT)" CCFLAGS="$(CCFLAGS) -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 $@ $(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 sampler.h vector.h noise.h common.h
       
    46 sampler.o: sampler.cc sampler.h vector.h common.h
       
    47 container.o: container.cc container.h scene.h common.h
       
    48 kdtree.o: kdtree.cc kdtree.h scene.h common.h
       
    49 octree.o: octree.cc octree.h scene.h common.h
       
    50 raytracer.o: raytracer.cc raytracer.h scene.h vector.h noise.h common.h
       
    51 
       
    52 raytracermodule.o: raytracermodule.cc $(LIBOBJS)
       
    53 	$(CXX) -c -o $@ $(CCFLAGS) $(PY_CCFLAGS) $<