+# On ELf-based systems, the following conventions apply (see dhweeler's
+# Program Library HOWTO):
+#
+# The soname has the prefix ``lib'', the name of the library, the
+# phrase ``.so'', followed by a period and a version number that is
+# incremented whenever the interface changes.
+soname := lib$(libname).so.$(x)
+
+# The real name adds to the soname a period, a minor number, another
+# period, and the release number.
+realname := $(soname).$(y).$(z)
+
+# In addition, there's the name that the compiler uses when requesting
+# a library, (I'll call it the ``linker name''), which is simply the
+# soname without any version number.
+linkername := lib$(libname).so
+LDFLAGS += --shared
+
+all: $(realname) $(executables) $(man_pages)
+shared: $(realname)
+
+ifeq ($(findstring clean, $(MAKECMDGOALS)),)
+-include $(deps)
+endif
+%.o: %.c Makefile errtab.h
+ $(CC) $(CPPFLAGS) -c -MMD -MF $(*F).d -MT $@ $(CFLAGS) $(LIBCFLAGS) $<