Makefile.am: don't compile disabled sources

If a feature is disabled, don't compile the source file at all,
disable it completely in Makefile.am instead.
This commit is contained in:
Max Kellermann 2008-10-17 21:13:23 +02:00
parent 4984639b72
commit 25b5d90e44
5 changed files with 25 additions and 28 deletions

View File

@ -412,6 +412,8 @@ if test x$enable_id3 = xyes; then
enable_id3=no) enable_id3=no)
fi fi
AM_CONDITIONAL(HAVE_ID3TAG, test x$enable_id3 = xyes)
if test x$enable_mp3 = xyes; then if test x$enable_mp3 = xyes; then
PKG_CHECK_MODULES([MAD], [mad], PKG_CHECK_MODULES([MAD], [mad],
AC_DEFINE(HAVE_MAD, 1, [Define to use libmad]), AC_DEFINE(HAVE_MAD, 1, [Define to use libmad]),
@ -694,6 +696,8 @@ if test x$with_zeroconf != xno; then
fi fi
fi fi
AM_CONDITIONAL(HAVE_ZEROCONF, test x$with_zeroconf = xyes)
dnl dnl
dnl build options dnl build options

View File

@ -180,18 +180,24 @@ mpd_SOURCES = \
stats.c \ stats.c \
tag.c \ tag.c \
tag_pool.c \ tag_pool.c \
tag_id3.c \
tag_print.c \ tag_print.c \
tag_save.c \ tag_save.c \
strset.c \ strset.c \
utils.c \ utils.c \
volume.c \ volume.c \
utf8.c \ utf8.c \
zeroconf.c \
locate.c \ locate.c \
storedPlaylist.c \ storedPlaylist.c \
timer.c timer.c
if HAVE_ID3TAG
mpd_SOURCES += tag_id3.c
endif
if HAVE_ZEROCONF
mpd_SOURCES += zeroconf.c
endif
mpd_CFLAGS = $(MPD_CFLAGS) mpd_CFLAGS = $(MPD_CFLAGS)
mpd_CPPFLAGS = \ mpd_CPPFLAGS = \

View File

@ -22,12 +22,9 @@
#include "log.h" #include "log.h"
#include "conf.h" #include "conf.h"
#ifdef HAVE_ID3TAG
#include <glib.h> #include <glib.h>
#include <id3tag.h> #include <id3tag.h>
#endif
#ifdef HAVE_ID3TAG
# define isId3v1(tag) (id3_tag_options(tag, 0, 0) & ID3_TAG_OPTION_ID3V1) # define isId3v1(tag) (id3_tag_options(tag, 0, 0) & ID3_TAG_OPTION_ID3V1)
# ifndef ID3_FRAME_COMPOSER # ifndef ID3_FRAME_COMPOSER
# define ID3_FRAME_COMPOSER "TCOM" # define ID3_FRAME_COMPOSER "TCOM"
@ -38,9 +35,7 @@
# ifndef ID3_FRAME_DISC # ifndef ID3_FRAME_DISC
# define ID3_FRAME_DISC "TPOS" # define ID3_FRAME_DISC "TPOS"
# endif # endif
#endif
#ifdef HAVE_ID3TAG
/* This will try to convert a string to utf-8, /* This will try to convert a string to utf-8,
*/ */
static id3_utf8_t * processID3FieldString (int is_id3v1, const id3_ucs4_t *ucs4, int type) static id3_utf8_t * processID3FieldString (int is_id3v1, const id3_ucs4_t *ucs4, int type)
@ -198,9 +193,7 @@ static struct tag *getID3Info(
return mpdTag; return mpdTag;
} }
#endif
#ifdef HAVE_ID3TAG
struct tag *tag_id3_import(struct id3_tag * tag) struct tag *tag_id3_import(struct id3_tag * tag)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
@ -218,18 +211,14 @@ struct tag *tag_id3_import(struct id3_tag * tag)
return ret; return ret;
} }
#endif
#ifdef HAVE_ID3TAG
static int fillBuffer(void *buf, size_t size, FILE * stream, static int fillBuffer(void *buf, size_t size, FILE * stream,
long offset, int whence) long offset, int whence)
{ {
if (fseek(stream, offset, whence) != 0) return 0; if (fseek(stream, offset, whence) != 0) return 0;
return fread(buf, 1, size, stream); return fread(buf, 1, size, stream);
} }
#endif
#ifdef HAVE_ID3TAG
static int getId3v2FooterSize(FILE * stream, long offset, int whence) static int getId3v2FooterSize(FILE * stream, long offset, int whence)
{ {
id3_byte_t buf[ID3_TAG_QUERYSIZE]; id3_byte_t buf[ID3_TAG_QUERYSIZE];
@ -239,9 +228,7 @@ static int getId3v2FooterSize(FILE * stream, long offset, int whence)
if (bufsize <= 0) return 0; if (bufsize <= 0) return 0;
return id3_tag_query(buf, bufsize); return id3_tag_query(buf, bufsize);
} }
#endif
#ifdef HAVE_ID3TAG
static struct id3_tag *getId3Tag(FILE * stream, long offset, int whence) static struct id3_tag *getId3Tag(FILE * stream, long offset, int whence)
{ {
struct id3_tag *tag; struct id3_tag *tag;
@ -276,9 +263,7 @@ static struct id3_tag *getId3Tag(FILE * stream, long offset, int whence)
return tag; return tag;
} }
#endif
#ifdef HAVE_ID3TAG
static struct id3_tag *findId3TagFromBeginning(FILE * stream) static struct id3_tag *findId3TagFromBeginning(FILE * stream)
{ {
struct id3_tag *tag; struct id3_tag *tag;
@ -314,9 +299,7 @@ static struct id3_tag *findId3TagFromBeginning(FILE * stream)
return tag; return tag;
} }
#endif
#ifdef HAVE_ID3TAG
static struct id3_tag *findId3TagFromEnd(FILE * stream) static struct id3_tag *findId3TagFromEnd(FILE * stream)
{ {
struct id3_tag *tag; struct id3_tag *tag;
@ -341,12 +324,10 @@ static struct id3_tag *findId3TagFromEnd(FILE * stream)
return tag; return tag;
} }
#endif
struct tag *tag_id3_load(const char *file) struct tag *tag_id3_load(const char *file)
{ {
struct tag *ret = NULL; struct tag *ret;
#ifdef HAVE_ID3TAG
struct id3_tag *tag; struct id3_tag *tag;
FILE *stream; FILE *stream;
@ -367,6 +348,5 @@ struct tag *tag_id3_load(const char *file)
return NULL; return NULL;
ret = tag_id3_import(tag); ret = tag_id3_import(tag);
id3_tag_delete(tag); id3_tag_delete(tag);
#endif
return ret; return ret;
} }

View File

@ -26,8 +26,19 @@ struct tag;
#ifdef HAVE_ID3TAG #ifdef HAVE_ID3TAG
struct id3_tag; struct id3_tag;
struct tag *tag_id3_import(struct id3_tag *); struct tag *tag_id3_import(struct id3_tag *);
#endif
struct tag *tag_id3_load(const char *file); struct tag *tag_id3_load(const char *file);
#else
#include "gcc.h"
static inline struct tag *
tag_id3_load(mpd_unused const char *file)
{
return NULL;
}
#endif
#endif #endif

View File

@ -18,8 +18,6 @@
#include "../config.h" #include "../config.h"
#ifdef HAVE_ZEROCONF
#include "zeroconf.h" #include "zeroconf.h"
#include "os_compat.h" #include "os_compat.h"
#include "conf.h" #include "conf.h"
@ -630,5 +628,3 @@ void finishZeroconf(void)
} }
#endif #endif
} }
#endif /* HAVE_ZEROCONF */