cmdline: new build system
[libcmdline.git] / libcmdline.lib.mk
1 VPATH += $(SRCDIR)/$(S)
2
3 OBJS := $(SRCS:%.c=%.o)
4 DEPS := $(SRCS:%.c=%.d)
5
6 INST := $(addsuffix _install,$(INSTALL_HEADERS))
7
8 all: $(LIB).so $(LIB).a
9
10 RANLIB ?= ranlib
11 $(LIB).a: $(OBJS)
12         $(AR) cru $(LIB).a $(OBJS)
13         $(RANLIB) $(LIB).a
14
15 $(LIB).so: $(OBJS)
16         $(CC) $(LDFLAGS) -shared $(OBJS) -o $@
17
18 %.o: %.c
19         $(CC) -Wp,-MD,$(@:%.o=%.d) $(CFLAGS) -o $@ -c $<
20
21 clean:
22         rm -f $(OBJS) $(DEPS) $(LIB).a $(LIB).so
23
24 %_install: %
25         @echo "Install $< in $(PREFIX)/include"; \
26         cp $< $(PREFIX)/include || exit 1
27
28 install: $(INST)
29         @echo "Install $(LIB).so in $(PREFIX)/lib"; \
30         cp $(LIB).so $(PREFIX)/lib || exit 1
31
32 uninstall: $(UNINST)
33         @for i in $(INSTALL_HEADERS); do \
34                 echo "Uninstall $$i from $(PREFIX)/include"; \
35                 rm -f $(PREFIX)/include/$$i; \
36         done
37         @echo "Uninstall $(LIB).so"
38         @rm -f $(PREFIX)/lib/$(LIB).so
39
40 .PHONY: all clean install uninstall
41
42 -include $(DEPS)