diff --git a/COPYING b/COPYING index 9c739c34..75711467 100644 --- a/COPYING +++ b/COPYING @@ -1,7 +1,7 @@ -Copyright 2001-2011 Xiph.Org, Skype Limited, Octasic, +Copyright 2001-2023 Xiph.Org, Skype Limited, Octasic, Jean-Marc Valin, Timothy B. Terriberry, CSIRO, Gregory Maxwell, Mark Borgerding, - Erik de Castro Lopo + Erik de Castro Lopo, Mozilla, Amazon Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions diff --git a/dnn/AUTHORS b/dnn/AUTHORS deleted file mode 100644 index 8ee917e5..00000000 --- a/dnn/AUTHORS +++ /dev/null @@ -1,2 +0,0 @@ -Jean-Marc Valin -David Rowe diff --git a/dnn/COPYING b/dnn/COPYING deleted file mode 100644 index feef112b..00000000 --- a/dnn/COPYING +++ /dev/null @@ -1,31 +0,0 @@ -Copyright (c) 2017-2018, Mozilla -Copyright (c) 2007-2017, Jean-Marc Valin -Copyright (c) 2005-2017, Xiph.Org Foundation -Copyright (c) 2003-2004, Mark Borgerding - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of the Xiph.Org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/dnn/Makefile.am b/dnn/Makefile.am deleted file mode 100644 index 0a2b0653..00000000 --- a/dnn/Makefile.am +++ /dev/null @@ -1,158 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 - -AM_CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/ $(DEPS_CFLAGS) - -dist_doc_DATA = COPYING AUTHORS README README.md - -include_HEADERS = include/lpcnet.h - -lib_LTLIBRARIES = liblpcnet.la -noinst_HEADERS = arch.h \ - burg.h \ - common.h \ - freq.h \ - _kiss_fft_guts.h \ - kiss_fft.h \ - kiss99.h \ - lpcnet_private.h \ - opus_types.h \ - nnet_data.h \ - plc_data.h \ - nnet.h \ - pitch.h \ - tansig_table.h \ - vec.h \ - vec_avx.h \ - vec_neon.h - -liblpcnet_la_SOURCES = \ - burg.c \ - common.c \ - kiss99.c \ - lpcnet.c \ - lpcnet_dec.c \ - lpcnet_enc.c \ - lpcnet_tables.c \ - nnet.c \ - nnet_data.c \ - plc_data.c \ - ceps_codebooks.c \ - pitch.c \ - parse_lpcnet_weights.c \ - freq.c \ - kiss_fft.c \ - lpcnet_plc.c - -liblpcnet_la_LIBADD = $(DEPS_LIBS) $(lrintf_lib) $(LIBM) -liblpcnet_la_LDFLAGS = -no-undefined \ - -version-info @OP_LT_CURRENT@:@OP_LT_REVISION@:@OP_LT_AGE@ - -noinst_PROGRAMS = lpcnet_demo dump_data dump_weights_blob - -lpcnet_demo_SOURCES = lpcnet_demo.c -lpcnet_demo_LDADD = liblpcnet.la - - -#DUMP_SOURCES = freq.c kiss_fft.c pitch.c lpcnet_dec.c lpcnet_enc.c ceps_codebooks.c common.c -#DUMP_OBJ = $(DUMP_SOURCES:.c=.lo) -#dump_data_SOURCES = dump_data.c -#dump_data_LDADD = $(DUMP_OBJ) $(LIBM) - -dump_data_SOURCES = common.c dump_data.c burg.c freq.c kiss_fft.c pitch.c lpcnet_dec.c lpcnet_enc.c lpcnet_tables.c ceps_codebooks.c -dump_data_LDADD = $(LIBM) -dump_data_CFLAGS = $(AM_CFLAGS) - -dump_weights_blob_SOURCES = write_lpcnet_weights.c -dump_weights_blob_LDADD = $(LIBM) -dump_weights_blob_CFLAGS = $(AM_CFLAGS) -DDUMP_BINARY_WEIGHTS - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = lpcnet.pc - -debug: - $(MAKE) CFLAGS="${CFLAGS} -O0 -ggdb -DOP_ENABLE_ASSERTIONS" all - -EXTRA_DIST = \ - lpcnet.pc.in \ - lpcnet-uninstalled.pc.in \ - doc/Doxyfile.in \ - doc/Makefile - -# Targets to build and install just the library without the docs -liblpcnet install-liblpcnet: NO_DOXYGEN = 1 - -lpcnet: all -install-lpcnet: install - -# Or just the docs -docs: doc/doxygen-build.stamp - -install-docs: - @if [ -z "$(NO_DOXYGEN)" ]; then \ - ( cd doc && \ - echo "Installing documentation in $(DESTDIR)$(docdir)"; \ - $(INSTALL) -d $(DESTDIR)$(docdir)/html/search; \ - for f in `find html -type f \! -name "installdox"` ; do \ - $(INSTALL_DATA) $$f $(DESTDIR)$(docdir)/$$f; \ - done ) \ - fi - -doc/doxygen-build.stamp: doc/Doxyfile \ - $(top_srcdir)/include/*.h - @[ -n "$(NO_DOXYGEN)" ] || ( cd doc && doxygen && touch $(@F) ) - - -if HAVE_DOXYGEN - -# Or everything (by default) -all-local: docs - -install-data-local: install-docs - -clean-local: - $(RM) -r doc/html - $(RM) -r doc/latex - $(RM) doc/doxygen-build.stamp - -uninstall-local: - $(RM) -r $(DESTDIR)$(docdir)/html - -endif - -# We check this every time make is run, with configure.ac being touched to -# trigger an update of the build system files if update_version changes the -# current PACKAGE_VERSION (or if package_version was modified manually by a -# user with either AUTO_UPDATE=no or no update_version script present - the -# latter being the normal case for tarball releases). -# -# We can't just add the package_version file to CONFIGURE_DEPENDENCIES since -# simply running autoconf will not actually regenerate configure for us when -# the content of that file changes (due to autoconf dependency checking not -# knowing about that without us creating yet another file for it to include). -# -# The MAKECMDGOALS check is a gnu-make'ism, but will degrade 'gracefully' for -# makes that don't support it. The only loss of functionality is not forcing -# an update of package_version for `make dist` if AUTO_UPDATE=no, but that is -# unlikely to be a real problem for any real user. -$(top_srcdir)/configure.ac: force - @case "$(MAKECMDGOALS)" in \ - dist-hook) exit 0 ;; \ - dist-* | dist | distcheck | distclean) _arg=release ;; \ - esac; \ - if ! $(top_srcdir)/update_version $$_arg 2> /dev/null; then \ - if [ ! -e $(top_srcdir)/package_version ]; then \ - echo 'PACKAGE_VERSION="unknown"' > $(top_srcdir)/package_version; \ - fi; \ - . $(top_srcdir)/package_version || exit 1; \ - [ "$(PACKAGE_VERSION)" != "$$PACKAGE_VERSION" ] || exit 0; \ - fi; \ - touch $@ - -force: - -# Create a minimal package_version file when make dist is run. -dist-hook: - echo 'PACKAGE_VERSION="$(PACKAGE_VERSION)"' > $(top_distdir)/package_version - - -.PHONY: lpcnet install-lpcnet docs install-docs diff --git a/dnn/autogen.sh b/dnn/autogen.sh deleted file mode 100755 index a82d6719..00000000 --- a/dnn/autogen.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# Run this to set up the build system: configure, makefiles, etc. -set -e - -srcdir=`dirname $0` -test -n "$srcdir" && cd "$srcdir" - -#SHA1 of the first commit compatible with the current model -commit=2ddc476 -./download_model.sh $commit - -echo "Updating build configuration files for lpcnet, please wait...." - -autoreconf -isf diff --git a/dnn/compile.sh b/dnn/compile.sh deleted file mode 100755 index 327f23fa..00000000 --- a/dnn/compile.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -gcc -Wall -W -O3 -g -I../include dump_data.c freq.c kiss_fft.c pitch.c celt_lpc.c -o dump_data -lm -gcc -o test_lpcnet -mavx2 -mfma -g -O3 -Wall -W -Wextra test_lpcnet.c lpcnet.c nnet.c nnet_data.c freq.c kiss_fft.c pitch.c celt_lpc.c -lm diff --git a/dnn/concat.sh b/dnn/concat.sh deleted file mode 100644 index 83691170..00000000 --- a/dnn/concat.sh +++ /dev/null @@ -1,6 +0,0 @@ -# Place in 16k-LP7 from TSPSpeech.iso and run to concatenate wave files -# into one headerless training file -for i in */*.wav -do -sox $i -r 16000 -c 1 -t sw - -done > input.s16 diff --git a/dnn/configure.ac b/dnn/configure.ac deleted file mode 100644 index fad54e27..00000000 --- a/dnn/configure.ac +++ /dev/null @@ -1,131 +0,0 @@ -# autoconf source script for generating configure - -dnl The package_version file will be automatically synced to the git revision -dnl by the update_version script when configured in the repository, but will -dnl remain constant in tarball releases unless it is manually edited. -m4_define([CURRENT_VERSION], - m4_esyscmd([ ./update_version 2>/dev/null || true - if test -e package_version; then - . ./package_version - printf "$PACKAGE_VERSION" - else - printf "unknown" - fi ])) - -AC_INIT([lpcnet],[CURRENT_VERSION],[jmvalin@jmvalin.ca]) -AC_CONFIG_SRCDIR([lpcnet.c]) -AC_CONFIG_MACRO_DIR([m4]) - -AC_USE_SYSTEM_EXTENSIONS -AC_SYS_LARGEFILE - -AM_INIT_AUTOMAKE([1.11 foreign no-define dist-zip subdir-objects]) -AM_MAINTAINER_MODE([enable]) - -AC_C_INLINE - -LT_INIT - -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - -AC_DEFINE([LPCNET_BUILD], [], [This is a build of the library]) - -dnl Library versioning for libtool. -dnl Please update these for releases. -dnl CURRENT, REVISION, AGE -dnl - library source changed -> increment REVISION -dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 -dnl - interfaces added -> increment AGE -dnl - interfaces removed -> AGE = 0 - -OP_LT_CURRENT=0 -OP_LT_REVISION=0 -OP_LT_AGE=0 - -AC_SUBST(OP_LT_CURRENT) -AC_SUBST(OP_LT_REVISION) -AC_SUBST(OP_LT_AGE) - -CC_CHECK_CFLAGS_APPEND( - [-pedantic -Wall -Wextra -Wno-sign-compare -Wno-parentheses -Wno-long-long]) - -# Platform-specific tweaks -case $host in - *-mingw*) - # -std=c89 causes some warnings under mingw. - CC_CHECK_CFLAGS_APPEND([-U__STRICT_ANSI__]) - # We need WINNT>=0x501 (WindowsXP) for getaddrinfo/freeaddrinfo. - # It's okay to define this even when HTTP support is disabled, as it only - # affects header declarations, not linking (unless we actually use some - # XP-only functions). - AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x501, - [We need at least WindowsXP for getaddrinfo/freeaddrinfo]) - host_mingw=true - ;; -esac -AM_CONDITIONAL(OP_WIN32, test "$host_mingw" = "true") - -AC_ARG_ENABLE([assertions], - AS_HELP_STRING([--enable-assertions], [Enable assertions in code]),, - enable_assertions=no) - -AS_IF([test "$enable_assertions" = "yes"], [ - AC_DEFINE([OP_ENABLE_ASSERTIONS], [1], [Enable assertions in code]) -]) - -AC_ARG_ENABLE([dot-product], - AS_HELP_STRING([--disable-dot-product], [Disable dot product implementation]),, - enable_dot_product=yes) - -AS_IF([test "$enable_dot_product" = "no"], [ - AC_DEFINE([DISABLE_DOT_PROD], [1], [Disable dot product instructions]) -]) - -AS_CASE(["$ac_cv_search_lrintf"], - ["no"],[], - ["none required"],[], - [lrintf_lib="$ac_cv_search_lrintf"]) - -LT_LIB_M - -AC_SUBST([lrintf_lib]) - -CC_ATTRIBUTE_VISIBILITY([default], [ - CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"]) -]) - -dnl Check for doxygen -AC_ARG_ENABLE([doc], - AS_HELP_STRING([--disable-doc], [Do not build API documentation]),, - [enable_doc=yes] -) - -AS_IF([test "$enable_doc" = "yes"], [ - AC_CHECK_PROG([HAVE_DOXYGEN], [doxygen], [yes], [no]) - AC_CHECK_PROG([HAVE_DOT], [dot], [yes], [no]) -],[ - HAVE_DOXYGEN=no -]) - -AM_CONDITIONAL([HAVE_DOXYGEN], [test "$HAVE_DOXYGEN" = "yes"]) - -AC_CONFIG_FILES([ - Makefile - lpcnet.pc - lpcnet-uninstalled.pc - doc/Doxyfile -]) -AC_CONFIG_HEADERS([config.h]) -AC_OUTPUT - -AC_MSG_NOTICE([ ------------------------------------------------------------------------- - $PACKAGE_NAME $PACKAGE_VERSION: Automatic configuration OK. - - Dot product intrinsics ....... ${enable_dot_product} - Assertions ................... ${enable_assertions} - Hidden visibility ............ ${cc_cv_flag_visibility} - - API documentation ............ ${enable_doc} ------------------------------------------------------------------------- -]) diff --git a/dnn/doc/Doxyfile.in b/dnn/doc/Doxyfile.in deleted file mode 100644 index 119b60da..00000000 --- a/dnn/doc/Doxyfile.in +++ /dev/null @@ -1,18 +0,0 @@ -# Process with doxygen to generate API documentation - -PROJECT_NAME = @PACKAGE_NAME@ -PROJECT_NUMBER = @PACKAGE_VERSION@ -PROJECT_BRIEF = "Neural Vocoder." -INPUT = @top_srcdir@/include/lpcnet.h -OPTIMIZE_OUTPUT_FOR_C = YES - -QUIET = YES -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = YES - -JAVADOC_AUTOBRIEF = YES -SORT_MEMBER_DOCS = NO - -HAVE_DOT = @HAVE_DOT@ diff --git a/dnn/doc/Makefile b/dnn/doc/Makefile deleted file mode 100644 index 5fc42866..00000000 --- a/dnn/doc/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# Makefile for LPCNet - -CC=gcc -CFLAGS+=-Wall -W -Wextra -Wno-unused-function -O3 -g -Iinclude - -AVX2:=$(shell cat /proc/cpuinfo | grep -c avx2) -AVX:=$(shell cat /proc/cpuinfo | grep -c avx) -NEON:=$(shell cat /proc/cpuinfo | grep -c neon) - -ifneq ($(AVX2),0) -CFLAGS+=-mavx2 -mfma -else -# AVX2 machines will also match on AVX -ifneq ($(AVX),0) -CFLAGS+=-mavx -endif -endif - -ifneq ($(NEON),0) -CFLAGS+=-mfpu=neon -march=armv8-a -mtune=cortex-a53 -endif - -all: dump_data lpcnet_demo test_lpcnet test_vec - -lpcnet_data-8ea8396.tar.gz: - wget https://media.xiph.org/lpcnet/data/lpcnet_data-8ea8396.tar.gz - -download: src/ceps_codebooks.c src/nnet_data.c - -src/ceps_codebooks.c: lpcnet_data-8ea8396.tar.gz - tar xvf lpcnet_data-8ea8396.tar.gz - -dump_data_objs := src/common.o src/dump_data.o src/freq.o src/kiss_fft.o src/pitch.o src/celt_lpc.o src/lpcnet_dec.o src/lpcnet_enc.o src/ceps_codebooks.o -dump_data_deps := $(dump_data_objs:.o=.d) -dump_data: download $(dump_data_objs) - gcc -o $@ $(CFLAGS) $(dump_data_objs) -lm - --include $dump_data_deps(_deps) - -test_lpcnet_objs := src/common.o src/test_lpcnet.o src/lpcnet.o src/nnet.o src/nnet_data.o src/freq.o src/kiss_fft.o src/pitch.o src/celt_lpc.o src/lpcnet_dec.o src/ceps_codebooks.o -test_lpcnet_deps := $(test_lpcnet_objs:.o=.d) -test_lpcnet: download $(test_lpcnet_objs) - gcc -o $@ $(CFLAGS) $(test_lpcnet_objs) -lm - --include $(test_lpcnet_deps) - -lpcnet_demo_objs := src/common.o src/lpcnet_demo.o src/lpcnet.o src/nnet.o src/nnet_data.o src/freq.o src/kiss_fft.o src/pitch.o src/celt_lpc.o src/lpcnet_dec.o src/ceps_codebooks.o src/lpcnet_enc.o -lpcnet_demo_deps := $(lpcnet_demo_objs:.o=.d) -lpcnet_demo: download $(lpcnet_demo_objs) - gcc -o $@ $(CFLAGS) $(lpcnet_demo_objs) -lm - --include $(lpcnet_demo_deps) - -test_vec_objs := src/test_vec.o -test_vec_deps := $(test_vec_objs:.o=.d) -test_vec: $(test_vec_objs) - gcc -o $@ $(CFLAGS) $(test_vec_objs) -lm - --include $(test_vec_deps) - -test: test_vec - ./test_vec - -clean: - rm -f dump_data test_lpcnet test_vec - rm -f $(dump_data_objs) $(dump_data_deps) - rm -f $(test_lpcnet_objs) $(test_lpcnet_deps) - rm -f $(test_vec_objs) $(test_vec_deps) diff --git a/dnn/lpcnet-uninstalled.pc.in b/dnn/lpcnet-uninstalled.pc.in deleted file mode 100644 index d315bf57..00000000 --- a/dnn/lpcnet-uninstalled.pc.in +++ /dev/null @@ -1,13 +0,0 @@ -# lpcnet uninstalled pkg-config file - -prefix= -exec_prefix= -libdir=${pcfiledir}/.libs -includedir=${pcfiledir}/@top_srcdir@/include - -Name: lpcnet uninstalled -Description: RNN-based noise suppression (not installed) -Version: @PACKAGE_VERSION@ -Conflicts: -Libs: ${libdir}/liblpcnet.la @lrintf_lib@ -Cflags: -I${includedir} diff --git a/dnn/lpcnet.pc.in b/dnn/lpcnet.pc.in deleted file mode 100644 index d348adc8..00000000 --- a/dnn/lpcnet.pc.in +++ /dev/null @@ -1,14 +0,0 @@ -# lpcnet installed pkg-config file - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: lpcnet -Description: RNN-based noise suppression -Version: @PACKAGE_VERSION@ -Conflicts: -Libs: -L${libdir} -llpcnet -Libs.private: @lrintf_lib@ -Cflags: -I${includedir}/ diff --git a/dnn/m4/attributes.m4 b/dnn/m4/attributes.m4 deleted file mode 100644 index ebc7347b..00000000 --- a/dnn/m4/attributes.m4 +++ /dev/null @@ -1,321 +0,0 @@ -dnl Macros to check the presence of generic (non-typed) symbols. -dnl Copyright (c) 2006-2007 Diego Pettenò -dnl Copyright (c) 2006-2007 xine project -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2, or (at your option) -dnl any later version. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -dnl 02110-1301, USA. -dnl -dnl As a special exception, the copyright owners of the -dnl macro gives unlimited permission to copy, distribute and modify the -dnl configure scripts that are the output of Autoconf when processing the -dnl Macro. You need not follow the terms of the GNU General Public -dnl License when using or distributing such scripts, even though portions -dnl of the text of the Macro appear in them. The GNU General Public -dnl License (GPL) does govern all other use of the material that -dnl constitutes the Autoconf Macro. -dnl -dnl This special exception to the GPL applies to versions of the -dnl Autoconf Macro released by this project. When you make and -dnl distribute a modified version of the Autoconf Macro, you may extend -dnl this special exception to the GPL to apply to your modified version as -dnl well. - -dnl Check if the flag is supported by compiler -dnl CC_CHECK_CFLAGS_SILENT([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) - -AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ - AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" - AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 0; }])], - [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"]) - CFLAGS="$ac_save_CFLAGS" - ]) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], - [$2], [$3]) -]) - -dnl Check if the flag is supported by compiler (cacheable) -dnl CC_CHECK_CFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) - -AC_DEFUN([CC_CHECK_CFLAGS], [ - AC_CACHE_CHECK([if $CC supports $1 flag], - AS_TR_SH([cc_cv_cflags_$1]), - CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! - ) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], - [$2], [$3]) -]) - -dnl CC_CHECK_CFLAG_APPEND(FLAG, [action-if-found], [action-if-not-found]) -dnl Check for CFLAG and appends them to CFLAGS if supported -AC_DEFUN([CC_CHECK_CFLAG_APPEND], [ - AC_CACHE_CHECK([if $CC supports $1 flag], - AS_TR_SH([cc_cv_cflags_$1]), - CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! - ) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], - [CFLAGS="$CFLAGS $1"; $2], [$3]) -]) - -dnl CC_CHECK_CFLAGS_APPEND([FLAG1 FLAG2], [action-if-found], [action-if-not]) -AC_DEFUN([CC_CHECK_CFLAGS_APPEND], [ - for flag in $1; do - CC_CHECK_CFLAG_APPEND($flag, [$2], [$3]) - done -]) - -dnl Check if the flag is supported by linker (cacheable) -dnl CC_CHECK_LDFLAGS([FLAG], [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND]) - -AC_DEFUN([CC_CHECK_LDFLAGS], [ - AC_CACHE_CHECK([if $CC supports $1 flag], - AS_TR_SH([cc_cv_ldflags_$1]), - [ac_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $1" - AC_LINK_IFELSE([AC_LANG_SOURCE([int main() { return 1; }])], - [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) - LDFLAGS="$ac_save_LDFLAGS" - ]) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes], - [$2], [$3]) -]) - -dnl define the LDFLAGS_NOUNDEFINED variable with the correct value for -dnl the current linker to avoid undefined references in a shared object. -AC_DEFUN([CC_NOUNDEFINED], [ - dnl We check $host for which systems to enable this for. - AC_REQUIRE([AC_CANONICAL_HOST]) - - case $host in - dnl FreeBSD (et al.) does not complete linking for shared objects when pthreads - dnl are requested, as different implementations are present; to avoid problems - dnl use -Wl,-z,defs only for those platform not behaving this way. - *-freebsd* | *-openbsd*) ;; - *) - dnl First of all check for the --no-undefined variant of GNU ld. This allows - dnl for a much more readable commandline, so that people can understand what - dnl it does without going to look for what the heck -z defs does. - for possible_flags in "-Wl,--no-undefined" "-Wl,-z,defs"; do - CC_CHECK_LDFLAGS([$possible_flags], [LDFLAGS_NOUNDEFINED="$possible_flags"]) - break - done - ;; - esac - - AC_SUBST([LDFLAGS_NOUNDEFINED]) -]) - -dnl Check for a -Werror flag or equivalent. -Werror is the GCC -dnl and ICC flag that tells the compiler to treat all the warnings -dnl as fatal. We usually need this option to make sure that some -dnl constructs (like attributes) are not simply ignored. -dnl -dnl Other compilers don't support -Werror per se, but they support -dnl an equivalent flag: -dnl - Sun Studio compiler supports -errwarn=%all -AC_DEFUN([CC_CHECK_WERROR], [ - AC_CACHE_CHECK( - [for $CC way to treat warnings as errors], - [cc_cv_werror], - [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], - [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) - ]) -]) - -AC_DEFUN([CC_CHECK_ATTRIBUTE], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], - AS_TR_SH([cc_cv_attribute_$1]), - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([$3])], - [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) - CFLAGS="$ac_save_CFLAGS" - ]) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes], - [AC_DEFINE( - AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, - [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))] - ) - $4], - [$5]) -]) - -AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ - CC_CHECK_ATTRIBUTE( - [constructor],, - [extern void foo(); - void __attribute__((constructor)) ctor() { foo(); }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_DESTRUCTOR], [ - CC_CHECK_ATTRIBUTE( - [destructor],, - [extern void foo(); - void __attribute__((destructor)) dtor() { foo(); }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ - CC_CHECK_ATTRIBUTE( - [format], [format(printf, n, n)], - [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ - CC_CHECK_ATTRIBUTE( - [format_arg], [format_arg(printf)], - [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ - CC_CHECK_ATTRIBUTE( - [visibility_$1], [visibility("$1")], - [void __attribute__((visibility("$1"))) $1_function() { }], - [$2], [$3]) -]) - -AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ - CC_CHECK_ATTRIBUTE( - [nonnull], [nonnull()], - [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ - CC_CHECK_ATTRIBUTE( - [unused], , - [void some_function(void *foo, __attribute__((unused)) void *bar);], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ - CC_CHECK_ATTRIBUTE( - [sentinel], , - [void some_function(void *foo, ...) __attribute__((sentinel));], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ - CC_CHECK_ATTRIBUTE( - [deprecated], , - [void some_function(void *foo, ...) __attribute__((deprecated));], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ - CC_CHECK_ATTRIBUTE( - [alias], [weak, alias], - [void other_function(void *foo) { } - void some_function(void *foo) __attribute__((weak, alias("other_function")));], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ - CC_CHECK_ATTRIBUTE( - [malloc], , - [void * __attribute__((malloc)) my_alloc(int n);], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_PACKED], [ - CC_CHECK_ATTRIBUTE( - [packed], , - [struct astructure { char a; int b; long c; void *d; } __attribute__((packed)); - char assert@<:@(sizeof(struct astructure) == (sizeof(char)+sizeof(int)+sizeof(long)+sizeof(void*)))-1@:>@;], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_CONST], [ - CC_CHECK_ATTRIBUTE( - [const], , - [int __attribute__((const)) twopow(int n) { return 1 << n; } ], - [$1], [$2]) -]) - -AC_DEFUN([CC_FLAG_VISIBILITY], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([if $CC supports -fvisibility=hidden], - [cc_cv_flag_visibility], - [cc_flag_visibility_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden], - cc_cv_flag_visibility='yes', - cc_cv_flag_visibility='no') - CFLAGS="$cc_flag_visibility_save_CFLAGS"]) - - AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], - [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, - [Define this if the compiler supports the -fvisibility flag]) - $1], - [$2]) -]) - -AC_DEFUN([CC_FUNC_EXPECT], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([if compiler has __builtin_expect function], - [cc_cv_func_expect], - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_COMPILE_IFELSE([AC_LANG_SOURCE( - [int some_function() { - int a = 3; - return (int)__builtin_expect(a, 3); - }])], - [cc_cv_func_expect=yes], - [cc_cv_func_expect=no]) - CFLAGS="$ac_save_CFLAGS" - ]) - - AS_IF([test "x$cc_cv_func_expect" = "xyes"], - [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1, - [Define this if the compiler supports __builtin_expect() function]) - $1], - [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], - [cc_cv_attribute_aligned], - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - for cc_attribute_align_try in 64 32 16 8 4 2; do - AC_COMPILE_IFELSE([AC_LANG_SOURCE([ - int main() { - static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; - return c; - }])], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) - done - CFLAGS="$ac_save_CFLAGS" - ]) - - if test "x$cc_cv_attribute_aligned" != "x"; then - AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], - [Define the highest alignment supported]) - fi -]) diff --git a/dnn/update_version b/dnn/update_version deleted file mode 100755 index a9999918..00000000 --- a/dnn/update_version +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/bash - -# Creates and updates the package_version information used by configure.ac -# (or other makefiles). When run inside a git repository it will use the -# version information that can be queried from it unless AUTO_UPDATE is set -# to 'no'. If no version is currently known it will be set to 'unknown'. -# -# If called with the argument 'release', the PACKAGE_VERSION will be updated -# even if AUTO_UPDATE=no, but the value of AUTO_UPDATE shall be preserved. -# This is used to force a version update whenever `make dist` is run. -# -# The exit status is 1 if package_version is not modified, else 0 is returned. -# -# This script should NOT be included in distributed tarballs, because if a -# parent directory contains a git repository we do not want to accidentally -# retrieve the version information from it instead. Tarballs should ship -# with only the package_version file. -# -# Ron , 2012. - -SRCDIR=$(dirname $0) - -if [ -e "$SRCDIR/package_version" ]; then - . "$SRCDIR/package_version" -fi - -if [ "$AUTO_UPDATE" = no ]; then - [ "$1" = release ] || exit 1 -else - AUTO_UPDATE=yes -fi - -# We run `git status` before describe here to ensure that we don't get a false -# -dirty from files that have been touched but are not actually altered in the -# working dir. -GIT_VERSION=$(cd "$SRCDIR" && git status > /dev/null 2>&1 \ - && git describe --tags --match 'v*' --dirty 2> /dev/null) -GIT_VERSION=${GIT_VERSION#v} - -if [ -n "$GIT_VERSION" ]; then - - [ "$GIT_VERSION" != "$PACKAGE_VERSION" ] || exit 1 - PACKAGE_VERSION="$GIT_VERSION" - -elif [ -z "$PACKAGE_VERSION" ]; then - # No current package_version and no git ... - # We really shouldn't ever get here, because this script should only be - # included in the git repository, and should usually be export-ignored. - PACKAGE_VERSION="unknown" -else - exit 1 -fi - -cat > "$SRCDIR/package_version" <<-EOF - # Automatically generated by update_version. - # This file may be sourced into a shell script or makefile. - - # Set this to 'no' if you do not wish the version information - # to be checked and updated for every build. Most people will - # never want to change this, it is an option for developers - # making frequent changes that they know will not be released. - AUTO_UPDATE=$AUTO_UPDATE - - PACKAGE_VERSION="$PACKAGE_VERSION" -EOF