Mercurial > hg > audiodb
changeset 611:957dd4fb2599
Update install target to be mildly useful
- parametrize install location in the normal PREFIX / EXEC_PREFIX way;
- write and use an install-time pkg-config file generator;
- rearrange the SONAME stuff so that ldconfig -n does roughly the right thing;
- install the manpage while we're at it.
author | mas01cr |
---|---|
date | Tue, 01 Sep 2009 14:17:55 +0000 |
parents | e21a3db643af |
children | c80ade092d7a |
files | Makefile make-pc.sh |
diffstat | 2 files changed, 40 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Fri Aug 28 17:14:06 2009 +0000 +++ b/Makefile Tue Sep 01 14:17:55 2009 +0000 @@ -6,7 +6,12 @@ GSL_INCLUDE= GSOAP_INCLUDE= -SHARED_LIB_FLAGS=-shared -Wl,-soname, +PREFIX=/usr/local +EXEC_PREFIX=$(PREFIX) +LIBDIR=$(EXEC_PREFIX)/lib +BINDIR=$(EXEC_PREFIX)/bin +INCLUDEDIR=$(PREFIX)/include +MANDIR=$(PREFIX)/share/man LIBOBJS=lock.o pointpair.o create.o open.o power.o l2norm.o insert.o status.o query.o dump.o close.o index-utils.o query-indexed.o liszt.o retrieve.o lshlib.o OBJS=$(LIBOBJS) index.o soap.o sample.o cmdline.o audioDB.o common.o @@ -16,6 +21,7 @@ SOVERSION=0 MINORVERSION=0 LIBRARY=lib$(EXECUTABLE).so.$(SOVERSION).$(MINORVERSION) +SHARED_LIB_FLAGS=-shared -Wl,-soname,lib$(EXECUTABLE).so.$(SOVERSION) override CFLAGS+=-g -O3 -fPIC @@ -33,13 +39,13 @@ ifeq ($(shell sysctl -n hw.optional.x86_64),1) override CFLAGS+=-arch x86_64 endif -override SHARED_LIB_FLAGS=-dynamiclib -current_version $(SOVERSION).$(MINORVERSION) -Wl -install_name override LIBRARY=lib$(EXECUTABLE).$(SOVERSION).$(MINORVERSION).dylib +override SHARED_LIB_FLAGS=-dynamiclib -current_version $(SOVERSION) -Wl -install_name $(LIBRARY) endif -.PHONY: all clean test +.PHONY: all clean test install $(EXECUTABLE).pc -all: $(LIBRARY) $(EXECUTABLE) +all: $(LIBRARY) $(EXECUTABLE) $(EXECUTABLE).1 $(EXECUTABLE).1: $(EXECUTABLE) $(HELP2MAN) ./$(EXECUTABLE) > $(EXECUTABLE).1 @@ -66,7 +72,7 @@ $(CXX) -o $(EXECUTABLE) $(CFLAGS) $^ $(LIBGSL) $(GSOAP_INCLUDE) $(GSOAP_CPP) $(LIBRARY): $(LIBOBJS) - $(CXX) $(SHARED_LIB_FLAGS)$(LIBRARY) -o $(LIBRARY) $(CFLAGS) $^ + $(CXX) $(SHARED_LIB_FLAGS) -o $(LIBRARY) $(CFLAGS) $^ tags: ctags *.cpp *.h @@ -88,7 +94,6 @@ -rm *.o -rm -rf audioDB.dump - test: $(EXECUTABLE) $(LIBRARY) sh -c "cd libtests && sh ./run-tests.sh" sh -c "cd tests && sh ./run-tests.sh" @@ -96,9 +101,15 @@ xthresh: xthresh.c $(CC) -o $@ $(CFLAGS) $(GSL_INCLUDE) $(LIBGSL) $< -install: - cp $(LIBRARY) /usr/local/lib/ - ln -sf /usr/local/lib/$(LIBRARY) /usr/local/lib/lib$(EXECUTABLE).so.$(SOVERSION) - ln -sf /usr/local/lib/lib$(EXECUTABLE).so.$(SOVERSION) /usr/local/lib/lib$(EXECUTABLE).so - ldconfig - cp audioDB_API.h /usr/local/include/ +$(EXECUTABLE).pc: + ./make-pc.sh "$(EXECUTABLE)" "$(LIBDIR)" "$(INCLUDEDIR)" $(SOVERSION) $(MINORVERSION) > $(EXECUTABLE).pc + +install: $(EXECUTABLE).pc + mkdir -m755 -p $(LIBDIR)/pkgconfig $(BINDIR) $(INCLUDEDIR) $(MANDIR)/man1 + install -m644 $(LIBRARY) $(LIBDIR) + ldconfig -n $(LIBDIR) + ln -s $(LIBRARY) $(LIBDIR)/lib$(EXECUTABLE).so + install -m755 $(EXECUTABLE) $(BINDIR) + install -m644 audioDB_API.h $(INCLUDEDIR) + install -m644 $(EXECUTABLE).1 $(MANDIR)/man1 + install $(EXECUTABLE).pc $(LIBDIR)/pkgconfig
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/make-pc.sh Tue Sep 01 14:17:55 2009 +0000 @@ -0,0 +1,17 @@ +#! /bin/bash + +EXECUTABLE="$1" +LIBDIR="$2" +INCLUDEDIR="$3" +SOVERSION=$4 +MINORVERSION=$5 + +echo "includedir=$INCLUDEDIR" +echo "libdir=$LIBDIR" +echo +echo "Name: $EXECUTABLE" +echo "Description: the $EXECUTABLE library" +echo "Version: $SOVERSION.$MINORVERSION" +echo "Requires.private: gsl gsoap++" +echo 'Cflags: -I${includedir}' +echo 'Libs: -L${libdir} -l'"$EXECUTABLE" \ No newline at end of file