]> git.sesse.net Git - vlc/blob - m4/vlc.m4
Qt is GPLv2+
[vlc] / m4 / vlc.m4
1 dnl  Macros needed for VLC
2
3 dnl ===========================================================================
4 dnl  Macros to add plugins or builtins and handle their flags
5 m4_pattern_allow([^PKG_CONFIG(_LIBDIR)?$])
6
7
8 AC_DEFUN([VLC_ADD_PLUGIN], [
9   m4_foreach_w([element], [$1], [
10     AC_SUBST([LTLIB]element, [lib]element[_plugin.la])
11   ])
12 ])
13
14 AC_DEFUN([VLC_ADD_CPPFLAGS], [
15   m4_foreach_w([element], [$1], [
16     [eval "CPPFLAGS_]element[="'"$'"{CPPFLAGS_]element[} $2"'"']
17     AC_SUBST([CPPFLAGS_]element)
18   ])
19 ])
20
21 AC_DEFUN([VLC_ADD_CFLAGS], [
22   m4_foreach_w([element], [$1], [
23     [eval "CFLAGS_]element[="'"$'"{CFLAGS_]element[} $2"'"']
24     AC_SUBST([CFLAGS_]element)
25   ])
26 ])
27
28 AC_DEFUN([VLC_ADD_CXXFLAGS], [
29   m4_foreach_w([element], [$1], [
30     [eval "CXXFLAGS_]element[="'"$'"{CXXFLAGS_]element[} $2"'"']
31     AC_SUBST([CXXFLAGS_]element)
32   ])
33 ])
34
35 AC_DEFUN([VLC_ADD_OBJCFLAGS], [
36   m4_foreach_w([element], [$1], [
37     [eval "OBJCFLAGS_]element[="'"$'"{OBJCFLAGS_]element[} $2"'"']
38     AC_SUBST([OBJCFLAGS_]element)
39   ])
40 ])
41
42 AC_DEFUN([VLC_ADD_LDFLAGS], [
43   m4_foreach_w([element], [$1], [
44     [eval "LDFLAGS_]element[="'"$2 $'"{LDFLAGS_]element[}"'"']
45     AC_SUBST([LDFLAGS_]element)
46   ])
47 ])
48
49 AC_DEFUN([VLC_ADD_LIBS], [
50   m4_foreach_w([element], [$1], [
51     [eval "LIBS_]element[="'"'"$2 "'$'"{LIBS_]element[}"'"']
52     AC_SUBST([LIBS_]element)
53   ])
54 ])
55
56 dnl ===========================================================================
57 dnl  Macros to save and restore default flags
58
59 AC_DEFUN([VLC_SAVE_FLAGS], [
60   CPPFLAGS_save="${CPPFLAGS}"
61   CFLAGS_save="${CFLAGS}"
62   CXXFLAGS_save="${CXXFLAGS}"
63   OBJCFLAGS_save="${OBJCFLAGS}"
64   LDFLAGS_save="${LDFLAGS}"
65   LIBS_save="${LIBS}"
66 ])
67
68 AC_DEFUN([VLC_RESTORE_FLAGS], [
69   CPPFLAGS="${CPPFLAGS_save}"
70   CFLAGS="${CFLAGS_save}"
71   CXXFLAGS="${CXXFLAGS_save}"
72   OBJCFLAGS="${OBJCFLAGS_save}"
73   LDFLAGS="${LDFLAGS_save}"
74   LIBS="${LIBS_save}"
75 ])
76
77 dnl ===========================================================================
78 dnl  Macros for shared object handling (TODO)
79
80 AC_DEFUN([VLC_LIBRARY_SUFFIX], [
81   AC_MSG_CHECKING(for shared objects suffix)
82   case "${host_os}" in
83     darwin*)
84       LIBEXT=".dylib"
85       ;;
86     *mingw32* | *cygwin* | *wince* | *mingwce* | *os2*)
87       LIBEXT=".dll"
88       ;;
89     hpux*)
90       LIBEXT=".sl"
91       ;;
92     *)
93       LIBEXT=".so"
94       ;;
95   esac
96   AC_MSG_RESULT(${LIBEXT})
97   AC_DEFINE_UNQUOTED(LIBEXT, "${LIBEXT}", [Dynamic object extension])
98 ])
99
100 dnl ===========================================================================
101 dnl  Custom macros for checking functions with inline fallback, for mingw32/64
102
103 dnl VLC_REPLACE_DECL([funcname], [include])
104 AC_DEFUN([VLC_REPLACE_DECL], [
105   AS_VAR_PUSHDEF([CACHEVAR], [vlc_cv_replace_decl] AS_TR_SH([$1]))
106   AC_CACHE_VAL(CACHEVAR, [
107     AC_CHECK_DECL(
108       [$1],
109       AS_VAR_SET(CACHEVAR, [yes]),
110       AS_VAR_SET(CACHEVAR, [no]),
111       [$2]
112     )
113   ])
114   AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes],
115     [AC_DEFINE(AS_TR_CPP([HAVE_$1]), [1], [Define to 1 if you have $1 function])],
116     [AC_LIBOBJ([$1])])
117   AS_VAR_POPDEF([CACHEVAR])
118 ])