Makefile
changeset 156 01a05c807e82
parent 155 cda90b8d94b8
child 158 bf220c415cc0
--- a/Makefile	Fri Oct 03 21:34:08 2014 +0300
+++ b/Makefile	Fri Oct 03 22:52:35 2014 +0300
@@ -1,6 +1,8 @@
+PREFIX = opt
+
 # debug
-CFLAGS_DBG = -g
-LDFLAGS_DBG = 
+CFLAGS_DEV = -g
+LDFLAGS_DEV = -Wl,-Rlib
 
 # profile
 CFLAGS_PRF = -g -O2 -pg
@@ -8,30 +10,31 @@
 
 # release
 CFLAGS_REL = -O2
-LDFLAGS_REL =
+LDFLAGS_REL = -Wl,-R${PREFIX}/lib
 
 # preprocessor flags
-CPPFLAGS = -Iinclude -Isrc/
+CPPFLAGS = -Iinclude -Isrc
 CFLAGS = -Wall -std=gnu99 -fPIC -pthread ${CFLAGS_REL}
-LDFLAGS = ${LDFLAGS_ALL} ${LDFLAGS_REL}
-LDLIBS = -lpng -lpthread
+LDFLAGS = -Llib ${LDFLAGS_REL}
+LDLIBS_LIB = -lpng -lpthread
+LDLIBS_BIN = -lpngtile
 
 all: build lib bin lib/libpngtile.so bin/pngtile
 
 # binary deps
-lib/libpngtile.so : \
+lib/libpngtile.so: \
 	build/lib/ctx.o build/lib/image.o build/lib/cache.o build/lib/tile.o build/lib/png.o build/lib/error.o \
 	build/shared/util.o build/shared/log.o
 
-lib/libpngtile.a : \
+lib/libpngtile.a: \
 	build/lib/ctx.o build/lib/image.o build/lib/cache.o build/lib/tile.o build/lib/png.o build/lib/error.o \
 	build/shared/util.o build/shared/log.o
 
-bin/pngtile : \
+bin/pngtile: \
 	build/pngtile/main.o \
 	lib/libpngtile.so build/shared/log.o
 
-bin/pngtile-static : \
+bin/pngtile-static: \
 	build/pngtile/main.o \
 	lib/libpngtile.a
 
@@ -56,19 +59,30 @@
 
 # output libraries
 lib/lib%.so:
-	$(CC) -shared $(LDFLAGS) $+ $(LDLIBS) -o $@
+	$(CC) -shared $(LDFLAGS) $+ $(LDLIBS_LIB) -o $@
 
 lib/lib%.a:
 	$(AR) rc $@ $+
 
 # output binaries
 bin/%:
-	$(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS)
+	$(CC) $(LDFLAGS) $+ -o $@ $(LDLIBS_BIN)
 
 clean:
 	rm -f build/*/*.o build/*/*.d
 	rm -f bin/pngtile bin/pngtile-static lib/*.so lib/*.a
 
+# install
+INSTALL_INCLUDE = include/pngtile.h
+INSTALL_LIB = lib/libpngtile.so
+INSTALL_BIN = bin/pngtile
+
+install: $(INSTALL_INCLUDE) $(INSTALL_LIB) $(INSTALL_BIN)
+	install -d $(PREFIX)/bin $(PREFIX)/lib $(PREFIX)/include
+	install -t $(PREFIX)/include $(INSTALL_INCLUDE)
+	install -t $(PREFIX)/lib $(INSTALL_LIB)
+	install -t $(PREFIX)/bin $(INSTALL_BIN)
+
 # dist builds
 DIST_NAME = pngtile-${shell hg id -i}
 DIST_DEPS = 
@@ -85,5 +99,4 @@
 	tar -C dist -czvf dist/$(DIST_NAME).tar.gz $(DIST_NAME)
 	@echo "*** Output at dist/$(DIST_NAME).tar.gz"
 
-
 .PHONY : dirs clean depend dist-clean dist