Makefile
changeset 132 0260aeca943c
parent 122 8e4ff23e33f5
child 155 cda90b8d94b8
equal deleted inserted replaced
131:4e6e067b3472 132:0260aeca943c
    19 # libraries to use
    19 # libraries to use
    20 LOADLIBES = -lpng -lpthread
    20 LOADLIBES = -lpng -lpthread
    21 
    21 
    22 # output name
    22 # output name
    23 DIST_NAME = pngtile-${shell hg id -i}
    23 DIST_NAME = pngtile-${shell hg id -i}
    24 DIST_DEPS = python/pypngtile.c
    24 DIST_DEPS = 
    25 DIST_RESOURCES = README python/ pngtile/ static/ bin/
    25 DIST_RESOURCES = README pngtile/ static/ bin/
    26 
    26 
    27 all: depend lib/libpngtile.so bin/pngtile lib/pypngtile.so
    27 all: depend lib/libpngtile.so bin/pngtile
    28 
    28 
    29 lib/libpngtile.so : \
    29 lib/libpngtile.so : \
    30 	build/obj/lib/ctx.o build/obj/lib/image.o build/obj/lib/cache.o build/obj/lib/tile.o build/obj/lib/png.o build/obj/lib/error.o \
    30 	build/obj/lib/ctx.o build/obj/lib/image.o build/obj/lib/cache.o build/obj/lib/tile.o build/obj/lib/png.o build/obj/lib/error.o \
    31 	build/obj/shared/util.o build/obj/shared/log.o
    31 	build/obj/shared/util.o build/obj/shared/log.o
    32 
    32 
    33 lib/libpngtile.a : \
    33 lib/libpngtile.a : \
    34 	build/obj/lib/ctx.o build/obj/lib/image.o build/obj/lib/cache.o build/obj/lib/tile.o build/obj/lib/png.o build/obj/lib/error.o \
    34 	build/obj/lib/ctx.o build/obj/lib/image.o build/obj/lib/cache.o build/obj/lib/tile.o build/obj/lib/png.o build/obj/lib/error.o \
    35 	build/obj/shared/util.o build/obj/shared/log.o
    35 	build/obj/shared/util.o build/obj/shared/log.o
    36 
       
    37 lib/pypngtile.so : \
       
    38 	lib/libpngtile.so
       
    39 
    36 
    40 bin/pngtile : \
    37 bin/pngtile : \
    41 	build/obj/pngtile/main.o \
    38 	build/obj/pngtile/main.o \
    42 	lib/libpngtile.so build/obj/shared/log.o
    39 	lib/libpngtile.so build/obj/shared/log.o
    43 
    40 
    54 dist-clean : clean dirs
    51 dist-clean : clean dirs
    55 
    52 
    56 dirs: 
    53 dirs: 
    57 	mkdir -p bin lib dist
    54 	mkdir -p bin lib dist
    58 	mkdir -p $(SRC_DIRS:%=build/deps/%)
    55 	mkdir -p $(SRC_DIRS:%=build/deps/%)
    59 	mkdir -p $(SRC_DIRS:%=build/obj/%) build/obj/python
    56 	mkdir -p $(SRC_DIRS:%=build/obj/%)
    60 
    57 
    61 clean:
    58 clean:
    62 	rm -f build/obj/*/*.o build/deps/*/*.d
    59 	rm -f build/obj/*/*.o build/deps/*/*.d
    63 	rm -f bin/pngtile bin/pngtile-static lib/*.so lib/*.a
    60 	rm -f bin/pngtile bin/pngtile-static lib/*.so lib/*.a
    64 	rm -f pngtile/*.pyc 
       
    65 	rm -f */.*.swp */*/.*.swp
    61 	rm -f */.*.swp */*/.*.swp
    66 
    62 
    67 # .h dependencies
    63 # .h dependencies
    68 depend: $(SRC_NAMES:%.c=build/deps/%.d)
    64 depend: $(SRC_NAMES:%.c=build/deps/%.d)
    69 
    65 
    97 	$(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
    93 	$(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
    98 
    94 
    99 lib/lib%.a :
    95 lib/lib%.a :
   100 	$(AR) rc $@ $+
    96 	$(AR) rc $@ $+
   101 
    97 
   102 python/%.c : python/%.pyx
       
   103 	cython -o $@ $<
       
   104 
       
   105 build/obj/python/%.o : python/%.c
       
   106 	$(CC) -c -fPIC -I/usr/include/python2.5 $(CPPFLAGS) $(CFLAGS) $< -o $@
       
   107 
       
   108 lib/py%.so : build/obj/python/py%.o
       
   109 	$(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
       
   110 
       
   111 dist: $(DIST_DEPS)
    98 dist: $(DIST_DEPS)
   112 	rm -rf dist/$(DIST_NAME)
    99 	rm -rf dist/$(DIST_NAME)
   113 	mkdir -p dist/$(DIST_NAME)
   100 	mkdir -p dist/$(DIST_NAME)
   114 	cp -rv Makefile $(DIST_RESOURCES) src/ include/  dist/$(DIST_NAME)/
   101 	cp -rv Makefile $(DIST_RESOURCES) src/ include/  dist/$(DIST_NAME)/
   115 	make -C dist/$(DIST_NAME) dist-clean
   102 	make -C dist/$(DIST_NAME) dist-clean