summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornschlia <nschlia@oblivion-software.de>2016-12-06 22:37:18 (GMT)
committerBoris Nagaev <bnagaev@gmail.com>2016-12-17 21:15:37 (GMT)
commit519930209ec32d5222e6b25b5d950d102cd0ef78 (patch)
tree76a9b3b759364de8985206be7791973e0e3c644b /src
parent6b8a1fd0712eaac40ff95dabc894194fa0a8b369 (diff)
downloadmxe-519930209ec32d5222e6b25b5d950d102cd0ef78.zip
mxe-519930209ec32d5222e6b25b5d950d102cd0ef78.tar.gz
mxe-519930209ec32d5222e6b25b5d950d102cd0ef78.tar.bz2
Add libcddb
Diffstat (limited to 'src')
-rw-r--r--src/libcddb-1-fixes.patch90
-rw-r--r--src/libcddb-test.c19
-rw-r--r--src/libcddb.mk37
3 files changed, 146 insertions, 0 deletions
diff --git a/src/libcddb-1-fixes.patch b/src/libcddb-1-fixes.patch
new file mode 100644
index 0000000..c02e34b
--- /dev/null
+++ b/src/libcddb-1-fixes.patch
@@ -0,0 +1,90 @@
+This file is part of MXE. See LICENSE.md for licensing information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Norbert Schlia <nschlia@oblivion-software.de>
+Date: Mon, 12 Dec 2016 08:48:17 +0100
+Subject: [PATCH] Newer versions winioctl.h contain a #define SEARCH_ALL ..
+ which collides with the enum in cddb_conn.h.
+
+
+diff --git a/include/cddb/cddb_conn.h b/include/cddb/cddb_conn.h
+index 1111111..2222222 100644
+--- a/include/cddb/cddb_conn.h
++++ b/include/cddb/cddb_conn.h
+@@ -59,6 +59,10 @@ typedef struct cddb_conn_s cddb_conn_t;
+ * Which fields to use for the full text search is defined by one or
+ * more of the constants below.
+ */
++#ifdef SEARCH_ALL
++#undef SEARCH_ALL // Defined in winioctl.h, causes havoc under windoze
++#endif
++
+ typedef enum {
+ SEARCH_NONE = 0, /**< no fields */
+ SEARCH_ARTIST = 1, /**< artist name field */
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Norbert Schlia <nschlia@oblivion-software.de>
+Date: Mon, 12 Dec 2016 08:50:10 +0100
+Subject: [PATCH] configure falsely detects an alarm() function available,
+ causing compile errors.
+
+
+diff --git a/configure b/configure
+index 1111111..2222222 100755
+--- a/configure
++++ b/configure
+@@ -13622,7 +13622,7 @@ rm -f conftest*
+
+
+
+-for ac_func in mkdir regcomp socket strdup strtol strchr memset alarm select realloc
++for ac_func in mkdir regcomp socket strdup strtol strchr memset select realloc
+ do
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Norbert Schlia <nschlia@oblivion-software.de>
+Date: Mon, 12 Dec 2016 08:51:37 +0100
+Subject: [PATCH] libccdb crashes in strlen() under windows because s =
+ getenv("HOME"); returns NULL
+
+
+diff --git a/lib/cddb_conn.c b/lib/cddb_conn.c
+index 1111111..2222222 100644
+--- a/lib/cddb_conn.c
++++ b/lib/cddb_conn.c
+@@ -100,6 +100,13 @@ cddb_conn_t *cddb_new(void)
+ c->use_cache = CACHE_ON;
+ /* construct cache dir '$HOME/[DEFAULT_CACHE]' */
+ s = getenv("HOME");
++ if (s == NULL)
++ s = getenv("TEMP");
++ if (s == NULL)
++ s = getenv("TMP");
++ if (s == NULL)
++ s = ".";
++
+ c->cache_dir = (char*)malloc(strlen(s) + 1 + sizeof(DEFAULT_CACHE) + 1);
+ sprintf(c->cache_dir, "%s/%s", s, DEFAULT_CACHE);
+ c->cache_read = FALSE;
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Boris Nagaev <bnagaev@gmail.com>
+Date: Fri, 16 Dec 2016 03:55:31 +0100
+Subject: [PATCH] pc: add private libs -lgnurx -lregex -lws2_32
+
+
+diff --git a/libcddb.pc.in b/libcddb.pc.in
+index 1111111..2222222 100644
+--- a/libcddb.pc.in
++++ b/libcddb.pc.in
+@@ -7,4 +7,5 @@ Name: libcddb
+ Description: CDDB server access library
+ Version: @VERSION@
+ Libs: -L${libdir} -lcddb @LIBICONV@
++Libs.private: -L${libdir} -lgnurx -lregex -lws2_32
+ Cflags: -I${includedir}
diff --git a/src/libcddb-test.c b/src/libcddb-test.c
new file mode 100644
index 0000000..3d7a2f6
--- /dev/null
+++ b/src/libcddb-test.c
@@ -0,0 +1,19 @@
+/*
+ * This file is part of MXE. See LICENSE.md for licensing information.
+ */
+
+// Based on: http://libcddb.sourceforge.net/tutorial.html
+
+#include <stdio.h>
+
+#include <cddb/cddb.h>
+
+int main() {
+ cddb_track_t *track = NULL;
+ track = cddb_track_new();
+ if (track == NULL) {
+ fprintf(stderr, "out of memory, unable to create track");
+ }
+ cddb_track_destroy(track);
+ return 0;
+}
diff --git a/src/libcddb.mk b/src/libcddb.mk
new file mode 100644
index 0000000..2446d49
--- /dev/null
+++ b/src/libcddb.mk
@@ -0,0 +1,37 @@
+# This file is part of MXE. See LICENSE.md for licensing information.
+
+PKG := libcddb
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.3.2
+$(PKG)_CHECKSUM := 35ce0ee1741ea38def304ddfe84a958901413aa829698357f0bee5bb8f0a223b
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/libcddb/libcddb/$($(PKG)_VERSION)/$(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_DEPS := gcc libiconv libgnurx
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://downloads.sourceforge.net/project/libcddb/libcddb/' | \
+ $(SED) -n 's,.*libcddb-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ sort | uniq | \
+ head -1
+endef
+
+# lt_cv_deplibs_check_method="pass_all" allow all libs (avoid static lib creation for x64 because of ws2_32.lib)
+# ac_cv_func_malloc_0_nonnull=yes avoid unresolved external
+# ac_cv_func_realloc_0_nonnull=yes avoid unresolved external
+define $(PKG)_BUILD
+ cd '$(BUILD_DIR)' && \
+ lt_cv_deplibs_check_method="pass_all" \
+ ac_cv_func_malloc_0_nonnull=yes \
+ ac_cv_func_realloc_0_nonnull=yes \
+ '$(SOURCE_DIR)'/configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' $(MXE_DISABLE_PROGRAMS)
+ $(MAKE) -C '$(BUILD_DIR)' -j 1 install $(MXE_DISABLE_PROGRAMS)
+
+ # create test binary
+ $(TARGET)-gcc \
+ -W -Wall -Werror \
+ '$(TEST_FILE)' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
+ `$(TARGET)-pkg-config libcddb --cflags --libs`
+endef