mirror of
https://gitee.com/openharmony/third_party_libsnd
synced 2024-11-23 01:49:53 +00:00
Make sndfile.h independent of build system variables
Fixes <https://github.com/libsndfile/libsndfile/issues/868>.
This commit is contained in:
parent
cefd7b59df
commit
bd951f9a47
@ -220,8 +220,6 @@ feature_summary (WHAT ALL)
|
|||||||
|
|
||||||
configure_file (src/config.h.cmake src/config.h)
|
configure_file (src/config.h.cmake src/config.h)
|
||||||
|
|
||||||
configure_file (include/sndfile.h.in include/sndfile.h)
|
|
||||||
|
|
||||||
if (INSTALL_PKGCONFIG_MODULE)
|
if (INSTALL_PKGCONFIG_MODULE)
|
||||||
|
|
||||||
set (prefix ${CMAKE_INSTALL_PREFIX})
|
set (prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
@ -250,8 +248,8 @@ endif ()
|
|||||||
|
|
||||||
# Public libsndfile headers
|
# Public libsndfile headers
|
||||||
set (sndfile_HDRS
|
set (sndfile_HDRS
|
||||||
|
include/sndfile.h
|
||||||
include/sndfile.hh
|
include/sndfile.hh
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include/sndfile.h
|
|
||||||
)
|
)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -46,7 +46,7 @@ BUILT_SOURCES = src/test_endswap.c
|
|||||||
|
|
||||||
SYMBOL_FILES = src/Symbols.gnu-binutils src/Symbols.darwin src/libsndfile-1.def src/Symbols.os2 src/Symbols.static
|
SYMBOL_FILES = src/Symbols.gnu-binutils src/Symbols.darwin src/libsndfile-1.def src/Symbols.os2 src/Symbols.static
|
||||||
|
|
||||||
EXTRA_DIST += include/sndfile.h.in src/config.h.in src/test_endswap.tpl src/test_endswap.def \
|
EXTRA_DIST += src/config.h.in src/test_endswap.tpl src/test_endswap.def \
|
||||||
$(SYMBOL_FILES) src/create_symbols_file.py src/binheader_writef_check.py \
|
$(SYMBOL_FILES) src/create_symbols_file.py src/binheader_writef_check.py \
|
||||||
src/GSM610/README src/GSM610/COPYRIGHT src/GSM610/ChangeLog \
|
src/GSM610/README src/GSM610/COPYRIGHT src/GSM610/ChangeLog \
|
||||||
src/G72x/README src/G72x/README.original src/G72x/ChangeLog \
|
src/G72x/README src/G72x/README.original src/G72x/ChangeLog \
|
||||||
@ -62,8 +62,7 @@ endif
|
|||||||
#===============================================================================
|
#===============================================================================
|
||||||
|
|
||||||
lib_LTLIBRARIES = src/libsndfile.la
|
lib_LTLIBRARIES = src/libsndfile.la
|
||||||
include_HEADERS = include/sndfile.hh
|
include_HEADERS = include/sndfile.h include/sndfile.hh
|
||||||
nodist_include_HEADERS = include/sndfile.h
|
|
||||||
src_libsndfile_la_CFLAGS = $(EXTERNAL_XIPH_CFLAGS) $(MPEG_CFLAGS)
|
src_libsndfile_la_CFLAGS = $(EXTERNAL_XIPH_CFLAGS) $(MPEG_CFLAGS)
|
||||||
# MinGW requires -no-undefined if a DLL is to be built.
|
# MinGW requires -no-undefined if a DLL is to be built.
|
||||||
src_libsndfile_la_LDFLAGS = -no-undefined -version-info $(SHARED_VERSION_INFO) $(SHLIB_VERSION_ARG)
|
src_libsndfile_la_LDFLAGS = -no-undefined -version-info $(SHARED_VERSION_INFO) $(SHLIB_VERSION_ARG)
|
||||||
|
@ -16,13 +16,6 @@ if (LARGE_FILES_DEFINITIONS)
|
|||||||
add_definitions(${LARGE_FILES_DEFINITIONS})
|
add_definitions(${LARGE_FILES_DEFINITIONS})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (WIN32)
|
|
||||||
set(TYPEOF_SF_COUNT_T __int64)
|
|
||||||
else ()
|
|
||||||
set(TYPEOF_SF_COUNT_T int64_t)
|
|
||||||
endif ()
|
|
||||||
set (SF_COUNT_MAX 0x7fffffffffffffffll)
|
|
||||||
|
|
||||||
if (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
|
if (CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
|
||||||
find_package (Sndio)
|
find_package (Sndio)
|
||||||
elseif (NOT WIN32)
|
elseif (NOT WIN32)
|
||||||
@ -121,28 +114,6 @@ if (ENABLE_TESTING)
|
|||||||
check_type_size (void* SIZEOF_VOIDP)
|
check_type_size (void* SIZEOF_VOIDP)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if ((SIZEOF_OFF_T EQUAL 8) OR (SIZEOF_LOFF_T EQUAL 8) OR (SIZEOF_OFF64_T EQUAL 8))
|
|
||||||
set (TYPEOF_SF_COUNT_T "int64_t")
|
|
||||||
set (SF_COUNT_MAX "0x7FFFFFFFFFFFFFFFLL")
|
|
||||||
set (SIZEOF_SF_COUNT_T 8)
|
|
||||||
else ()
|
|
||||||
if (WIN32)
|
|
||||||
set (TYPEOF_SF_COUNT_T "__int64")
|
|
||||||
set (SF_COUNT_MAX "0x7FFFFFFFFFFFFFFFLL")
|
|
||||||
set (SIZEOF_SF_COUNT_T 8)
|
|
||||||
else ()
|
|
||||||
message ("")
|
|
||||||
message ("*** The configure process has determined that this system is capable")
|
|
||||||
message ("*** of Large File Support but has not been able to find a type which")
|
|
||||||
message ("*** is an unambiguous 64 bit file offset.")
|
|
||||||
message ("*** Please contact the author to help resolve this problem.")
|
|
||||||
message ("")
|
|
||||||
message (FATAL_ERROR "Bad file offset type.")
|
|
||||||
endif ()
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
check_type_size (${TYPEOF_SF_COUNT_T} SIZEOF_SF_COUNT_T)
|
|
||||||
|
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
check_library_exists (m floor "" LIBM_REQUIRED)
|
check_library_exists (m floor "" LIBM_REQUIRED)
|
||||||
if (LIBM_REQUIRED)
|
if (LIBM_REQUIRED)
|
||||||
|
55
configure.ac
55
configure.ac
@ -194,12 +194,6 @@ AC_CHECK_SIZEOF([size_t], [4])
|
|||||||
AC_CHECK_SIZEOF([int64_t], [8])
|
AC_CHECK_SIZEOF([int64_t], [8])
|
||||||
AC_CHECK_SIZEOF([long long], [8])
|
AC_CHECK_SIZEOF([long long], [8])
|
||||||
|
|
||||||
dnl ====================================================================================
|
|
||||||
dnl Find an appropriate type for sf_count_t.
|
|
||||||
dnl On systems supporting files larger than 2 Gig, sf_count_t must be a 64 bit value.
|
|
||||||
dnl Unfortunately there is more than one way of ensuring this so need to do some
|
|
||||||
dnl pretty rigourous testing here.
|
|
||||||
|
|
||||||
dnl Check for common 64 bit file offset types.
|
dnl Check for common 64 bit file offset types.
|
||||||
AC_CHECK_SIZEOF([off_t], [1])
|
AC_CHECK_SIZEOF([off_t], [1])
|
||||||
|
|
||||||
@ -209,25 +203,12 @@ AS_IF([test "x$enable_largefile:$ac_cv_sizeof_off_t" = "xno:8"], [
|
|||||||
|
|
||||||
AS_CASE([$host_os],
|
AS_CASE([$host_os],
|
||||||
[mingw32*], [
|
[mingw32*], [
|
||||||
TYPEOF_SF_COUNT_T="__int64"
|
|
||||||
SF_COUNT_MAX="0x7FFFFFFFFFFFFFFFLL"
|
|
||||||
SIZEOF_SF_COUNT_T=8
|
|
||||||
AC_DEFINE([__USE_MINGW_ANSI_STDIO], [1], [Set to 1 to use C99 printf/snprintf in MinGW.])
|
AC_DEFINE([__USE_MINGW_ANSI_STDIO], [1], [Set to 1 to use C99 printf/snprintf in MinGW.])
|
||||||
],
|
],
|
||||||
|
|
||||||
[linux-android*], [
|
|
||||||
TYPEOF_SF_COUNT_T="int64_t"
|
|
||||||
SF_COUNT_MAX="0x7FFFFFFFFFFFFFFFLL"
|
|
||||||
SIZEOF_SF_COUNT_T=8
|
|
||||||
],
|
|
||||||
|
|
||||||
[
|
[
|
||||||
SIZEOF_SF_COUNT_T=0
|
|
||||||
AS_IF([test "x$ac_cv_sizeof_off_t" = "x8"], [
|
AS_IF([test "x$ac_cv_sizeof_off_t" = "x8"], [
|
||||||
dnl If sizeof (off_t) is 8, no further checking is needed.
|
dnl If sizeof (off_t) is 8, no further checking is needed.
|
||||||
TYPEOF_SF_COUNT_T="int64_t"
|
|
||||||
SF_COUNT_MAX="0x7FFFFFFFFFFFFFFFLL"
|
|
||||||
SIZEOF_SF_COUNT_T=8
|
|
||||||
], [
|
], [
|
||||||
dnl Save the old sizeof (off_t) value and then unset it to see if it
|
dnl Save the old sizeof (off_t) value and then unset it to see if it
|
||||||
dnl changes when Large File Support is enabled.
|
dnl changes when Large File Support is enabled.
|
||||||
@ -246,42 +227,8 @@ AS_CASE([$host_os],
|
|||||||
])
|
])
|
||||||
|
|
||||||
AC_CHECK_SIZEOF(off_t,1)
|
AC_CHECK_SIZEOF(off_t,1)
|
||||||
|
|
||||||
AS_IF([test "x$ac_cv_sizeof_off_t" = "x8"], [
|
|
||||||
TYPEOF_SF_COUNT_T="int64_t"
|
|
||||||
SF_COUNT_MAX="0x7FFFFFFFFFFFFFFFLL"
|
|
||||||
SIZEOF_SF_COUNT_T=8
|
|
||||||
], [test "x$TYPEOF_SF_COUNT_T" = "xunknown"], [
|
|
||||||
AS_ECHO([""])
|
|
||||||
AS_ECHO(["*** The configure process has determined that this system is capable"])
|
|
||||||
AS_ECHO(["*** of Large File Support but has not been able to find a type which"])
|
|
||||||
AS_ECHO(["*** is an unambiguous 64 bit file offset."])
|
|
||||||
AS_ECHO(["*** Please contact the author to help resolve this problem."])
|
|
||||||
AS_ECHO([""])
|
|
||||||
AC_MSG_ERROR([[Bad file offset type.]])
|
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
])
|
|
||||||
|
|
||||||
AS_CASE([$host_vendor],
|
|
||||||
[vita], [
|
|
||||||
TYPEOF_SF_COUNT_T="int64_t"
|
|
||||||
SF_COUNT_MAX="0x7FFFFFFFFFFFFFFFLL"
|
|
||||||
SIZEOF_SF_COUNT_T=8
|
|
||||||
])
|
|
||||||
|
|
||||||
AS_IF([test "x$SIZEOF_SF_COUNT_T" = "x4"], [
|
|
||||||
SF_COUNT_MAX="0x7FFFFFFF"
|
|
||||||
])
|
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([TYPEOF_SF_COUNT_T], [${TYPEOF_SF_COUNT_T}], [Set to long if unknown.])
|
|
||||||
AC_SUBST(TYPEOF_SF_COUNT_T)
|
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([SIZEOF_SF_COUNT_T], [${SIZEOF_SF_COUNT_T}], [Set to sizeof (long) if unknown.])
|
|
||||||
AC_SUBST(SIZEOF_SF_COUNT_T)
|
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([SF_COUNT_MAX], [${SF_COUNT_MAX}], [Set to maximum allowed value of sf_count_t type.])
|
|
||||||
AC_SUBST(SF_COUNT_MAX)
|
|
||||||
|
|
||||||
AC_TYPE_SSIZE_T
|
AC_TYPE_SSIZE_T
|
||||||
|
|
||||||
@ -750,7 +697,7 @@ AC_SUBST(TEST_BINDIR)
|
|||||||
|
|
||||||
AC_CONFIG_FILES([
|
AC_CONFIG_FILES([
|
||||||
Makefile Octave/Makefile
|
Makefile Octave/Makefile
|
||||||
src/version-metadata.rc include/sndfile.h
|
src/version-metadata.rc
|
||||||
tests/test_wrapper.sh tests/pedantic-header-test.sh
|
tests/test_wrapper.sh tests/pedantic-header-test.sh
|
||||||
libsndfile.spec sndfile.pc
|
libsndfile.spec sndfile.pc
|
||||||
Scripts/build-test-tarball.mk
|
Scripts/build-test-tarball.mk
|
||||||
|
@ -55,7 +55,7 @@ to disable gcc optimisations and make debugging with gdb/ddd easier.
|
|||||||
|
|
||||||
Add a unique identifier for the new file type.
|
Add a unique identifier for the new file type.
|
||||||
|
|
||||||
Edit src/sndfile.h.in and find the enum containing the SF_FORMAT_XXX identifiers.
|
Edit src/sndfile.h and find the enum containing the SF_FORMAT_XXX identifiers.
|
||||||
Since you will be adding a major file type you should add your identifier to the
|
Since you will be adding a major file type you should add your identifier to the
|
||||||
top part of the list where the values are above 0x10000 in value. The easiest
|
top part of the list where the values are above 0x10000 in value. The easiest
|
||||||
way to do this is to find the largest value in the list, add 0x10000 to it and
|
way to do this is to find the largest value in the list, add 0x10000 to it and
|
||||||
|
@ -365,9 +365,9 @@ typedef struct sf_private_tag SNDFILE ;
|
|||||||
** and the Microsoft compiler.
|
** and the Microsoft compiler.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef @TYPEOF_SF_COUNT_T@ sf_count_t ;
|
typedef int64_t sf_count_t ;
|
||||||
#ifndef SF_COUNT_MAX
|
#ifndef SF_COUNT_MAX
|
||||||
#define SF_COUNT_MAX @SF_COUNT_MAX@
|
#define SF_COUNT_MAX 0x7FFFFFFFFFFFFFFFLL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -540,8 +540,6 @@ header_put_le_int (SF_PRIVATE *psf, int x)
|
|||||||
psf->header.ptr [psf->header.indx++] = (x >> 24) ;
|
psf->header.ptr [psf->header.indx++] = (x >> 24) ;
|
||||||
} /* header_put_le_int */
|
} /* header_put_le_int */
|
||||||
|
|
||||||
#if (SIZEOF_SF_COUNT_T == 8)
|
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
header_put_be_8byte (SF_PRIVATE *psf, sf_count_t x)
|
header_put_be_8byte (SF_PRIVATE *psf, sf_count_t x)
|
||||||
{ psf->header.ptr [psf->header.indx++] = (x >> 56) ;
|
{ psf->header.ptr [psf->header.indx++] = (x >> 56) ;
|
||||||
@ -566,10 +564,6 @@ header_put_le_8byte (SF_PRIVATE *psf, sf_count_t x)
|
|||||||
psf->header.ptr [psf->header.indx++] = (x >> 56) ;
|
psf->header.ptr [psf->header.indx++] = (x >> 56) ;
|
||||||
} /* header_put_le_8byte */
|
} /* header_put_le_8byte */
|
||||||
|
|
||||||
#else
|
|
||||||
#error "SIZEOF_SF_COUNT_T != 8"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
|
psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
|
||||||
{ va_list argptr ;
|
{ va_list argptr ;
|
||||||
|
@ -223,9 +223,6 @@
|
|||||||
/* Define to the version of this package. */
|
/* Define to the version of this package. */
|
||||||
#define PACKAGE_VERSION "@CPACK_PACKAGE_VERSION_FULL@"
|
#define PACKAGE_VERSION "@CPACK_PACKAGE_VERSION_FULL@"
|
||||||
|
|
||||||
/* Set to maximum allowed value of sf_count_t type. */
|
|
||||||
#define SF_COUNT_MAX @SF_COUNT_MAX@
|
|
||||||
|
|
||||||
/* The size of `double', as computed by sizeof. */
|
/* The size of `double', as computed by sizeof. */
|
||||||
@SIZEOF_DOUBLE_CODE@
|
@SIZEOF_DOUBLE_CODE@
|
||||||
|
|
||||||
@ -253,9 +250,6 @@
|
|||||||
/* The size of `off_t', as computed by sizeof. */
|
/* The size of `off_t', as computed by sizeof. */
|
||||||
@SIZEOF_OFF_T_CODE@
|
@SIZEOF_OFF_T_CODE@
|
||||||
|
|
||||||
/* Set to sizeof (long) if unknown. */
|
|
||||||
@SIZEOF_SF_COUNT_T_CODE@
|
|
||||||
|
|
||||||
/* The size of `short', as computed by sizeof. */
|
/* The size of `short', as computed by sizeof. */
|
||||||
@SIZEOF_SHORT_CODE@
|
@SIZEOF_SHORT_CODE@
|
||||||
|
|
||||||
@ -271,9 +265,6 @@
|
|||||||
/* The size of `wchar_t', as computed by sizeof. */
|
/* The size of `wchar_t', as computed by sizeof. */
|
||||||
@SIZEOF_WCHAR_T_CODE@
|
@SIZEOF_WCHAR_T_CODE@
|
||||||
|
|
||||||
/* Set to long if unknown. */
|
|
||||||
#define TYPEOF_SF_COUNT_T @TYPEOF_SF_COUNT_T@
|
|
||||||
|
|
||||||
/* Enable extensions on AIX 3, Interix. */
|
/* Enable extensions on AIX 3, Interix. */
|
||||||
#ifndef _ALL_SOURCE
|
#ifndef _ALL_SOURCE
|
||||||
# undef _ALL_SOURCE
|
# undef _ALL_SOURCE
|
||||||
|
@ -505,7 +505,7 @@ psf_is_pipe (SF_PRIVATE *psf)
|
|||||||
static sf_count_t
|
static sf_count_t
|
||||||
psf_get_filelen_fd (int fd)
|
psf_get_filelen_fd (int fd)
|
||||||
{
|
{
|
||||||
#if (SIZEOF_OFF_T == 4 && SIZEOF_SF_COUNT_T == 8 && HAVE_FSTAT64)
|
#if (SIZEOF_OFF_T == 4 && HAVE_FSTAT64)
|
||||||
struct stat64 statbuf ;
|
struct stat64 statbuf ;
|
||||||
|
|
||||||
if (fstat64 (fd, &statbuf) == -1)
|
if (fstat64 (fd, &statbuf) == -1)
|
||||||
|
@ -42,7 +42,7 @@ if test -n "@GCC_MAJOR_VERSION@" ; then
|
|||||||
|
|
||||||
CC=`echo "@CC@" | sed "s/.*shave cc //"`
|
CC=`echo "@CC@" | sed "s/.*shave cc //"`
|
||||||
# Compile with -Werror and -pedantic.
|
# Compile with -Werror and -pedantic.
|
||||||
$CC -std=c99 -Werror -pedantic -I@top_srcdir@/src -I@abs_top_builddir@/src -I@abs_top_builddir@/include -c @top_srcdir@/tests/sfversion.c -o /dev/null
|
$CC -std=c99 -Werror -pedantic -I@top_srcdir@/src -I@abs_top_builddir@/src -I@top_srcdir@/include -c @top_srcdir@/tests/sfversion.c -o /dev/null
|
||||||
|
|
||||||
# Check compiler return status.
|
# Check compiler return status.
|
||||||
if test $? -ne 0 ; then
|
if test $? -ne 0 ; then
|
||||||
|
Loading…
Reference in New Issue
Block a user