]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/blob - common.mak
Install headers in $prefix/include/$libname
[frescor/ffmpeg.git] / common.mak
1 #
2 # common bits used by all libraries
3 #
4
5 VPATH = $(SRC_PATH_BARE)/lib$(NAME)
6 SRC_DIR = "$(VPATH)"
7
8 CFLAGS   += $(CFLAGS-yes)
9 OBJS     += $(OBJS-yes)
10 ASM_OBJS += $(ASM_OBJS-yes)
11 CPP_OBJS += $(CPP_OBJS-yes)
12
13 CFLAGS += -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
14           -D_ISOC9X_SOURCE -I$(BUILD_ROOT) -I$(SRC_PATH) \
15           -I$(SRC_PATH)/libavutil $(OPTFLAGS)
16
17 SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPPOBJS:.o=.cpp)
18 OBJS := $(OBJS) $(ASM_OBJS) $(CPPOBJS)
19
20 all: $(LIBNAME) $(SLIBNAME)
21
22 $(LIBNAME): $(OBJS)
23         rm -f $@
24         $(AR) rc $@ $^ $(EXTRAOBJS)
25         $(RANLIB) $@
26
27 $(SLIBNAME): $(SLIBNAME_WITH_MAJOR)
28         $(LN_S) $^ $@
29
30 $(SLIBNAME_WITH_MAJOR): $(OBJS)
31         $(SLIB_CREATE_DEF_CMD)
32         $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS)
33         $(SLIB_EXTRA_CMD)
34
35 %.o: %.c
36         $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
37
38 %.o: %.S
39         $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
40
41 %: %.o $(LIBNAME)
42         $(CC) $(LDFLAGS) -o $@ $^ $(EXTRALIBS)
43
44 %.ho: %.h
45         $(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $<
46
47 ALLHEADERS = $(subst $(VPATH)/,,$(wildcard $(VPATH)/*.h))
48 checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho))
49
50 depend dep: $(SRCS)
51         $(CC) -MM $(CFLAGS) $^ 1>.depend
52
53 clean::
54         rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \
55               *.def *.dll.a *.exp *.ho *.map $(TESTS)
56
57 distclean: clean
58         rm -f .depend
59
60 INSTALL_TARGETS-$(BUILD_SHARED) += install-lib-shared
61 INSTALL_TARGETS-$(BUILD_STATIC) += install-lib-static
62
63 install: install-libs install-headers
64
65 install-libs: $(INSTALL_TARGETS-yes)
66
67 install-lib-shared: $(SLIBNAME)
68         install -d "$(SHLIBDIR)"
69         install -m 755 $(SLIBNAME) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
70         $(STRIP) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
71         cd "$(SHLIBDIR)" && \
72                 $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME_WITH_MAJOR)
73         cd "$(SHLIBDIR)" && \
74                 $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME)
75         $(SLIB_INSTALL_EXTRA_CMD)
76
77 install-lib-static: $(LIBNAME)
78         install -d "$(LIBDIR)"
79         install -m 644 $(LIBNAME) "$(LIBDIR)"
80         $(LIB_INSTALL_EXTRA_CMD)
81
82 INCINSTDIR = $(INCDIR)/lib$(NAME)
83
84 install-headers:
85         install -d "$(INCINSTDIR)"
86         install -d "$(LIBDIR)/pkgconfig"
87         install -m 644 $(addprefix $(SRC_DIR)/,$(HEADERS)) "$(INCINSTDIR)"
88         install -m 644 $(BUILD_ROOT)/lib$(NAME).pc "$(LIBDIR)/pkgconfig"
89
90 uninstall: uninstall-libs uninstall-headers
91
92 uninstall-libs:
93         -rm -f "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
94                "$(SHLIBDIR)/$(SLIBNAME)"            \
95                "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
96         -$(SLIB_UNINSTALL_EXTRA_CMD)
97         -rm -f "$(LIBDIR)/$(LIBNAME)"
98
99 uninstall-headers::
100         rm -f $(addprefix "$(INCINSTDIR)/",$(HEADERS))
101         rm -f "$(LIBDIR)/pkgconfig/lib$(NAME).pc"
102
103 tests: $(TESTS)
104
105 %-test$(EXESUF): %.c $(LIBNAME)
106         $(CC) $(CFLAGS) $(LDFLAGS) -DTEST -o $@ $^ $(EXTRALIBS)
107
108 .PHONY: all depend dep clean distclean install* uninstall* tests
109
110 -include .depend