1 | #
|
---|
2 | # common bits used by all libraries
|
---|
3 | #
|
---|
4 |
|
---|
5 | SRC_DIR = $(SRC_PATH)/lib$(NAME)
|
---|
6 | VPATH = $(SRC_DIR)
|
---|
7 |
|
---|
8 | SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPPOBJS:.o=.cpp)
|
---|
9 | OBJS := $(OBJS) $(ASM_OBJS) $(CPPOBJS)
|
---|
10 | STATIC_OBJS := $(OBJS) $(STATIC_OBJS)
|
---|
11 | SHARED_OBJS := $(OBJS) $(SHARED_OBJS)
|
---|
12 |
|
---|
13 | all: $(EXTRADEPS) $(LIB) $(SLIBNAME)
|
---|
14 |
|
---|
15 | $(LIB): $(STATIC_OBJS)
|
---|
16 | rm -f $@
|
---|
17 | $(AR) rc $@ $^ $(EXTRAOBJS)
|
---|
18 | $(RANLIB) $@
|
---|
19 |
|
---|
20 | $(SLIBNAME): $(SLIBNAME_WITH_MAJOR)
|
---|
21 | ln -sf $^ $@
|
---|
22 |
|
---|
23 | $(SLIBNAME_WITH_MAJOR): $(SHARED_OBJS)
|
---|
24 | $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS)
|
---|
25 | ifeq ($(CONFIG_WIN32),yes)
|
---|
26 | -lib /machine:i386 /def:$(@:.dll=.def)
|
---|
27 | endif
|
---|
28 |
|
---|
29 | %.o: %.c
|
---|
30 | $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
|
---|
31 |
|
---|
32 | %.o: %.S
|
---|
33 | $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
|
---|
34 |
|
---|
35 | # BeOS: remove -Wall to get rid of all the "multibyte constant" warnings
|
---|
36 | %.o: %.cpp
|
---|
37 | g++ $(subst -Wall,,$(CFLAGS)) -c -o $@ $<
|
---|
38 |
|
---|
39 | depend: $(SRCS)
|
---|
40 | $(CC) -MM $(CFLAGS) $^ 1>.depend
|
---|
41 |
|
---|
42 | dep: depend
|
---|
43 |
|
---|
44 | clean::
|
---|
45 | rm -f *.o *.d *~ *.a *.lib *.so *.dylib *.dll \
|
---|
46 | *.lib *.def *.dll.a *.exp
|
---|
47 |
|
---|
48 | distclean: clean
|
---|
49 | rm -f .depend
|
---|
50 |
|
---|
51 | ifeq ($(BUILD_SHARED),yes)
|
---|
52 | INSTLIBTARGETS += install-lib-shared
|
---|
53 | endif
|
---|
54 | ifeq ($(BUILD_STATIC),yes)
|
---|
55 | INSTLIBTARGETS += install-lib-static
|
---|
56 | endif
|
---|
57 |
|
---|
58 | install: install-libs install-headers
|
---|
59 |
|
---|
60 | install-libs: $(INSTLIBTARGETS)
|
---|
61 |
|
---|
62 | install-lib-shared: $(SLIBNAME)
|
---|
63 | install -d "$(libdir)"
|
---|
64 | ifeq ($(CONFIG_WIN32),yes)
|
---|
65 | install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
|
---|
66 | else
|
---|
67 | install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
|
---|
68 | $(libdir)/$(SLIBNAME_WITH_VERSION)
|
---|
69 | ln -sf $(SLIBNAME_WITH_VERSION) \
|
---|
70 | $(libdir)/$(SLIBNAME_WITH_MAJOR)
|
---|
71 | ln -sf $(SLIBNAME_WITH_VERSION) \
|
---|
72 | $(libdir)/$(SLIBNAME)
|
---|
73 | endif
|
---|
74 |
|
---|
75 | install-lib-static: $(LIB)
|
---|
76 | install -d "$(libdir)"
|
---|
77 | install -m 644 $(LIB) "$(libdir)"
|
---|
78 |
|
---|
79 | install-headers:
|
---|
80 | install -d "$(incdir)"
|
---|
81 | install -d "$(libdir)/pkgconfig"
|
---|
82 | install -m 644 $(addprefix "$(SRC_DIR)"/,$(HEADERS)) "$(incdir)"
|
---|
83 | install -m 644 $(BUILD_ROOT)/lib$(NAME).pc "$(libdir)/pkgconfig"
|
---|
84 |
|
---|
85 | uninstall: uninstall-libs uninstall-headers
|
---|
86 |
|
---|
87 | uninstall-libs:
|
---|
88 | ifeq ($(CONFIG_WIN32),yes)
|
---|
89 | -rm -f $(prefix)/$(SLIBNAME)
|
---|
90 | else
|
---|
91 | -rm -f $(libdir)/$(SLIBNAME_WITH_MAJOR) \
|
---|
92 | $(libdir)/$(SLIBNAME) \
|
---|
93 | $(libdir)/$(SLIBNAME_WITH_VERSION)
|
---|
94 | endif
|
---|
95 | -rm -f $(libdir)/$(LIB)
|
---|
96 |
|
---|
97 | uninstall-headers:
|
---|
98 | rm -f $(addprefix $(incdir)/,$(HEADERS))
|
---|
99 | rm -f $(libdir)/pkgconfig/lib$(NAME).pc
|
---|
100 |
|
---|
101 | #
|
---|
102 | # include dependency files if they exist
|
---|
103 | #
|
---|
104 | ifneq ($(wildcard .depend),)
|
---|
105 | include .depend
|
---|
106 | endif
|
---|