plugins/asf: Fix header_extension_guid
[platform/upstream/lightmediascanner.git] / configure.ac
1 AC_INIT(lightmediascanner, 0.4.5.0, barbieri@profusion.mobi)
2 AC_PREREQ(2.60)
3 AC_CONFIG_SRCDIR(configure.ac)
4 AC_CANONICAL_BUILD
5 AC_CANONICAL_HOST
6 AC_ISC_POSIX
7
8 AM_INIT_AUTOMAKE(foreign 1.11 silent-rules subdir-objects dist-bzip2)
9 AM_CONFIG_HEADER(config.h)
10 AC_USE_SYSTEM_EXTENSIONS
11 AC_CONFIG_MACRO_DIR([m4])
12 _XTERM_COLORS
13 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
14
15 AC_PROG_CC
16 AM_PROG_CC_STDC
17 AM_PROG_CC_C_O
18 AC_HEADER_STDC
19 AC_C_CONST
20
21 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
22 AC_PROG_LIBTOOL
23
24 VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
25 VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
26 VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
27 SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'`
28 version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
29 AC_SUBST(version_info)
30
31 pluginsdir="${libdir}/lightmediascanner/plugins"
32
33 AC_SUBST(pluginsdir)
34 AS_AC_EXPAND(PLUGINSDIR, $pluginsdir)
35 AC_DEFINE_UNQUOTED(PLUGINSDIR, ["$PLUGINSDIR"], [Where plugins are installed.])
36
37 AC_CHECK_FUNCS(realpath)
38 AM_ICONV
39
40 # required modules
41 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= 3.3])
42
43 # plugins checks
44
45 AM_CONDITIONAL(HAVE_VORBIS, false)
46 AM_CONDITIONAL(USE_TREMOR, false)
47 define([CHECK_MODULE_OGG],
48 [
49         AC_CHECK_HEADERS(tremor/ivorbiscodec.h tremor/ivorbisfile.h, HAVE_IVORBIS_HEADERS=yes, HAVE_IVORBIS_HEADERS=no)
50         if test "x$HAVE_IVORBIS_HEADERS" = "xyes"; then
51             AC_CHECK_LIB(vorbisidec, ogg_sync_bufferin, HAVE_IVORBIS_LIBS=yes, HAVE_IVORBIS_LIBS=no)
52         fi
53
54         AM_CONDITIONAL(USE_TREMOR, test "x$HAVE_IVORBIS_LIBS" = "xyes")
55         if test "x$HAVE_IVORBIS_LIBS" = "xyes"; then
56             AC_DEFINE(USE_TREMOR, 1, Define if libvorbisidec (aka tremor) support is enabled)
57             VORBIS_LIBS="-lvorbisidec"
58             AC_SUBST(VORBIS_LIBS)
59         else
60             AC_LMS_CHECK_PKG(VORBIS, vorbis, [], [OGG=false])
61         fi
62 ])
63
64 AM_CONDITIONAL(HAVE_MP4V2, false)
65 define([CHECK_MODULE_MP4],
66 [
67         AC_CHECK_HEADERS(mp4.h, HAVE_MP4_HEADERS=yes, HAVE_MP4_HEADERS=no)
68         AC_CHECK_HEADERS(mp4v2/mp4v2.h, HAVE_MP4V2_HEADERS=yes, HAVE_MP4V2_HEADERS=no)
69         if test "x$HAVE_MP4_HEADERS" = "xyes" -o "x$HAVE_MP4V2_HEADERS" = "xyes"; then
70             AC_CHECK_LIB(mp4v2, MP4Read, [MP4=true], [MP4=false])
71             MP4V2_LIBS="-lmp4v2"
72             AC_SUBST(MP4V2_LIBS)
73             if test "x$HAVE_MP4V2_HEADERS" = "xyes"; then
74                AC_DEFINE(HAVE_MP4V2, 1, Define if mp4v2.h is present)
75             fi
76             if test "x$HAVE_MP4_HEADERS" = "xyes"; then
77                AC_DEFINE(HAVE_MP4, 1, Define if mp4.h is present)
78             fi
79
80             # test for new 2.0 api
81             if test "x$HAVE_MP4V2_HEADERS" = "xyes"; then
82                AC_MSG_CHECKING([mp4v2 2.0 API (MP4Read and MP4Close)])
83                AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
84                   [[#include <mp4v2/mp4v2.h>]],
85                   [[MP4FileHandle fh = MP4Read("/tmp");
86                     MP4Close(fh, 0);
87                   ]])],
88                   [
89                      AC_MSG_RESULT([yes])
90                      AC_DEFINE(HAVE_MP4V2_2_0_API, 1, Define to 1 if you have mp4v2 2.0 api)
91                   ], [AC_MSG_RESULT([no])])
92             fi
93         else
94             MP4=false
95         fi
96 ])
97
98 AM_CONDITIONAL(HAVE_FLAC, false)
99 define([CHECK_MODULE_FLAC],
100 [
101         AC_LMS_CHECK_PKG(FLAC, flac, [], [FLAC=false])
102 ])
103
104 # plugins declarations
105 AC_LMS_OPTIONAL_MODULE([dummy], true)
106 AC_LMS_OPTIONAL_MODULE([jpeg], true)
107 AC_LMS_OPTIONAL_MODULE([png], true)
108 AC_LMS_OPTIONAL_MODULE([video-dummy], true)
109 AC_LMS_OPTIONAL_MODULE([audio-dummy], true)
110 AC_LMS_OPTIONAL_MODULE([m3u], true)
111 AC_LMS_OPTIONAL_MODULE([ogg], true, [CHECK_MODULE_OGG])
112 AC_LMS_OPTIONAL_MODULE([pls], true)
113 AC_LMS_OPTIONAL_MODULE([asf], true)
114 AC_LMS_OPTIONAL_MODULE([rm], true)
115 AC_LMS_OPTIONAL_MODULE([mp4], true, [CHECK_MODULE_MP4])
116 AC_LMS_OPTIONAL_MODULE([id3], true)
117 AC_LMS_OPTIONAL_MODULE([flac], true, [CHECK_MODULE_FLAC])
118 AC_LMS_OPTIONAL_MODULE([wave], true)
119
120
121 #####################################################################
122 # Default CFLAGS and LDFLAGS
123 #####################################################################
124
125 CC_CHECK_FLAGS_APPEND(with_cflags, [CFLAGS], [\
126                        -pipe \
127                        -DANOTHER_BRICK_IN_THE \
128                        -Wall \
129                        -W \
130                        -Wextra \
131                        -Wno-inline \
132                        -Wvla \
133                        -Wundef \
134                        -Wformat=2 \
135                        -Wlogical-op \
136                        -Wsign-compare \
137                        -Wformat-security \
138                        -Wmissing-include-dirs \
139                        -Wformat-nonliteral \
140                        -Wold-style-definition \
141                        -Wpointer-arith \
142                        -Winit-self \
143                        -Wdeclaration-after-statement \
144                        -Wfloat-equal \
145                        -Wmissing-prototypes \
146                        -Wstrict-prototypes \
147                        -Wredundant-decls \
148                        -Wmissing-declarations \
149                        -Wmissing-noreturn \
150                        -Wshadow \
151                        -Wendif-labels \
152                        -Wstrict-aliasing=2 \
153                        -Wwrite-strings \
154                        -Wno-long-long \
155                        -Wno-overlength-strings \
156                        -Wno-unused-parameter \
157                        -Wno-missing-field-initializers \
158                        -Wno-unused-result \
159                        -Wnested-externs \
160                        -Wchar-subscripts \
161                        -Wtype-limits \
162                        -Wuninitialized \
163                        -fno-common \
164                        -fdiagnostics-show-option \
165                        -fvisibility=hidden \
166                        -ffunction-sections \
167                        -fdata-sections])
168 AC_SUBST([WARNINGFLAGS], $with_cflags)
169
170
171 CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [ \
172                        -Wl,--as-needed \
173                        -Wl,--gc-sections])
174 AC_SUBST([GCLDFLAGS], $with_ldflags)
175
176
177 AC_OUTPUT([
178 lightmediascanner.pc
179 lightmediascanner.spec
180 Makefile
181 m4/Makefile
182 src/Makefile
183 src/bin/Makefile
184 src/lib/Makefile
185 src/plugins/Makefile
186 ])
187
188
189 # report
190 txt_strip() {
191         echo "[$]@" | sed -e 's/^[[ \t]]*\([[^ \t]]*\)[[ \t]]*$/\1/g'
192 }
193
194 MODS=""
195 for mod in $OPTIONAL_MODULES; do
196         MODS="$MODS ${COLOR_HGREEN}+$mod${COLOR_END}"
197 done
198 MODS=$(txt_strip $MODS)
199
200 UNUSED_MODS=""
201 for mod in $UNUSED_OPTIONAL_MODULES; do
202         UNUSED_MODS="$UNUSED_MODS ${COLOR_HRED}-$mod${COLOR_END}"
203 done
204 UNUSED_MODS=$(txt_strip $UNUSED_MODS)
205
206 cat << SUMMARY_EOF
207
208 Summary:
209  * project........: $PACKAGE $VERSION
210  * prefix.........: $(txt_strip $prefix)
211  * CFLAGS.........: $(txt_strip $CFLAGS)
212 SUMMARY_EOF
213
214 echo -e " * modules........: $MODS $UNUSED_MODS"