--- /dev/null
+VPATH += $(SRCDIR)/$(S)
+
+OBJS := $(SRCS:%.c=%.o)
+DEPS := $(SRCS:%.c=%.d)
+
+INST := $(addsuffix _install,$(INSTALL_HEADERS))
+
+all: $(LIB).so $(LIB).a
+
+RANLIB ?= ranlib
+$(LIB).a: $(OBJS)
+ $(AR) cru $(LIB).a $(OBJS)
+ $(RANLIB) $(LIB).a
+
+$(LIB).so: $(OBJS)
+ $(CC) $(LDFLAGS) -shared $(OBJS) -o $@
+
+%.o: %.c
+ $(CC) -Wp,-MD,$(@:%.o=%.d) $(CFLAGS) -o $@ -c $<
+
+clean:
+ rm -f $(OBJS) $(DEPS) $(LIB).a $(LIB).so
+
+%_install: %
+ @echo "Install $< in $(PREFIX)/include"; \
+ cp $< $(PREFIX)/include || exit 1
+
+install: $(INST)
+ @echo "Install $(LIB).so in $(PREFIX)/lib"; \
+ cp $(LIB).so $(PREFIX)/lib || exit 1
+
+uninstall: $(UNINST)
+ @for i in $(INSTALL_HEADERS); do \
+ echo "Uninstall $$i from $(PREFIX)/include"; \
+ rm -f $(PREFIX)/include/$$i; \
+ done
+ @echo "Uninstall $(LIB).so"
+ @rm -f $(PREFIX)/lib/$(LIB).so
+
+.PHONY: all clean install uninstall
+
+-include $(DEPS)