release 0.4.5 with mp4v2 2.0 api support.
[platform/upstream/lightmediascanner.git] / configure.ac
1 AC_INIT(lightmediascanner, 0.4.5.0, barbieri@profusion.mobi)
2 AC_PREREQ(2.52)
3 AC_CONFIG_SRCDIR(configure.ac)
4 AC_CANONICAL_BUILD
5 AC_CANONICAL_HOST
6 AC_ISC_POSIX
7
8 AM_INIT_AUTOMAKE(1.6 dist-bzip2)
9 AM_CONFIG_HEADER(config.h)
10 AC_CONFIG_MACRO_DIR([m4])
11 _XTERM_COLORS
12 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13
14 AC_PROG_CC
15 AM_PROG_CC_STDC
16 AM_PROG_CC_C_O
17 AC_HEADER_STDC
18 AC_C_CONST
19
20 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
21 AC_PROG_LIBTOOL
22
23 VMAJ=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $1);}'`
24 VMIN=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $2);}'`
25 VMIC=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $3);}'`
26 SNAP=`echo $PACKAGE_VERSION | awk -F. '{printf("%s", $4);}'`
27 version_info=`expr $VMAJ + $VMIN`":$VMIC:$VMIN"
28 AC_SUBST(version_info)
29
30 pluginsdir="${libdir}/lightmediascanner/plugins"
31
32 AC_SUBST(pluginsdir)
33 AS_AC_EXPAND(PLUGINSDIR, $pluginsdir)
34 AC_DEFINE_UNQUOTED(PLUGINSDIR, ["$PLUGINSDIR"], [Where plugins are installed.])
35
36 AC_CHECK_FUNCS(realpath)
37 AM_ICONV
38
39 # required modules
40 PKG_CHECK_MODULES(SQLITE3, [sqlite3 >= 3.3])
41
42 # plugins checks
43
44 AM_CONDITIONAL(HAVE_VORBIS, false)
45 AM_CONDITIONAL(USE_TREMOR, false)
46 define([CHECK_MODULE_OGG],
47 [
48         AC_CHECK_HEADERS(tremor/ivorbiscodec.h tremor/ivorbisfile.h, HAVE_IVORBIS_HEADERS=yes, HAVE_IVORBIS_HEADERS=no)
49         if test "x$HAVE_IVORBIS_HEADERS" = "xyes"; then
50             AC_CHECK_LIB(vorbisidec, ogg_sync_bufferin, HAVE_IVORBIS_LIBS=yes, HAVE_IVORBIS_LIBS=no)
51         fi
52
53         AM_CONDITIONAL(USE_TREMOR, test "x$HAVE_IVORBIS_LIBS" = "xyes")
54         if test "x$HAVE_IVORBIS_LIBS" = "xyes"; then
55             AC_DEFINE(USE_TREMOR, 1, Define if libvorbisidec (aka tremor) support is enabled)
56             VORBIS_LIBS="-lvorbisidec"
57             AC_SUBST(VORBIS_LIBS)
58         else
59             AC_LMS_CHECK_PKG(VORBIS, vorbis, [], [OGG=false])
60         fi
61 ])
62
63 AM_CONDITIONAL(HAVE_MP4V2, false)
64 define([CHECK_MODULE_MP4],
65 [
66         AC_CHECK_HEADERS(mp4.h, HAVE_MP4_HEADERS=yes, HAVE_MP4_HEADERS=no)
67         AC_CHECK_HEADERS(mp4v2/mp4v2.h, HAVE_MP4V2_HEADERS=yes, HAVE_MP4V2_HEADERS=no)
68         if test "x$HAVE_MP4_HEADERS" = "xyes" -o "x$HAVE_MP4V2_HEADERS" = "xyes"; then
69             AC_CHECK_LIB(mp4v2, MP4Read, [MP4=true], [MP4=false])
70             MP4V2_LIBS="-lmp4v2"
71             AC_SUBST(MP4V2_LIBS)
72             if test "x$HAVE_MP4V2_HEADERS" = "xyes"; then
73                AC_DEFINE(HAVE_MP4V2, 1, Define if mp4v2.h is present)
74             fi
75             if test "x$HAVE_MP4_HEADERS" = "xyes"; then
76                AC_DEFINE(HAVE_MP4, 1, Define if mp4.h is present)
77             fi
78
79             # test for new 2.0 api
80             if test "x$HAVE_MP4V2_HEADERS" = "xyes"; then
81                AC_MSG_CHECKING([mp4v2 2.0 API (MP4Read and MP4Close)])
82                AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
83                   [[#include <mp4v2/mp4v2.h>]],
84                   [[MP4FileHandle fh = MP4Read("/tmp");
85                     MP4Close(fh, 0);
86                   ]])],
87                   [
88                      AC_MSG_RESULT([yes])
89                      AC_DEFINE(HAVE_MP4V2_2_0_API, 1, Define to 1 if you have mp4v2 2.0 api)
90                   ], [AC_MSG_RESULT([no])])
91             fi
92         else
93             MP4=false
94         fi
95 ])
96
97 AM_CONDITIONAL(HAVE_FLAC, false)
98 define([CHECK_MODULE_FLAC],
99 [
100         AC_LMS_CHECK_PKG(FLAC, flac, [], [FLAC=false])
101 ])
102
103 # plugins declarations
104 AC_LMS_OPTIONAL_MODULE([dummy], true)
105 AC_LMS_OPTIONAL_MODULE([jpeg], true)
106 AC_LMS_OPTIONAL_MODULE([png], true)
107 AC_LMS_OPTIONAL_MODULE([video-dummy], true)
108 AC_LMS_OPTIONAL_MODULE([audio-dummy], true)
109 AC_LMS_OPTIONAL_MODULE([m3u], true)
110 AC_LMS_OPTIONAL_MODULE([ogg], true, [CHECK_MODULE_OGG])
111 AC_LMS_OPTIONAL_MODULE([pls], true)
112 AC_LMS_OPTIONAL_MODULE([asf], true)
113 AC_LMS_OPTIONAL_MODULE([rm], true)
114 AC_LMS_OPTIONAL_MODULE([mp4], true, [CHECK_MODULE_MP4])
115 AC_LMS_OPTIONAL_MODULE([id3], true)
116 AC_LMS_OPTIONAL_MODULE([flac], true, [CHECK_MODULE_FLAC])
117
118 AC_OUTPUT([
119 lightmediascanner.pc
120 lightmediascanner.spec
121 Makefile
122 m4/Makefile
123 src/Makefile
124 src/bin/Makefile
125 src/lib/Makefile
126 src/plugins/Makefile
127 src/plugins/dummy/Makefile
128 src/plugins/jpeg/Makefile
129 src/plugins/png/Makefile
130 src/plugins/video-dummy/Makefile
131 src/plugins/audio-dummy/Makefile
132 src/plugins/m3u/Makefile
133 src/plugins/ogg/Makefile
134 src/plugins/pls/Makefile
135 src/plugins/asf/Makefile
136 src/plugins/rm/Makefile
137 src/plugins/mp4/Makefile
138 src/plugins/id3/Makefile
139 src/plugins/flac/Makefile
140 ])
141
142
143 # report
144 txt_strip() {
145         echo "[$]@" | sed -e 's/^[[ \t]]*\([[^ \t]]*\)[[ \t]]*$/\1/g'
146 }
147
148 MODS=""
149 for mod in $OPTIONAL_MODULES; do
150         MODS="$MODS ${COLOR_HGREEN}+$mod${COLOR_END}"
151 done
152 MODS=$(txt_strip $MODS)
153
154 UNUSED_MODS=""
155 for mod in $UNUSED_OPTIONAL_MODULES; do
156         UNUSED_MODS="$UNUSED_MODS ${COLOR_HRED}-$mod${COLOR_END}"
157 done
158 UNUSED_MODS=$(txt_strip $UNUSED_MODS)
159
160 cat << SUMMARY_EOF
161
162 Summary:
163  * project........: $PACKAGE $VERSION
164  * prefix.........: $(txt_strip $prefix)
165  * CFLAGS.........: $(txt_strip $CFLAGS)
166 SUMMARY_EOF
167
168 echo -e " * modules........: $MODS $UNUSED_MODS"