* make Makefile DESTDIR-aware
* deinstall -> uninstall
* fix issues where the path in help pages is taken from the build-time location of the executables
Index: ffindex-0.9.3/Makefile
===================================================================
--- ffindex-0.9.3.orig/Makefile	2012-02-24 11:51:44.275044508 +0100
+++ ffindex-0.9.3/Makefile	2012-02-24 11:57:11.291044574 +0100
@@ -6,15 +6,8 @@
 MFILE=Makefile
 endif
 
-.PHONY: clean install deinstall clean
 all:
-	$(MAKE) -C src -f $(MFILE)
+	$(MAKE) -C src -f $(MFILE) $@
 
-install:
-	$(MAKE) -C src install
-
-deinstall:
-	$(MAKE) -C src deinstall
-
-clean:
-	$(MAKE) -C src clean
+%:
+	$(MAKE) -C src -f $(MFILE) $@
Index: ffindex-0.9.3/src/Makefile
===================================================================
--- ffindex-0.9.3.orig/src/Makefile	2012-02-24 11:51:44.303044506 +0100
+++ ffindex-0.9.3/src/Makefile	2012-02-24 14:29:50.919044571 +0100
@@ -1,12 +1,14 @@
-INSTALL_DIR?=..
-libdir=`([ -d /usr/lib64 ] && echo lib64) || echo lib`
+PREFIX?=/usr
+libdir=lib
 LANG=C
 CFLAGS+=-std=c99 -openmp -g -fPIC -Wall
+SOCURRENT=0
+SOVERSION=$(SOCURRENT).1.0
 ifdef FFINDEX_STATIC
 	LDFLAGS+=-static
 	FFINDEX_OBJECTS=libffindex.a
 else
-	FFINDEX_OBJECTS=libffindex.so libffindex.so.0.1 
+	FFINDEX_OBJECTS=libffindex.so libffindex.so.$(SOVERSION)
 endif
 
 #-Wl,--version-script=libffindex.map
@@ -24,16 +26,17 @@
 ffindex_modify: $(FFINDEX_OBJECTS) ffindex_modify.o ffindex.h
 	$(CC) -o $@ ffindex_modify.o $(LDFLAGS) -L. -lffindex
 
-libffindex.so.0.1: ffindex.o ffutil.o
-	$(CC) -Wl,-z,defs -shared -Wl,-soname,libffindex.so.0.1 -o libffindex.so.0.1 ffindex.o ffutil.o -lc
+libffindex.so.$(SOVERSION): ffindex.o ffutil.o
+	$(CC) -Wl,-z,defstack -shared -Wl,-soname,libffindex.so.$(SOCURRENT) -o libffindex.so.$(SOVERSION) ffindex.o ffutil.o -lc
 
-libffindex.so: libffindex.so.0.1
-	ln -sf libffindex.so.0.1 libffindex.so
+libffindex.so: libffindex.so.$(SOVERSION)
+	ln -sf libffindex.so.$(SOVERSION) libffindex.so.$(SOCURRENT)
+	ln -sf libffindex.so.$(SOVERSION) libffindex.so
 
 libffindex.a: ffindex.o ffutil.o
 	ar rcs libffindex.a ffutil.o ffindex.o 
 
-test:
+check:
 	rm -f /tmp/test.data /tmp/test.ffindex
 	LD_LIBRARY_PATH=".:$(LD_LIBRARY_PATH)" ./ffindex_build -s /tmp/test.data /tmp/test.ffindex ../test/data ../test/data2
 	LD_LIBRARY_PATH=".:$(LD_LIBRARY_PATH)" ./ffindex_get  /tmp/test.data /tmp/test.ffindex a b foo | tee /tmp/test.out
@@ -53,25 +56,28 @@
 	LD_LIBRARY_PATH=".:$(LD_LIBRARY_PATH)" zsh -c "time ./ffindex_get  ../test_big/nr20_11Jan10_a3m_db ../test_big/nr20_11Jan10_a3m_db.ffindex BABBAMIBA.a3m KARDUZEBA.a3m HARPAQIBA.a3m WOQQATEBA.a3m BEBRAQIBA.a3m GIRSAKEBA.a3m NAQTIFIBA.a3m BIWCIQABA.a3m > /dev/null"
 
 clean:
-	rm -f ffindex.o ffutil.o ffindex_build ffindex_build.o ffindex_get ffindex_get.o libffindex.so libffindex.so.0.1 ffindex_modify ffindex_modify.o libffindex.a
+	rm -f ffindex.o ffutil.o ffindex_build ffindex_build.o ffindex_get ffindex_get.o libffindex.so libffindex.so.$(SOCURRENT) libffindex.so.$(SOVERSION) ffindex_modify ffindex_modify.o libffindex.a
+
+distclean: clean
 
 install:
-	mkdir -p $(INSTALL_DIR)/bin
-	mkdir -p $(INSTALL_DIR)/$(libdir)
-	mkdir -p $(INSTALL_DIR)/include
-	install ffindex_get $(INSTALL_DIR)/bin/ffindex_get
-	install ffindex_build $(INSTALL_DIR)/bin/ffindex_build
-	install ffindex_modify $(INSTALL_DIR)/bin/ffindex_modify
-	install libffindex.so.0.1 $(INSTALL_DIR)/$(libdir)/libffindex.so.0.1
-	install libffindex.a $(INSTALL_DIR)/$(libdir)/libffindex.a
-	ln -sf libffindex.so.0.1 $(INSTALL_DIR)/$(libdir)/libffindex.so
-	install ffindex.h $(INSTALL_DIR)/include/ffindex.h
-	install ffutil.h $(INSTALL_DIR)/include/ffutil.h
-
-deinstall:
-	rm -f $(INSTALL_DIR)/bin/ffindex_get $(INSTALL_DIR)/bin/ffindex_build $(INSTALL_DIR)/bin/ffindex_modify \
-		$(INSTALL_DIR)/$(libdir)/libffindex.so.0.1 $(INSTALL_DIR)/$(libdir)/libffindex.a \
-		$(INSTALL_DIR)/$(libdir)/libffindex.so $(INSTALL_DIR)/include/ffindex.h $(INSTALL_DIR)/include/ffutil.h
-	rmdir $(INSTALL_DIR)/bin || true
-	rmdir $(INSTALL_DIR)/$(libdir) || true
-	rmdir $(INSTALL_DIR)/include || true
+	mkdir -p $(DESTDIR)$(PREFIX)/bin
+	mkdir -p $(DESTDIR)$(PREFIX)/$(libdir)
+	mkdir -p $(DESTDIR)$(PREFIX)/include
+	install ffindex_get $(DESTDIR)$(PREFIX)/bin/ffindex_get
+	install ffindex_build $(DESTDIR)$(PREFIX)/bin/ffindex_build
+	install ffindex_modify $(DESTDIR)$(PREFIX)/bin/ffindex_modify
+	install libffindex.so.$(SOVERSION) $(DESTDIR)$(PREFIX)/$(libdir)/libffindex.so.$(SOVERSION)
+	install libffindex.a $(DESTDIR)$(PREFIX)/$(libdir)/libffindex.a
+	ln -sf libffindex.so.$(SOVERSION) $(DESTDIR)$(PREFIX)/$(libdir)/libffindex.so.$(SOCURRENT)
+	ln -sf libffindex.so.$(SOVERSION) $(DESTDIR)$(PREFIX)/$(libdir)/libffindex.so
+	install ffindex.h $(DESTDIR)$(PREFIX)/include/ffindex.h
+	install ffutil.h $(DESTDIR)$(PREFIX)/include/ffutil.h
+
+uninstall:
+	rm -f $(PREFIX)/bin/ffindex_get $(PREFIX)/bin/ffindex_build $(PREFIX)/bin/ffindex_modify \
+		$(PREFIX)/$(libdir)/libffindex.so.$(SOVERSION) $(PREFIX)/$(libdir)/libffindex.a \
+		$(PREFIX)/$(libdir)/libffindex.so.$(SOCURRENT) $(PREFIX)/$(libdir)/libffindex.so $(PREFIX)/include/ffindex.h $(PREFIX)/include/ffutil.h
+	rmdir $(PREFIX)/bin || true
+	rmdir $(PREFIX)/$(libdir) || true
+	rmdir $(PREFIX)/include || true
Index: ffindex-0.9.3/src/ffindex_build.c
===================================================================
--- ffindex-0.9.3.orig/src/ffindex_build.c	2012-02-24 11:49:40.279044528 +0100
+++ ffindex-0.9.3/src/ffindex_build.c	2012-02-24 11:51:49.663044720 +0100
@@ -31,7 +31,7 @@
 
 void usage(char *program_name)
 {
-    fprintf(stderr, "USAGE: %s [-a|-v] [-s] [-f file]* data_filename index_filename [dir_to_index|file]*\n"
+    fprintf(stderr, "USAGE: ffindex_build [-a|-v] [-s] [-f file]* data_filename index_filename [dir_to_index|file]*\n"
                     "\t-a\tappend\n"
                     "\t-d a second ffindex data file for inserting/appending\n"
                     "\t-i a second ffindex index file for insterting/appending\n"
@@ -39,7 +39,7 @@
                     "\t\t-f can be specified up to %d times\n"
                     "\t-s\tsort index file\n"
                     "\t-v\tprint version and other info then exit\n"
-                    "\nDesigned and implemented by Andreas W. Hauser <hauser@genzentrum.lmu.de>.\n", program_name, MAX_FILENAME_LIST_FILES);
+                    "\nDesigned and implemented by Andreas W. Hauser <hauser@genzentrum.lmu.de>.\n", MAX_FILENAME_LIST_FILES);
 }
 
 int main(int argn, char **argv)
Index: ffindex-0.9.3/src/ffindex_get.c
===================================================================
--- ffindex-0.9.3.orig/src/ffindex_get.c	2012-02-24 11:49:40.299044548 +0100
+++ ffindex-0.9.3/src/ffindex_get.c	2012-02-24 11:51:49.671044437 +0100
@@ -26,9 +26,8 @@
 {
   if(argn < 3)
   {
-    fprintf(stderr, "USAGE: %s data_filename index_filename filename(s)\n"
-                    "\nDesigned and implemented by Andreas W. Hauser <hauser@genzentrum.lmu.de>.\n",
-                    argv[0]);
+    fprintf(stderr, "USAGE: ffindex_get data_filename index_filename filename(s)\n"
+                    "\nDesigned and implemented by Andreas W. Hauser <hauser@genzentrum.lmu.de>.\n");
     return -1;
   }
   char *data_filename  = argv[1];
Index: ffindex-0.9.3/src/ffindex_modify.c
===================================================================
--- ffindex-0.9.3.orig/src/ffindex_modify.c	2012-02-24 11:49:40.331044474 +0100
+++ ffindex-0.9.3/src/ffindex_modify.c	2012-02-24 12:53:15.362982150 +0100
@@ -30,7 +30,7 @@
 
 void usage(char *program_name)
 {
-    fprintf(stderr, "USAGE: %s [-s|-u|-v] [-t] [-f file]* index_filename [filename]*\n"
+    fprintf(stderr, "USAGE: ffindex_modify [-s|-u|-v] [-t] [-f file]* index_filename [filename]*\n"
                     "\t-f file\tfile each line containing a filename\n"
                     "\t\t-f can be specified up to %d times\n"
                     "\t-s\tsort index file\n"
@@ -38,7 +38,7 @@
                     "\t-u\tunlink entry (remove from index only)\n"
                     "\t-v\tprint version and other info then exit\n"
                     "\nDesigned and implemented by Andreas W. Hauser <hauser@genzentrum.lmu.de>.\n",
-                    program_name, MAX_FILENAME_LIST_FILES);
+                    MAX_FILENAME_LIST_FILES);
 }
 
 int main(int argn, char **argv)
@@ -149,14 +149,9 @@
         sorted_names_to_unlink[y] = argv[i];
       ffindex_unlink_entries(index, sorted_names_to_unlink, y);
 
-      /* Sort the index entries and write back */
+      /* Sort the index entries */
       if(sort)
-      {
         ffindex_sort_index_file(index);
-        index_file = fopen(index_filename, "w");
-        if(index_file == NULL) { perror(index_filename); return EXIT_FAILURE; }
-        err += ffindex_write(index, index_file);
-      }
     }
   }
 
