diff --git a/configure b/configure index c07cc8eea..892178134 100755 --- a/configure +++ b/configure @@ -6933,6 +6933,7 @@ fi # this file shouldn't be built at if no libflac is available LIBFLAC_LOCAL_OPTOBJS="ondemand/ODDecodeFlacTask.o" LIBFLAC_LOCAL_CONFIG_SUBDIRS="lib-src/libflac" + LIBFLAC_LOCAL_CONFIGURE_ARGS="--disable-xmms-plugin --disable-doxygen-docs --disable-thorough-tests" { $as_echo "$as_me:${as_lineno-$LINENO}: FLAC libraries are available in this source tree" >&5 $as_echo "$as_me: FLAC libraries are available in this source tree" >&6;} diff --git a/lib-src/audacity-patches.txt b/lib-src/audacity-patches.txt index a4a552a54..2c52c0e93 100644 --- a/lib-src/audacity-patches.txt +++ b/lib-src/audacity-patches.txt @@ -33,6 +33,7 @@ Patches: mac-asm-fixes.patch. Fixes build on OS X Intel 10.4 by creating and object format for Mach-O. Needs to go upstream flac-lite.diff. Remove all the things not included in Audacity SVN from the build system so it will build with 50% less stuff + libflac++-static.patch. Adds static build of libFLAC++. Upstream version: 1.3.0 libid3tag diff --git a/lib-src/libflac/libflac++-static.patch b/lib-src/libflac/libflac++-static.patch new file mode 100644 index 000000000..2199720bf --- /dev/null +++ b/lib-src/libflac/libflac++-static.patch @@ -0,0 +1,134 @@ +diff -wruN orig/flac-1.3.0/src/libFLAC++/Makefile.am libflac/src/libFLAC++/Makefile.am +--- orig/flac-1.3.0/src/libFLAC++/Makefile.am 2013-05-26 04:30:33.928201800 -0500 ++++ libflac/src/libFLAC++/Makefile.am 2013-10-24 10:54:15.000000000 -0500 +@@ -30,6 +30,7 @@ + # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + lib_LTLIBRARIES = libFLAC++.la ++noinst_LTLIBRARIES = libFLAC++-static.la + + m4datadir = $(datadir)/aclocal + m4data_DATA = libFLAC++.m4 +@@ -52,3 +53,6 @@ + metadata.cpp \ + stream_decoder.cpp \ + stream_encoder.cpp ++ ++libFLAC___static_la_LIBADD = $(LOCAL_EXTRA_LIBADD) ++libFLAC___static_la_SOURCES = $(libFLAC___la_SOURCES) +diff -wruN orig/flac-1.3.0/src/libFLAC++/Makefile.in libflac/src/libFLAC++/Makefile.in +--- orig/flac-1.3.0/src/libFLAC++/Makefile.in 2013-05-27 03:11:57.399952300 -0500 ++++ libflac/src/libFLAC++/Makefile.in 2013-10-24 10:54:32.000000000 -0500 +@@ -131,14 +131,18 @@ + } + am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(m4datadir)" \ + "$(DESTDIR)$(pkgconfigdir)" +-LTLIBRARIES = $(lib_LTLIBRARIES) ++LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) ++libFLAC___static_la_DEPENDENCIES = ++am__objects_1 = metadata.lo stream_decoder.lo stream_encoder.lo ++am_libFLAC___static_la_OBJECTS = $(am__objects_1) ++libFLAC___static_la_OBJECTS = $(am_libFLAC___static_la_OBJECTS) ++AM_V_lt = $(am__v_lt_@AM_V@) ++am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) ++am__v_lt_0 = --silent + libFLAC___la_DEPENDENCIES = ../libFLAC/libFLAC.la + am_libFLAC___la_OBJECTS = metadata.lo stream_decoder.lo \ + stream_encoder.lo + libFLAC___la_OBJECTS = $(am_libFLAC___la_OBJECTS) +-AM_V_lt = $(am__v_lt_@AM_V@) +-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +-am__v_lt_0 = --silent + libFLAC___la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(libFLAC___la_LDFLAGS) $(LDFLAGS) -o $@ +@@ -168,8 +172,8 @@ + AM_V_GEN = $(am__v_GEN_@AM_V@) + am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) + am__v_GEN_0 = @echo " GEN " $@; +-SOURCES = $(libFLAC___la_SOURCES) +-DIST_SOURCES = $(libFLAC___la_SOURCES) ++SOURCES = $(libFLAC___static_la_SOURCES) $(libFLAC___la_SOURCES) ++DIST_SOURCES = $(libFLAC___static_la_SOURCES) $(libFLAC___la_SOURCES) + am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ +@@ -330,6 +334,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + lib_LTLIBRARIES = libFLAC++.la ++noinst_LTLIBRARIES = libFLAC++-static.la + m4datadir = $(datadir)/aclocal + m4data_DATA = libFLAC++.m4 + pkgconfigdir = $(libdir)/pkgconfig +@@ -351,6 +356,8 @@ + stream_decoder.cpp \ + stream_encoder.cpp + ++libFLAC___static_la_LIBADD = $(LOCAL_EXTRA_LIBADD) ++libFLAC___static_la_SOURCES = $(libFLAC___la_SOURCES) + all: all-am + + .SUFFIXES: +@@ -419,6 +426,17 @@ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done ++ ++clean-noinstLTLIBRARIES: ++ -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) ++ @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ ++ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ ++ test "$$dir" != "$$p" || dir=.; \ ++ echo "rm -f \"$${dir}/so_locations\""; \ ++ rm -f "$${dir}/so_locations"; \ ++ done ++libFLAC++-static.la: $(libFLAC___static_la_OBJECTS) $(libFLAC___static_la_DEPENDENCIES) $(EXTRA_libFLAC___static_la_DEPENDENCIES) ++ $(AM_V_CXXLD)$(CXXLINK) $(libFLAC___static_la_OBJECTS) $(libFLAC___static_la_LIBADD) $(LIBS) + libFLAC++.la: $(libFLAC___la_OBJECTS) $(libFLAC___la_DEPENDENCIES) $(EXTRA_libFLAC___la_DEPENDENCIES) + $(AM_V_CXXLD)$(libFLAC___la_LINK) -rpath $(libdir) $(libFLAC___la_OBJECTS) $(libFLAC___la_LIBADD) $(LIBS) + +@@ -626,7 +644,7 @@ + clean: clean-am + + clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ +- mostlyclean-am ++ clean-noinstLTLIBRARIES mostlyclean-am + + distclean: distclean-am + -rm -rf ./$(DEPDIR) +@@ -698,20 +716,20 @@ + .MAKE: install-am install-strip + + .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ +- clean-libLTLIBRARIES clean-libtool ctags distclean \ +- distclean-compile distclean-generic distclean-libtool \ +- distclean-tags distdir dvi dvi-am html html-am info info-am \ +- install install-am install-data install-data-am install-dvi \ +- install-dvi-am install-exec install-exec-am install-html \ +- install-html-am install-info install-info-am \ +- install-libLTLIBRARIES install-m4dataDATA install-man \ +- install-pdf install-pdf-am install-pkgconfigDATA install-ps \ +- install-ps-am install-strip installcheck installcheck-am \ +- installdirs maintainer-clean maintainer-clean-generic \ +- mostlyclean mostlyclean-compile mostlyclean-generic \ +- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ +- uninstall-am uninstall-libLTLIBRARIES uninstall-m4dataDATA \ +- uninstall-pkgconfigDATA ++ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ ++ ctags distclean distclean-compile distclean-generic \ ++ distclean-libtool distclean-tags distdir dvi dvi-am html \ ++ html-am info info-am install install-am install-data \ ++ install-data-am install-dvi install-dvi-am install-exec \ ++ install-exec-am install-html install-html-am install-info \ ++ install-info-am install-libLTLIBRARIES install-m4dataDATA \ ++ install-man install-pdf install-pdf-am install-pkgconfigDATA \ ++ install-ps install-ps-am install-strip installcheck \ ++ installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-compile \ ++ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ++ tags uninstall uninstall-am uninstall-libLTLIBRARIES \ ++ uninstall-m4dataDATA uninstall-pkgconfigDATA + + + # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/lib-src/libflac/src/libFLAC++/Makefile.am b/lib-src/libflac/src/libFLAC++/Makefile.am index 51b8cf8ed..4a9eb2212 100644 --- a/lib-src/libflac/src/libFLAC++/Makefile.am +++ b/lib-src/libflac/src/libFLAC++/Makefile.am @@ -30,6 +30,7 @@ # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. lib_LTLIBRARIES = libFLAC++.la +noinst_LTLIBRARIES = libFLAC++-static.la m4datadir = $(datadir)/aclocal m4data_DATA = libFLAC++.m4 @@ -52,3 +53,6 @@ libFLAC___la_SOURCES = \ metadata.cpp \ stream_decoder.cpp \ stream_encoder.cpp + +libFLAC___static_la_LIBADD = $(LOCAL_EXTRA_LIBADD) +libFLAC___static_la_SOURCES = $(libFLAC___la_SOURCES) diff --git a/lib-src/libflac/src/libFLAC++/Makefile.in b/lib-src/libflac/src/libFLAC++/Makefile.in index 7513d2ab5..a659ae5b1 100644 --- a/lib-src/libflac/src/libFLAC++/Makefile.in +++ b/lib-src/libflac/src/libFLAC++/Makefile.in @@ -131,14 +131,18 @@ am__uninstall_files_from_dir = { \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(m4datadir)" \ "$(DESTDIR)$(pkgconfigdir)" -LTLIBRARIES = $(lib_LTLIBRARIES) +LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) +libFLAC___static_la_DEPENDENCIES = +am__objects_1 = metadata.lo stream_decoder.lo stream_encoder.lo +am_libFLAC___static_la_OBJECTS = $(am__objects_1) +libFLAC___static_la_OBJECTS = $(am_libFLAC___static_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent libFLAC___la_DEPENDENCIES = ../libFLAC/libFLAC.la am_libFLAC___la_OBJECTS = metadata.lo stream_decoder.lo \ stream_encoder.lo libFLAC___la_OBJECTS = $(am_libFLAC___la_OBJECTS) -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent libFLAC___la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(libFLAC___la_LDFLAGS) $(LDFLAGS) -o $@ @@ -168,8 +172,8 @@ am__v_CXXLD_0 = @echo " CXXLD " $@; AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -SOURCES = $(libFLAC___la_SOURCES) -DIST_SOURCES = $(libFLAC___la_SOURCES) +SOURCES = $(libFLAC___static_la_SOURCES) $(libFLAC___la_SOURCES) +DIST_SOURCES = $(libFLAC___static_la_SOURCES) $(libFLAC___la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -330,6 +334,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ lib_LTLIBRARIES = libFLAC++.la +noinst_LTLIBRARIES = libFLAC++-static.la m4datadir = $(datadir)/aclocal m4data_DATA = libFLAC++.m4 pkgconfigdir = $(libdir)/pkgconfig @@ -351,6 +356,8 @@ libFLAC___la_SOURCES = \ stream_decoder.cpp \ stream_encoder.cpp +libFLAC___static_la_LIBADD = $(LOCAL_EXTRA_LIBADD) +libFLAC___static_la_SOURCES = $(libFLAC___la_SOURCES) all: all-am .SUFFIXES: @@ -419,6 +426,17 @@ clean-libLTLIBRARIES: echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libFLAC++-static.la: $(libFLAC___static_la_OBJECTS) $(libFLAC___static_la_DEPENDENCIES) $(EXTRA_libFLAC___static_la_DEPENDENCIES) + $(AM_V_CXXLD)$(CXXLINK) $(libFLAC___static_la_OBJECTS) $(libFLAC___static_la_LIBADD) $(LIBS) libFLAC++.la: $(libFLAC___la_OBJECTS) $(libFLAC___la_DEPENDENCIES) $(EXTRA_libFLAC___la_DEPENDENCIES) $(AM_V_CXXLD)$(libFLAC___la_LINK) -rpath $(libdir) $(libFLAC___la_OBJECTS) $(libFLAC___la_LIBADD) $(LIBS) @@ -626,7 +644,7 @@ maintainer-clean-generic: clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ - mostlyclean-am + clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -698,20 +716,20 @@ uninstall-am: uninstall-libLTLIBRARIES uninstall-m4dataDATA \ .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ - clean-libLTLIBRARIES clean-libtool ctags distclean \ - distclean-compile distclean-generic distclean-libtool \ - distclean-tags distdir dvi dvi-am html html-am info info-am \ - install install-am install-data install-data-am install-dvi \ - install-dvi-am install-exec install-exec-am install-html \ - install-html-am install-info install-info-am \ - install-libLTLIBRARIES install-m4dataDATA install-man \ - install-pdf install-pdf-am install-pkgconfigDATA install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs maintainer-clean maintainer-clean-generic \ - mostlyclean mostlyclean-compile mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \ - uninstall-am uninstall-libLTLIBRARIES uninstall-m4dataDATA \ - uninstall-pkgconfigDATA + clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ + ctags distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-libLTLIBRARIES install-m4dataDATA \ + install-man install-pdf install-pdf-am install-pkgconfigDATA \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-libLTLIBRARIES \ + uninstall-m4dataDATA uninstall-pkgconfigDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/lib-src/libflac/src/libFLAC/ia32/nasm.h b/lib-src/libflac/src/libFLAC/ia32/nasm.h index abd01c418..5d9f387c8 100644 --- a/lib-src/libflac/src/libFLAC/ia32/nasm.h +++ b/lib-src/libflac/src/libFLAC/ia32/nasm.h @@ -50,6 +50,11 @@ %idefine code_section section .text align=16 %idefine data_section section .data align=32 %idefine bss_section section .bss align=32 +%elifdef OBJ_FORMAT_macho + %define FLAC__PUBLIC_NEEDS_UNDERSCORE + %idefine code_section section .text + %idefine data_section section .data + %idefine bss_section section .bss %else %error unsupported object format! %endif diff --git a/m4/audacity_checklib_libflac.m4 b/m4/audacity_checklib_libflac.m4 index 121176d6d..bfae89d5a 100644 --- a/m4/audacity_checklib_libflac.m4 +++ b/m4/audacity_checklib_libflac.m4 @@ -63,7 +63,8 @@ AC_DEFUN([AUDACITY_CHECKLIB_LIBFLAC], [ # this file shouldn't be built at if no libflac is available LIBFLAC_LOCAL_OPTOBJS="ondemand/ODDecodeFlacTask.o" LIBFLAC_LOCAL_CONFIG_SUBDIRS="lib-src/libflac" - + LIBFLAC_LOCAL_CONFIGURE_ARGS="--disable-xmms-plugin --disable-doxygen-docs --disable-thorough-tests" + AC_MSG_NOTICE([FLAC libraries are available in this source tree]) else AC_MSG_NOTICE([FLAC libraries are NOT available in this source tree]) diff --git a/win/Projects/libflac/libflac.vcproj b/win/Projects/libflac/libflac.vcproj index 1d57080c5..230a2ab18 100644 --- a/win/Projects/libflac/libflac.vcproj +++ b/win/Projects/libflac/libflac.vcproj @@ -346,6 +346,10 @@ RelativePath="..\..\..\lib-src\libflac\src\libFLAC\stream_encoder_framing.c" > + +