configure.in.in 9.9 KB
Newer Older
1
#MIN_CONFIG(3.0)
2
AM_INIT_AUTOMAKE(kid3,1.6)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

AC_LANG_CPLUSPLUS

# Check for taglib
TAGLIB_REQ_VERSION="1.4.0"
AC_DEFUN([VERSION_TO_NUMBER], [`$1 | awk 'BEGIN { FS = "."; } { printf "%d",  ([$]1* 1000 + [$]2) * 1000 + [$]3;}'`])
AC_ARG_WITH(taglib, [  --with-taglib           build with taglib, default=yes],
  with_taglib="$withval",
  with_taglib=yes
)
if test "$with_taglib" != "no"; then
  AC_PATH_PROG(TAGLIB_CONFIG, taglib-config, no)
  if test "x$TAGLIB_CONFIG" != "xno" ; then
    TAGLIB_VERSION=[`$TAGLIB_CONFIG --version`]
    if test VERSION_TO_NUMBER(echo $TAGLIB_VERSION) -lt VERSION_TO_NUMBER(echo $TAGLIB_REQ_VERSION); then
18
19
      AC_MSG_ERROR([TagLib >= $TAGLIB_REQ_VERSION not found.
Use --without-taglib to build without TagLib.])
20
21
22
23
24
25
26
27
28
    else
      AC_DEFINE(HAVE_TAGLIB, 1, [have TagLib])
      TAGLIB_INCLUDES=[`$TAGLIB_CONFIG --cflags`]
      LIB_TAGLIB=[`$TAGLIB_CONFIG --libs`]
      HAVE_TAGLIB=1
      AC_SUBST(HAVE_TAGLIB)
      have_taglib=yes
    fi
  else
29
30
31
    AC_MSG_ERROR([taglib-config not found.
Install TagLib development package (e.g. libtag1-dev or taglib-devel)
or use --without-taglib.])
32
33
34
35
36
37
  fi
else
    have_taglib=no
fi
AC_SUBST(TAGLIB_INCLUDES)
AC_SUBST(LIB_TAGLIB)
Urs Fleisch's avatar
Urs Fleisch committed
38
AC_SUBST(TAGLIB_VERSION)
39
AM_CONDITIONAL(HAVE_TAGLIB, test "$have_taglib" = "yes")
Urs Fleisch's avatar
Urs Fleisch committed
40
AM_CONDITIONAL(TAGLIB_VERSION_14, test "$TAGLIB_VERSION" = "1.4")
41

Urs Fleisch's avatar
Urs Fleisch committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# mp4 support with mp4v2
AC_ARG_WITH(mp4v2, [  --with-mp4v2            build with mp4v2, default=yes],
  with_mp4v2="$withval",
  with_mp4v2=yes
)
AC_ARG_WITH(mp4v2-dir, [  --with-mp4v2-dir        path to mpv4v2, default=/usr],
  mp4v2_dir="$withval",
  mp4v2_dir=/usr
)
if test "$with_mp4v2" != "no"; then
  AC_LANG_SAVE
  AC_LANG_CPLUSPLUS
  ac_cxxflags_save=$CXXFLAGS
  CXXFLAGS="$CXXFLAGS -I$mp4v2_dir/include"
  ac_ldflags_save=$LDFLAGS
  LDFLAGS="$LDFLAGS -L$mp4v2_dir/lib"
  # not even everyone using faad2 has <systems.h>
  if ! test -f config.h; then
    echo "#include \"confdefs.h\"" > config.h
  fi
  ac_cppflags_save=$CPPFLAGS
  CPPFLAGS="$CPPFLAGS -I."
  AC_CHECK_HEADERS(systems.h)
  AC_CHECK_HEADERS([mp4.h], [have_mp4_h=yes], [],
    [#ifdef HAVE_SYSTEMS_H
     # include <systems.h>
     #endif
    ])
Urs Fleisch's avatar
Urs Fleisch committed
70
  AC_CHECK_HEADERS(mp4v2/mp4v2.h, [have_mp4v2_mp4v2_h=yes])
Urs Fleisch's avatar
Urs Fleisch committed
71
72
73
74
75
76
77
78
79
80
  AC_CHECK_LIB(mp4v2, MP4Read, [have_mp4v2=yes], [
    AC_MSG_WARN([libmp4v2 not found.
Install mp4v2 development package (e.g. mp4v2-dev or libmp4v2-devel)
or use --without-mp4v2.])
      ])
  CPPFLAGS=$ac_cppflags_save
  CXXFLAGS=$ac_cxxflags_save
  LDFLAGS=$ac_ldflags_save
  AC_LANG_RESTORE
fi
Urs Fleisch's avatar
Urs Fleisch committed
81
if test "$have_mp4v2" = "yes" -a \( "$have_mp4_h" = "yes" -o "$have_mp4v2_mp4v2_h" = "yes" \); then
Urs Fleisch's avatar
Urs Fleisch committed
82
83
84
85
86
87
88
89
90
91
92
93
94
  HAVE_MP4V2=1
  AC_SUBST(HAVE_MP4V2)
  AC_DEFINE(HAVE_MP4V2, 1, [have mp4v2])
  MP4V2_INCLUDES="-I$mp4v2_dir/include"
  LIB_MP4V2="-L$mp4v2_dir/lib -lmp4v2"
else
  LIB_MP4V2=""
  have_mp4v2=no
fi
AC_SUBST(MP4V2_INCLUDES)
AC_SUBST(LIB_MP4V2)
AM_CONDITIONAL(HAVE_MP4V2, test "$have_mp4v2" = "yes")

95
96
97
98
99
100
101
# Check if MP4GetMetadataByIndex() has char** argument
if test "$have_mp4v2" = "yes"; then
  AC_DEFUN([MP4V2_MP4GETMETADATABYINDEX_CHARPP_ARG],
  [
    AC_MSG_CHECKING([if MP4GetMetadataByIndex has char** argument])
    AC_LANG_SAVE
    AC_LANG_CPLUSPLUS
Urs Fleisch's avatar
Urs Fleisch committed
102
103
104
105
106
107
108
109
    cat confdefs.h >conftest.$ac_ext
    cat >> conftest.$ac_ext <<EOF
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_MP4V2_MP4V2_H
#include <mp4v2/mp4v2.h>
#else
110
#include <mp4.h>
Urs Fleisch's avatar
Urs Fleisch committed
111
#endif
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
int main() {
  MP4FileHandle hFile;
  u_int32_t index;
  char* ppName;
  u_int8_t* ppValue;
  u_int32_t pValueSize;
  MP4GetMetadataByIndex(hFile, index, &ppName, &ppValue, &pValueSize);
  return 0;
}
EOF
    ac_save_CPPFLAGS=$CPPFLAGS
    CPPFLAGS="$all_includes $CPPFLAGS"
    if AC_TRY_EVAL(ac_compile); then
      AC_MSG_RESULT(yes)
      AC_DEFINE(HAVE_MP4V2_MP4GETMETADATABYINDEX_CHARPP_ARG, 1, [Define to build with MP4GetMetadataByIndex char** argument])
    else
      AC_MSG_RESULT(no)
    fi
    CPPFLAGS=$ac_save_CPPFLAGS
  
    AC_LANG_RESTORE
  ])
  MP4V2_MP4GETMETADATABYINDEX_CHARPP_ARG
fi

137
138
139
140
141
142
# mp3 support with id3lib
AC_ARG_WITH(id3lib, [  --with-id3lib           build with id3lib, default=yes],
  with_id3lib="$withval",
  with_id3lib=yes
)
if test "$with_id3lib" != "no"; then
143
144
145
146
147
  AC_CHECK_LIB(id3, ID3Tag_Link, [build_id3lib="yes"], [
    AC_MSG_ERROR([libid3 not found.
Install id3lib development package (e.g. libid3-3.8.3-dev or id3lib-devel)
or use --without-id3lib.])
      ], -lz -lstdc++)
148
149
150
151
152
153
154
155
156
157
158
159
160
fi
if test "$build_id3lib" = "yes"; then
  HAVE_ID3LIB=1
  AC_SUBST(HAVE_ID3LIB)
  AC_DEFINE(HAVE_ID3LIB, 1, [have id3lib])
  LIB_ID3LIB="-lid3"
  have_id3lib=yes
else
  LIB_ID3LIB=""
  have_id3lib=no
fi
AC_SUBST(LIB_ID3LIB)
AM_CONDITIONAL(HAVE_ID3LIB, test "$build_id3lib" = "yes")
161
162

# Check if old id3lib without VBR support
163
164
165
166
167
168
169
if test "$build_id3lib" = "yes"; then
  AC_DEFUN([ID3LIB_CHECK_VBR],
  [
    AC_MSG_CHECKING([for id3lib VBR support])
    AC_LANG_SAVE
    AC_LANG_CPLUSPLUS
  cat > conftest.$ac_ext <<EOF
170
171
172
173
174
175
176
177
#include <id3/globals.h>
int main() {
  Mp3_Headerinfo info;
  info.vbr_bitrate = 0;
  return 0;
}
EOF

178
179
180
181
182
183
184
185
186
187
188
189
190
191
    ac_save_CPPFLAGS=$CPPFLAGS
    CPPFLAGS="$all_includes $CPPFLAGS"
    if AC_TRY_EVAL(ac_compile); then
      AC_MSG_RESULT(yes)
    else
      AC_MSG_RESULT(no)
      AC_DEFINE(HAVE_NO_ID3LIB_VBR,1,[Define to build without id3lib VBR support])
    fi
    CPPFLAGS=$ac_save_CPPFLAGS
  
    AC_LANG_RESTORE
  ])
  ID3LIB_CHECK_VBR
fi
192

193
dnl Option to build with KDE
194
AC_ARG_WITH(kde, [  --with-kde              build with KDE, default=yes],
195
196
197
198
199
  with_kde="$withval",
  with_kde=yes
)
if test "$with_kde" != "no"; then
  CONFIG_USE_KDE=1
200
  AC_SUBST(CONFIG_USE_KDE)
201
202
  AC_DEFINE(CONFIG_USE_KDE,1,[Define to build with KDE])
fi
203
AM_CONDITIONAL(CONFIG_USE_KDE, test "$with_kde" = "yes")
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221

# precompiled headers
AC_ARG_ENABLE(gcc-pch,
  [  --enable-gcc-pch        enable precompiled headers (gcc 3.4 required)],[
    case "$enableval" in
      "yes")
        GCC_PCH="yes"
        AC_SUBST(GCC_PCH)
        AC_DEFINE(GCC_PCH, 1, [whether or not we use precompiled headers])
        ;;
      "no")
        ;;
      *)
        AC_MSG_ERROR([must use --enable-gcc-pch(=yes/no) or --disable-gcc-pch])
        ;;
    esac
  ])
AM_CONDITIONAL(GCC_PCH, test "$GCC_PCH" = "yes")
222
223
224
225
226
227
228

# MusicBrainz support with libtunepimp
AC_ARG_WITH(musicbrainz, [  --with-musicbrainz      build with MusicBrainz, default=yes],
  with_musicbrainz="$withval",
  with_musicbrainz=yes
)
if test "$with_musicbrainz" != "no"; then
Urs Fleisch's avatar
Urs Fleisch committed
229
  AC_CHECK_HEADER(tunepimp-0.5/tp_c.h, [build_musicbrainz="yes"],
230
231
232
233
234
    [AC_CHECK_HEADER(tunepimp/tp_c.h, [build_musicbrainz="yes"], [
      AC_MSG_ERROR([tunepimp/tp_c.h not found.
Install tunepimp development package (e.g. libtunepimp3-dev or libtunepimp-devel)
or use --without-musicbrainz.])
        ])])
235
236
fi
if test "$build_musicbrainz" = "yes"; then
Urs Fleisch's avatar
Urs Fleisch committed
237
  AC_CHECK_LIB(tunepimp, tr_GetPUID,
238
239
240
241
    AC_DEFINE(HAVE_TUNEPIMP, 5, [have TunePimp 0.5.x]),
    AC_CHECK_LIB(tunepimp, tp_SetFileNameEncoding,
      AC_DEFINE(HAVE_TUNEPIMP, 4, [have TunePimp 0.4.x]),
      AC_DEFINE(HAVE_TUNEPIMP, 1, [have TunePimp])))
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
  AC_SUBST(HAVE_TUNEPIMP)
  LIB_TUNEPIMP="-ltunepimp"
  have_tunepimp=yes
else
  LIB_TUNEPIMP=""
  have_tunepimp=no
fi
AC_SUBST(LIB_TUNEPIMP)
AM_CONDITIONAL(HAVE_TUNEPIMP, test "$build_musicbrainz" = "yes")

# ogg/vorbis support with libvorbis
AC_ARG_WITH(vorbis, [  --with-vorbis           build with ogg/vorbis, default=yes],
  with_vorbis="$withval",
  with_vorbis=yes
)
if test "$with_vorbis" != "no"; then
258
259
260
261
262
  AC_CHECK_HEADER(vorbis/codec.h, [build_vorbis="yes"], [
    AC_MSG_ERROR([vorbis/codec.h not found.
Install libvorbis development package (e.g. libvorbis-dev or libvorbis-devel)
or use --without-vorbis.])
      ])
263
264
265
266
267
fi
if test "$build_vorbis" = "yes"; then
  HAVE_VORBIS=1
  AC_SUBST(HAVE_VORBIS)
  AC_DEFINE(HAVE_VORBIS, 1, [have vorbis])
268
  LIB_VORBIS="-lvorbis -lvorbisfile -logg"
269
270
271
272
273
274
275
276
277
278
279
280
281
282
  have_vorbis=yes
else
  LIB_VORBIS=""
  have_vorbis=no
fi
AC_SUBST(LIB_VORBIS)
AM_CONDITIONAL(HAVE_VORBIS, test "$build_vorbis" = "yes")

# FLAC support with libFLAC++
AC_ARG_WITH(flac, [  --with-flac             build with FLAC, default=yes],
  with_flac="$withval",
  with_flac=yes
)
if test "$with_flac" != "no"; then
283
284
285
286
287
  AC_CHECK_HEADER(FLAC++/metadata.h, [build_flac="yes"], [
    AC_MSG_ERROR([FLAC++/metadata.h not found.
Install libFLAC++ development package (e.g. libflac++-dev or flac-devel)
or use --without-flac.])
      ])
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
fi
if test "$build_flac" = "yes"; then
  HAVE_FLAC=1
  AC_SUBST(HAVE_FLAC)
  AC_DEFINE(HAVE_FLAC, 1, [have flac])
  LIB_FLAC="-lFLAC++ -lFLAC"
  have_flac=yes
else
  LIB_FLAC=""
  have_flac=no
fi
AC_SUBST(LIB_FLAC)
AM_CONDITIONAL(HAVE_FLAC, test "$build_flac" = "yes")

# Check if old FLAC++ without Prototype::operator ::FLAC__StreamMetadata const *()
303
304
305
306
307
308
309
if test "$build_flac" = "yes"; then
  AC_DEFUN([FLAC_CHECK_STREAMMETADATA_OPERATOR],
  [
    AC_MSG_CHECKING([for FLAC__StreamMetadata operator])
    AC_LANG_SAVE
    AC_LANG_CPLUSPLUS
  cat > conftest.$ac_ext <<EOF
310
311
312
313
314
315
316
317
#include <FLAC++/metadata.h>
int main() {
  FLAC::Metadata::VorbisComment vc;
  const ::FLAC__StreamMetadata* fsmd = vc;
  return 0;
}
EOF

318
319
320
321
322
323
324
325
326
327
328
329
330
331
    ac_save_CPPFLAGS=$CPPFLAGS
    CPPFLAGS="$all_includes $CPPFLAGS"
    if AC_TRY_EVAL(ac_compile); then
      AC_MSG_RESULT(yes)
    else
      AC_MSG_RESULT(no)
      AC_DEFINE(HAVE_NO_FLAC_STREAMMETADATA_OPERATOR,1,[Define to build without FLAC__StreamMetadata operator])
    fi
    CPPFLAGS=$ac_save_CPPFLAGS
  
    AC_LANG_RESTORE
  ])
  FLAC_CHECK_STREAMMETADATA_OPERATOR
fi
Urs Fleisch's avatar
Urs Fleisch committed
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361

# Check if FLAC++ has FLAC::Metadata::Picture
if test "$build_flac" = "yes"; then
  AC_DEFUN([FLAC_CHECK_METADATA_TYPE_PICTURE],
  [
    AC_MSG_CHECKING([for FLAC::Metadata::Picture])
    AC_LANG_SAVE
    AC_LANG_CPLUSPLUS
  cat > conftest.$ac_ext <<EOF
#include <FLAC++/metadata.h>
int main() {
  FLAC::Metadata::Picture pic;
  return 0;
}
EOF

    ac_save_CPPFLAGS=$CPPFLAGS
    CPPFLAGS="$all_includes $CPPFLAGS"
    if AC_TRY_EVAL(ac_compile); then
      AC_MSG_RESULT(yes)
      AC_DEFINE(HAVE_FLAC_PICTURE,1,[Define to build with FLAC::Metadata::Picture])
    else
      AC_MSG_RESULT(no)
    fi
    CPPFLAGS=$ac_save_CPPFLAGS
  
    AC_LANG_RESTORE
  ])
  FLAC_CHECK_METADATA_TYPE_PICTURE
fi