1 SRC_DIR
:= $(SRC_PATH
)/lib
$(NAME
)
3 include $(SRC_PATH
)/common.mak
5 LIBVERSION
:= $(lib
$(NAME
)_VERSION
)
6 LIBMAJOR
:= $(lib
$(NAME
)_VERSION_MAJOR
)
7 INCINSTDIR
:= $(INCDIR
)/lib
$(NAME
)
8 THIS_LIB
:= $(SUBDIR
)$($(CONFIG_SHARED
:yes
=S
)LIBNAME
)
10 all-
$(CONFIG_STATIC
): $(SUBDIR
)$(LIBNAME
)
11 all-
$(CONFIG_SHARED
): $(SUBDIR
)$(SLIBNAME
)
13 $(SUBDIR
)%-test.o
: $(SUBDIR
)%-test.c
16 $(SUBDIR
)%-test.o
: $(SUBDIR
)%.c
19 $(SUBDIR
)x86
/%.o
: $(SUBDIR
)x86
/%.asm
20 $(YASMDEP
) $(YASMFLAGS
) -I
$(<D
)/ -M
-o
$@
$< > $(@
:.o
=.d
)
21 $(YASM
) $(YASMFLAGS
) -I
$(<D
)/ -o
$@
$<
23 $(OBJS
) $(SUBDIR
)%.ho
$(TESTOBJS
): CPPFLAGS
+= -DHAVE_AV_CONFIG_H
24 $(TESTOBJS
): CPPFLAGS
+= -DTEST
26 $(SUBDIR
)$(LIBNAME
): $(OBJS
)
28 $(AR
) rc
$@
$^
$(EXTRAOBJS
)
31 install-headers
: install-lib
$(NAME
)-headers install-lib
$(NAME
)-pkgconfig
33 install-libs-
$(CONFIG_STATIC
): install-lib
$(NAME
)-static
34 install-libs-
$(CONFIG_SHARED
): install-lib
$(NAME
)-shared
37 $(SUBDIR
)%$(EXESUF
): $(SUBDIR
)%.o
38 $$(LD
) $(FFLDFLAGS
) -o
$$@
$$^
-l
$(FULLNAME
) $(FFEXTRALIBS
) $$(ELIBS
)
40 $(SUBDIR
)$(SLIBNAME
): $(SUBDIR
)$(SLIBNAME_WITH_MAJOR
)
41 $(Q
)cd .
/$(SUBDIR
) && $(LN_S
) $(SLIBNAME_WITH_MAJOR
) $(SLIBNAME
)
43 $(SUBDIR
)$(SLIBNAME_WITH_MAJOR
): $(OBJS
) $(SUBDIR
)lib
$(NAME
).ver
$(DEP_LIBS
)
44 $(SLIB_CREATE_DEF_CMD
)
45 $$(LD
) $(SHFLAGS
) $(FFLDFLAGS
) -o
$$@
$$(filter %.o
,$$^
) $(FFEXTRALIBS
) $(EXTRAOBJS
)
49 $(RM
) $(addprefix $(SUBDIR
),*-example
$(EXESUF
) *-test$(EXESUF
) $(CLEANFILES
) $(CLEANSUFFIXES
) $(LIBSUFFIXES
)) \
50 $(foreach dir,$(DIRS
),$(CLEANSUFFIXES
:%=$(SUBDIR
)$(dir)/%)) \
51 $(HOSTOBJS
) $(HOSTPROGS
)
54 $(RM
) $(DISTCLEANSUFFIXES
:%=$(SUBDIR
)%) \
55 $(foreach dir,$(DIRS
),$(DISTCLEANSUFFIXES
:%=$(SUBDIR
)$(dir)/%))
57 install-lib
$(NAME
)-shared
: $(SUBDIR
)$(SLIBNAME
)
58 $(Q
)mkdir
-p
"$(SHLIBDIR)"
59 $$(INSTALL
) -m
755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
60 $(Q
)$(foreach F
,$(SLIB_INSTALL_LINKS
),cd
"$(SHLIBDIR)" && $(LN_S
) $(SLIB_INSTALL_NAME
) $(F
);)
61 $(if
$(SLIB_INSTALL_EXTRA_SHLIB
),$$(INSTALL
) -m
644 $(SLIB_INSTALL_EXTRA_SHLIB
:%=$(SUBDIR
)%) "$(SHLIBDIR)")
62 $(if
$(SLIB_INSTALL_EXTRA_LIB
),$(Q
)mkdir
-p
"$(LIBDIR)")
63 $(if
$(SLIB_INSTALL_EXTRA_LIB
),$$(INSTALL
) -m
644 $(SLIB_INSTALL_EXTRA_LIB
:%=$(SUBDIR
)%) "$(LIBDIR)")
65 install-lib
$(NAME
)-static
: $(SUBDIR
)$(LIBNAME
)
66 $(Q
)mkdir
-p
"$(LIBDIR)"
67 $$(INSTALL
) -m
644 $$< "$(LIBDIR)"
68 $(LIB_INSTALL_EXTRA_CMD
)
70 install-lib
$(NAME
)-headers
: $(addprefix $(SUBDIR
),$(HEADERS
) $(BUILT_HEADERS
))
71 $(Q
)mkdir
-p
"$(INCINSTDIR)"
72 $$(INSTALL
) -m
644 $$^
"$(INCINSTDIR)"
74 install-lib
$(NAME
)-pkgconfig
: $(SUBDIR
)lib
$(NAME
).
pc
75 $(Q
)mkdir
-p
"$(LIBDIR)/pkgconfig"
76 $$(INSTALL
) -m
644 $$^
"$(LIBDIR)/pkgconfig"
79 -$(RM
) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
80 "$(SHLIBDIR)/$(SLIBNAME)" \
81 "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
82 -$(RM
) $(SLIB_INSTALL_EXTRA_SHLIB
:%="$(SHLIBDIR)"%)
83 -$(RM
) $(SLIB_INSTALL_EXTRA_LIB
:%="$(LIBDIR)"%)
84 -$(RM
) "$(LIBDIR)/$(LIBNAME)"
87 $(RM
) $(addprefix "$(INCINSTDIR)/",$(HEADERS
))
88 $(RM
) "$(LIBDIR)/pkgconfig/lib$(NAME).pc"
94 $(EXAMPLES
) $(TESTPROGS
): $(THIS_LIB
) $(DEP_LIBS
)
97 testprogs
: $(TESTPROGS
)