diff options
author | nschlia <nschlia@oblivion-software.de> | 2016-12-06 22:37:18 (GMT) |
---|---|---|
committer | Boris Nagaev <bnagaev@gmail.com> | 2016-12-17 21:15:37 (GMT) |
commit | 519930209ec32d5222e6b25b5d950d102cd0ef78 (patch) | |
tree | 76a9b3b759364de8985206be7791973e0e3c644b /src | |
parent | 6b8a1fd0712eaac40ff95dabc894194fa0a8b369 (diff) | |
download | mxe-519930209ec32d5222e6b25b5d950d102cd0ef78.zip mxe-519930209ec32d5222e6b25b5d950d102cd0ef78.tar.gz mxe-519930209ec32d5222e6b25b5d950d102cd0ef78.tar.bz2 |
Add libcddb
Diffstat (limited to 'src')
-rw-r--r-- | src/libcddb-1-fixes.patch | 90 | ||||
-rw-r--r-- | src/libcddb-test.c | 19 | ||||
-rw-r--r-- | src/libcddb.mk | 37 |
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 |