src/Makefile
branchpyrit
changeset 22 76b7bd51d64a
child 24 d0d76e8a5203
equal deleted inserted replaced
21:79b516a3803d 22:76b7bd51d64a
       
     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) $<