equal
deleted
inserted
replaced
18 |
18 |
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-0.2 |
23 DIST_NAME = pngtile-${shell hg id -i} |
24 DIST_RESOURCES = README $(shell "echo python/*.{py,pyx}") |
24 DIST_DEPS = python/pypngtile.c |
|
25 DIST_RESOURCES = README python/ pngtile/ static/ bin/ |
25 |
26 |
26 all: depend lib/libpngtile.so bin/pngtile |
27 all: depend lib/libpngtile.so bin/pngtile lib/pypngtile.so |
27 |
28 |
28 lib/libpngtile.so : \ |
29 lib/libpngtile.so : \ |
29 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 \ |
30 build/obj/shared/util.o build/obj/shared/log.o |
31 build/obj/shared/util.o build/obj/shared/log.o |
31 |
32 |
48 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
49 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS)) |
49 SRC_DIRS = $(dir $(SRC_NAMES)) |
50 SRC_DIRS = $(dir $(SRC_NAMES)) |
50 |
51 |
51 .PHONY : dirs clean depend dist |
52 .PHONY : dirs clean depend dist |
52 |
53 |
|
54 dist-clean : clean dirs |
|
55 |
53 dirs: |
56 dirs: |
54 mkdir -p bin lib dist |
57 mkdir -p bin lib dist |
55 mkdir -p $(SRC_DIRS:%=build/deps/%) |
58 mkdir -p $(SRC_DIRS:%=build/deps/%) |
56 mkdir -p $(SRC_DIRS:%=build/obj/%) |
59 mkdir -p $(SRC_DIRS:%=build/obj/%) build/obj/python |
57 |
60 |
58 clean: |
61 clean: |
59 rm -f build/obj/*/*.o build/deps/*/*.d |
62 rm -f build/obj/*/*.o build/deps/*/*.d |
60 rm -f bin/{pngtile,pngtile-static} lib/libpngtile.{a,so} run/* |
63 rm -f bin/pngtile bin/pngtile-static lib/*.so lib/*.a |
61 rm -rf dist/* |
64 rm -f pngtile/*.pyc |
|
65 rm -f */.*.swp */*/.*.swp |
62 |
66 |
63 # .h dependencies |
67 # .h dependencies |
64 depend: $(SRC_NAMES:%.c=build/deps/%.d) |
68 depend: $(SRC_NAMES:%.c=build/deps/%.d) |
65 |
69 |
66 build/deps/%.d : src/%.c |
70 build/deps/%.d : src/%.c |
93 $(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
97 $(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
94 |
98 |
95 lib/lib%.a : |
99 lib/lib%.a : |
96 $(AR) rc $@ $+ |
100 $(AR) rc $@ $+ |
97 |
101 |
98 build/pyx/%.c : src/py/%.pyx |
102 python/%.c : python/%.pyx |
99 cython -o $@ $< |
103 cython -o $@ $< |
100 |
104 |
101 build/obj/py/%.o : build/pyx/%.c |
105 build/obj/python/%.o : python/%.c |
102 $(CC) -c $(CPPFLAGS) $(CFLAGS) $< -o $@ |
106 $(CC) -c -fPIC -I/usr/include/python2.5 $(CPPFLAGS) $(CFLAGS) $< -o $@ |
103 |
107 |
104 lib/py%.so : build/obj/py/%.o |
108 lib/py%.so : build/obj/python/py%.o |
105 $(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
109 $(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@ |
106 |
110 |
107 dist: |
111 dist: $(DIST_DEPS) |
|
112 rm -rf dist/$(DIST_NAME) |
108 mkdir -p dist/$(DIST_NAME) |
113 mkdir -p dist/$(DIST_NAME) |
109 cp -rv Makefile $(DIST_RESOURCES) src/ include/ dist/$(DIST_NAME)/ |
114 cp -rv Makefile $(DIST_RESOURCES) src/ include/ dist/$(DIST_NAME)/ |
110 rm dist/$(DIST_NAME)/src/*/.*.sw[op] |
115 make -C dist/$(DIST_NAME) dist-clean |
111 make -C dist/$(DIST_NAME) dirs |
|
112 tar -C dist -czvf dist/$(DIST_NAME).tar.gz $(DIST_NAME) |
116 tar -C dist -czvf dist/$(DIST_NAME).tar.gz $(DIST_NAME) |
113 @echo "*** Output at dist/$(DIST_NAME).tar.gz" |
117 @echo "*** Output at dist/$(DIST_NAME).tar.gz" |
114 |
118 |