Commit b1ec796b authored by Josh Coalson's avatar Josh Coalson
Browse files

complete largefile support

parent 6977bda1
...@@ -44,12 +44,12 @@ all default: $(DEFAULT_BUILD) ...@@ -44,12 +44,12 @@ all default: $(DEFAULT_BUILD)
VERSION=\"CVS\" VERSION=\"CVS\"
ifeq ($(DARWIN_BUILD),yes) ifeq ($(DARWIN_BUILD),yes)
#CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -DFLAC__SYS_DARWIN #CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFLAC__SYS_DARWIN
CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DFLAC__HAS_OGG -DFLAC__SYS_DARWIN CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DFLAC__SYS_DARWIN
ICONV_INCLUDE_DIR=$(HOME)/local.i18n/include ICONV_INCLUDE_DIR=$(HOME)/local.i18n/include
ICONV_LIB_DIR=$(HOME)/local.i18n/lib ICONV_LIB_DIR=$(HOME)/local.i18n/lib
else else
CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG CONFIG_CFLAGS=-DHAVE_INTTYPES_H -DHAVE_ICONV -DHAVE_LANGINFO_CODESET -DHAVE_SOCKLEN_T -DFLAC__HAS_OGG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
endif endif
OGG_INCLUDE_DIR=$(HOME)/local/include OGG_INCLUDE_DIR=$(HOME)/local/include
......
...@@ -42,6 +42,9 @@ AC_PROG_MAKE_SET ...@@ -42,6 +42,9 @@ AC_PROG_MAKE_SET
AC_SYS_LARGEFILE AC_SYS_LARGEFILE
AC_FUNC_FSEEKO AC_FUNC_FSEEKO
#@@@ new name is AC_CONFIG_HEADERS
AM_CONFIG_HEADER(config.h)
AC_CHECK_TYPES(socklen_t, [], []) AC_CHECK_TYPES(socklen_t, [], [])
dnl check for getopt in standard library dnl check for getopt in standard library
...@@ -49,13 +52,25 @@ dnl AC_CHECK_FUNCS(getopt_long , , [LIBOBJS="$LIBOBJS getopt.o getopt1.o"] ) ...@@ -49,13 +52,25 @@ dnl AC_CHECK_FUNCS(getopt_long , , [LIBOBJS="$LIBOBJS getopt.o getopt1.o"] )
AC_CHECK_FUNCS(getopt_long, [], []) AC_CHECK_FUNCS(getopt_long, [], [])
case "$host_cpu" in case "$host_cpu" in
i*86) cpu_ia32=true ; AC_DEFINE(FLAC__CPU_IA32) ;; i*86)
powerpc) cpu_ppc=true ; AC_DEFINE(FLAC__CPU_PPC) ;; cpu_ia32=true
sparc) cpu_sparc=true ; AC_DEFINE(FLAC__CPU_SPARC) ;; AC_DEFINE(FLAC__CPU_IA32)
AH_TEMPLATE(FLAC__CPU_IA32, [define if building for ia32/i386])
;;
powerpc)
cpu_ppc=true
AC_DEFINE(FLAC__CPU_PPC)
AH_TEMPLATE(FLAC__CPU_PPC, [define if building for PowerPC])
;;
sparc)
cpu_sparc=true
AC_DEFINE(FLAC__CPU_SPARC)
AH_TEMPLATE(FLAC__CPU_SPARC, [define if building for SPARC])
;;
esac esac
AM_CONDITIONAL(FLaC__CPU_IA32, test x$cpu_ia32 = xtrue) AM_CONDITIONAL(FLaC__CPU_IA32, test "x$cpu_ia32" = xtrue)
AM_CONDITIONAL(FLaC__CPU_PPC, test x$cpu_ppc = xtrue) AM_CONDITIONAL(FLaC__CPU_PPC, test "x$cpu_ppc" = xtrue)
AM_CONDITIONAL(FLaC__CPU_SPARC, test x$cpu_sparc = xtrue) AM_CONDITIONAL(FLaC__CPU_SPARC, test "x$cpu_sparc" = xtrue)
case "$host" in case "$host" in
i386-*-openbsd3.[[0-3]]) OBJ_FORMAT=aoutb ;; i386-*-openbsd3.[[0-3]]) OBJ_FORMAT=aoutb ;;
*-*-cygwin|*mingw*) OBJ_FORMAT=win32 ;; *-*-cygwin|*mingw*) OBJ_FORMAT=win32 ;;
...@@ -63,20 +78,30 @@ case "$host" in ...@@ -63,20 +78,30 @@ case "$host" in
esac esac
AC_SUBST(OBJ_FORMAT) AC_SUBST(OBJ_FORMAT)
case "$host" in case "$host" in
*-pc-linux-gnu) sys_linux=true ; AC_DEFINE(FLAC__SYS_LINUX) ;; *-pc-linux-gnu)
*-*-darwin*) sys_darwin=true ; AC_DEFINE(FLAC__SYS_DARWIN) ;; sys_linux=true
AC_DEFINE(FLAC__SYS_LINUX)
AH_TEMPLATE(FLAC__SYS_LINUX, [define if building for Linux])
;;
*-*-darwin*)
sys_darwin=true
AC_DEFINE(FLAC__SYS_DARWIN)
AH_TEMPLATE(FLAC__SYS_DARWIN, [define if building for Darwin / MacOS X])
;;
esac esac
AM_CONDITIONAL(FLaC__SYS_DARWIN, test x$sys_darwin = xtrue) AM_CONDITIONAL(FLaC__SYS_DARWIN, test "x$sys_darwin" = xtrue)
AM_CONDITIONAL(FLaC__SYS_LINUX, test x$sys_linux = xtrue) AM_CONDITIONAL(FLaC__SYS_LINUX, test "x$sys_linux" = xtrue)
if test x$cpu_ia32 = xtrue ; then if test "x$cpu_ia32" = xtrue ; then
AC_DEFINE(FLAC__ALIGN_MALLOC_DATA) AC_DEFINE(FLAC__ALIGN_MALLOC_DATA)
AH_TEMPLATE(FLAC__ALIGN_MALLOC_DATA, [define to align allocated memory on 32-byte boundaries])
fi fi
AC_ARG_ENABLE(asm-optimizations, [ --disable-asm-optimizations Don't use any assembly optimization routines], asm_opt=no, asm_opt=yes) AC_ARG_ENABLE(asm-optimizations, AC_HELP_STRING([--disable-asm-optimizations], [Don't use any assembly optimization routines]), asm_opt=no, asm_opt=yes)
AM_CONDITIONAL(FLaC__NO_ASM, test x$asm_opt = xno) AM_CONDITIONAL(FLaC__NO_ASM, test "x$asm_opt" = xno)
if test x$asm_opt = xno ; then if test "x$asm_opt" = xno ; then
AC_DEFINE(FLAC__NO_ASM) AC_DEFINE(FLAC__NO_ASM)
AH_TEMPLATE(FLAC__NO_ASM, [define to disable use of assembly code])
fi fi
AC_ARG_ENABLE(debug, AC_ARG_ENABLE(debug,
...@@ -86,7 +111,7 @@ AC_ARG_ENABLE(debug, ...@@ -86,7 +111,7 @@ AC_ARG_ENABLE(debug,
no) debug=false ;; no) debug=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
esac],[debug=false]) esac],[debug=false])
AM_CONDITIONAL(DEBUG, test x$debug = xtrue) AM_CONDITIONAL(DEBUG, test "x$debug" = xtrue)
AC_ARG_ENABLE(sse, AC_ARG_ENABLE(sse,
[ --enable-sse Enable SSE support by asserting that the OS supports SSE instructions], [ --enable-sse Enable SSE support by asserting that the OS supports SSE instructions],
...@@ -95,9 +120,10 @@ AC_ARG_ENABLE(sse, ...@@ -95,9 +120,10 @@ AC_ARG_ENABLE(sse,
no) sse_os=false ;; no) sse_os=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-sse) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-sse) ;;
esac],[sse_os=false]) esac],[sse_os=false])
AM_CONDITIONAL(FLaC__SSE_OS, test x$sse_os = xtrue) AM_CONDITIONAL(FLaC__SSE_OS, test "x$sse_os" = xtrue)
if test x$sse_os = xtrue ; then if test "x$sse_os" = xtrue ; then
AC_DEFINE(FLAC__SSE_OS) AC_DEFINE(FLAC__SSE_OS)
AH_TEMPLATE(FLAC__SSE_OS, [define if your operating system supports SSE instructions])
fi fi
AC_ARG_ENABLE(3dnow, AC_ARG_ENABLE(3dnow,
...@@ -107,9 +133,10 @@ AC_ARG_ENABLE(3dnow, ...@@ -107,9 +133,10 @@ AC_ARG_ENABLE(3dnow,
no) use_3dnow=false ;; no) use_3dnow=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-3dnow) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-3dnow) ;;
esac],[use_3dnow=true]) esac],[use_3dnow=true])
AM_CONDITIONAL(FLaC__USE_3DNOW, test x$use_3dnow = xtrue) AM_CONDITIONAL(FLaC__USE_3DNOW, test "x$use_3dnow" = xtrue)
if test x$use_3dnow = xtrue ; then if test "x$use_3dnow" = xtrue ; then
AC_DEFINE(FLAC__USE_3DNOW) AC_DEFINE(FLAC__USE_3DNOW)
AH_TEMPLATE(FLAC__USE_3DNOW, [define to enable use of 3Dnow! instructions])
fi fi
AC_ARG_ENABLE(altivec, AC_ARG_ENABLE(altivec,
...@@ -119,9 +146,10 @@ AC_ARG_ENABLE(altivec, ...@@ -119,9 +146,10 @@ AC_ARG_ENABLE(altivec,
no) use_altivec=false ;; no) use_altivec=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-altivec) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-altivec) ;;
esac],[use_altivec=true]) esac],[use_altivec=true])
AM_CONDITIONAL(FLaC__USE_ALTIVEC, test x$use_altivec = xtrue) AM_CONDITIONAL(FLaC__USE_ALTIVEC, test "x$use_altivec" = xtrue)
if test x$use_altivec = xtrue ; then if test "x$use_altivec" = xtrue ; then
AC_DEFINE(FLAC__USE_ALTIVEC) AC_DEFINE(FLAC__USE_ALTIVEC)
AH_TEMPLATE(FLAC__USE_ALTIVEC, [define to enable use of Altivec instructions])
fi fi
AC_ARG_ENABLE(local-xmms-plugin, AC_ARG_ENABLE(local-xmms-plugin,
...@@ -131,7 +159,7 @@ AC_ARG_ENABLE(local-xmms-plugin, ...@@ -131,7 +159,7 @@ AC_ARG_ENABLE(local-xmms-plugin,
no) install_xmms_plugin_locally=false ;; no) install_xmms_plugin_locally=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-local-xmms-plugin) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-local-xmms-plugin) ;;
esac],[install_xmms_plugin_locally=false]) esac],[install_xmms_plugin_locally=false])
AM_CONDITIONAL(FLaC__INSTALL_XMMS_PLUGIN_LOCALLY, test x$install_xmms_plugin_locally = xtrue) AM_CONDITIONAL(FLaC__INSTALL_XMMS_PLUGIN_LOCALLY, test "x$install_xmms_plugin_locally" = xtrue)
AC_ARG_ENABLE(exhaustive-tests, AC_ARG_ENABLE(exhaustive-tests,
[ --enable-exhaustive-tests Enable exhaustive testing], [ --enable-exhaustive-tests Enable exhaustive testing],
...@@ -140,50 +168,57 @@ AC_ARG_ENABLE(exhaustive-tests, ...@@ -140,50 +168,57 @@ AC_ARG_ENABLE(exhaustive-tests,
no) exhaustive_tests=false ;; no) exhaustive_tests=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-exhaustive-tests) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-exhaustive-tests) ;;
esac],[exhaustive_tests=false]) esac],[exhaustive_tests=false])
AM_CONDITIONAL(FLaC__EXHAUSTIVE_TESTS, test x$exhaustive_tests = xtrue) AM_CONDITIONAL(FLaC__EXHAUSTIVE_TESTS, test "x$exhaustive_tests" = xtrue)
if test x$exhaustive_tests = xtrue ; then if test "x$exhaustive_tests" = xtrue ; then
AC_DEFINE(FLAC__EXHAUSTIVE_TESTS) AC_DEFINE(FLAC__EXHAUSTIVE_TESTS)
AH_TEMPLATE(FLAC__EXHAUSTIVE_TESTS, [define to run even more tests])
fi fi
AC_ARG_ENABLE(valgrind-testing, AC_ARG_ENABLE(valgrind-testing,
[ --enable-valgrind-testing Run all tests inside Valgrind], AC_HELP_STRING([--enable-valgrind-testing], [Run all tests inside Valgrind]),
[case "${enableval}" in [case "${enableval}" in
yes) valgrind_testing=true ;; yes) valgrind_testing=true ;;
no) valgrind_testing=false ;; no) valgrind_testing=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-valgrind-testing) ;; *) AC_MSG_ERROR(bad value ${enableval} for --enable-valgrind-testing) ;;
esac],[valgrind_testing=false]) esac],[valgrind_testing=false])
AM_CONDITIONAL(FLaC__VALGRIND_TESTING, test x$valgrind_testing = xtrue) AM_CONDITIONAL(FLaC__VALGRIND_TESTING, test "x$valgrind_testing" = xtrue)
if test x$valgrind_testing = xtrue ; then if test "x$valgrind_testing" = xtrue ; then
AC_DEFINE(FLAC__VALGRIND_TESTING) AC_DEFINE(FLAC__VALGRIND_TESTING)
AH_TEMPLATE(FLAC__VALGRIND_TESTING, [define to enable use of Valgrind in testers])
fi fi
AC_ARG_ENABLE(doxygen-docs,
AC_HELP_STRING([--disable-doxygen-docs], [Disable API documentation building via Doxygen]),
[case "${enableval}" in
yes) enable_doxygen_docs=true ;;
no) enable_doxygen_docs=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-doxygen-docs) ;;
esac],[enable_doxygen_docs=true])
if test "x$enable_doxygen_docs" != xno ; then
AC_CHECK_PROGS(DOXYGEN, doxygen)
fi
AM_CONDITIONAL(FLaC__HAS_DOXYGEN, test -n "$DOXYGEN")
dnl check for ogg library dnl check for ogg library
XIPH_PATH_OGG(have_ogg=yes, AC_MSG_WARN([*** Ogg development enviroment not installed - Ogg support will not be built])) XIPH_PATH_OGG(have_ogg=yes, AC_MSG_WARN([*** Ogg development enviroment not installed - Ogg support will not be built]))
AM_CONDITIONAL(FLaC__HAS_OGG, [test x$have_ogg = xyes]) AM_CONDITIONAL(FLaC__HAS_OGG, [test "x$have_ogg" = xyes])
if test x$have_ogg = xyes ; then if test "x$have_ogg" = xyes ; then
AC_DEFINE(FLAC__HAS_OGG) AC_DEFINE(FLAC__HAS_OGG)
AH_TEMPLATE(FLAC__HAS_OGG, [define if you have the ogg library])
fi fi
AM_PATH_XMMS(0.9.5.1, , AC_MSG_WARN([*** XMMS >= 0.9.5.1 not installed - xmms support will not be built])) AM_PATH_XMMS(0.9.5.1, , AC_MSG_WARN([*** XMMS >= 0.9.5.1 not installed - xmms support will not be built]))
AM_CONDITIONAL(FLaC__HAS_XMMS, test x$XMMS_INPUT_PLUGIN_DIR != x) AM_CONDITIONAL(FLaC__HAS_XMMS, test -n "$XMMS_INPUT_PLUGIN_DIR")
dnl check for i18n(internationalization); these are from libiconv/gettext dnl check for i18n(internationalization); these are from libiconv/gettext
AM_ICONV AM_ICONV
AM_LANGINFO_CODESET AM_LANGINFO_CODESET
AC_ARG_ENABLE(doxygen_docs, AC_HELP_STRING([--disable-doxygen-docs], [Disable API documentation building via Doxygen]))
if test "x$enable_doxygen_docs" != "xno" ; then
AC_CHECK_PROGS(DOXYGEN, doxygen)
fi
AM_CONDITIONAL(FLaC__HAS_DOXYGEN, test -n "$DOXYGEN")
if test -n "$DOXYGEN" ; then
AC_DEFINE(FLAC__HAS_DOXYGEN)
fi
AC_CHECK_PROGS(DOCBOOK_TO_MAN, docbook-to-man docbook2man) AC_CHECK_PROGS(DOCBOOK_TO_MAN, docbook-to-man docbook2man)
AM_CONDITIONAL(FLaC__HAS_DOCBOOK_TO_MAN, test -n "$DOCBOOK_TO_MAN") AM_CONDITIONAL(FLaC__HAS_DOCBOOK_TO_MAN, test -n "$DOCBOOK_TO_MAN")
if test -n "$DOCBOOK_TO_MAN" ; then if test -n "$DOCBOOK_TO_MAN" ; then
AC_DEFINE(FLAC__HAS_DOCBOOK_TO_MAN) AC_DEFINE(FLAC__HAS_DOCBOOK_TO_MAN)
AH_TEMPLATE(FLAC__HAS_DOCBOOK_TO_MAN, [define if you have docbook-to-man or docbook2man])
fi fi
# only matters for x86 # only matters for x86
...@@ -191,6 +226,7 @@ AC_CHECK_PROGS(NASM, nasm) ...@@ -191,6 +226,7 @@ AC_CHECK_PROGS(NASM, nasm)
AM_CONDITIONAL(FLaC__HAS_NASM, test -n "$NASM") AM_CONDITIONAL(FLaC__HAS_NASM, test -n "$NASM")
if test -n "$NASM" ; then if test -n "$NASM" ; then
AC_DEFINE(FLAC__HAS_NASM) AC_DEFINE(FLAC__HAS_NASM)
AH_TEMPLATE(FLAC__HAS_NASM, [define if you are compiling for x86 and have the NASM assembler])
fi fi
# only matters for PowerPC # only matters for PowerPC
...@@ -203,18 +239,20 @@ AM_CONDITIONAL(FLaC__HAS_AS, test "$AS" = "as") ...@@ -203,18 +239,20 @@ AM_CONDITIONAL(FLaC__HAS_AS, test "$AS" = "as")
AM_CONDITIONAL(FLaC__HAS_GAS, test "$AS" = "gas") AM_CONDITIONAL(FLaC__HAS_GAS, test "$AS" = "gas")
if test "$AS" = "as" ; then if test "$AS" = "as" ; then
AC_DEFINE(FLAC__HAS_AS) AC_DEFINE(FLAC__HAS_AS)
AH_TEMPLATE(FLAC__HAS_AS, [define if you are compiling for PowerPC and have the 'as' assembler])
fi fi
if test "$AS" = "gas" ; then if test "$AS" = "gas" ; then
# funniest. macro. ever. # funniest. macro. ever.
AC_DEFINE(FLAC__HAS_GAS) AC_DEFINE(FLAC__HAS_GAS)
AH_TEMPLATE(FLAC__HAS_GAS, [define if you are compiling for PowerPC and have the 'gas' assembler])
fi fi
OUR_CFLAGS_HEAD='-I$(top_builddir) -I$(srcdir)/include -I$(top_srcdir)/include' OUR_CFLAGS_HEAD='-I$(top_builddir) -I$(srcdir)/include -I$(top_srcdir)/include'
if test x$debug = xtrue; then if test "x$debug" = xtrue; then
OUR_CFLAGS_HEAD="$OUR_CFLAGS_HEAD -g -O0 -DDEBUG" OUR_CFLAGS_HEAD="$OUR_CFLAGS_HEAD -g -O0 -DDEBUG"
else else
OUR_CFLAGS_HEAD="$OUR_CFLAGS_HEAD -O2 -DNDEBUG" OUR_CFLAGS_HEAD="$OUR_CFLAGS_HEAD -O2 -DNDEBUG"
if test x$GCC = xyes; then if test "x$GCC" = xyes; then
OUR_CFLAGS_HEAD="$OUR_CFLAGS_HEAD -O3 -fomit-frame-pointer -funroll-loops -finline-functions -Wall -W -Winline -DFLaC__INLINE=__inline__" OUR_CFLAGS_HEAD="$OUR_CFLAGS_HEAD -O3 -fomit-frame-pointer -funroll-loops -finline-functions -Wall -W -Winline -DFLaC__INLINE=__inline__"
fi fi
fi fi
...@@ -225,27 +263,7 @@ CXXFLAGS="$OUR_CFLAGS_HEAD $CXXFLAGS" ...@@ -225,27 +263,7 @@ CXXFLAGS="$OUR_CFLAGS_HEAD $CXXFLAGS"
AM_CONDITIONAL(FLaC__HAS_AS__TEMPORARILY_DISABLED, test "yes" = "no") AM_CONDITIONAL(FLaC__HAS_AS__TEMPORARILY_DISABLED, test "yes" = "no")
AM_CONDITIONAL(FLaC__HAS_GAS__TEMPORARILY_DISABLED, test "yes" = "no") AM_CONDITIONAL(FLaC__HAS_GAS__TEMPORARILY_DISABLED, test "yes" = "no")
AM_CONFIG_HEADER(config.h) AC_CONFIG_FILES([ \
AH_TEMPLATE(FLAC__ALIGN_MALLOC_DATA, [define to align allocated memory on 32-byte boundaries])
AH_TEMPLATE(FLAC__CPU_IA32, [define if building for ia32/i386])
AH_TEMPLATE(FLAC__CPU_PPC, [define if building for PowerPC])
AH_TEMPLATE(FLAC__CPU_SPARC, [define if building for SPARC])
AH_TEMPLATE(FLAC__SYS_DARWIN, [define if building for Darwin / MacOS X])
AH_TEMPLATE(FLAC__SYS_LINUX, [define if building for Linux])
AH_TEMPLATE(FLAC__EXHAUSTIVE_TESTS, [define to run even more tests])
AH_TEMPLATE(FLAC__VALGRIND_TESTING, [define to enable use of Valgrind in testers])
AH_TEMPLATE(FLAC__HAS_DOXYGEN, [define if you have Doxygen])
AH_TEMPLATE(FLAC__HAS_DOCBOOK_TO_MAN, [define if you have docbook-to-man or docbook2man])
AH_TEMPLATE(FLAC__HAS_NASM, [define if you are compiling for x86 and have the NASM assembler])
AH_TEMPLATE(FLAC__HAS_AS, [define if you are compiling for PowerPC and have the 'as' assembler])
AH_TEMPLATE(FLAC__HAS_GAS, [define if you are compiling for PowerPC and have the 'gas' assembler])
AH_TEMPLATE(FLAC__HAS_OGG, [define if you have the ogg library])
AH_TEMPLATE(FLAC__NO_ASM, [define to disable use of assembly code])
AH_TEMPLATE(FLAC__SSE_OS, [define if your operating system supports SSE instructions])
AH_TEMPLATE(FLAC__USE_3DNOW, [define to enable use of 3Dnow! instructions])
AH_TEMPLATE(FLAC__USE_ALTIVEC, [define to enable use of Altivec instructions])
AC_OUTPUT( \
Makefile \ Makefile \
src/Makefile \ src/Makefile \
src/libFLAC/Makefile \ src/libFLAC/Makefile \
...@@ -311,4 +329,5 @@ AC_OUTPUT( \ ...@@ -311,4 +329,5 @@ AC_OUTPUT( \
obj/release/bin/Makefile \ obj/release/bin/Makefile \
obj/release/lib/Makefile \ obj/release/lib/Makefile \
flac.pbproj/Makefile \ flac.pbproj/Makefile \
) ])
AC_OUTPUT
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<li> <li>
General: General:
<ul> <ul>
<li>(none)</li> <li>Large file (&gt;2GB) support everywhere</li>
</ul> </ul>
</li> </li>
<li> <li>
...@@ -98,6 +98,7 @@ ...@@ -98,6 +98,7 @@
<ul> <ul>
<li>Added a new option <a href="documentation.html#metaflac_shorthand_set_tag_from_file"><span class="argument">--set-tag-from-file</span></a> for setting a tag from file (e.g. for importing a cuesheet as a tag).</li> <li>Added a new option <a href="documentation.html#metaflac_shorthand_set_tag_from_file"><span class="argument">--set-tag-from-file</span></a> for setting a tag from file (e.g. for importing a cuesheet as a tag).</li>
<li>Added shorthand operation <a href="documentation.html#metaflac_shorthand_remove_replay_gain"><span class="argument">--remove-replay-gain</span></a> for removing ReplayGain tags.</li> <li>Added shorthand operation <a href="documentation.html#metaflac_shorthand_remove_replay_gain"><span class="argument">--remove-replay-gain</span></a> for removing ReplayGain tags.</li>
<li><a href="documentation.html#metaflac_shorthand_export_cuesheet_to"><span class="argument">--export-cuesheet-to</span></a> now properly specifies the FLAC file name (<a href="https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1272825&amp;group_id=13478&amp;atid=363478">SF #1272825</a>).</li>
<li>Importing of non-CDDA-compliant cuesheets now issues a warning.</li> <li>Importing of non-CDDA-compliant cuesheets now issues a warning.</li>
</ul> </ul>
</li> </li>
...@@ -105,14 +106,16 @@ ...@@ -105,14 +106,16 @@
plugins: plugins:
<ul> <ul>
<li>When ReplayGain is on, if tags for the preferred kind of gain (album/track) are not in a stream, the other kind will be used.</li> <li>When ReplayGain is on, if tags for the preferred kind of gain (album/track) are not in a stream, the other kind will be used.</li>
<li>Add ReplayGain info to file info box in XMMS plugin</li> <li>Added ReplayGain info to file info box in XMMS plugin</li>
<li>Fixed UTF-8 decoder to disallow non-shortest-form and surrogate sequences (see <a href="http://www.unicode.org/versions/corrigendum1.html">here</a>).</li> <li>Fixed UTF-8 decoder to disallow non-shortest-form and surrogate sequences (see <a href="http://www.unicode.org/versions/corrigendum1.html">here</a>).</li>
</ul> </ul>
</li> </li>
<li> <li>
build system: build system:
<ul> <ul>
<li>Add support for building on OS/2 with EMX (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1229495&group_id=13478&atid=113478">SF #1229495</a>)</li> <li>Added support for building on OS/2 with EMX (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1229495&group_id=13478&atid=113478">SF #1229495</a>)</li>
<li>Added <span class="argument">--disable-doxygen-docs</span> to <span class="command">configure</span> for disabling Doxygen-based API doc generation (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1365935&group_id=13478&atid=313478">SF #1365935</a>).</li>
<li>Added large file support with <span class="argument">AC_SYS_LARGEFILE</span>; use <span class="argument">--disable-largefile</span> with <span class="command">configure</span> to disable.</li>
</ul> </ul>
</li> </li>
<li> <li>
......
...@@ -23,6 +23,11 @@ ...@@ -23,6 +23,11 @@
#ifndef GRABAG__FILE_H #ifndef GRABAG__FILE_H
#define GRABAG__FILE_H #define GRABAG__FILE_H
/* needed because of off_t */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h> /* for off_t */ #include <sys/types.h> /* for off_t */
#include <stdio.h> /* for FILE */ #include <stdio.h> /* for FILE */
#include "FLAC/ordinals.h" #include "FLAC/ordinals.h"
......
...@@ -16,6 +16,11 @@ ...@@ -16,6 +16,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#if HAVE_CONFIG_H
# include <config.h>
#endif
#include <errno.h>
#include <math.h> #include <math.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
...@@ -208,7 +213,7 @@ FLAC__bool dump_stats(const subframe_stats_t *stats, const char *filename) ...@@ -208,7 +213,7 @@ FLAC__bool dump_stats(const subframe_stats_t *stats, const char *filename)
outfile = fopen(filename, "w"); outfile = fopen(filename, "w");
if(0 == outfile) { if(0 == outfile) {
fprintf(stderr, "ERROR opening %s\n", filename); fprintf(stderr, "ERROR opening %s: %s\n", filename, strerror(errno));
return false; return false;
} }
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#ifdef HAVE_CONFIG_H #if HAVE_CONFIG_H
#include <config.h> # include <config.h>
#endif #endif
#if defined _WIN32 && !defined __CYGWIN__ #if defined _WIN32 && !defined __CYGWIN__
...@@ -26,10 +26,16 @@ ...@@ -26,10 +26,16 @@
#else #else
# include <unistd.h> # include <unistd.h>
#endif #endif
#if defined _MSC_VER || defined __MINGW32__
#include <sys/types.h> /* for off_t */
//@@@ [2G limit] hacks for MSVC6
#define fseeko fseek
#define ftello ftell
#endif
#include <errno.h> #include <errno.h>
#include <math.h> /* for floor() */ #include <math.h> /* for floor() */
#include <stdio.h> /* for FILE et al. */ #include <stdio.h> /* for FILE etc. */
#include <string.h> /* for strcmp() */ #include <string.h> /* for strcmp(), strerror() */
#include "FLAC/all.h" #include "FLAC/all.h"
#include "share/grabbag.h" #include "share/grabbag.h"
#include "share/replaygain_synthesis.h" #include "share/replaygain_synthesis.h"
...@@ -72,9 +78,9 @@ typedef struct { ...@@ -72,9 +78,9 @@ typedef struct {
struct { struct {
FLAC__bool needs_fixup; FLAC__bool needs_fixup;
unsigned riff_offset; /* or FORM offset for AIFF */ off_t riff_offset; /* or FORM offset for AIFF */
unsigned data_offset; /* or SSND offset for AIFF */ off_t data_offset; /* or SSND offset for AIFF */
unsigned frames_offset; /* AIFF only */ off_t frames_offset; /* AIFF only */
} wave_chunk_size_fixup; } wave_chunk_size_fixup;
FLAC__bool is_big_endian; FLAC__bool is_big_endian;
...@@ -292,7 +298,7 @@ FLAC__bool DecoderSession_construct(DecoderSession *d, FLAC__bool is_ogg, FLAC__ ...@@ -292,7 +298,7 @@ FLAC__bool DecoderSession_construct(DecoderSession *d, FLAC__bool is_ogg, FLAC__
} }
else { else {
if(0 == (d->fout = fopen(outfilename, "wb"))) { if(0 == (d->fout = fopen(outfilename, "wb"))) {
flac__utils_printf(stderr, 1, "%s: ERROR: can't open output file %s\n", d->inbasefilename, outfilename); flac__utils_printf(stderr, 1, "%s: ERROR: can't open output file %s: %s\n", d->inbasefilename, outfilename, strerror(errno));
DecoderSession_destroy(d, /*error_occurred=*/true); DecoderSession_destroy(d, /*error_occurred=*/true);
return false; return false;
} }
...@@ -639,7 +645,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session) ...@@ -639,7 +645,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false; return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup) if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.riff_offset = ftell(decoder_session->fout); decoder_session->wave_chunk_size_fixup.riff_offset = ftello(decoder_session->fout);
if(!write_little_endian_uint32(decoder_session->fout, aligned_data_size+36)) /* filesize-8 */ if(!write_little_endian_uint32(decoder_session->fout, aligned_data_size+36)) /* filesize-8 */
return false; return false;
...@@ -672,7 +678,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session) ...@@ -672,7 +678,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false; return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup) if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.data_offset = ftell(decoder_session->fout); decoder_session->wave_chunk_size_fixup.data_offset = ftello(decoder_session->fout);
if(!write_little_endian_uint32(decoder_session->fout, (FLAC__uint32)data_size)) /* data size */ if(!write_little_endian_uint32(decoder_session->fout, (FLAC__uint32)data_size)) /* data size */
return false; return false;
...@@ -682,7 +688,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session) ...@@ -682,7 +688,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false; return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup) if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.riff_offset = ftell(decoder_session->fout); decoder_session->wave_chunk_size_fixup.riff_offset = ftello(decoder_session->fout);
if(!write_big_endian_uint32(decoder_session->fout, aligned_data_size+46)) /* filesize-8 */ if(!write_big_endian_uint32(decoder_session->fout, aligned_data_size+46)) /* filesize-8 */
return false; return false;
...@@ -697,7 +703,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session) ...@@ -697,7 +703,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false; return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup) if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.frames_offset = ftell(decoder_session->fout); decoder_session->wave_chunk_size_fixup.frames_offset = ftello(decoder_session->fout);
if(!write_big_endian_uint32(decoder_session->fout, (FLAC__uint32)decoder_session->total_samples)) if(!write_big_endian_uint32(decoder_session->fout, (FLAC__uint32)decoder_session->total_samples))
return false; return false;
...@@ -712,7 +718,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session) ...@@ -712,7 +718,7 @@ FLAC__bool write_necessary_headers(DecoderSession *decoder_session)
return false; return false;
if(decoder_session->wave_chunk_size_fixup.needs_fixup) if(decoder_session->wave_chunk_size_fixup.needs_fixup)
decoder_session->wave_chunk_size_fixup.data_offset = ftell(decoder_session->fout); decoder_session->wave_chunk_size_fixup.data_offset = ftello(decoder_session->fout);
if(!write_big_endian_uint32(decoder_session->fout, (FLAC__uint32)data_size+8)) /* data size */ if(!write_big_endian_uint32(decoder_session->fout, (FLAC__uint32)data_size+8)) /* data size */
return false; return false;
...@@ -805,11 +811,11 @@ FLAC__bool fixup_wave_chunk_size(const char *outfilename, FLAC__bool is_wave_out ...@@ -805,11 +811,11 @@ FLAC__bool fixup_wave_chunk_size(const char *outfilename, FLAC__bool is_wave_out
{ {
const char *fmt_desc = (is_wave_out? "WAVE" : "AIFF"); const char *fmt_desc = (is_wave_out? "WAVE" : "AIFF");
FLAC__bool (*write_it)(FILE *, FLAC__uint32) = (is_wave_out? write_little_endian_uint32 : write_big_endian_uint32); FLAC__bool (*write_it)(FILE *, FLAC__uint32) = (is_wave_out? write_little_endian_uint32 : write_big_endian_uint32);
FILE *f = fopen(outfilename, "r+b");
FLAC__uint32 data_size, aligned_data_size; FLAC__uint32 data_size, aligned_data_size;
FILE *f = fopen(outfilename, "r+b");
if(0 == f) { if(0 == f) {
flac__utils_printf(stderr, 1, "ERROR, couldn't open file %s while fixing up %s chunk size\n", outfilename, fmt_desc); flac__utils_printf(stderr, 1, "ERROR, couldn't open file %s while fixing up %s chunk size: %s\n", outfilename, fmt_desc, strerror(errno));