]> git.sesse.net Git - vlc/blob - m4/vlc.m4
Simplify shout, libproxy detection
[vlc] / m4 / vlc.m4
1 dnl  Macros needed for VLC
2 dnl  $Id$
3
4 dnl ===========================================================================
5 dnl  Macros to add plugins or builtins and handle their flags
6 m4_pattern_allow([^PKG_CONFIG(_LIBDIR)?$])
7
8
9 AC_DEFUN([VLC_ADD_BUILTINS], [
10   BUILTINS="${BUILTINS} $1"
11 ])
12
13 AC_DEFUN([VLC_ADD_PLUGIN], [
14   PLUGINS="${PLUGINS} $1"
15   AC_SUBST([LTLIB$1], ["lib$1_plugin.la"])
16 ])
17
18 dnl  Special cases: vlc, pics, plugins, save
19 AC_DEFUN([VLC_ADD_CPPFLAGS], [
20   for element in [$1]; do
21     eval "CPPFLAGS_${element}="'"$'"{CPPFLAGS_${element}} $2"'"'
22     am_modules_with_cppflags="${am_modules_with_cppflags} ${element}"
23   done
24 ])
25
26 AC_DEFUN([VLC_ADD_CFLAGS], [
27   for element in [$1]; do
28     eval "CFLAGS_${element}="'"$'"{CFLAGS_${element}} $2"'"'
29     am_modules_with_cflags="${am_modules_with_cflags} ${element}"
30   done
31 ])
32
33 AC_DEFUN([VLC_ADD_CXXFLAGS], [
34   for element in [$1]; do
35     eval "CXXFLAGS_${element}="'"$'"{CXXFLAGS_${element}} $2"'"'
36     am_modules_with_cxxflags="${am_modules_with_cxxflags} ${element}"
37   done
38 ])
39
40 AC_DEFUN([VLC_ADD_OBJCFLAGS], [
41   for element in [$1]; do
42     eval "OBJCFLAGS_${element}="'"$'"{OBJCFLAGS_${element}} $2"'"'
43     am_modules_with_objcflags="${am_modules_with_objcflags} ${element}"
44   done
45 ])
46
47 AC_DEFUN([VLC_ADD_LDFLAGS], [
48   for element in [$1]; do
49     eval "LDFLAGS_${element}="'"'"$2 "'$'"{LDFLAGS_${element}} "'"'
50     am_modules_with_ldflags="${am_modules_with_ldflags} ${element}"
51   done
52 ])
53
54 AC_DEFUN([VLC_ADD_LIBS], [
55   for element in [$1]; do
56     eval "LIBS_${element}="'"'"$2 "'$'"{LIBS_${element}} "'"'
57     am_modules_with_libs="${am_modules_with_libs} ${element}"
58   done
59 ])
60
61 dnl ===========================================================================
62 dnl  Macros to save and restore default flags
63
64 AC_DEFUN([VLC_SAVE_FLAGS], [
65   CPPFLAGS_save="${CPPFLAGS}"
66   CFLAGS_save="${CFLAGS}"
67   CXXFLAGS_save="${CXXFLAGS}"
68   OBJCFLAGS_save="${OBJCFLAGS}"
69   LDFLAGS_save="${LDFLAGS}"
70   LIBS_save="${LIBS}"
71 ])
72
73 AC_DEFUN([VLC_RESTORE_FLAGS], [
74   CPPFLAGS="${CPPFLAGS_save}"
75   CFLAGS="${CFLAGS_save}"
76   CXXFLAGS="${CXXFLAGS_save}"
77   OBJCFLAGS="${OBJCFLAGS_save}"
78   LDFLAGS="${LDFLAGS_save}"
79   LIBS="${LIBS_save}"
80 ])
81
82 dnl ===========================================================================
83 dnl  Helper macro to generate the vlc-config.in file
84
85 AC_DEFUN([VLC_OUTPUT_VLC_CONFIG_IN], [
86
87   AC_MSG_RESULT(configure: creating ./vlc-config.in)
88
89   am_all_modules="`for x in ${am_modules_with_cppflags} ${am_modules_with_cflags} ${am_modules_with_cxxflags} ${am_modules_with_objcflags} ${am_modules_with_ldflags} ${am_modules_with_libs}; do echo $x; done | sort | uniq`"
90
91   rm -f vlc-config.in
92   sed -ne '/#@1@#/q;p' < "${srcdir}/vlc-config.in.in" \
93     | sed -e "s/@gprof@/${enable_gprof}/" \
94           -e "s/@cprof@/${enable_cprof}/" \
95           -e "s/@optim@/${enable_optimizations}/" \
96           -e "s/@debug@/${enable_debug}/" \
97           -e "s/@release@/${enable_release}/" \
98           -e "s/@PLUGINS@/${PLUGINS}/" \
99           -e "s/@BUILTINS@/${BUILTINS}/" \
100           -e "s/@CFLAGS_TUNING@/${CFLAGS_TUNING}/" \
101           -e "s/@CFLAGS_OPTIM_SIZE@/${CFLAGS_OPTIM_SIZE}/" \
102           -e "s/@CFLAGS_OPTIM_SPEED@/${CFLAGS_OPTIM_SPEED}/" \
103           -e "s/@CFLAGS_OPTIM_NODEBUG@/${CFLAGS_OPTIM_NODEBUG}/" \
104           -e "s/@CFLAGS_NOOPTIM@/${CFLAGS_NOOPTIM}/" \
105     > vlc-config.in
106
107   dnl  Switch/case loop
108   for x in `echo ${am_all_modules}`
109   do [
110     echo "    ${x})"
111     if test "`eval echo @'$'CPPFLAGS_${x}@`" != "@@"; then
112       echo "      cppflags=\"\${cppflags} `eval echo '$'CPPFLAGS_${x}`\""
113     fi
114     if test "`eval echo @'$'CFLAGS_${x}@`" != "@@"; then
115       echo "      cflags=\"\${cflags} `eval echo '$'CFLAGS_${x}`\""
116     fi
117     if test "`eval echo @'$'CXXFLAGS_${x}@`" != "@@"; then
118       echo "      cxxflags=\"\${cxxflags} `eval echo '$'CXXFLAGS_${x}`\""
119       if test "${x}" != "plugin" -a "${x}" != "builtin"; then
120         echo "      linkage=\"c++\""
121       fi
122     fi
123     if test "`eval echo @'$'OBJCFLAGS_${x}@`" != "@@"; then
124       echo "      objcflags=\"\${objcflags} `eval echo '$'OBJCFLAGS_${x}`\""
125       if test "${x}" != "plugin" -a "${x}" != "builtin"; then
126         echo "      if test \"\${linkage}\" = \"c\"; then linkage=\"objc\"; fi"
127       fi
128     fi
129     if test "`eval echo @'$'LDFLAGS_${x}@`" != "@@"; then
130       echo "      ldflags=\"\${ldflags} `eval echo '$'LDFLAGS_${x}`\""
131     fi
132     if test "`eval echo @'$'LIBS_${x}@`" != "@@"; then
133       echo "      libs=\"\${libs} `eval echo '$'LIBS_${x}`\""
134     fi
135     echo "    ;;"
136   ] done >> vlc-config.in
137
138   dnl  '/#@1@#/,${/#@.@#/d;p}' won't work on OS X
139   sed -ne '/#@1@#/,$p' < "${srcdir}/vlc-config.in.in" \
140    | sed -e '/#@.@#/d' >> vlc-config.in
141 ])
142
143 dnl ===========================================================================
144 dnl  Macros for shared object handling (TODO)
145
146 AC_DEFUN([VLC_LIBRARY_SUFFIX], [
147   AC_MSG_CHECKING(for shared objects suffix)
148   case "${host_os}" in
149     darwin*)
150       LIBEXT=".dylib"
151       ;;
152     *mingw32* | *cygwin* | *wince* | *mingwce*)
153       LIBEXT=".dll"
154       ;;
155     hpux*)
156       LIBEXT=".sl"
157       ;;
158     *)
159       LIBEXT=".so"
160       ;;
161   esac
162   AC_MSG_RESULT(${LIBEXT})
163   AC_DEFINE_UNQUOTED(LIBEXT, "${LIBEXT}", [Dynamic object extension])
164 ])
165