--- Makefile.orig	2026-02-25 10:55:03 UTC
+++ Makefile
@@ -23,17 +23,17 @@ OPT = -O2 -g
 W	= -W -Wall -Wno-unused-parameter -Wbad-function-cast -Wuninitialized
 THREADS = -pthread
 OPT = -O2 -g
-CFLAGS	= $(THREADS) $(OPT) $(W) $(XCFLAGS)
+CFLAGS	+= $(THREADS) $(W)
 LDLIBS	=
 SOLIBS	=
-SOEXT	= .so
+SOEXT	= .so.0
 prefix	?= /usr/local
 exec_prefix = $(prefix)
 bindir = $(exec_prefix)/bin
 libdir = $(exec_prefix)/lib
 includedir = $(prefix)/include
 datarootdir = $(prefix)/share
-mandir = $(datarootdir)/man
+mandir = $(prefix)/share/man
 
 ########################################################################
 
@@ -41,7 +41,7 @@ ILIBS	= $(LIBS) $(SHLIBS)
 LIBS	= libdlmdb.a
 SHLIBS	= libdlmdb$(SOEXT)
 ILIBS	= $(LIBS) $(SHLIBS)
-LINKLIBS	= $(LIBS)
+LINKLIBS	= $(SHLIBS)
 IPROGS	= dlmdb_stat dlmdb_copy dlmdb_dump dlmdb_load dlmdb_drop
 IDOCS	= dlmdb_stat.1 dlmdb_copy.1 dlmdb_dump.1 dlmdb_load.1 dlmdb_drop.1
 PROGS	= $(IPROGS) mtest mtest2 mtest3 mtest4 mtest5 mtest_count mtest_prefix mtest_inmem count_bench compress_bench sample_bench dup_iter_bench inmem_bench
@@ -53,10 +53,11 @@ install: $(ILIBS) $(IPROGS) $(IHDRS)
 	mkdir -p $(DESTDIR)$(libdir)
 	mkdir -p $(DESTDIR)$(includedir)
 	mkdir -p $(DESTDIR)$(mandir)/man1
-	for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done
-	for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done
-	for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done
-	for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1/dl$$f; done
+	for f in $(IPROGS); do $(INSTALL_PROGRAM) $$f $(DESTDIR)$(bindir); done
+	for f in $(LIBS); do $(INSTALL_DATA) $$f $(DESTDIR)$(libdir); done
+	for f in $(SHLIBS); do $(INSTALL_LIB) $$f $(DESTDIR)$(libdir); done
+	for f in $(IHDRS); do $(INSTALL_DATA) $$f $(DESTDIR)$(includedir); done
+	for f in $(IDOCS); do $(INSTALL_MAN) $$f $(DESTDIR)$(mandir)/man1/dl$$f; done
 
 clean:
 	rm -rf $(PROGS) *.[ao] *.[ls]o *~ testdb
@@ -79,28 +80,48 @@ libdlmdb$(SOEXT):	mdb.lo midl.lo
 
 libdlmdb$(SOEXT):	mdb.lo midl.lo
 #	$(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS)
-	$(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS)
+	$(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -o $@ mdb.lo midl.lo $(SOLIBS)
 
 dlmdb_stat: mdb_stat.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 dlmdb_copy: mdb_copy.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 dlmdb_dump: mdb_dump.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 dlmdb_load: mdb_load.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 dlmdb_drop: mdb_drop.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest:  mtest.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest2:	mtest2.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest3:	mtest3.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest4:	mtest4.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest5:	mtest5.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest_count:	mtest_count.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest_prefix:	mtest_prefix.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest_inmem:	mtest_inmem.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 count_bench:	count_bench.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 compress_bench:	compress_bench.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 sample_bench:	sample_bench.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 dup_iter_bench:	dup_iter_bench.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 inmem_bench:	inmem_bench.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mtest6:	mtest6.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 mplay:	mplay.o $(LINKLIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(.ALLSRC)
 
 mdb.o: mdb.c dlmdb.h midl.h
 	$(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c
