author | Tero Marttila <terom@qmsk.net> |
Fri, 03 Oct 2014 21:34:08 +0300 | |
changeset 155 | cda90b8d94b8 |
parent 132 | 0260aeca943c |
child 156 | 01a05c807e82 |
permissions | -rw-r--r-- |
155 | 1 |
# debug |
35 | 2 |
CFLAGS_DBG = -g |
155 | 3 |
LDFLAGS_DBG = |
4 |
||
5 |
# profile |
|
99
fa21919d105f
support for profiling - although it's absolutely useless here
Tero Marttila <terom@fixme.fi>
parents:
95
diff
changeset
|
6 |
CFLAGS_PRF = -g -O2 -pg |
fa21919d105f
support for profiling - although it's absolutely useless here
Tero Marttila <terom@fixme.fi>
parents:
95
diff
changeset
|
7 |
LDFLAGS_PRF = -pg |
35 | 8 |
|
155 | 9 |
# release |
10 |
CFLAGS_REL = -O2 |
|
11 |
LDFLAGS_REL = |
|
0 | 12 |
|
13 |
# preprocessor flags |
|
16
6e781cf3d459
move public headers to include/, python stuff to python/ sub-dir
Tero Marttila <terom@fixme.fi>
parents:
4
diff
changeset
|
14 |
CPPFLAGS = -Iinclude -Isrc/ |
155 | 15 |
CFLAGS = -Wall -std=gnu99 -fPIC -pthread ${CFLAGS_REL} |
16 |
LDFLAGS = ${LDFLAGS_ALL} ${LDFLAGS_REL} |
|
17 |
LDLIBS = -lpng -lpthread |
|
0 | 18 |
|
155 | 19 |
all: build lib bin lib/libpngtile.so bin/pngtile |
1
f3cde3db1fef
basic image/cache code compiles
Tero Marttila <terom@fixme.fi>
parents:
0
diff
changeset
|
20 |
|
155 | 21 |
# binary deps |
22 |
lib/libpngtile.so : \ |
|
23 |
build/lib/ctx.o build/lib/image.o build/lib/cache.o build/lib/tile.o build/lib/png.o build/lib/error.o \ |
|
24 |
build/shared/util.o build/shared/log.o |
|
25 |
||
26 |
lib/libpngtile.a : \ |
|
27 |
build/lib/ctx.o build/lib/image.o build/lib/cache.o build/lib/tile.o build/lib/png.o build/lib/error.o \ |
|
28 |
build/shared/util.o build/shared/log.o |
|
29 |
||
30 |
bin/pngtile : \ |
|
31 |
build/pngtile/main.o \ |
|
32 |
lib/libpngtile.so build/shared/log.o |
|
33 |
||
34 |
bin/pngtile-static : \ |
|
35 |
build/pngtile/main.o \ |
|
36 |
lib/libpngtile.a |
|
37 |
||
38 |
SRC_PATHS = $(wildcard src/*/*.c) |
|
39 |
SRC_DIRS = $(dir $(SRC_PATHS)) |
|
40 |
||
41 |
build: |
|
42 |
mkdir -p $(SRC_DIRS:src/%=build/%) |
|
43 |
||
44 |
lib: |
|
45 |
mkdir -p lib |
|
46 |
||
47 |
bin: |
|
48 |
mkdir -p bin |
|
49 |
||
50 |
# build obj files from src, with header deps |
|
51 |
build/%.o: src/%.c |
|
52 |
$(CC) -c $(CPPFLAGS) $(CFLAGS) src/$*.c -o build/$*.o |
|
53 |
$(CC) -MM $(CPPFLAGS) src/$*.c -MT build/$*.o -MF build/$*.d |
|
54 |
||
55 |
-include $(wildcard build/*/*.d) |
|
56 |
||
57 |
# output libraries |
|
58 |
lib/lib%.so: |
|
59 |
$(CC) -shared $(LDFLAGS) $+ $(LDLIBS) -o $@ |
|
60 |
||
61 |
lib/lib%.a: |
|
62 |
$(AR) rc $@ $+ |
|
63 |
||
64 |
# output binaries |
|
65 |
bin/%: |
|
66 |
$(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS) |
|
67 |
||
68 |
clean: |
|
69 |
rm -f build/*/*.o build/*/*.d |
|
70 |
rm -f bin/pngtile bin/pngtile-static lib/*.so lib/*.a |
|
71 |
||
72 |
# dist builds |
|
119 | 73 |
DIST_NAME = pngtile-${shell hg id -i} |
132
0260aeca943c
cleanup readme, drop pypngtile bits from Makefile, fixup setup.py for pypngtile
Tero Marttila <terom@paivola.fi>
parents:
122
diff
changeset
|
74 |
DIST_DEPS = |
0260aeca943c
cleanup readme, drop pypngtile bits from Makefile, fixup setup.py for pypngtile
Tero Marttila <terom@paivola.fi>
parents:
122
diff
changeset
|
75 |
DIST_RESOURCES = README pngtile/ static/ bin/ |
0 | 76 |
|
155 | 77 |
dist-clean: clean dirs |
0 | 78 |
|
155 | 79 |
dist: dist-clean $(DIST_DEPS) |
80 |
mkdir -p dist |
|
118 | 81 |
rm -rf dist/$(DIST_NAME) |
0 | 82 |
mkdir -p dist/$(DIST_NAME) |
118 | 83 |
cp -rv Makefile $(DIST_RESOURCES) src/ include/ dist/$(DIST_NAME)/ |
84 |
make -C dist/$(DIST_NAME) dist-clean |
|
0 | 85 |
tar -C dist -czvf dist/$(DIST_NAME).tar.gz $(DIST_NAME) |
86 |
@echo "*** Output at dist/$(DIST_NAME).tar.gz" |
|
87 |
||
155 | 88 |
|
89 |
.PHONY : dirs clean depend dist-clean dist |