summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik de Castro Lopo <erikd@mega-nerd.com>2013-04-01 19:57:13 +1100
committerErik de Castro Lopo <erikd@mega-nerd.com>2013-04-01 19:57:13 +1100
commit2199d086921eb37d249cae0731f334556ec6209d (patch)
tree5add730a244929f20e8863a8afd6efbd9bc2acbe
parentb3c3e2ac4fcac9d9b178ad240976634d52d5eece (diff)
downloadflac-2199d086921eb37d249cae0731f334556ec6209d.tar.gz
Enable utf8 I/O stuff when compiling with MinGW.
-rw-r--r--.gitignore1
-rw-r--r--configure.ac3
-rw-r--r--include/share/compat.h3
-rw-r--r--include/share/win_utf8_io.h2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/flac/iffscan.c2
-rw-r--r--src/flac/main.c2
-rw-r--r--src/flac/vorbiscomment.c2
-rw-r--r--src/libFLAC/Makefile.am7
-rw-r--r--src/metaflac/main.c2
-rw-r--r--src/metaflac/operations_shorthand_vorbiscomment.c2
-rw-r--r--src/share/Makefile.am11
-rw-r--r--src/share/win_utf8_io/win_utf8_io.c5
-rw-r--r--src/test_libFLAC/Makefile.am7
-rw-r--r--src/test_streams/Makefile.am6
15 files changed, 41 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore
index d2778450..a24f4e42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -69,3 +69,4 @@ test/metaflac-test-files/out.meta
test/metaflac.flac
test/picture.diff
test/picture.log
+.dirstamp
diff --git a/configure.ac b/configure.ac
index bda568f0..12e29070 100644
--- a/configure.ac
+++ b/configure.ac
@@ -124,16 +124,19 @@ case "$host" in
esac
AM_CONDITIONAL(FLaC__CPU_PPC_SPE, test "x$abi_spe" = xtrue)
+os_is_windows=no
case "$host" in
*-*-cygwin|*mingw*|*emx*)
# define this variable for enabling strict exports with libtool; for now, it's supported by Win32 and OS/2
LT_NO_UNDEFINED="-no-undefined"
+ os_is_windows=yes
;;
*)
LT_NO_UNDEFINED=
;;
esac
AC_SUBST(LT_NO_UNDEFINED)
+AM_CONDITIONAL(OS_IS_WINDOWS, test "x$os_is_windows" = xyes)
case "$host" in
*-pc-linux-gnu)
diff --git a/include/share/compat.h b/include/share/compat.h
index 214990c2..cf83bfe5 100644
--- a/include/share/compat.h
+++ b/include/share/compat.h
@@ -141,7 +141,8 @@
# endif
#endif /* defined _MSC_VER */
-#ifdef FLAC__STRINGS_IN_UTF8 /* all char* strings are in UTF-8 format. Added to support Unicode files on Windows */
+#ifdef _WIN32
+/* All char* strings are in UTF-8 format. Added to support Unicode files on Windows */
#include "share/win_utf8_io.h"
#define flac_printf printf_utf8
diff --git a/include/share/win_utf8_io.h b/include/share/win_utf8_io.h
index caf7cf92..598f187f 100644
--- a/include/share/win_utf8_io.h
+++ b/include/share/win_utf8_io.h
@@ -1,4 +1,4 @@
-#ifdef FLAC__STRINGS_IN_UTF8
+#ifdef _WIN32
#ifndef flac__win_utf8_io_h
#define flac__win_utf8_io_h
diff --git a/src/Makefile.am b/src/Makefile.am
index e833eb39..22615d78 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -24,8 +24,8 @@ CPPLIBS_DIRS = libFLAC++ test_libFLAC++
endif
SUBDIRS = \
- libFLAC \
share \
+ libFLAC \
flac \
metaflac \
monkeys_audio_utilities \
diff --git a/src/flac/iffscan.c b/src/flac/iffscan.c
index cf0fb936..2a8a0ce4 100644
--- a/src/flac/iffscan.c
+++ b/src/flac/iffscan.c
@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
size_t i;
FLAC__uint32 size;
-#ifdef FLAC__STRINGS_IN_UTF8
+#ifdef _WIN32
if (get_utf8_argv(&argc, &argv) != 0) {
fprintf(stderr, "%ERROR: failed to convert command line parameters to UTF-8\n");
return 1;
diff --git a/src/flac/main.c b/src/flac/main.c
index 7bbe460e..62e54a45 100644
--- a/src/flac/main.c
+++ b/src/flac/main.c
@@ -304,7 +304,7 @@ int main(int argc, char *argv[])
_response(&argc, &argv);
_wildcard(&argc, &argv);
#endif
-#ifdef FLAC__STRINGS_IN_UTF8
+#ifdef _WIN32
if (get_utf8_argv(&argc, &argv) != 0) {
fprintf(stderr, "ERROR: failed to convert command line parameters to UTF-8\n");
return 1;
diff --git a/src/flac/vorbiscomment.c b/src/flac/vorbiscomment.c
index db6d9ade..5a9f619f 100644
--- a/src/flac/vorbiscomment.c
+++ b/src/flac/vorbiscomment.c
@@ -170,7 +170,7 @@ static FLAC__bool set_vc_field(FLAC__StreamMetadata *block, const Argument_VcFie
}
else {
FLAC__bool needs_free = false;
-#ifdef FLAC__STRINGS_IN_UTF8 /* everything in UTF-8 already. Must not alter */
+#ifdef _WIN32 /* everything in UTF-8 already. Must not alter */
entry.entry = (FLAC__byte *)field->field;
#else
if(raw) {
diff --git a/src/libFLAC/Makefile.am b/src/libFLAC/Makefile.am
index 7928abfd..aa0b8b63 100644
--- a/src/libFLAC/Makefile.am
+++ b/src/libFLAC/Makefile.am
@@ -82,7 +82,11 @@ endif
endif
endif
-libFLAC_la_LIBADD = $(LOCAL_EXTRA_LIBADD) @OGG_LIBS@ -lm
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
+
+libFLAC_la_LIBADD = $(win_utf8_lib) $(LOCAL_EXTRA_LIBADD) @OGG_LIBS@ -lm
SUBDIRS = $(ARCH_SUBDIRS) include .
@@ -106,6 +110,7 @@ extra_ogg_sources = \
ogg_helper.c \
ogg_mapping.c
endif
+
# see 'http://www.gnu.org/software/libtool/manual/libtool.html#Libtool-versioning' for numbering convention
libFLAC_la_LDFLAGS = -version-info 11:0:3 $(LOCAL_EXTRA_LDFLAGS) @LT_NO_UNDEFINED@
diff --git a/src/metaflac/main.c b/src/metaflac/main.c
index e85d1c29..03e42c7a 100644
--- a/src/metaflac/main.c
+++ b/src/metaflac/main.c
@@ -35,7 +35,7 @@ int main(int argc, char *argv[])
_response(&argc, &argv);
_wildcard(&argc, &argv);
#endif
-#ifdef FLAC__STRINGS_IN_UTF8
+#ifdef _WIN32
if (get_utf8_argv(&argc, &argv) != 0) {
fprintf(stderr, "%ERROR: failed to convert command line parameters to UTF-8\n");
return 1;
diff --git a/src/metaflac/operations_shorthand_vorbiscomment.c b/src/metaflac/operations_shorthand_vorbiscomment.c
index 61537bf5..3d381a57 100644
--- a/src/metaflac/operations_shorthand_vorbiscomment.c
+++ b/src/metaflac/operations_shorthand_vorbiscomment.c
@@ -245,7 +245,7 @@ FLAC__bool set_vc_field(const char *filename, FLAC__StreamMetadata *block, const
}
else {
FLAC__bool needs_free = false;
-#ifdef FLAC__STRINGS_IN_UTF8 /* do not convert anything or things will break */
+#ifdef _WIN32 /* do not convert anything or things will break */
entry.entry = (FLAC__byte *)field->field;
#else
if(raw) {
diff --git a/src/share/Makefile.am b/src/share/Makefile.am
index 8c325889..bb66122c 100644
--- a/src/share/Makefile.am
+++ b/src/share/Makefile.am
@@ -45,10 +45,18 @@ noinst_LTLIBRARIES = \
getopt/libgetopt.la \
grabbag/libgrabbag.la \
utf8/libutf8.la \
+ win_utf8_io/libwin_utf8_io.la \
replaygain_analysis/libreplaygain_analysis.la \
replaygain_synthesis/libreplaygain_synthesis.la
+if OS_IS_WINDOWS
+win_utf8_io_libwin_utf8_io_la_SOURCES = win_utf8_io/win_utf8_io.c
+else
+win_utf8_io_libwin_utf8_io_la_SOURCES =
+endif
+
+
getopt_libgetopt_la_SOURCES = getopt/getopt.c getopt/getopt1.c
grabbag_libgrabbag_la_SOURCES = \
@@ -64,8 +72,7 @@ utf8_libutf8_la_SOURCES = \
utf8/charset.c \
utf8/charset.h \
utf8/iconvert.c \
- utf8/utf8.c \
- win_utf8_io/win_utf8_io.c
+ utf8/utf8.c
replaygain_analysis_libreplaygain_analysis_la_SOURCES = replaygain_analysis/replaygain_analysis.c
diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c
index 0699f19c..12cfd977 100644
--- a/src/share/win_utf8_io/win_utf8_io.c
+++ b/src/share/win_utf8_io/win_utf8_io.c
@@ -1,4 +1,3 @@
-#ifdef FLAC__STRINGS_IN_UTF8
#include <stdio.h>
#include <sys/stat.h>
@@ -12,6 +11,7 @@
#include "share/win_utf8_io.h"
/* convert WCHAR stored Unicode string to UTF-8. Caller is responsible for freeing memory */
+static
char *utf8_from_wchar(const wchar_t *wstr)
{
char *utf8str;
@@ -29,6 +29,7 @@ char *utf8_from_wchar(const wchar_t *wstr)
}
/* convert UTF-8 back to WCHAR. Caller is responsible for freeing memory */
+static
wchar_t *wchar_from_utf8(const char *str)
{
wchar_t *widestr;
@@ -256,5 +257,3 @@ int rename_utf8(const char *oldname, const char *newname)
return ret;
}
-
-#endif
diff --git a/src/test_libFLAC/Makefile.am b/src/test_libFLAC/Makefile.am
index e6136e7a..cd754727 100644
--- a/src/test_libFLAC/Makefile.am
+++ b/src/test_libFLAC/Makefile.am
@@ -22,12 +22,17 @@ EXTRA_DIST = \
AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir)/include -I$(top_srcdir)/include -I$(top_srcdir)/src/libFLAC/include
noinst_PROGRAMS = test_libFLAC
+
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
+
test_libFLAC_LDADD = \
$(top_builddir)/src/share/grabbag/libgrabbag.la \
$(top_builddir)/src/share/replaygain_analysis/libreplaygain_analysis.la \
$(top_builddir)/src/test_libs_common/libtest_libs_common.la \
$(top_builddir)/src/libFLAC/libFLAC-static.la \
- @OGG_LIBS@ \
+ $(win_utf8_lib) @OGG_LIBS@ \
-lm
test_libFLAC_SOURCES = \
diff --git a/src/test_streams/Makefile.am b/src/test_streams/Makefile.am
index de0d6935..7942dc57 100644
--- a/src/test_streams/Makefile.am
+++ b/src/test_streams/Makefile.am
@@ -24,6 +24,10 @@ noinst_PROGRAMS = test_streams
test_streams_SOURCES = \
main.c
-test_streams_LDADD = $(top_builddir)/src/share/grabbag/libgrabbag.la -lm
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
+
+test_streams_LDADD = $(win_utf8_lib) $(top_builddir)/src/share/grabbag/libgrabbag.la -lm
CLEANFILES = test_streams.exe