On 5/24/14, lvqcl <lvqcl.m...@gmail.com> wrote:
> Ozkan Sezer <seze...@gmail.com> писал(а) в своём письме Sat, 24 May 2014
> 10:16:15 +0400:
>
>> - changes the _MSC_VER condition to universally _WIN32: MSVC, as well
>>   as GCC supports this.
>
> MSYS/MinGW 4.8.3, 4.9.0 can't compile code from git after this patch:
>
> format.c:47:22: error: variable 'FLAC__VERSION_STRING' definition is marked
> dllimport
>   FLAC_API const char *FLAC__VERSION_STRING = VERSION;
>                        ^
> format.c:47:22: warning: 'FLAC__VERSION_STRING' redeclared without dllimport
> attribute: previous dllimport ignored [-Wattributes]
> format.c:49:22: error: variable 'FLAC__VENDOR_STRING' definition is marked
> dllimport
>   FLAC_API const char *FLAC__VENDOR_STRING = "reference libFLAC " VERSION "
> 20130526";
>                        ^
> format.c:49:22: warning: 'FLAC__VENDOR_STRING' redeclared without dllimport
> attribute: previous dllimport ignored [-Wattributes]
>
> ...
> ...
>
>
> FLAC_API_EXPORTS macro is defined in libFLAC_dynamic.vcproj,
> FLACPP_API_EXPORTS macro is defined in libFLAC++_dynamic.vcproj,
> but MinGW/GCC makefiles don't define them anywhere.

My apologies, obviously sent an old testing patch. Correct one is
attached (declspec2.diff). Compilation tested using MinGW (gcc-3.4.5,
binutils-2.20), and MinGW-w64 (gcc-4.5.4, binutils-2.21.90.)

--
O.S.
diff --git a/include/FLAC/export.h b/include/FLAC/export.h
index 2232b41..185c282 100644
--- a/include/FLAC/export.h
+++ b/include/FLAC/export.h
@@ -59,11 +59,11 @@
 #if defined(FLAC__NO_DLL)
 #define FLAC_API
 
-#elif defined(_MSC_VER)
-#ifdef FLAC_API_EXPORTS
-#define        FLAC_API        _declspec(dllexport)
+#elif defined(_WIN32)
+#if defined(FLAC_API_EXPORTS) || defined(DLL_EXPORT)
+#define FLAC_API __declspec(dllexport)
 #else
-#define FLAC_API       _declspec(dllimport)
+#define FLAC_API __declspec(dllimport)
 #endif
 
 #elif defined(FLAC__USE_VISIBILITY_ATTR)
diff --git a/include/FLAC++/export.h b/include/FLAC++/export.h
index 11c09e6..91649a5 100644
--- a/include/FLAC++/export.h
+++ b/include/FLAC++/export.h
@@ -59,11 +59,11 @@
 #if defined(FLAC__NO_DLL)
 #define FLACPP_API
 
-#elif defined(_MSC_VER)
-#ifdef FLACPP_API_EXPORTS
-#define        FLACPP_API      _declspec(dllexport)
+#elif defined(_WIN32)
+#if defined(FLACPP_API_EXPORTS) || defined(DLL_EXPORT)
+#define FLACPP_API __declspec(dllexport)
 #else
-#define FLACPP_API     _declspec(dllimport)
+#define FLACPP_API __declspec(dllimport)
 #endif
 
 #elif defined(FLAC__USE_VISIBILITY_ATTR)
diff --git a/src/flac/Makefile.am b/src/flac/Makefile.am
index 389215e..a4929ab 100644
--- a/src/flac/Makefile.am
+++ b/src/flac/Makefile.am
@@ -44,6 +44,9 @@ flac_SOURCES = \
        utils.h \
        vorbiscomment.h
 
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
 flac_LDADD = \
        $(top_builddir)/src/share/utf8/libutf8.la \
        $(top_builddir)/src/share/grabbag/libgrabbag.la \
@@ -51,7 +54,7 @@ flac_LDADD = \
        $(top_builddir)/src/share/replaygain_analysis/libreplaygain_analysis.la 
\
        
$(top_builddir)/src/share/replaygain_synthesis/libreplaygain_synthesis.la \
        $(top_builddir)/src/libFLAC/libFLAC.la \
-       @LIBICONV@ \
+       $(win_utf8_lib) @LIBICONV@ \
        -lm
 
 CLEANFILES = flac.exe
diff --git a/src/metaflac/Makefile.am b/src/metaflac/Makefile.am
index d6e76e8..94fda50 100644
--- a/src/metaflac/Makefile.am
+++ b/src/metaflac/Makefile.am
@@ -42,12 +42,15 @@ metaflac_SOURCES = \
        utils.h
 metaflac_LDFLAGS = $(AM_LDFLAGS)
 
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
 metaflac_LDADD = \
        $(top_builddir)/src/share/grabbag/libgrabbag.la \
        $(top_builddir)/src/share/replaygain_analysis/libreplaygain_analysis.la 
\
        $(top_builddir)/src/share/getopt/libgetopt.la \
        $(top_builddir)/src/share/utf8/libutf8.la \
        $(top_builddir)/src/libFLAC/libFLAC.la \
-       @LIBICONV@
+       $(win_utf8_lib) @LIBICONV@
 
 CLEANFILES = metaflac.exe
diff --git a/src/test_grabbag/cuesheet/Makefile.am 
b/src/test_grabbag/cuesheet/Makefile.am
index a7fc5c5..134afb2 100644
--- a/src/test_grabbag/cuesheet/Makefile.am
+++ b/src/test_grabbag/cuesheet/Makefile.am
@@ -24,8 +24,13 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir)/include 
-I$(top_srcdir)/include
 noinst_PROGRAMS = test_cuesheet
 test_cuesheet_SOURCES = \
        main.c
+
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
 test_cuesheet_LDADD = \
        $(top_builddir)/src/share/grabbag/libgrabbag.la \
+       $(win_utf8_lib) \
        $(top_builddir)/src/share/replaygain_analysis/libreplaygain_analysis.la 
\
        $(top_builddir)/src/libFLAC/libFLAC.la
 
diff --git a/src/test_grabbag/picture/Makefile.am 
b/src/test_grabbag/picture/Makefile.am
index 677fe5c..83af1e8 100644
--- a/src/test_grabbag/picture/Makefile.am
+++ b/src/test_grabbag/picture/Makefile.am
@@ -25,8 +25,12 @@ noinst_PROGRAMS = test_picture
 test_picture_SOURCES = \
        main.c
 
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
 test_picture_LDADD = \
        $(top_builddir)/src/share/grabbag/libgrabbag.la \
+       $(win_utf8_lib) \
        $(top_builddir)/src/libFLAC/libFLAC.la
 
 CLEANFILES = test_picture.exe
diff --git a/src/test_libFLAC++/Makefile.am b/src/test_libFLAC++/Makefile.am
index 281557d..98eee9e 100644
--- a/src/test_libFLAC++/Makefile.am
+++ b/src/test_libFLAC++/Makefile.am
@@ -22,13 +22,17 @@ EXTRA_DIST = \
 
 AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir)/include -I$(top_srcdir)/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++.la \
        $(top_builddir)/src/libFLAC/libFLAC.la \
-       @OGG_LIBS@ \
+       $(win_utf8_lib) @OGG_LIBS@ \
        -lm
 
 test_libFLAC___SOURCES = \
diff --git a/src/test_libFLAC/Makefile.am b/src/test_libFLAC/Makefile.am
index 407c8ea..5c3d4f1 100644
--- a/src/test_libFLAC/Makefile.am
+++ b/src/test_libFLAC/Makefile.am
@@ -25,6 +25,7 @@ AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir)/include 
-I$(top_srcdir)/include -I$(
 noinst_PROGRAMS = test_libFLAC
 
 if OS_IS_WINDOWS
+AM_CPPFLAGS += -DFLAC__NO_DLL
 win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
 endif
 
diff --git a/src/test_seeking/Makefile.am b/src/test_seeking/Makefile.am
index 87ddb36..bb7a564 100644
--- a/src/test_seeking/Makefile.am
+++ b/src/test_seeking/Makefile.am
@@ -25,8 +25,13 @@ AM_CFLAGS = @OGG_CFLAGS@
 AM_CPPFLAGS = -I$(top_builddir) -I$(srcdir)/include -I$(top_srcdir)/include
 
 noinst_PROGRAMS = test_seeking
+
+if OS_IS_WINDOWS
+win_utf8_lib = $(top_builddir)/src/share/win_utf8_io/libwin_utf8_io.la
+endif
+
 test_seeking_LDADD = \
-       $(top_builddir)/src/libFLAC/libFLAC.la
+       $(win_utf8_lib) $(top_builddir)/src/libFLAC/libFLAC.la
 
 test_seeking_SOURCES = \
        main.c
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to