aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2008-10-17 21:13:23 +0200
committerMax Kellermann <max@duempel.org>2008-10-17 21:13:23 +0200
commit25b5d90e448146b6efaf4926680e35aee4a0af6c (patch)
tree6567bb91758598aa4214bd1939c78487806456a9
parent4984639b7255d72e272f278c95adb1a2cf71b61c (diff)
downloadmpd-25b5d90e448146b6efaf4926680e35aee4a0af6c.tar.gz
mpd-25b5d90e448146b6efaf4926680e35aee4a0af6c.tar.xz
mpd-25b5d90e448146b6efaf4926680e35aee4a0af6c.zip
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.
-rw-r--r--configure.ac4
-rw-r--r--src/Makefile.am10
-rw-r--r--src/tag_id3.c22
-rw-r--r--src/tag_id3.h13
-rw-r--r--src/zeroconf.c4
5 files changed, 25 insertions, 28 deletions
diff --git a/configure.ac b/configure.ac
index ce50de896..5ff6b4071 100644
--- a/configure.ac
+++ b/configure.ac
@@ -412,6 +412,8 @@ if test x$enable_id3 = xyes; then
enable_id3=no)
fi
+AM_CONDITIONAL(HAVE_ID3TAG, test x$enable_id3 = xyes)
+
if test x$enable_mp3 = xyes; then
PKG_CHECK_MODULES([MAD], [mad],
AC_DEFINE(HAVE_MAD, 1, [Define to use libmad]),
@@ -694,6 +696,8 @@ if test x$with_zeroconf != xno; then
fi
fi
+AM_CONDITIONAL(HAVE_ZEROCONF, test x$with_zeroconf = xyes)
+
dnl
dnl build options
diff --git a/src/Makefile.am b/src/Makefile.am
index 6e7b8d948..f36ea5483 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -180,18 +180,24 @@ mpd_SOURCES = \
stats.c \
tag.c \
tag_pool.c \
- tag_id3.c \
tag_print.c \
tag_save.c \
strset.c \
utils.c \
volume.c \
utf8.c \
- zeroconf.c \
locate.c \
storedPlaylist.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_CPPFLAGS = \
diff --git a/src/tag_id3.c b/src/tag_id3.c
index 5d144b583..8f10fedb2 100644
--- a/src/tag_id3.c
+++ b/src/tag_id3.c
@@ -22,12 +22,9 @@
#include "log.h"
#include "conf.h"
-#ifdef HAVE_ID3TAG
#include <glib.h>
#include <id3tag.h>
-#endif
-#ifdef HAVE_ID3TAG
# define isId3v1(tag) (id3_tag_options(tag, 0, 0) & ID3_TAG_OPTION_ID3V1)
# ifndef ID3_FRAME_COMPOSER
# define ID3_FRAME_COMPOSER "TCOM"
@@ -38,9 +35,7 @@
# ifndef ID3_FRAME_DISC
# define ID3_FRAME_DISC "TPOS"
# endif
-#endif
-#ifdef HAVE_ID3TAG
/* 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)
@@ -198,9 +193,7 @@ static struct tag *getID3Info(
return mpdTag;
}
-#endif
-#ifdef HAVE_ID3TAG
struct tag *tag_id3_import(struct id3_tag * tag)
{
struct tag *ret = NULL;
@@ -218,18 +211,14 @@ struct tag *tag_id3_import(struct id3_tag * tag)
return ret;
}
-#endif
-#ifdef HAVE_ID3TAG
static int fillBuffer(void *buf, size_t size, FILE * stream,
long offset, int whence)
{
if (fseek(stream, offset, whence) != 0) return 0;
return fread(buf, 1, size, stream);
}
-#endif
-#ifdef HAVE_ID3TAG
static int getId3v2FooterSize(FILE * stream, long offset, int whence)
{
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;
return id3_tag_query(buf, bufsize);
}
-#endif
-#ifdef HAVE_ID3TAG
static struct id3_tag *getId3Tag(FILE * stream, long offset, int whence)
{
struct id3_tag *tag;
@@ -276,9 +263,7 @@ static struct id3_tag *getId3Tag(FILE * stream, long offset, int whence)
return tag;
}
-#endif
-#ifdef HAVE_ID3TAG
static struct id3_tag *findId3TagFromBeginning(FILE * stream)
{
struct id3_tag *tag;
@@ -314,9 +299,7 @@ static struct id3_tag *findId3TagFromBeginning(FILE * stream)
return tag;
}
-#endif
-#ifdef HAVE_ID3TAG
static struct id3_tag *findId3TagFromEnd(FILE * stream)
{
struct id3_tag *tag;
@@ -341,12 +324,10 @@ static struct id3_tag *findId3TagFromEnd(FILE * stream)
return tag;
}
-#endif
struct tag *tag_id3_load(const char *file)
{
- struct tag *ret = NULL;
-#ifdef HAVE_ID3TAG
+ struct tag *ret;
struct id3_tag *tag;
FILE *stream;
@@ -367,6 +348,5 @@ struct tag *tag_id3_load(const char *file)
return NULL;
ret = tag_id3_import(tag);
id3_tag_delete(tag);
-#endif
return ret;
}
diff --git a/src/tag_id3.h b/src/tag_id3.h
index 807dbfb3a..4140896b2 100644
--- a/src/tag_id3.h
+++ b/src/tag_id3.h
@@ -26,8 +26,19 @@ struct tag;
#ifdef HAVE_ID3TAG
struct id3_tag;
struct tag *tag_id3_import(struct id3_tag *);
-#endif
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
diff --git a/src/zeroconf.c b/src/zeroconf.c
index e6cbb4287..e9742de49 100644
--- a/src/zeroconf.c
+++ b/src/zeroconf.c
@@ -18,8 +18,6 @@
#include "../config.h"
-#ifdef HAVE_ZEROCONF
-
#include "zeroconf.h"
#include "os_compat.h"
#include "conf.h"
@@ -630,5 +628,3 @@ void finishZeroconf(void)
}
#endif
}
-
-#endif /* HAVE_ZEROCONF */