Makefile
changeset 118 dc77a9f66f59
parent 116 6841b56e128b
child 119 56cf0a330b5b
equal deleted inserted replaced
117:2da34e3aa885 118:dc77a9f66f59
    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-0.2
    24 DIST_RESOURCES = README $(shell "echo python/*.{py,pyx}")
    24 DIST_RESOURCES = README python/ pngtile/ static/ bin/
    25 
    25 
    26 all: depend lib/libpngtile.so bin/pngtile
    26 all: depend lib/libpngtile.so bin/pngtile
    27 
    27 
    28 lib/libpngtile.so : \
    28 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 \
    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 \
    48 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS))
    48 SRC_NAMES = $(patsubst src/%,%,$(SRC_PATHS))
    49 SRC_DIRS = $(dir $(SRC_NAMES))
    49 SRC_DIRS = $(dir $(SRC_NAMES))
    50 
    50 
    51 .PHONY : dirs clean depend dist
    51 .PHONY : dirs clean depend dist
    52 
    52 
       
    53 dist-clean : clean dirs
       
    54 
    53 dirs: 
    55 dirs: 
    54 	mkdir -p bin lib dist
    56 	mkdir -p bin lib dist
    55 	mkdir -p $(SRC_DIRS:%=build/deps/%)
    57 	mkdir -p $(SRC_DIRS:%=build/deps/%)
    56 	mkdir -p $(SRC_DIRS:%=build/obj/%) build/obj/python
    58 	mkdir -p $(SRC_DIRS:%=build/obj/%) build/obj/python
    57 
    59 
    58 clean:
    60 clean:
    59 	rm -f build/obj/*/*.o build/deps/*/*.d build/pyx/*.c
    61 	rm -f build/obj/*/*.o build/deps/*/*.d
    60 	rm -f bin/{pngtile,pngtile-static} lib/libpngtile.{a,so} run/*
    62 	rm -f bin/pngtile bin/pngtile-static lib/libpngtile.{a,so} run/*
    61 	rm -rf dist/*
    63 	rm -f pngtile/*.pyc 
       
    64 	rm -f */.*.swp
    62 
    65 
    63 # .h dependencies
    66 # .h dependencies
    64 depend: $(SRC_NAMES:%.c=build/deps/%.d)
    67 depend: $(SRC_NAMES:%.c=build/deps/%.d)
    65 
    68 
    66 build/deps/%.d : src/%.c
    69 build/deps/%.d : src/%.c
   103 
   106 
   104 lib/py%.so : build/obj/python/py%.o
   107 lib/py%.so : build/obj/python/py%.o
   105 	$(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
   108 	$(CC) -shared $(LDFLAGS) $+ $(LOADLIBES) $(LDLIBS) -o $@
   106 
   109 
   107 dist:
   110 dist:
       
   111 	rm -rf dist/$(DIST_NAME)
   108 	mkdir -p dist/$(DIST_NAME)
   112 	mkdir -p dist/$(DIST_NAME)
   109 	cp -rv Makefile $(DIST_RESOURCES) src/ include/ dist/$(DIST_NAME)/
   113 	cp -rv Makefile $(DIST_RESOURCES) src/ include/  dist/$(DIST_NAME)/
   110 	rm dist/$(DIST_NAME)/src/*/.*.sw[op]
   114 	rm dist/$(DIST_NAME)/src/*/.*.sw[op]
   111 	make -C dist/$(DIST_NAME) dirs
   115 	make -C dist/$(DIST_NAME) dist-clean
   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