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)