blop-0.2.8/0000777000175000006270000000000010063536512006225 5blop-0.2.8/m4/0000777000175000006270000000000010063536512006545 5blop-0.2.8/m4/lib-link.m40000644000175000006270000005534310063062210010423 # lib-link.m4 serial 4 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) blop-0.2.8/m4/inttypes_h.m40000644000175000006270000000210310063062210011072 # inttypes_h.m4 serial 5 (gettext-0.12) dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([jm_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], jm_ac_cv_header_inttypes_h=yes, jm_ac_cv_header_inttypes_h=no)]) if test $jm_ac_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) blop-0.2.8/m4/po.m40000644000175000006270000002152010063062210007326 # po.m4 serial 1 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AM_NLS])dnl dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` AC_MSG_RESULT( [found $GMSGFMT program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po fi AC_OUTPUT_COMMANDS([ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= GMOFILES= UPDATEPOFILES= DUMMYPOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) blop-0.2.8/m4/lcmessage.m40000644000175000006270000000261610063062210010660 # lcmessage.m4 serial 3 (gettext-0.11.3) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([AM_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) blop-0.2.8/m4/inttypes.m40000644000175000006270000000171710063062210010575 # inttypes.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H if exists and doesn't clash with # . AC_DEFUN([gt_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, [ AC_TRY_COMPILE( [#include #include ], [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) ]) if test $gt_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, [Define if exists and doesn't clash with .]) fi ]) blop-0.2.8/m4/lib-ld.m40000644000175000006270000000676110063062210010065 # lib-ld.m4 serial 2 (gettext-0.12) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no fi]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-1.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) blop-0.2.8/m4/inttypes-pri.m40000644000175000006270000000222710063062210011362 # inttypes-pri.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_REQUIRE([gt_HEADER_INTTYPES_H]) if test $gt_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], gt_cv_inttypes_pri_broken, [ AC_TRY_COMPILE([#include #ifdef PRId32 char *p = PRId32; #endif ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, [Define if exists and defines unusable PRI* macros.]) fi ]) blop-0.2.8/m4/iconv.m40000644000175000006270000000665310063062210010040 # iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) blop-0.2.8/m4/gettext.m40000644000175000006270000004052110063062210010376 # gettext.m4 serial 20 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define(gt_included_intl, ifelse([$1], [external], [no], [yes])) define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Set USE_NLS. AM_NLS ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. dnl Add a version number to the cache macros. define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], gt_cv_func_gnugettext_libintl, [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) dnl Now see whether libintl exists and depends on libiconv. if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext_libintl=yes ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ __fsetlocking]) AM_ICONV AM_LANGINFO_CODESET if test $ac_cv_header_locale_h = yes; then AM_LC_MESSAGES fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) blop-0.2.8/m4/codeset.m40000644000175000006270000000157610063062210010347 # codeset.m4 serial AM1 (gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET);], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) blop-0.2.8/m4/Makefile.am0000644000175000006270000000041510063070305010506 EXTRA_DIST = nls.m4 po.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 MAINTAINERCLEANFILES = Makefile.in blop-0.2.8/m4/Makefile.in0000644000175000006270000001354610063536477010551 # Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ AMTAR = @AMTAR@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ DEPDIR = @DEPDIR@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ HAVE_LIB = @HAVE_LIB@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ LIB = @LIB@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LTLIB = @LTLIB@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ MAINT = @MAINT@ MKINSTALLDIRS = @MKINSTALLDIRS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ first_note = @first_note@ gibbs = @gibbs@ install_sh = @install_sh@ ladspa_plugin_dir = @ladspa_plugin_dir@ ladspa_prefix = @ladspa_prefix@ min_table_size = @min_table_size@ note_step = @note_step@ sample_rate = @sample_rate@ wavedata_subdir = @wavedata_subdir@ EXTRA_DIST = nls.m4 po.m4 codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4 MAINTAINERCLEANFILES = Makefile.in subdir = m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = DIST_COMMON = ChangeLog Makefile.am Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status uninstall-info-am: tags: TAGS TAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: blop-0.2.8/m4/nls.m40000644000175000006270000000350510063062210007507 # nls.m4 serial 1 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) AC_DEFUN([AM_MKINSTALLDIRS], [ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate it. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then case "$ac_aux_dir" in /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; esac fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) ]) blop-0.2.8/m4/stdint_h.m40000644000175000006270000000205310063062210010524 # stdint_h.m4 serial 3 (gettext-0.12) dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([jm_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], jm_ac_cv_header_stdint_h=yes, jm_ac_cv_header_stdint_h=no)]) if test $jm_ac_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) blop-0.2.8/m4/progtest.m40000644000175000006270000000563410063062210010567 # progtest.m4 serial 3 (gettext-0.12) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) blop-0.2.8/m4/isc-posix.m40000644000175000006270000000213310063062210010625 # isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) blop-0.2.8/m4/intdiv0.m40000644000175000006270000000356510063062210010276 # intdiv0.m4 serial 1 (gettext-0.11.3) dnl Copyright (C) 2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([gt_INTDIV0], [ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], gt_cv_int_divbyzero_sigfpe, [ AC_TRY_RUN([ #include #include static void #ifdef __cplusplus sigfpe_handler (int sig) #else sigfpe_handler (sig) int sig; #endif { /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ exit (sig != SIGFPE); } int x = 1; int y = 0; int z; int nan; int main () { signal (SIGFPE, sigfpe_handler); /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) signal (SIGTRAP, sigfpe_handler); #endif /* Linux/SPARC yields signal SIGILL. */ #if defined (__sparc__) && defined (__linux__) signal (SIGILL, sigfpe_handler); #endif z = x / y; nan = y / y; exit (1); } ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, [ # Guess based on the CPU. case "$host_cpu" in alpha* | i[34567]86 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac ]) ]) case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, [Define if integer division by zero raises signal SIGFPE.]) ]) blop-0.2.8/m4/ulonglong.m40000644000175000006270000000200010063062210010704 # ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], [ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], [unsigned long long ullmax = (unsigned long long) -1; return ull << i | ull >> i | ullmax / ull | ullmax % ull;], ac_cv_type_unsigned_long_long=yes, ac_cv_type_unsigned_long_long=no)]) if test $ac_cv_type_unsigned_long_long = yes; then AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, [Define if you have the unsigned long long type.]) fi ]) blop-0.2.8/m4/ChangeLog0000644000175000006270000000156007727274373010256 2003-09-08 gettextize * codeset.m4: New file, from gettext-0.11.5. * gettext.m4: New file, from gettext-0.11.5. * glibc21.m4: New file, from gettext-0.11.5. * iconv.m4: New file, from gettext-0.11.5. * intdiv0.m4: New file, from gettext-0.11.5. * inttypes.m4: New file, from gettext-0.11.5. * inttypes_h.m4: New file, from gettext-0.11.5. * inttypes-pri.m4: New file, from gettext-0.11.5. * isc-posix.m4: New file, from gettext-0.11.5. * lcmessage.m4: New file, from gettext-0.11.5. * lib-ld.m4: New file, from gettext-0.11.5. * lib-link.m4: New file, from gettext-0.11.5. * lib-prefix.m4: New file, from gettext-0.11.5. * progtest.m4: New file, from gettext-0.11.5. * stdint_h.m4: New file, from gettext-0.11.5. * uintmax_t.m4: New file, from gettext-0.11.5. * ulonglong.m4: New file, from gettext-0.11.5. * Makefile.am: New file. blop-0.2.8/m4/lib-prefix.m40000644000175000006270000001250510063062210010754 # lib-prefix.m4 serial 2 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) blop-0.2.8/m4/uintmax_t.m40000644000175000006270000000235010063062210010720 # uintmax_t.m4 serial 7 (gettext-0.12) dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. AC_PREREQ(2.13) # Define uintmax_t to 'unsigned long' or 'unsigned long long' # if it is not already defined in or . AC_DEFUN([jm_AC_TYPE_UINTMAX_T], [ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([jm_AC_HEADER_STDINT_H]) if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) test $ac_cv_type_unsigned_long_long = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, [Define to unsigned long or unsigned long long if and don't define.]) else AC_DEFINE(HAVE_UINTMAX_T, 1, [Define if you have the 'uintmax_t' type in or .]) fi ]) blop-0.2.8/m4/glibc21.m40000644000175000006270000000172710063062210010142 # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([jm_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) blop-0.2.8/po/0000777000175000006270000000000010063536512006643 5blop-0.2.8/po/Makevars0000644000175000006270000000205307727274662010275 # Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=G_ --keyword=G_NOP # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Mike Rawes # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = blop-0.2.8/po/en_GB.gmo0000644000175000006270000000066110063536512010240 Þ•$,8w9Project-Id-Version: blop 0.2.8 Report-Msgid-Bugs-To: POT-Creation-Date: 2004-06-13 16:07+0100 PO-Revision-Date: 2003-09-05 20:00+0100 Last-Translator: Mike Rawes Language-Team: English MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); blop-0.2.8/po/de.po0000644000175000006270000002412010063070305007477 # German translations by Maroi Lang for blop # Copyright (C) 2003 Mike Rawes # This file is distributed under the same license as the package. # Mario Lang . # # msgid "" msgstr "" "Project-Id-Version: BLOP 0.2.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-06-13 16:07+0100\n" "PO-Revision-Date: 2003-09-22 20:34+0200\n" "Last-Translator: Mario Lang \n" "Language-Team: ???\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: src/adsr_1653.so.c:319 msgid "ADSR Envelope" msgstr "ADSR Hüllkurve" #: src/adsr_1653.so.c:336 msgid "Driving Signal" msgstr "" #: src/adsr_1653.so.c:341 msgid "Trigger Threshold" msgstr "" #: src/adsr_1653.so.c:346 src/adsr_1680.so.c:346 src/dahdsr_2021.so.c:850 msgid "Attack Time (s)" msgstr "Einschwingzeit (s)" #: src/adsr_1653.so.c:352 src/adsr_1680.so.c:352 src/dahdsr_2021.so.c:862 msgid "Decay Time (s)" msgstr "Abklingzeit (s)" #: src/adsr_1653.so.c:358 src/adsr_1680.so.c:358 src/dahdsr_2021.so.c:868 msgid "Sustain Level" msgstr "Haltewert" #: src/adsr_1653.so.c:366 src/adsr_1680.so.c:366 src/dahdsr_2021.so.c:876 msgid "Release Time (s)" msgstr "Ausklingzeit (s)" #: src/adsr_1653.so.c:372 src/adsr_1680.so.c:372 src/dahdsr_2021.so.c:882 msgid "Envelope Out" msgstr "" #: src/adsr_1680.so.c:319 msgid "ADSR Envelope with Gate and Trigger" msgstr "ADSR Hüllkurve mit Gatter und Auslöseimpuls" #: src/adsr_1680.so.c:336 src/dahdsr_2021.so.c:834 #: src/sync_pulse_2023.so.c:303 src/sync_square_1678.so.c:279 #: src/tracker_2025.so.c:305 msgid "Gate" msgstr "Gatter" #: src/adsr_1680.so.c:341 src/dahdsr_2021.so.c:839 msgid "Trigger" msgstr "Auslöser" #: src/amp_1654.so.c:158 msgid "Amplifier (GAIA)" msgstr "" #: src/amp_1654.so.c:159 msgid "Amplifier (GCIA)" msgstr "" #: src/amp_1654.so.c:213 msgid "Gain (dB)" msgstr "Verstärkung (dB)" #: src/amp_1654.so.c:220 src/branch_1673.so.c:199 src/difference_2030.so.c:264 #: src/lp4pole_1671.so.c:279 src/quantiser.so.c:656 src/tracker_2025.so.c:346 msgid "Input" msgstr "" #: src/amp_1654.so.c:225 src/lp4pole_1671.so.c:284 src/pulse_1645.so.c:395 #: src/random_1661.so.c:451 src/sawtooth_1641.so.c:253 #: src/square_1643.so.c:255 src/sync_pulse_2023.so.c:308 #: src/sync_square_1678.so.c:284 src/tracker_2025.so.c:351 #: src/triangle_1649.so.c:414 msgid "Output" msgstr "" #: src/branch_1673.so.c:144 msgid "Signal Branch (IA)" msgstr "" #: src/branch_1673.so.c:145 msgid "Signal Branch (IC)" msgstr "" #: src/branch_1673.so.c:204 msgid "First Output" msgstr "" #: src/branch_1673.so.c:209 msgid "Second Output" msgstr "" #: src/dahdsr_2021.so.c:756 msgid "DAHDSR Envelope with Gate and Trigger (Audio-Rate Inputs)" msgstr "DAHDSR Hullkurve mit Gatter und Auslöseimpuls (Audio Eingänge)" #: src/dahdsr_2021.so.c:757 msgid "DAHDSR Envelope with Gate and Trigger (Control Inputs)" msgstr "DAHDSR Hüllkurve mit Gatter und Auslöseimpuls (Kontroll Eingänge)" #: src/dahdsr_2021.so.c:758 #, fuzzy msgid "DAHDSR Envelope with Control Gate and Trigger (Control Inputs)" msgstr "" "DAHDSR Hüllkurve mit Kontroll Gatter und Auslöseimpuls (Kontroll Eingänge)" #: src/dahdsr_2021.so.c:844 msgid "Delay Time (s)" msgstr "Verzögerungszeit (s)" #: src/dahdsr_2021.so.c:856 msgid "Hold Time (s)" msgstr "Haltezeit (s)" #: src/difference_2030.so.c:200 #, fuzzy msgid "Signal Difference (IAMA)" msgstr "Signal Produkt (IAIA)" #: src/difference_2030.so.c:201 #, fuzzy msgid "Signal Difference (IAMC)" msgstr "Signal Produkt (IAIC)" #: src/difference_2030.so.c:202 #, fuzzy msgid "Signal Difference (ICMA)" msgstr "Signal Produkt (IAIA)" #: src/difference_2030.so.c:203 #, fuzzy msgid "Signal Difference (ICMC)" msgstr "Signal Produkt (ICIC)" #: src/difference_2030.so.c:269 msgid "Input to Subtract" msgstr "" #: src/difference_2030.so.c:274 msgid "Difference Output" msgstr "" #: src/fmod_1656.so.c:211 msgid "Frequency Modulator (FAMA)" msgstr "Frequenz Modulator (FAMA)" #: src/fmod_1656.so.c:212 msgid "Frequency Modulator (FAMC)" msgstr "Frequenz Modulator (FAMC)" #: src/fmod_1656.so.c:213 msgid "Frequency Modulator (FCMA)" msgstr "Frequenz Modulator (FCMA)" #: src/fmod_1656.so.c:214 msgid "Frequency Modulator (FCMC)" msgstr "Frequenz Modulator (FCMC)" #: src/fmod_1656.so.c:275 src/random_1661.so.c:434 msgid "Frequency (Hz)" msgstr "Frequenz (Hz)" #: src/fmod_1656.so.c:284 msgid "Modulation (Octaves)" msgstr "" #: src/fmod_1656.so.c:289 msgid "Modulated Frequency (Hz)" msgstr "Modulierte Frequenz (Hz)" #: src/interpolator_1660.so.c:191 msgid "Control to Audio Interpolator" msgstr "Kontroll zu Audio Interpolator" #: src/interpolator_1660.so.c:208 msgid "Control Input" msgstr "Kontroll Eingang" #: src/interpolator_1660.so.c:213 msgid "Interpolated Output" msgstr "" #: src/lp4pole_1671.so.c:205 msgid "4 Pole Low-Pass Filter with Resonance (FARAIA)" msgstr "" #: src/lp4pole_1671.so.c:206 msgid "4 Pole Low-Pass Filter with Resonance (FCRCIA)" msgstr "" #: src/lp4pole_1671.so.c:262 msgid "Cutoff Frequency" msgstr "" #: src/lp4pole_1671.so.c:271 msgid "Resonance" msgstr "Resonanz" #: src/product_1668.so.c:172 msgid "Signal Product (IAIA)" msgstr "Signal Produkt (IAIA)" #: src/product_1668.so.c:173 msgid "Signal Product (IAIC)" msgstr "Signal Produkt (IAIC)" #: src/product_1668.so.c:174 msgid "Signal Product (ICIC)" msgstr "Signal Produkt (ICIC)" #: src/product_1668.so.c:231 src/sum_1665.so.c:231 msgid "First Input" msgstr "" #: src/product_1668.so.c:236 src/sum_1665.so.c:236 msgid "Second Input" msgstr "" #: src/product_1668.so.c:241 msgid "Product Output" msgstr "" #: src/pulse_1645.so.c:313 msgid "Bandlimited Variable Width Pulse Oscillator (FAPA)" msgstr "" #: src/pulse_1645.so.c:314 msgid "Bandlimited Variable Width Pulse Oscillator (FAPC)" msgstr "" #: src/pulse_1645.so.c:315 msgid "Bandlimited Variable Width Pulse Oscillator (FCPA)" msgstr "" #: src/pulse_1645.so.c:316 msgid "Bandlimited Variable Width Pulse Oscillator (FCPC)" msgstr "" #: src/pulse_1645.so.c:378 src/sawtooth_1641.so.c:244 src/square_1643.so.c:246 #: src/sync_pulse_2023.so.c:287 src/sync_square_1678.so.c:271 #: src/triangle_1649.so.c:397 msgid "Frequency" msgstr "Frequenz" #: src/pulse_1645.so.c:387 src/sync_pulse_2023.so.c:295 msgid "Pulse Width" msgstr "" #: src/quantiser.so.c:584 #, c-format msgid "Quantiser (%d Steps)" msgstr "" #: src/quantiser.so.c:585 #, c-format msgid "Steps (1 - %d)" msgstr "" #: src/quantiser.so.c:615 msgid "Quantise Range Minimum" msgstr "" #: src/quantiser.so.c:620 msgid "Quantise Range Maximum" msgstr "" #: src/quantiser.so.c:625 msgid "Match Range" msgstr "" #: src/quantiser.so.c:631 msgid "Mode (0 = Extend, 1 = Wrap, 2 = Clip)" msgstr "" #: src/quantiser.so.c:649 #, c-format msgid "Value %d" msgstr "" #: src/quantiser.so.c:661 msgid "Quantised Output" msgstr "" #: src/quantiser.so.c:666 msgid "Output Changed" msgstr "" #: src/random_1661.so.c:369 msgid "Random Wave Generator (FASA)" msgstr "" #: src/random_1661.so.c:370 msgid "Random Wave Generator (FASC)" msgstr "" #: src/random_1661.so.c:371 msgid "Random Wave Generator (FCSA)" msgstr "" #: src/random_1661.so.c:372 msgid "Random Wave Generator (FCSC)" msgstr "" #: src/random_1661.so.c:443 msgid "Wave Smoothness" msgstr "" #: src/ratio_2034.so.c:209 #, fuzzy msgid "Signal Ratio (NADA)" msgstr "Signal Summe (IAIA)" #: src/ratio_2034.so.c:210 #, fuzzy msgid "Signal Ratio (NADC)" msgstr "Signal Summe (IAIC)" #: src/ratio_2034.so.c:211 #, fuzzy msgid "Signal Ratio (NCDA)" msgstr "Signal Summe (IAIA)" #: src/ratio_2034.so.c:212 #, fuzzy msgid "Signal Ratio (NCDC)" msgstr "Signal Summe (ICIC)" #: src/ratio_2034.so.c:273 msgid "Numerator" msgstr "" #: src/ratio_2034.so.c:278 msgid "Denominator" msgstr "" #: src/ratio_2034.so.c:283 msgid "Ratio Output" msgstr "" #: src/sawtooth_1641.so.c:191 msgid "Bandlimited Sawtooth Oscillator (FA)" msgstr "" #: src/sawtooth_1641.so.c:192 msgid "Bandlimited Sawtooth Oscillator (FC)" msgstr "" #: src/sequencer.so.c:258 #, c-format msgid "Analogue Style %d Step Sequencer" msgstr "" #: src/sequencer.so.c:259 #, c-format msgid "Loop Steps (1 - %d)" msgstr "" #: src/sequencer.so.c:289 msgid "Gate (Open > 0)" msgstr "" #: src/sequencer.so.c:294 msgid "Step Trigger" msgstr "" #: src/sequencer.so.c:307 msgid "Reset to Value on Gate Close?" msgstr "" #: src/sequencer.so.c:315 msgid "Closed Gate Value" msgstr "" #: src/sequencer.so.c:322 #, c-format msgid "Value Step %d" msgstr "" #: src/sequencer.so.c:329 msgid "Value Out" msgstr "" #: src/square_1643.so.c:193 msgid "Bandlimited Square Oscillator (FA)" msgstr "" #: src/square_1643.so.c:194 msgid "Bandlimited Square Oscillator (FC)" msgstr "" #: src/sum_1665.so.c:172 msgid "Signal Sum (IAIA)" msgstr "Signal Summe (IAIA)" #: src/sum_1665.so.c:173 msgid "Signal Sum (IAIC)" msgstr "Signal Summe (IAIC)" #: src/sum_1665.so.c:174 msgid "Signal Sum (ICIC)" msgstr "Signal Summe (ICIC)" #: src/sum_1665.so.c:241 msgid "Summed Output" msgstr "" #: src/sync_pulse_2023.so.c:231 msgid "Clock Pulse Oscillator with Gate (FAPAGA)" msgstr "" #: src/sync_pulse_2023.so.c:232 msgid "Clock Pulse Oscillator with Gate (FCPCGA)" msgstr "" #: src/sync_square_1678.so.c:216 msgid "Clock Oscillator with Gate (FAGA)" msgstr "" #: src/sync_square_1678.so.c:217 msgid "Clock Oscillator with Gate (FCGA)" msgstr "" #: src/tracker_2025.so.c:242 msgid "Signal Tracker (Audio Rates)" msgstr "" #: src/tracker_2025.so.c:243 msgid "Signal Tracker (Control Rates)" msgstr "" #: src/tracker_2025.so.c:310 msgid "Attack Rate (Hz) when Gate High" msgstr "" #: src/tracker_2025.so.c:319 msgid "Decay Rate (Hz) when Gate High" msgstr "" #: src/tracker_2025.so.c:328 msgid "Attack Rate (Hz) when Gate Low" msgstr "" #: src/tracker_2025.so.c:337 msgid "Decay Rate (Hz) when Gate Low" msgstr "" #: src/triangle_1649.so.c:332 msgid "Bandlimited Variable Slope Triangle Oscillator (FASA)" msgstr "" #: src/triangle_1649.so.c:333 msgid "Bandlimited Variable Slope Triangle Oscillator (FASC)" msgstr "" #: src/triangle_1649.so.c:334 msgid "Bandlimited Variable Slope Triangle Oscillator (FCSA)" msgstr "" #: src/triangle_1649.so.c:335 msgid "Bandlimited Variable Slope Triangle Oscillator (FCSC)" msgstr "" #: src/triangle_1649.so.c:406 msgid "Slope" msgstr "" blop-0.2.8/po/LINGUAS0000644000175000006270000000005310063070305007573 # Language translations available en_GB de blop-0.2.8/po/en@boldquot.header0000644000175000006270000000247110063062210012176 # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # blop-0.2.8/po/en_GB.po0000644000175000006270000002240510063070305010065 # English translations by Mike Rawes for blop # Copyright (C) 2003 Mike Rawes # This file is distributed under the same license as the blop package. # Mike Rawes , 2003. # # msgid "" msgstr "" "Project-Id-Version: blop 0.2.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-06-13 16:07+0100\n" "PO-Revision-Date: 2003-09-05 20:00+0100\n" "Last-Translator: Mike Rawes \n" "Language-Team: English \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/adsr_1653.so.c:319 msgid "ADSR Envelope" msgstr "" #: src/adsr_1653.so.c:336 msgid "Driving Signal" msgstr "" #: src/adsr_1653.so.c:341 msgid "Trigger Threshold" msgstr "" #: src/adsr_1653.so.c:346 src/adsr_1680.so.c:346 src/dahdsr_2021.so.c:850 msgid "Attack Time (s)" msgstr "" #: src/adsr_1653.so.c:352 src/adsr_1680.so.c:352 src/dahdsr_2021.so.c:862 msgid "Decay Time (s)" msgstr "" #: src/adsr_1653.so.c:358 src/adsr_1680.so.c:358 src/dahdsr_2021.so.c:868 msgid "Sustain Level" msgstr "" #: src/adsr_1653.so.c:366 src/adsr_1680.so.c:366 src/dahdsr_2021.so.c:876 msgid "Release Time (s)" msgstr "" #: src/adsr_1653.so.c:372 src/adsr_1680.so.c:372 src/dahdsr_2021.so.c:882 msgid "Envelope Out" msgstr "" #: src/adsr_1680.so.c:319 msgid "ADSR Envelope with Gate and Trigger" msgstr "" #: src/adsr_1680.so.c:336 src/dahdsr_2021.so.c:834 #: src/sync_pulse_2023.so.c:303 src/sync_square_1678.so.c:279 #: src/tracker_2025.so.c:305 msgid "Gate" msgstr "" #: src/adsr_1680.so.c:341 src/dahdsr_2021.so.c:839 msgid "Trigger" msgstr "" #: src/amp_1654.so.c:158 msgid "Amplifier (GAIA)" msgstr "" #: src/amp_1654.so.c:159 msgid "Amplifier (GCIA)" msgstr "" #: src/amp_1654.so.c:213 msgid "Gain (dB)" msgstr "" #: src/amp_1654.so.c:220 src/branch_1673.so.c:199 src/difference_2030.so.c:264 #: src/lp4pole_1671.so.c:279 src/quantiser.so.c:656 src/tracker_2025.so.c:346 msgid "Input" msgstr "" #: src/amp_1654.so.c:225 src/lp4pole_1671.so.c:284 src/pulse_1645.so.c:395 #: src/random_1661.so.c:451 src/sawtooth_1641.so.c:253 #: src/square_1643.so.c:255 src/sync_pulse_2023.so.c:308 #: src/sync_square_1678.so.c:284 src/tracker_2025.so.c:351 #: src/triangle_1649.so.c:414 msgid "Output" msgstr "" #: src/branch_1673.so.c:144 msgid "Signal Branch (IA)" msgstr "" #: src/branch_1673.so.c:145 msgid "Signal Branch (IC)" msgstr "" #: src/branch_1673.so.c:204 msgid "First Output" msgstr "" #: src/branch_1673.so.c:209 msgid "Second Output" msgstr "" #: src/dahdsr_2021.so.c:756 msgid "DAHDSR Envelope with Gate and Trigger (Audio-Rate Inputs)" msgstr "" #: src/dahdsr_2021.so.c:757 msgid "DAHDSR Envelope with Gate and Trigger (Control Inputs)" msgstr "" #: src/dahdsr_2021.so.c:758 msgid "DAHDSR Envelope with Control Gate and Trigger (Control Inputs)" msgstr "" #: src/dahdsr_2021.so.c:844 msgid "Delay Time (s)" msgstr "" #: src/dahdsr_2021.so.c:856 msgid "Hold Time (s)" msgstr "" #: src/difference_2030.so.c:200 msgid "Signal Difference (IAMA)" msgstr "" #: src/difference_2030.so.c:201 msgid "Signal Difference (IAMC)" msgstr "" #: src/difference_2030.so.c:202 msgid "Signal Difference (ICMA)" msgstr "" #: src/difference_2030.so.c:203 msgid "Signal Difference (ICMC)" msgstr "" #: src/difference_2030.so.c:269 msgid "Input to Subtract" msgstr "" #: src/difference_2030.so.c:274 msgid "Difference Output" msgstr "" #: src/fmod_1656.so.c:211 msgid "Frequency Modulator (FAMA)" msgstr "" #: src/fmod_1656.so.c:212 msgid "Frequency Modulator (FAMC)" msgstr "" #: src/fmod_1656.so.c:213 msgid "Frequency Modulator (FCMA)" msgstr "" #: src/fmod_1656.so.c:214 msgid "Frequency Modulator (FCMC)" msgstr "" #: src/fmod_1656.so.c:275 src/random_1661.so.c:434 msgid "Frequency (Hz)" msgstr "" #: src/fmod_1656.so.c:284 msgid "Modulation (Octaves)" msgstr "" #: src/fmod_1656.so.c:289 msgid "Modulated Frequency (Hz)" msgstr "" #: src/interpolator_1660.so.c:191 msgid "Control to Audio Interpolator" msgstr "" #: src/interpolator_1660.so.c:208 msgid "Control Input" msgstr "" #: src/interpolator_1660.so.c:213 msgid "Interpolated Output" msgstr "" #: src/lp4pole_1671.so.c:205 msgid "4 Pole Low-Pass Filter with Resonance (FARAIA)" msgstr "" #: src/lp4pole_1671.so.c:206 msgid "4 Pole Low-Pass Filter with Resonance (FCRCIA)" msgstr "" #: src/lp4pole_1671.so.c:262 msgid "Cutoff Frequency" msgstr "" #: src/lp4pole_1671.so.c:271 msgid "Resonance" msgstr "" #: src/product_1668.so.c:172 msgid "Signal Product (IAIA)" msgstr "" #: src/product_1668.so.c:173 msgid "Signal Product (IAIC)" msgstr "" #: src/product_1668.so.c:174 msgid "Signal Product (ICIC)" msgstr "" #: src/product_1668.so.c:231 src/sum_1665.so.c:231 msgid "First Input" msgstr "" #: src/product_1668.so.c:236 src/sum_1665.so.c:236 msgid "Second Input" msgstr "" #: src/product_1668.so.c:241 msgid "Product Output" msgstr "" #: src/pulse_1645.so.c:313 msgid "Bandlimited Variable Width Pulse Oscillator (FAPA)" msgstr "" #: src/pulse_1645.so.c:314 msgid "Bandlimited Variable Width Pulse Oscillator (FAPC)" msgstr "" #: src/pulse_1645.so.c:315 msgid "Bandlimited Variable Width Pulse Oscillator (FCPA)" msgstr "" #: src/pulse_1645.so.c:316 msgid "Bandlimited Variable Width Pulse Oscillator (FCPC)" msgstr "" #: src/pulse_1645.so.c:378 src/sawtooth_1641.so.c:244 src/square_1643.so.c:246 #: src/sync_pulse_2023.so.c:287 src/sync_square_1678.so.c:271 #: src/triangle_1649.so.c:397 msgid "Frequency" msgstr "" #: src/pulse_1645.so.c:387 src/sync_pulse_2023.so.c:295 msgid "Pulse Width" msgstr "" #: src/quantiser.so.c:584 #, c-format msgid "Quantiser (%d Steps)" msgstr "" #: src/quantiser.so.c:585 #, c-format msgid "Steps (1 - %d)" msgstr "" #: src/quantiser.so.c:615 msgid "Quantise Range Minimum" msgstr "" #: src/quantiser.so.c:620 msgid "Quantise Range Maximum" msgstr "" #: src/quantiser.so.c:625 msgid "Match Range" msgstr "" #: src/quantiser.so.c:631 msgid "Mode (0 = Extend, 1 = Wrap, 2 = Clip)" msgstr "" #: src/quantiser.so.c:649 #, c-format msgid "Value %d" msgstr "" #: src/quantiser.so.c:661 msgid "Quantised Output" msgstr "" #: src/quantiser.so.c:666 msgid "Output Changed" msgstr "" #: src/random_1661.so.c:369 msgid "Random Wave Generator (FASA)" msgstr "" #: src/random_1661.so.c:370 msgid "Random Wave Generator (FASC)" msgstr "" #: src/random_1661.so.c:371 msgid "Random Wave Generator (FCSA)" msgstr "" #: src/random_1661.so.c:372 msgid "Random Wave Generator (FCSC)" msgstr "" #: src/random_1661.so.c:443 msgid "Wave Smoothness" msgstr "" #: src/ratio_2034.so.c:209 msgid "Signal Ratio (NADA)" msgstr "" #: src/ratio_2034.so.c:210 msgid "Signal Ratio (NADC)" msgstr "" #: src/ratio_2034.so.c:211 msgid "Signal Ratio (NCDA)" msgstr "" #: src/ratio_2034.so.c:212 msgid "Signal Ratio (NCDC)" msgstr "" #: src/ratio_2034.so.c:273 msgid "Numerator" msgstr "" #: src/ratio_2034.so.c:278 msgid "Denominator" msgstr "" #: src/ratio_2034.so.c:283 msgid "Ratio Output" msgstr "" #: src/sawtooth_1641.so.c:191 msgid "Bandlimited Sawtooth Oscillator (FA)" msgstr "" #: src/sawtooth_1641.so.c:192 msgid "Bandlimited Sawtooth Oscillator (FC)" msgstr "" #: src/sequencer.so.c:258 #, c-format msgid "Analogue Style %d Step Sequencer" msgstr "" #: src/sequencer.so.c:259 #, c-format msgid "Loop Steps (1 - %d)" msgstr "" #: src/sequencer.so.c:289 msgid "Gate (Open > 0)" msgstr "" #: src/sequencer.so.c:294 msgid "Step Trigger" msgstr "" #: src/sequencer.so.c:307 msgid "Reset to Value on Gate Close?" msgstr "" #: src/sequencer.so.c:315 msgid "Closed Gate Value" msgstr "" #: src/sequencer.so.c:322 #, c-format msgid "Value Step %d" msgstr "" #: src/sequencer.so.c:329 msgid "Value Out" msgstr "" #: src/square_1643.so.c:193 msgid "Bandlimited Square Oscillator (FA)" msgstr "" #: src/square_1643.so.c:194 msgid "Bandlimited Square Oscillator (FC)" msgstr "" #: src/sum_1665.so.c:172 msgid "Signal Sum (IAIA)" msgstr "" #: src/sum_1665.so.c:173 msgid "Signal Sum (IAIC)" msgstr "" #: src/sum_1665.so.c:174 msgid "Signal Sum (ICIC)" msgstr "" #: src/sum_1665.so.c:241 msgid "Summed Output" msgstr "" #: src/sync_pulse_2023.so.c:231 msgid "Clock Pulse Oscillator with Gate (FAPAGA)" msgstr "" #: src/sync_pulse_2023.so.c:232 msgid "Clock Pulse Oscillator with Gate (FCPCGA)" msgstr "" #: src/sync_square_1678.so.c:216 msgid "Clock Oscillator with Gate (FAGA)" msgstr "" #: src/sync_square_1678.so.c:217 msgid "Clock Oscillator with Gate (FCGA)" msgstr "" #: src/tracker_2025.so.c:242 msgid "Signal Tracker (Audio Rates)" msgstr "" #: src/tracker_2025.so.c:243 msgid "Signal Tracker (Control Rates)" msgstr "" #: src/tracker_2025.so.c:310 msgid "Attack Rate (Hz) when Gate High" msgstr "" #: src/tracker_2025.so.c:319 msgid "Decay Rate (Hz) when Gate High" msgstr "" #: src/tracker_2025.so.c:328 msgid "Attack Rate (Hz) when Gate Low" msgstr "" #: src/tracker_2025.so.c:337 msgid "Decay Rate (Hz) when Gate Low" msgstr "" #: src/triangle_1649.so.c:332 msgid "Bandlimited Variable Slope Triangle Oscillator (FASA)" msgstr "" #: src/triangle_1649.so.c:333 msgid "Bandlimited Variable Slope Triangle Oscillator (FASC)" msgstr "" #: src/triangle_1649.so.c:334 msgid "Bandlimited Variable Slope Triangle Oscillator (FCSA)" msgstr "" #: src/triangle_1649.so.c:335 msgid "Bandlimited Variable Slope Triangle Oscillator (FCSC)" msgstr "" #: src/triangle_1649.so.c:406 msgid "Slope" msgstr "" blop-0.2.8/po/en@quot.header0000644000175000006270000000226310063062210011334 # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # blop-0.2.8/po/Rules-quot0000644000175000006270000000323110063062210010546 # Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header blop-0.2.8/po/remove-potcdate.sin0000644000175000006270000000066010063062210012357 # Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } blop-0.2.8/po/boldquot.sed0000644000175000006270000000033110063062210011067 s/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g s/“/“/g s/â€/â€/g s/‘/‘/g s/’/’/g blop-0.2.8/po/POTFILES.in0000644000175000006270000000100310063070305010317 # Sources with strings that need translation src/adsr_1653.so.c src/adsr_1680.so.c src/amp_1654.so.c src/branch_1673.so.c src/dahdsr_2021.so.c src/difference_2030.so.c src/fmod_1656.so.c src/interpolator_1660.so.c src/lp4pole_1671.so.c src/product_1668.so.c src/pulse_1645.so.c src/quantiser.so.c src/random_1661.so.c src/ratio_2034.so.c src/sawtooth_1641.so.c src/sequencer.so.c src/square_1643.so.c src/sum_1665.so.c src/sync_pulse_2023.so.c src/sync_square_1678.so.c src/tracker_2025.so.c src/triangle_1649.so.c blop-0.2.8/po/de.gmo0000644000175000006270000000427110063536512007657 Þ• )ü  ¡#¯Ó ãñ96I€ ž¨·Òí #- 2@Y jtŠ ¶ÈÚ ìú),+;gz‹>ªAé+;P Yg›µÏà çõ(>Tj~’ ¦°     ADSR EnvelopeADSR Envelope with Gate and TriggerAttack Time (s)Control InputControl to Audio InterpolatorDAHDSR Envelope with Gate and Trigger (Audio-Rate Inputs)DAHDSR Envelope with Gate and Trigger (Control Inputs)Decay Time (s)Delay Time (s)FrequencyFrequency (Hz)Frequency Modulator (FAMA)Frequency Modulator (FAMC)Frequency Modulator (FCMA)Frequency Modulator (FCMC)Gain (dB)GateHold Time (s)Modulated Frequency (Hz)Release Time (s)ResonanceSignal Product (IAIA)Signal Product (IAIC)Signal Product (ICIC)Signal Sum (IAIA)Signal Sum (IAIC)Signal Sum (ICIC)Sustain LevelTriggerProject-Id-Version: BLOP 0.2.8 Report-Msgid-Bugs-To: POT-Creation-Date: 2004-06-13 16:07+0100 PO-Revision-Date: 2003-09-22 20:34+0200 Last-Translator: Mario Lang Language-Team: ??? MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ADSR HüllkurveADSR Hüllkurve mit Gatter und AuslöseimpulsEinschwingzeit (s)Kontroll EingangKontroll zu Audio InterpolatorDAHDSR Hullkurve mit Gatter und Auslöseimpuls (Audio Eingänge)DAHDSR Hüllkurve mit Gatter und Auslöseimpuls (Kontroll Eingänge)Abklingzeit (s)Verzögerungszeit (s)FrequenzFrequenz (Hz)Frequenz Modulator (FAMA)Frequenz Modulator (FAMC)Frequenz Modulator (FCMA)Frequenz Modulator (FCMC)Verstärkung (dB)GatterHaltezeit (s)Modulierte Frequenz (Hz)Ausklingzeit (s)ResonanzSignal Produkt (IAIA)Signal Produkt (IAIC)Signal Produkt (ICIC)Signal Summe (IAIA)Signal Summe (IAIC)Signal Summe (ICIC)HaltewertAuslöserblop-0.2.8/po/blop.pot0000644000175000006270000002226010063070305010232 # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Mike Rawes # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2004-06-13 16:07+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/adsr_1653.so.c:319 msgid "ADSR Envelope" msgstr "" #: src/adsr_1653.so.c:336 msgid "Driving Signal" msgstr "" #: src/adsr_1653.so.c:341 msgid "Trigger Threshold" msgstr "" #: src/adsr_1653.so.c:346 src/adsr_1680.so.c:346 src/dahdsr_2021.so.c:850 msgid "Attack Time (s)" msgstr "" #: src/adsr_1653.so.c:352 src/adsr_1680.so.c:352 src/dahdsr_2021.so.c:862 msgid "Decay Time (s)" msgstr "" #: src/adsr_1653.so.c:358 src/adsr_1680.so.c:358 src/dahdsr_2021.so.c:868 msgid "Sustain Level" msgstr "" #: src/adsr_1653.so.c:366 src/adsr_1680.so.c:366 src/dahdsr_2021.so.c:876 msgid "Release Time (s)" msgstr "" #: src/adsr_1653.so.c:372 src/adsr_1680.so.c:372 src/dahdsr_2021.so.c:882 msgid "Envelope Out" msgstr "" #: src/adsr_1680.so.c:319 msgid "ADSR Envelope with Gate and Trigger" msgstr "" #: src/adsr_1680.so.c:336 src/dahdsr_2021.so.c:834 #: src/sync_pulse_2023.so.c:303 src/sync_square_1678.so.c:279 #: src/tracker_2025.so.c:305 msgid "Gate" msgstr "" #: src/adsr_1680.so.c:341 src/dahdsr_2021.so.c:839 msgid "Trigger" msgstr "" #: src/amp_1654.so.c:158 msgid "Amplifier (GAIA)" msgstr "" #: src/amp_1654.so.c:159 msgid "Amplifier (GCIA)" msgstr "" #: src/amp_1654.so.c:213 msgid "Gain (dB)" msgstr "" #: src/amp_1654.so.c:220 src/branch_1673.so.c:199 src/difference_2030.so.c:264 #: src/lp4pole_1671.so.c:279 src/quantiser.so.c:656 src/tracker_2025.so.c:346 msgid "Input" msgstr "" #: src/amp_1654.so.c:225 src/lp4pole_1671.so.c:284 src/pulse_1645.so.c:395 #: src/random_1661.so.c:451 src/sawtooth_1641.so.c:253 #: src/square_1643.so.c:255 src/sync_pulse_2023.so.c:308 #: src/sync_square_1678.so.c:284 src/tracker_2025.so.c:351 #: src/triangle_1649.so.c:414 msgid "Output" msgstr "" #: src/branch_1673.so.c:144 msgid "Signal Branch (IA)" msgstr "" #: src/branch_1673.so.c:145 msgid "Signal Branch (IC)" msgstr "" #: src/branch_1673.so.c:204 msgid "First Output" msgstr "" #: src/branch_1673.so.c:209 msgid "Second Output" msgstr "" #: src/dahdsr_2021.so.c:756 msgid "DAHDSR Envelope with Gate and Trigger (Audio-Rate Inputs)" msgstr "" #: src/dahdsr_2021.so.c:757 msgid "DAHDSR Envelope with Gate and Trigger (Control Inputs)" msgstr "" #: src/dahdsr_2021.so.c:758 msgid "DAHDSR Envelope with Control Gate and Trigger (Control Inputs)" msgstr "" #: src/dahdsr_2021.so.c:844 msgid "Delay Time (s)" msgstr "" #: src/dahdsr_2021.so.c:856 msgid "Hold Time (s)" msgstr "" #: src/difference_2030.so.c:200 msgid "Signal Difference (IAMA)" msgstr "" #: src/difference_2030.so.c:201 msgid "Signal Difference (IAMC)" msgstr "" #: src/difference_2030.so.c:202 msgid "Signal Difference (ICMA)" msgstr "" #: src/difference_2030.so.c:203 msgid "Signal Difference (ICMC)" msgstr "" #: src/difference_2030.so.c:269 msgid "Input to Subtract" msgstr "" #: src/difference_2030.so.c:274 msgid "Difference Output" msgstr "" #: src/fmod_1656.so.c:211 msgid "Frequency Modulator (FAMA)" msgstr "" #: src/fmod_1656.so.c:212 msgid "Frequency Modulator (FAMC)" msgstr "" #: src/fmod_1656.so.c:213 msgid "Frequency Modulator (FCMA)" msgstr "" #: src/fmod_1656.so.c:214 msgid "Frequency Modulator (FCMC)" msgstr "" #: src/fmod_1656.so.c:275 src/random_1661.so.c:434 msgid "Frequency (Hz)" msgstr "" #: src/fmod_1656.so.c:284 msgid "Modulation (Octaves)" msgstr "" #: src/fmod_1656.so.c:289 msgid "Modulated Frequency (Hz)" msgstr "" #: src/interpolator_1660.so.c:191 msgid "Control to Audio Interpolator" msgstr "" #: src/interpolator_1660.so.c:208 msgid "Control Input" msgstr "" #: src/interpolator_1660.so.c:213 msgid "Interpolated Output" msgstr "" #: src/lp4pole_1671.so.c:205 msgid "4 Pole Low-Pass Filter with Resonance (FARAIA)" msgstr "" #: src/lp4pole_1671.so.c:206 msgid "4 Pole Low-Pass Filter with Resonance (FCRCIA)" msgstr "" #: src/lp4pole_1671.so.c:262 msgid "Cutoff Frequency" msgstr "" #: src/lp4pole_1671.so.c:271 msgid "Resonance" msgstr "" #: src/product_1668.so.c:172 msgid "Signal Product (IAIA)" msgstr "" #: src/product_1668.so.c:173 msgid "Signal Product (IAIC)" msgstr "" #: src/product_1668.so.c:174 msgid "Signal Product (ICIC)" msgstr "" #: src/product_1668.so.c:231 src/sum_1665.so.c:231 msgid "First Input" msgstr "" #: src/product_1668.so.c:236 src/sum_1665.so.c:236 msgid "Second Input" msgstr "" #: src/product_1668.so.c:241 msgid "Product Output" msgstr "" #: src/pulse_1645.so.c:313 msgid "Bandlimited Variable Width Pulse Oscillator (FAPA)" msgstr "" #: src/pulse_1645.so.c:314 msgid "Bandlimited Variable Width Pulse Oscillator (FAPC)" msgstr "" #: src/pulse_1645.so.c:315 msgid "Bandlimited Variable Width Pulse Oscillator (FCPA)" msgstr "" #: src/pulse_1645.so.c:316 msgid "Bandlimited Variable Width Pulse Oscillator (FCPC)" msgstr "" #: src/pulse_1645.so.c:378 src/sawtooth_1641.so.c:244 src/square_1643.so.c:246 #: src/sync_pulse_2023.so.c:287 src/sync_square_1678.so.c:271 #: src/triangle_1649.so.c:397 msgid "Frequency" msgstr "" #: src/pulse_1645.so.c:387 src/sync_pulse_2023.so.c:295 msgid "Pulse Width" msgstr "" #: src/quantiser.so.c:584 #, c-format msgid "Quantiser (%d Steps)" msgstr "" #: src/quantiser.so.c:585 #, c-format msgid "Steps (1 - %d)" msgstr "" #: src/quantiser.so.c:615 msgid "Quantise Range Minimum" msgstr "" #: src/quantiser.so.c:620 msgid "Quantise Range Maximum" msgstr "" #: src/quantiser.so.c:625 msgid "Match Range" msgstr "" #: src/quantiser.so.c:631 msgid "Mode (0 = Extend, 1 = Wrap, 2 = Clip)" msgstr "" #: src/quantiser.so.c:649 #, c-format msgid "Value %d" msgstr "" #: src/quantiser.so.c:661 msgid "Quantised Output" msgstr "" #: src/quantiser.so.c:666 msgid "Output Changed" msgstr "" #: src/random_1661.so.c:369 msgid "Random Wave Generator (FASA)" msgstr "" #: src/random_1661.so.c:370 msgid "Random Wave Generator (FASC)" msgstr "" #: src/random_1661.so.c:371 msgid "Random Wave Generator (FCSA)" msgstr "" #: src/random_1661.so.c:372 msgid "Random Wave Generator (FCSC)" msgstr "" #: src/random_1661.so.c:443 msgid "Wave Smoothness" msgstr "" #: src/ratio_2034.so.c:209 msgid "Signal Ratio (NADA)" msgstr "" #: src/ratio_2034.so.c:210 msgid "Signal Ratio (NADC)" msgstr "" #: src/ratio_2034.so.c:211 msgid "Signal Ratio (NCDA)" msgstr "" #: src/ratio_2034.so.c:212 msgid "Signal Ratio (NCDC)" msgstr "" #: src/ratio_2034.so.c:273 msgid "Numerator" msgstr "" #: src/ratio_2034.so.c:278 msgid "Denominator" msgstr "" #: src/ratio_2034.so.c:283 msgid "Ratio Output" msgstr "" #: src/sawtooth_1641.so.c:191 msgid "Bandlimited Sawtooth Oscillator (FA)" msgstr "" #: src/sawtooth_1641.so.c:192 msgid "Bandlimited Sawtooth Oscillator (FC)" msgstr "" #: src/sequencer.so.c:258 #, c-format msgid "Analogue Style %d Step Sequencer" msgstr "" #: src/sequencer.so.c:259 #, c-format msgid "Loop Steps (1 - %d)" msgstr "" #: src/sequencer.so.c:289 msgid "Gate (Open > 0)" msgstr "" #: src/sequencer.so.c:294 msgid "Step Trigger" msgstr "" #: src/sequencer.so.c:307 msgid "Reset to Value on Gate Close?" msgstr "" #: src/sequencer.so.c:315 msgid "Closed Gate Value" msgstr "" #: src/sequencer.so.c:322 #, c-format msgid "Value Step %d" msgstr "" #: src/sequencer.so.c:329 msgid "Value Out" msgstr "" #: src/square_1643.so.c:193 msgid "Bandlimited Square Oscillator (FA)" msgstr "" #: src/square_1643.so.c:194 msgid "Bandlimited Square Oscillator (FC)" msgstr "" #: src/sum_1665.so.c:172 msgid "Signal Sum (IAIA)" msgstr "" #: src/sum_1665.so.c:173 msgid "Signal Sum (IAIC)" msgstr "" #: src/sum_1665.so.c:174 msgid "Signal Sum (ICIC)" msgstr "" #: src/sum_1665.so.c:241 msgid "Summed Output" msgstr "" #: src/sync_pulse_2023.so.c:231 msgid "Clock Pulse Oscillator with Gate (FAPAGA)" msgstr "" #: src/sync_pulse_2023.so.c:232 msgid "Clock Pulse Oscillator with Gate (FCPCGA)" msgstr "" #: src/sync_square_1678.so.c:216 msgid "Clock Oscillator with Gate (FAGA)" msgstr "" #: src/sync_square_1678.so.c:217 msgid "Clock Oscillator with Gate (FCGA)" msgstr "" #: src/tracker_2025.so.c:242 msgid "Signal Tracker (Audio Rates)" msgstr "" #: src/tracker_2025.so.c:243 msgid "Signal Tracker (Control Rates)" msgstr "" #: src/tracker_2025.so.c:310 msgid "Attack Rate (Hz) when Gate High" msgstr "" #: src/tracker_2025.so.c:319 msgid "Decay Rate (Hz) when Gate High" msgstr "" #: src/tracker_2025.so.c:328 msgid "Attack Rate (Hz) when Gate Low" msgstr "" #: src/tracker_2025.so.c:337 msgid "Decay Rate (Hz) when Gate Low" msgstr "" #: src/triangle_1649.so.c:332 msgid "Bandlimited Variable Slope Triangle Oscillator (FASA)" msgstr "" #: src/triangle_1649.so.c:333 msgid "Bandlimited Variable Slope Triangle Oscillator (FASC)" msgstr "" #: src/triangle_1649.so.c:334 msgid "Bandlimited Variable Slope Triangle Oscillator (FCSA)" msgstr "" #: src/triangle_1649.so.c:335 msgid "Bandlimited Variable Slope Triangle Oscillator (FCSC)" msgstr "" #: src/triangle_1649.so.c:406 msgid "Slope" msgstr "" blop-0.2.8/po/insert-header.sin0000644000175000006270000000124010063062210012006 # Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } blop-0.2.8/po/stamp-po0000644000175000006270000000001210063536512010233 timestamp blop-0.2.8/po/quot.sed0000644000175000006270000000023110063062210010225 s/"\([^"]*\)"/“\1â€/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“â€/""/g blop-0.2.8/po/ChangeLog0000644000175000006270000000070407727274602010346 2003-09-08 gettextize * Makefile.in.in: New file, from gettext-0.11.5. * Rules-quot: New file, from gettext-0.11.5. * boldquot.sed: New file, from gettext-0.11.5. * en@boldquot.header: New file, from gettext-0.11.5. * en@quot.header: New file, from gettext-0.11.5. * insert-header.sin: New file, from gettext-0.11.5. * quot.sed: New file, from gettext-0.11.5. * remove-potcdate.sin: New file, from gettext-0.11.5. blop-0.2.8/po/Makefile.in.in0000644000175000006270000002744110063062210011226 # Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. PACKAGE = @PACKAGE@ VERSION = @VERSION@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datadir = @datadir@ localedir = $(datadir)/locale gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ MKINSTALLDIRS = @MKINSTALLDIRS@ mkinstalldirs = $(SHELL) $(MKINSTALLDIRS) GMSGFMT = @GMSGFMT@ MSGFMT = @MSGFMT@ XGETTEXT = @XGETTEXT@ MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: all-@USE_NLS@ all-yes: stamp-po all-no: # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS) @echo "touch stamp-po" @echo timestamp > stamp-poT @mv stamp-poT stamp-po # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)' test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: $(mkinstalldirs) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkinstalldirs) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir); \ else \ cp -p $(srcdir)/$$file $(distdir); \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \ $(SHELL) ./config.status force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: blop-0.2.8/doc/0000777000175000006270000000000010063536512006772 5blop-0.2.8/doc/blop.rdf0000644000175000006270000033562210037560313010347 ]> Bandlimited Sawtooth Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Sawtooth Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Square Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Square Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Width Pulse Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Width Pulse Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Width Pulse Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Width Pulse Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Slope Triangle Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Slope Triangle Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Slope Triangle Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Bandlimited Variable Slope Triangle Oscillator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later ADSR Envelope Generator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Mono Amplifier Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Mono Amplifier Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Frequency Modulator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Frequency Modulator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Frequency Modulator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Frequency Modulator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Control to Audio Interpolator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Random Wave Generator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Random Wave Generator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Random Wave Generator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Random Wave Generator Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Sum Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Sum Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Sum Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Product Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Product Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Product Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Difference Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Difference Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Difference Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Difference Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Ratio Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Ratio Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Ratio Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Ratio Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later 4 Pole Low Pass Filter with Resonance Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later 4 Pole Low Pass Filter with Resonance Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Branch Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Branch Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Analogue Style 64 Step Sequencer Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Analogue Style 32 Step Sequencer Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Analogue Style 16 Step Sequencer Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Clock Oscillator with Gate Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Clock Oscillator with Gate Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later ADSR Envelope Generator with Gate and Trigger Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later DAHDSR Envelope Generator with Gate and Trigger (Audio Rate Inputs) Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later DAHDSR Envelope Generator with Gate and Trigger (Control Inputs) Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later DAHDSR Envelope Generator with Control Gate and Trigger (Control Inputs) Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Clock Pulse Oscillator with Gate Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Clock Pulse Oscillator with Gate Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Tracker Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Signal Tracker Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Quantiser (20 Steps) Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Quantiser (50 Steps) Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later Quantiser (100 Steps) Mike Rawes <mike_rawes@yahoo.co.uk> GNU General Public Licence Version 2 or Later blop-0.2.8/doc/Makefile.am0000644000175000006270000000017007616056656010760 ## Process this file with automake to produce Makefile.in MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = *.txt *.rdf blop-0.2.8/doc/Makefile.in0000644000175000006270000001321610063536477010770 # Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ AMTAR = @AMTAR@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ DEPDIR = @DEPDIR@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ HAVE_LIB = @HAVE_LIB@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ LIB = @LIB@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LTLIB = @LTLIB@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ MAINT = @MAINT@ MKINSTALLDIRS = @MKINSTALLDIRS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ first_note = @first_note@ gibbs = @gibbs@ install_sh = @install_sh@ ladspa_plugin_dir = @ladspa_plugin_dir@ ladspa_prefix = @ladspa_prefix@ min_table_size = @min_table_size@ note_step = @note_step@ sample_rate = @sample_rate@ wavedata_subdir = @wavedata_subdir@ MAINTAINERCLEANFILES = Makefile.in EXTRA_DIST = *.txt *.rdf subdir = doc mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = DIST_COMMON = Makefile.am Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status uninstall-info-am: tags: TAGS TAGS: DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am .PHONY: all all-am check check-am clean clean-generic distclean \ distclean-generic distdir dvi dvi-am info info-am install \ install-am install-data install-data-am install-exec \ install-exec-am install-info install-info-am install-man \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic uninstall uninstall-am uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: blop-0.2.8/doc/about.txt0000644000175000006270000000623407506124774010601 ----ooooOOOOoooo---- The purpose of these plugins is to provide band-limited (alias-free) sawtooth, square, variable pulse and variable-slope triangle oscillators for use in LADSPA-aware audio applications. The harmonic content is to match that of the ideal waveform as closely as possible over the required range of pitches (between 0 and half of the sampling rate). Aliasing Aliasing happens when you sample a signal containing frequencies that are above half of the sample rate, aka the Nyquist rate. The result is that the frequency appears as a different frequency (an alias frequency) in the result. Bandlimiting The obvious way to generate a waveform is to literally 'draw' its shape as a function of time. A simple example is generating a sine wave: for each interval of time, t, the amplitude, a = sin(t). This will present no problems, as a sine wave only contains one harmonic, its fundamental. Any pitch up to Nyquist will still sound like a sinewave, as no higher harmonics are present. However, consider generating a new waveform with an additional harmonic at double the fundamental (a = sin(t) + 0.5*sin(2t)) The presence of this additional harmonic will limit the pitch the wave can be played at to 1/4 of the sampling rate - any pitch above this, and the higher harmonic will alias. A perfect sawtooth wave, drawn using a simple slope function, will contain all harmonics and therefore the wave cannot be played at any pitch without some harmonics aliasing. At low frequencies, the noise will be fairly quiet, but pitch it up and it will become more easily perceptible, as more of the prominent harmonics pass Nyquist and alias. Ideal Solutions Instead of using drawing the waveshape directly, a wave can be approximated using a finite number of terms from a Fourier Series: a = Sum[h = 1, max_h] (1/h) sin(ht) will give a sawtooth wave, with max_h harmonics. To generate the waveforms in realtime using this method would require a fairly powerful computer, as the number of terms (sine calculations) required gets large as pitch decreases. At 55Hz (a low A), this would require over 2 billion such calculations per second for a sample rate of 48kHz. An alternative is to pre-calculate the waveforms for each maximum harmonic and store the results in a series of wavetables. For a given pitch, determine which table should be used based on the maximum harmonic, and retrieve samples from this table. In this case, storage space becomes an issue - a full waveform period will require sample rate * sizeof(float) bytes, and we'll need sample rate / 2 tables for each maximum harmonic. Compromise The first ideal solution cannot realistically be implemented without big compromises on the harmonic content at lower pitches - even if this were done, the cpu requirements would still be quite prohibitive. The second approach can be implemented by reducing the number of tables - a good compromise is to generate a table for each MIDI note, 0 to 127. Refinement ---- Gibbs Phenomenon Playback of single wavetable at frequency, independent of sample count. Fudge factors, interpolation. ---- Indexing of multiple tables Lookup, cross fading. ---- Wrap up blop-0.2.8/doc/plugins_list.txt0000644000175000006270000003531510036233404012164 Plugins -------------------------------------------------------------------------------- Bandlimited Sawtooth Oscillator 1641 sawtooth_fa_oa Frequency (Audio) Output (Audio) 1642 sawtooth_fc_oa Frequency (Control) Output (Audio) -------------------------------------------------------------------------------- Bandlimited Square Oscillator 1643 square_fa_oa Frequency (Audio) Output (Audio) 1644 square_fc_oa Frequency (Control) Output (Audio) -------------------------------------------------------------------------------- Bandlimited Variable Width Pulse Oscillator 1645 pulse_fapa_oa Frequency (Audio) Pulsewidth (Audio) Output (Audio) 1646 pulse_fapc_oa Frequency (Audio) Pulsewidth (Control) Output (Audio) 1647 pulse_fcpa_oa Frequency (Control) Pulsewidth (Audio) Output (Audio) 1648 pulse_fcpc_oa Frequency (Control) Pulsewidth (Control) Output (Audio) -------------------------------------------------------------------------------- Bandlimited Variable Slope Triangle Oscillator 1649 triangle_fasa_oa Frequency (Audio) Slope (Audio) Output (Audio) 1650 triangle_fasc_oa Frequency (Audio) Slope (Control) Output (Audio) 1651 triangle_fcsa_oa Frequency (Control) Slope (Audio) Output (Audio) 1652 triangle_fcsc_oa Frequency (Control) Slope (Control) Output (Audio) -------------------------------------------------------------------------------- ADSR Envelope Generator 1653 adsr Signal (Audio) Trigger (Control) Attack (Control) Decay (Control) Sustain (Control) Release (Control) Output (Audio) -------------------------------------------------------------------------------- Mono Amplifier 1654 amp_gaia_oa Gain (Audio) Input (Audio) Output (Audio) 1655 amp_gcia_oa Gain (Control) Input (Audio) Output (Audio) -------------------------------------------------------------------------------- Frequency Modulator 1656 fmod_fama_oa Frequency (Audio) Modulation (Audio) Output (Audio) 1657 fmod_famc_oa Frequency (Audio) Modulation (Control) Output (Audio) 1658 fmod_fcma_oa Frequency (Control) Modulation (Audio) Output (Audio) 1659 fmod_fcmc_oc Frequency (Control) Modulation (Control) Output (Control) -------------------------------------------------------------------------------- Control to Audio Interpolator 1660 interpolator Input (Control) Output (Audio) -------------------------------------------------------------------------------- Random Wave Generator 1661 random_fasa_oa Frequency (Audio) Smoothness (Audio) Output (Audio) 1662 random_fasc_oa Frequency (Audio) Smoothness (Control) Output (Audio) 1663 random_fcsa_oa Frequency (Control) Smoothness (Audio) Output (Audio) 1664 random_fcsc_oa Frequency (Control) Smoothness (Control) Output (Audio) -------------------------------------------------------------------------------- Signal Sum 1665 sum_iaia_oa Input1 (Audio) Input2 (Audio) Output (Audio) 1666 sum_iaic_oa Input1 (Audio) Input2 (Control) Output (Audio) 1667 sum_icic_oc Input1 (Control) Input2 (Control) Output (Control) -------------------------------------------------------------------------------- Signal Product 1668 product_iaia_oa Input1 (Audio) Input2 (Audio) Output (Audio) 1669 product_iaic_oa Input1 (Audio) Input2 (Control) Output (Audio) 1670 product_icic_oc Input1 (Control) Input2 (Control) Output (Control) -------------------------------------------------------------------------------- 4 Pole Low Pass Filter with Resonance 1671 lp4pole_faraia_oa Cutoff Frequency (Audio) Resonance (Audio) Input (Audio) Output (Audio) 1672 lp4pole_fcrcia_oa Cutoff Frequency (Control) Resonance (Control) Input (Audio) Output (Audio) -------------------------------------------------------------------------------- Signal Branch 1673 branch_ia_oaoa Input (Audio) Output1 (Audio) Output2 (Audio) 1674 branch_ic_ococ Input (Control) Output1 (Control) Output2 (Control) -------------------------------------------------------------------------------- Analogue Style 64 Step Sequencer 1675 sequencer64 Gate (Audio) Step Trigger (Audio) Loop Steps (Control, Integer) Reset to Value on Gate Close? (Control, Integer) Gate Closed Value (Audio) Value Step [0,63] (Control) Output (Audio) -------------------------------------------------------------------------------- Analogue Style 32 Step Sequencer 1676 sequencer32 Gate (Audio) Step Trigger (Audio) Loop Steps (Control, Integer) Reset to Value on Gate Close? (Control, Integer) Gate Closed Value (Audio) Value Step [0,31] (Control) Output (Audio) -------------------------------------------------------------------------------- Analogue Style 16 Step Sequencer 1677 sequencer16 Gate (Audio) Step Trigger (Audio) Loop Steps (Control, Integer) Reset to Value on Gate Close? (Control, Integer) Gate Closed Value (Audio) Value Step [0,15] (Control) Output (Audio) -------------------------------------------------------------------------------- Clock Oscillator with Gate 1678 sync_square_farc_oa Frequency (Audio) Gate (Audio) Output (Audio) 1679 sync_square_fcrc_oa Frequency (Control) Gate (Audio) Output (Audio) -------------------------------------------------------------------------------- ADSR Envelope with Gate and Trigger 1680 adsr_g+t Gate (Audio) Trigger (Audio) Attack (Control) Decay (Control) Sustain (Control) Release (Control) Output (Audio) -------------------------------------------------------------------------------- DAHDSR Envelope with Gate and Retrigger 2021 dahdsr_g+t_audio Gate (Audio) Trigger (Audio) Delay (Audio) Attack (Audio) Hold (Audio) Decay (Audio) Sustain (Audio) Release (Audio) 2022 dahdsr_g+t_control Gate (Audio) Trigger (Audio) Delay (Control) Attack (Control) Hold (Control) Decay (Control) Sustain (Control) Release (Control) 2038 dahdsr_cg+t_control Gate (Control) Trigger (Control) Delay (Control) Attack (Control) Hold (Control) Decay (Control) Sustain (Control) Release (Control) -------------------------------------------------------------------------------- Clock Pulse Oscillator with Gate 2023 sync_pulse_farc_oa Frequency (Audio) Pulsewidth (Audio) Gate (Audio) Output (Audio) 2024 sync_pulse_fcrc_oa Frequency (Control) Pulsewidth (Control) Gate (Audio) Output (Audio) -------------------------------------------------------------------------------- Signal Tracker 2025 tracker_gaaadaia_oa Gate (Audio) Attack Rate when Gate High (Audio) Decay Rate when Gate High (Audio) Attack Rate when Gate Low (Audio) Decay Rate when Gate Low (Audio) Input (Audio) Output (Audio) 2025 tracker_gaacdcia_oa Gate (Audio) Attack Rate when Gate High (Control) Decay Rate when Gate High (Control) Attack Rate when Gate Low (Control) Decay Rate when Gate Low (Control) Input (Audio) Output (Audio) -------------------------------------------------------------------------------- Quantiser 2027 quantiser20 Range Min (Control) Range Max (Control) Match Range (Control) Mode (Integer, Control) Count (Integer, Control) Steps [0-19] (Control) Input (Audio) Output (Audio) Output Changed (Audio) 2028 quantiser50 Range Min (Control) Range Max (Control) Match Range (Control) Mode (Integer, Control) Count (Integer, Control) Steps [0-49] (Control) Input (Audio) Output (Audio) Output Changed (Audio) 2029 quantiser100 Range Min (Control) Range Max (Control) Match Range (Control) Mode (Integer, Control) Count (Integer, Control) Steps [0-99] (Control) Input (Audio) Output (Audio) Output Changed (Audio) -------------------------------------------------------------------------------- Signal Difference 2030 difference_iama_oa Input (Audio) Minus (Audio) Output (Audio) 2031 difference_iamc_oa Input (Audio) Minus (Control) Output (Audio) 2032 difference_icma_oa Input (Control) Minus (Audio) Output (Audio) 2033 difference_icmc_oc Input (Control) Minus (Control) Output (Control) -------------------------------------------------------------------------------- Signal Ratio 2034 ratio_nada_oa Numerator (Audio) Denominator (Audio) Output (Audio) 2035 ratio_nadc_oa Numerator (Audio) Denominator (Control) Output (Audio) 2036 ratio_ncda_oa Numerator (Control) Denominator (Audio) Output (Audio) 2037 ratio_ncdc_oc Numerator (Control) Denominator (Control) Output (Control) -------------------------------------------------------------------------------- MAX=2060 blop-0.2.8/src/0000777000175000006270000000000010063536512007014 5blop-0.2.8/src/quantiser.so.c0000644000175000006270000004233010063377766011547 /* quantiser.so.c - A LADSPA plugin to quantise an input to a set of fixed values Copyright (C) 2003 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include "math_func.h" #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s /* These are defined in the compiler flags - see Makefile.am * This code is used to create the three quantisers with * 20, 50 and 100 steps #define QUANTISER_BASE_ID 2027 #define QUANTISER_MAX_INPUTS 20 */ #define QUANTISER_VARIANT_COUNT 1 #define QUANTISER_RANGE_MIN 0 #define QUANTISER_RANGE_MAX 1 #define QUANTISER_MATCH_RANGE 2 #define QUANTISER_MODE 3 #define QUANTISER_COUNT 4 #define QUANTISER_VALUE_START 5 #define QUANTISER_INPUT (QUANTISER_MAX_INPUTS + 5) #define QUANTISER_OUTPUT (QUANTISER_MAX_INPUTS + 6) #define QUANTISER_OUTPUT_CHANGED (QUANTISER_MAX_INPUTS + 7) LADSPA_Descriptor ** quantiser_descriptors = 0; typedef struct { LADSPA_Data * min; LADSPA_Data * max; LADSPA_Data * match_range; LADSPA_Data * mode; LADSPA_Data * count; LADSPA_Data * values[QUANTISER_MAX_INPUTS]; LADSPA_Data * input; LADSPA_Data * output_changed; LADSPA_Data * output; LADSPA_Data svalues[QUANTISER_MAX_INPUTS+2]; LADSPA_Data temp[QUANTISER_MAX_INPUTS+2]; LADSPA_Data last_found; } Quantiser; /* * f <= m <= l */ static inline void merge (LADSPA_Data * v, int f, int m, int l, LADSPA_Data * temp) { int f1 = f; int l1 = m; int f2 = m+1; int l2 = l; int i = f1; while ((f1 <= l1) && (f2 <= l2)) { if (v[f1] < v[f2]) { temp[i] = v[f1]; f1++; } else { temp[i] = v[f2]; f2++; } i++; } while (f1 <= l1) { temp[i] = v[f1]; f1++; i++; } while (f2 <= l2) { temp[i] = v[f2]; f2++; i++; } for (i = f; i <= l; i++) v[i] = temp[i]; } /* * Recursive Merge Sort * Sort elements in unsorted vector v */ static inline void msort (LADSPA_Data * v, int f, int l, LADSPA_Data * temp) { int m; if (f < l) { m = (f + l) / 2; msort (v, f, m, temp); msort (v, m+1, l, temp); merge (v, f, m, l, temp); } } /* * Binary search for nearest match to sought value in * ordered vector v of given size */ static inline int fuzzy_bsearch (LADSPA_Data * v, int size, LADSPA_Data sought) { int f = 0; int l = size - 1; int m = ((l - f) / 2); while ((l - f) > 1) { if (v[m] < sought) f = (l - f) / 2 + f; else l = (l - f) / 2 + f; m = ((l - f) / 2 + f); } if (sought < v[m]) { if (m > 0) { if (FABSF (v[m] - sought) > FABSF (v[m - 1] - sought)) m--; } } else if (m < size - 1) { if (FABSF (v[m] - sought) > FABSF (v[m + 1] - sought)) m++; } return m; } const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < 1) return quantiser_descriptors[index]; return 0; } void cleanupQuantiser (LADSPA_Handle instance) { free (instance); } void connectPortQuantiser (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Quantiser * plugin = (Quantiser *) instance; switch (port) { case QUANTISER_RANGE_MIN: plugin->min = data; break; case QUANTISER_RANGE_MAX: plugin->max = data; break; case QUANTISER_MATCH_RANGE: plugin->match_range = data; break; case QUANTISER_MODE: plugin->mode = data; break; case QUANTISER_COUNT: plugin->count = data; break; case QUANTISER_INPUT: plugin->input = data; break; case QUANTISER_OUTPUT: plugin->output = data; break; case QUANTISER_OUTPUT_CHANGED: plugin->output_changed = data; break; default: if (port >= QUANTISER_VALUE_START && port < QUANTISER_OUTPUT) plugin->values[port - QUANTISER_VALUE_START] = data; break; } } LADSPA_Handle instantiateQuantiser (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Quantiser * plugin = (Quantiser *) malloc (sizeof (Quantiser)); return (LADSPA_Handle) plugin; } #if 0 void runQuantiser_audio (LADSPA_Handle instance, unsigned long sample_count) { Quantiser * plugin = (Quantiser *) instance; /* Range Min (LADSPA_Data value) */ LADSPA_Data min = * (plugin->min); /* Range Max (LADSPA_Data value) */ LADSPA_Data max = * (plugin->max); /* Match Range (LADSPA_Data value) */ LADSPA_Data match_range = * (plugin->match_range); /* Mode (LADSPA_Data value) */ LADSPA_Data mode = * (plugin->mode); /* Count (LADSPA_Data value) */ LADSPA_Data count = * (plugin->count); /* Input (array of LADSPA_Data of length sample_count) */ LADSPA_Data * input = plugin->input; /* Values */ LADSPA_Data * values[QUANTISER_MAX_INPUTS]; /* Output (array of LADSPA_Data of length sample_count) */ LADSPA_Data * output = plugin->output; /* Output Changed (array of LADSPA_Data of length sample_count) */ LADSPA_Data * output_changed = plugin->output_changed; unsigned long s; for (s = 0; s < sample_count; s++) { output[s] = input[s]; } } #endif void runQuantiser_control (LADSPA_Handle instance, unsigned long sample_count) { Quantiser * plugin = (Quantiser *) instance; /* Range Min (LADSPA_Data value) */ LADSPA_Data min = * (plugin->min); /* Range Max (LADSPA_Data value) */ LADSPA_Data max = * (plugin->max); /* Match Range (LADSPA_Data value) */ LADSPA_Data match_range = FABSF (* (plugin->match_range)); /* Mode (LADSPA_Data value) */ LADSPA_Data mode = * (plugin->mode); /* Count (LADSPA_Data value) */ LADSPA_Data count = * (plugin->count); /* Input (array of LADSPA_Data of length sample_count) */ LADSPA_Data * input = plugin->input; /* Output (array of LADSPA_Data of length sample_count) */ LADSPA_Data * output = plugin->output; /* Output Changed (array of LADSPA_Data of length sample_count) */ LADSPA_Data * output_changed = plugin->output_changed; /* Instance Data */ LADSPA_Data * temp = plugin->temp; LADSPA_Data * values = plugin->svalues; LADSPA_Data last_found = plugin->last_found; int md = LRINTF (mode); int n = LRINTF (count); int i; LADSPA_Data in; LADSPA_Data out_changed; LADSPA_Data range; LADSPA_Data offset; LADSPA_Data found; int found_index = 0; unsigned long s; /* Clip count if out of range */ n = n < 1 ? 1 : (n > QUANTISER_MAX_INPUTS ? QUANTISER_MAX_INPUTS : n); /* Swap min and max if wrong way around */ if (min > max) { range = min; min = max; max = range; } range = max - min; /* Copy and sort required values */ for (i = 0; i < n; i++) values[i + 1] = * (plugin->values[i]); msort (values, 1, n, temp); /* Add wrapped extremes */ values[0] = values[n] - range; values[n+1] = values[1] + range; if (md < 1) { /* Extend mode */ for (s = 0; s < sample_count; s++) { in = input[s]; if (range > 0.0f) { if ((in < min) || (in > max)) { offset = FLOORF ((in - max) / range) + 1.0f; offset *= range; in -= offset; /* Quantise */ found_index = fuzzy_bsearch (values, n + 2, in); /* Wrapped */ if (found_index == 0) { found_index = n; offset -= range; } else if (found_index == n + 1) { found_index = 1; offset += range; } found = values[found_index]; /* Allow near misses */ if (match_range > 0.0f) { if (in < (found - match_range)) found -= match_range; else if (in > (found + match_range)) found += match_range; } found += offset; } else { /* Quantise */ found_index = fuzzy_bsearch (values, n + 2, in); if (found_index == 0) { found_index = n; found = values[n] - range; } else if (found_index == n + 1) { found_index = 1; found = values[1] + range; } else { found = values[found_index]; } if (match_range > 0.0f) { if (in < (found - match_range)) found -= match_range; else if (in > (found + match_range)) found += match_range; } } } else { /* Min and max the same, so only one value to quantise to */ found = min; } /* Has quantised output changed? */ if (FABSF (found - last_found) > 2.0001f * match_range) { out_changed = 1.0f; last_found = found; } else { out_changed = 0.0f; } output[s] = found; output_changed[s] = out_changed; } } else if (md == 1) { /* Wrap mode */ for (s = 0; s < sample_count; s++) { in = input[s]; if (range > 0.0f) { if ((in < min) || (in > max)) in -= (FLOORF ((in - max) / range) + 1.0f) * range; /* Quantise */ found_index = fuzzy_bsearch (values, n + 2, in); if (found_index == 0) found_index = n; else if (found_index == n + 1) found_index = 1; found = values[found_index]; /* Allow near misses */ if (match_range > 0.0f) { if (in < (found - match_range)) found -= match_range; else if (in > (found + match_range)) found += match_range; } } else { /* Min and max the same, so only one value to quantise to */ found = min; } /* Has quantised output changed? */ if (FABSF (found - last_found) > match_range) { out_changed = 1.0f; last_found = found; } else { out_changed = 0.0f; } output[s] = found; output_changed[s] = out_changed; } } else { /* Clip mode */ for (s = 0; s < sample_count; s++) { in = input[s]; if (range > 0.0f) { /* Clip to range */ if (in < min) found_index = 1; else if (in > max) found_index = n; else /* Quantise */ found_index = fuzzy_bsearch (values + 1, n, in) + 1; found = values[found_index]; /* Allow near misses */ if (match_range > 0.0f) { if (in < (found - match_range)) found -= match_range; else if (in > (found + match_range)) found += match_range; } } else { /* Min and max the same, so only one value to quantise to */ found = min; } /* Has quantised output changed? */ if (FABSF (found - last_found) > match_range) { out_changed = 1.0f; last_found = found; } else { out_changed = 0.0f; } output[s] = found; output_changed[s] = out_changed; } } plugin->last_found = last_found; } void _init (void) { /* !!!! Ensure there is space for possible translations !!!! */ static char label[32]; static char name[32]; static char loop_point_label[32]; static char value_labels[QUANTISER_MAX_INPUTS][16]; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i, step_index; unsigned long port_count = QUANTISER_MAX_INPUTS + 8; LADSPA_PortDescriptor value_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runQuantiser_control}; /* LADSPA_PortDescriptor value_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; void (*run_functions[])(LADSPA_Handle, unsigned long) = {runQuantiser_audio, runQuantiser_control}; */ #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif quantiser_descriptors = (LADSPA_Descriptor **) calloc (QUANTISER_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); sprintf (label,"quantiser%d", QUANTISER_MAX_INPUTS); sprintf (name, G_("Quantiser (%d Steps)"), QUANTISER_MAX_INPUTS); sprintf (loop_point_label, G_("Steps (1 - %d)"), QUANTISER_MAX_INPUTS); if (quantiser_descriptors) { for (i = 0; i < QUANTISER_VARIANT_COUNT; i++) { quantiser_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = quantiser_descriptors[i]; if (descriptor) { descriptor->UniqueID = QUANTISER_BASE_ID + i; descriptor->Label = label; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = name; descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = port_count; port_descriptors = (LADSPA_PortDescriptor *) calloc (port_count, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *)port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (port_count, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (port_count, sizeof(char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Range Min */ port_descriptors[QUANTISER_RANGE_MIN] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[QUANTISER_RANGE_MIN] = G_("Quantise Range Minimum"); port_range_hints[QUANTISER_RANGE_MIN].HintDescriptor = 0; /* Parameters for Range Min */ port_descriptors[QUANTISER_RANGE_MAX] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[QUANTISER_RANGE_MAX] = G_("Quantise Range Maximum"); port_range_hints[QUANTISER_RANGE_MAX].HintDescriptor = 0; /* Parameters for Match Range */ port_descriptors[QUANTISER_MATCH_RANGE] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[QUANTISER_MATCH_RANGE] = G_("Match Range"); port_range_hints[QUANTISER_MATCH_RANGE].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_0; port_range_hints[QUANTISER_MATCH_RANGE].LowerBound = 0.0f; /* Parameters for Mode */ port_descriptors[QUANTISER_MODE] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[QUANTISER_MODE] = G_("Mode (0 = Extend, 1 = Wrap, 2 = Clip)"); port_range_hints[QUANTISER_MODE].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_INTEGER | LADSPA_HINT_DEFAULT_0; port_range_hints[QUANTISER_MODE].LowerBound = 0.0f; port_range_hints[QUANTISER_MODE].UpperBound = 2.0f; /* Parameters for Count */ port_descriptors[QUANTISER_COUNT] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[QUANTISER_COUNT] = loop_point_label; port_range_hints[QUANTISER_COUNT].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_INTEGER | LADSPA_HINT_DEFAULT_MAXIMUM; port_range_hints[QUANTISER_COUNT].LowerBound = 1.0f; port_range_hints[QUANTISER_COUNT].UpperBound = (float)QUANTISER_MAX_INPUTS; /* Parameters for Values */ for (step_index = 0; step_index < QUANTISER_MAX_INPUTS; step_index++) { port_descriptors[QUANTISER_VALUE_START + step_index] = value_port_descriptors[i]; sprintf (value_labels[step_index], G_("Value %d"), step_index); port_names[QUANTISER_VALUE_START + step_index] = value_labels[step_index]; port_range_hints[QUANTISER_VALUE_START + step_index].HintDescriptor = 0; } /* Parameters for Input */ port_descriptors[QUANTISER_INPUT] = LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO; port_names[QUANTISER_INPUT] = G_("Input"); port_range_hints[QUANTISER_INPUT].HintDescriptor = 0; /* Parameters for Output */ port_descriptors[QUANTISER_OUTPUT] = LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO; port_names[QUANTISER_OUTPUT] = G_("Quantised Output"); port_range_hints[QUANTISER_OUTPUT].HintDescriptor = 0; /* Parameters for Output Changed */ port_descriptors[QUANTISER_OUTPUT_CHANGED] = LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO; port_names[QUANTISER_OUTPUT_CHANGED] = G_("Output Changed"); port_range_hints[QUANTISER_OUTPUT_CHANGED].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupQuantiser; descriptor->connect_port = connectPortQuantiser; descriptor->deactivate = NULL; descriptor->instantiate = instantiateQuantiser; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (quantiser_descriptors) { for (i = 0; i < QUANTISER_VARIANT_COUNT; i++) { descriptor = quantiser_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **)descriptor->PortNames); free ((LADSPA_PortRangeHint *)descriptor->PortRangeHints); free (descriptor); } } free (quantiser_descriptors); } } blop-0.2.8/src/interpolator_1660.so.c0000644000175000006270000001563007773052103012722 /* interpolator.so.c - A LADSPA plugin to generate a smooth audio signal from a control source Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define INTERPOLATOR_BASE_ID 1660 #define INTERPOLATOR_VARIANT_COUNT 1 #define INTERPOLATOR_INPUT 0 #define INTERPOLATOR_OUTPUT 1 /***************************************************************************** * * Description: Mutated spline interpolator using only two previous * samples and one next. * * Arguments: interval Normalised time interval between inteprolated * sample and p0 * p1, p0 Samples prior to interpolated one * n0 Sample following interpolated one * * Returns: interpolated sample * *****************************************************************************/ static inline LADSPA_Data interpolate (LADSPA_Data interval, LADSPA_Data p1, LADSPA_Data p0, LADSPA_Data n0) { return p0 + 0.5f * interval * (n0 - p1 + interval * (4.0f * n0 + 2.0f * p1 - 5.0f * p0 - n0 + interval * (3.0f * (p0 - n0) - p1 + n0))); } LADSPA_Descriptor ** interpolator_descriptors = 0; typedef struct { LADSPA_Data * input; LADSPA_Data * output; LADSPA_Data p1; LADSPA_Data p0; } Interpolator; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < 1) return interpolator_descriptors[index]; return 0; } void cleanupInterpolator (LADSPA_Handle instance) { free (instance); } void connectPortInterpolator (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Interpolator * plugin = (Interpolator *) instance; switch (port) { case INTERPOLATOR_INPUT: plugin->input = data; plugin->p1 = plugin->p0 = *(plugin->input); break; case INTERPOLATOR_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateInterpolator (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Interpolator *plugin = (Interpolator *) malloc (sizeof (Interpolator)); return (LADSPA_Handle) plugin; } void activateInterpolator (LADSPA_Handle instance) { Interpolator * plugin = (Interpolator *) instance; plugin->p1 = 0.0f; plugin->p0 = 0.0f; } void runInterpolator (LADSPA_Handle instance, unsigned long sample_count) { Interpolator * plugin = (Interpolator *) instance; /* Control Input (float value) */ LADSPA_Data input = * (plugin->input); /* Interpolated Output (pointer to float value) */ LADSPA_Data * output = plugin->output; /* We use two previous values and the input as the 'next' one */ LADSPA_Data p1 = plugin->p1; LADSPA_Data p0 = plugin->p0; LADSPA_Data interval; LADSPA_Data inv_scount = 1.0f / (LADSPA_Data) sample_count; unsigned long s; for (s = 0; s < sample_count; s++) { interval = (LADSPA_Data) s * inv_scount; output[s] = interpolate (interval, p1, p0, input); } plugin->p1 = p0; plugin->p0 = input; } void _init (void) { char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor input_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runInterpolator}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif interpolator_descriptors = (LADSPA_Descriptor **) calloc (INTERPOLATOR_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (interpolator_descriptors) { for (i = 0; i < INTERPOLATOR_VARIANT_COUNT; i++) { interpolator_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = interpolator_descriptors[i]; if (descriptor) { descriptor->UniqueID = INTERPOLATOR_BASE_ID + i; descriptor->Label = "interpolator"; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_("Control to Audio Interpolator"); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 2; port_descriptors = (LADSPA_PortDescriptor *) calloc (2, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (2, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (2, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Control Input */ port_descriptors[INTERPOLATOR_INPUT] = input_port_descriptors[i]; port_names[INTERPOLATOR_INPUT] = G_("Control Input"); port_range_hints[INTERPOLATOR_INPUT].HintDescriptor = 0; /* Parameters for Interpolated Output */ port_descriptors[INTERPOLATOR_OUTPUT] = output_port_descriptors[i]; port_names[INTERPOLATOR_OUTPUT] = G_("Interpolated Output"); port_range_hints[INTERPOLATOR_OUTPUT].HintDescriptor = 0; descriptor->activate = activateInterpolator; descriptor->cleanup = cleanupInterpolator; descriptor->connect_port = connectPortInterpolator; descriptor->deactivate = NULL; descriptor->instantiate = instantiateInterpolator; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor *descriptor; int i; if (interpolator_descriptors) { for (i = 0; i < INTERPOLATOR_VARIANT_COUNT; i++) { descriptor = interpolator_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (interpolator_descriptors); } } blop-0.2.8/src/wavedata.c0000644000175000006270000000543007773051357010707 #include #include #include #include #include #include #include #include #include "wavedata.h" #ifndef WAVEDATA_SUBDIR #warning *** No wavedata subdir given, using default 'blop_files' #define WAVEDATA_SUBDIR "blop_files" #endif int wavedata_load (Wavedata * w, const char * wdat_descriptor_name, unsigned long sample_rate) { const char * subdir = WAVEDATA_SUBDIR; char * ladspa_path; const char * start; const char * end; int extra; size_t subdirlen = strlen(WAVEDATA_SUBDIR); size_t length; size_t pathlen; char * path; char * filename; DIR * dp; struct dirent * ep; struct stat sb; void * handle; int (* desc_func)(Wavedata *, unsigned long); int retval = - 1; /* Get LADPSA_PATH, if available */ ladspa_path = getenv("LADSPA_PATH"); if (!ladspa_path) ladspa_path = "/usr/lib/ladspa:/usr/local/lib/ladspa"; start = ladspa_path; while (*start != '\0') { while (*start == ':') start++; end = start; while (*end != ':' && *end != '\0') end++; if (end - start > 0) { extra = (*(end - 1) == '/') ? 0 : 1; path = (char *) malloc (end - start + extra + subdirlen + 1 + 1); if (path) { strncpy (path, start, end - start); if (extra == 1) path[end - start] = '/'; path[end - start + extra] = '\0'; if (subdirlen > 0) { strncat(path, subdir, subdirlen); path[end - start + extra + subdirlen] = '/'; path[end - start + extra + subdirlen + 1] = '\0'; } else { path[end - start + extra + subdirlen] = '\0'; } dp = opendir (path); if (dp) { pathlen = strlen (path); while ((ep = readdir (dp))) { /* Stat file to get type */ length = pathlen + strlen (ep->d_name); filename = (char *) malloc (length + 1); if (filename) { strncpy (filename, path, pathlen); filename[pathlen] = '\0'; filename = strncat (filename, ep->d_name, strlen (ep->d_name)); filename[length] = '\0'; if (!stat (filename, &sb)) { /* We only want regular files */ if (S_ISREG (sb.st_mode)) { /* Whew. Now see if we've got the right dll */ handle = dlopen (filename, RTLD_NOW); if (handle) { desc_func = dlsym (handle, wdat_descriptor_name); if (desc_func) { free (filename); free (path); retval = desc_func (w, sample_rate); w->data_handle = handle; return retval; } } } } free (filename); } } closedir (dp); } free (path); } } start = end; } return retval; } /* * Close loaded wavedata */ void wavedata_unload (Wavedata * w) { dlclose (w->data_handle); } blop-0.2.8/src/sum_1665.so.c0000644000175000006270000001676010025742214011007 /* sum.so.c - A LADSPA plugin to calculate the sum of two signals Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define SUM_BASE_ID 1665 #define SUM_VARIANT_COUNT 3 #define SUM_INPUT1 0 #define SUM_INPUT2 1 #define SUM_OUTPUT 2 LADSPA_Descriptor ** sum_descriptors = 0; typedef struct { LADSPA_Data * input1; LADSPA_Data * input2; LADSPA_Data * output; } Sum; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < SUM_VARIANT_COUNT) return sum_descriptors[index]; return 0; } void cleanupSum (LADSPA_Handle instance) { free (instance); } void connectPortSum (LADSPA_Handle instance, unsigned long port, LADSPA_Data *data) { Sum * plugin = (Sum *) instance; switch (port) { case SUM_INPUT1: plugin->input1 = data; break; case SUM_INPUT2: plugin->input2 = data; break; case SUM_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateSum (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Sum * plugin = (Sum *) malloc (sizeof (Sum)); return (LADSPA_Handle) plugin; } void runSum_iaia_oa (LADSPA_Handle instance, unsigned long sample_count) { Sum * plugin = (Sum *) instance; /* First Input (array of floats of length sample_count) */ LADSPA_Data * input1 = plugin->input1; /* Second Input (array of floats of length sample_count) */ LADSPA_Data * input2 = plugin->input2; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data in1; LADSPA_Data in2; unsigned int s; for (s = 0; s < sample_count; s++) { in1 = input1[s]; in2 = input2[s]; output[s] = in1 + in2; } } void runSum_iaic_oa (LADSPA_Handle instance, unsigned long sample_count) { Sum * plugin = (Sum *) instance; /* First Input (array of floats of length sample_count) */ LADSPA_Data * input1 = plugin->input1; /* Second Input (float value) */ LADSPA_Data input2 = * (plugin->input2); /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data in1; unsigned int s; for (s = 0; s < sample_count; s++) { in1 = input1[s]; output[s] = in1 + input2; } } void runSum_icic_oc (LADSPA_Handle instance, unsigned long sample_count) { Sum *plugin = (Sum *)instance; /* First Input (float value) */ LADSPA_Data input1 = * (plugin->input1); /* Second Input (float value) */ LADSPA_Data input2 = * (plugin->input2); /* Output (pointer to float value) */ LADSPA_Data * output = plugin->output; output[0] = input1 + input2; } void _init (void) { static const char * labels[] = {"sum_iaia_oa", "sum_iaic_oa", "sum_icic_oc"}; static const char * names[] = {G_NOP("Signal Sum (IAIA)"), G_NOP("Signal Sum (IAIC)"), G_NOP("Signal Sum (ICIC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor input1_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor input2_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runSum_iaia_oa, runSum_iaic_oa, runSum_icic_oc}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif sum_descriptors = (LADSPA_Descriptor **) calloc (SUM_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (sum_descriptors) { for (i = 0; i < SUM_VARIANT_COUNT; i++) { sum_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = sum_descriptors[i]; if (descriptor) { descriptor->UniqueID = SUM_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for First Input */ port_descriptors[SUM_INPUT1] = input1_port_descriptors[i]; port_names[SUM_INPUT1] = G_("First Input"); port_range_hints[SUM_INPUT1].HintDescriptor = 0; /* Parameters for Second Input */ port_descriptors[SUM_INPUT2] = input2_port_descriptors[i]; port_names[SUM_INPUT2] = G_("Second Input"); port_range_hints[SUM_INPUT2].HintDescriptor = 0; /* Parameters for Output */ port_descriptors[SUM_OUTPUT] = output_port_descriptors[i]; port_names[SUM_OUTPUT] = G_("Summed Output"); port_range_hints[SUM_OUTPUT].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupSum; descriptor->connect_port = connectPortSum; descriptor->deactivate = NULL; descriptor->instantiate = instantiateSum; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (sum_descriptors) { for (i = 0; i < SUM_VARIANT_COUNT; i++) { descriptor = sum_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (sum_descriptors); } } blop-0.2.8/src/sequencer.so.c0000644000175000006270000002506410063377600011516 /* sequencer.so.c - A LADSPA plugin to simulate an analogue style step sequencer. Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include "math_func.h" #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s /* These are defined in the compiler flags - see Makefile.am * This code is used to create the three sequencers with * 16, 32 and 64 steps #define SEQUENCER_BASE_ID 1677 #define SEQUENCER_MAX_INPUTS 16 */ #define SEQUENCER_VARIANT_COUNT 1 #define SEQUENCER_GATE 0 #define SEQUENCER_TRIGGER 1 #define SEQUENCER_LOOP_POINT 2 #define SEQUENCER_RESET 3 #define SEQUENCER_VALUE_GATE_CLOSED 4 #define SEQUENCER_VALUE_START 5 #define SEQUENCER_OUTPUT (SEQUENCER_MAX_INPUTS + 5) LADSPA_Descriptor ** sequencer_descriptors = 0; typedef struct { LADSPA_Data * gate; LADSPA_Data * trigger; LADSPA_Data * loop_steps; LADSPA_Data * reset; LADSPA_Data * value_gate_closed; LADSPA_Data * values[SEQUENCER_MAX_INPUTS]; LADSPA_Data * output; LADSPA_Data srate; LADSPA_Data inv_srate; LADSPA_Data last_gate; LADSPA_Data last_trigger; LADSPA_Data last_value; unsigned int step_index; } Sequencer; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < 1) return sequencer_descriptors[index]; return 0; } void cleanupSequencer (LADSPA_Handle instance) { free (instance); } void connectPortSequencer (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Sequencer * plugin = (Sequencer *) instance; switch (port) { case SEQUENCER_GATE: plugin->gate = data; break; case SEQUENCER_TRIGGER: plugin->trigger = data; break; case SEQUENCER_LOOP_POINT: plugin->loop_steps = data; break; case SEQUENCER_OUTPUT: plugin->output = data; break; case SEQUENCER_RESET: plugin->reset = data; break; case SEQUENCER_VALUE_GATE_CLOSED: plugin->value_gate_closed = data; break; default: if (port >= SEQUENCER_VALUE_START && port < SEQUENCER_OUTPUT) plugin->values[port - SEQUENCER_VALUE_START] = data; break; } } LADSPA_Handle instantiateSequencer (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Sequencer * plugin = (Sequencer *) malloc (sizeof (Sequencer)); plugin->srate = (LADSPA_Data) sample_rate; plugin->inv_srate = 1.0f / plugin->srate; return (LADSPA_Handle) plugin; } void activateSequencer (LADSPA_Handle instance) { Sequencer * plugin = (Sequencer *) instance; plugin->last_gate = 0.0f; plugin->last_trigger = 0.0f; plugin->last_value = 0.0f; plugin->step_index = 0; } void runSequencer (LADSPA_Handle instance, unsigned long sample_count) { Sequencer * plugin = (Sequencer *) instance; /* Gate */ LADSPA_Data * gate = plugin->gate; /* Step Trigger */ LADSPA_Data *trigger = plugin->trigger; /* Loop Steps */ LADSPA_Data loop_steps = * (plugin->loop_steps); /* Reset to Value on Gate Close */ LADSPA_Data reset = * (plugin->reset); /* Value used when gate closed */ LADSPA_Data value_gate_closed = * (plugin->value_gate_closed); /* Step Values */ LADSPA_Data values[SEQUENCER_MAX_INPUTS]; /* Output */ LADSPA_Data * output = plugin->output; LADSPA_Data last_gate = plugin->last_gate; LADSPA_Data last_trigger = plugin->last_trigger; LADSPA_Data last_value = plugin->last_value; unsigned int step_index = plugin->step_index; unsigned int loop_index = LRINTF (loop_steps); int rst = LRINTF (reset); int i; unsigned long s; loop_index = loop_index == 0 ? 1 : loop_index; loop_index = loop_index > SEQUENCER_MAX_INPUTS ? SEQUENCER_MAX_INPUTS : loop_index; for (i = 0; i < SEQUENCER_MAX_INPUTS; i++) values[i] = * (plugin->values[i]); for (s = 0; s < sample_count; s++) { if (gate[s] > 0.0f) { if (trigger[s] > 0.0f && !(last_trigger > 0.0f)) { if (last_gate > 0.0f) { step_index++; if (step_index >= loop_index) step_index = 0; } else { step_index = 0; } } output[s] = values[step_index]; last_value = values[step_index]; } else { if (rst) output[s] = value_gate_closed; else output[s] = last_value; step_index = 0; } last_gate = gate[s]; last_trigger = trigger[s]; } plugin->last_gate = last_gate; plugin->last_trigger = last_trigger; plugin->last_value = last_value; plugin->step_index = step_index; } void _init (void) { /* !!!! Ensure there is space for possible translations !!!! */ static char label[32]; static char name[40]; static char loop_point_label[32]; static char value_labels[SEQUENCER_MAX_INPUTS][32]; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i, step_index; unsigned long port_count = SEQUENCER_MAX_INPUTS + 6; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runSequencer}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif sequencer_descriptors = (LADSPA_Descriptor **) calloc (SEQUENCER_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); /* Mmmm. Lovely... */ sprintf (label, "sequencer%d", SEQUENCER_MAX_INPUTS); sprintf (name, G_("Analogue Style %d Step Sequencer"), SEQUENCER_MAX_INPUTS); sprintf (loop_point_label, G_("Loop Steps (1 - %d)"), SEQUENCER_MAX_INPUTS); if (sequencer_descriptors) { for (i = 0; i < SEQUENCER_VARIANT_COUNT; i++) { sequencer_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof(LADSPA_Descriptor)); descriptor = sequencer_descriptors[i]; if (descriptor) { descriptor->UniqueID = SEQUENCER_BASE_ID + i; descriptor->Label = label; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = name; descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = port_count; port_descriptors = (LADSPA_PortDescriptor *) calloc (port_count, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (port_count, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (port_count, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Gate Signal */ port_descriptors[SEQUENCER_GATE] = LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO; port_names[SEQUENCER_GATE] = G_("Gate (Open > 0)"); port_range_hints[SEQUENCER_GATE].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Step Trigger Signal */ port_descriptors[SEQUENCER_TRIGGER] = LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO; port_names[SEQUENCER_TRIGGER] = G_("Step Trigger"); port_range_hints[SEQUENCER_TRIGGER].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Loop Point */ port_descriptors[SEQUENCER_LOOP_POINT] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[SEQUENCER_LOOP_POINT] = loop_point_label; port_range_hints[SEQUENCER_LOOP_POINT].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_INTEGER | LADSPA_HINT_DEFAULT_MAXIMUM; port_range_hints[SEQUENCER_LOOP_POINT].LowerBound = 1.0f; port_range_hints[SEQUENCER_LOOP_POINT].UpperBound = (float)SEQUENCER_MAX_INPUTS; /* Parameters for Reset Value */ port_descriptors[SEQUENCER_RESET] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[SEQUENCER_RESET] = G_("Reset to Value on Gate Close?"); port_range_hints[SEQUENCER_RESET].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_INTEGER | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[SEQUENCER_RESET].LowerBound = 0.0f; port_range_hints[SEQUENCER_RESET].UpperBound = 1.0f; /* Parameters for Closed Gate Value */ port_descriptors[SEQUENCER_VALUE_GATE_CLOSED] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; port_names[SEQUENCER_VALUE_GATE_CLOSED] = G_("Closed Gate Value"); port_range_hints[SEQUENCER_VALUE_GATE_CLOSED].HintDescriptor = 0; /* Parameters for Step Values */ for (step_index = 0; step_index < SEQUENCER_MAX_INPUTS; step_index++) { port_descriptors[SEQUENCER_VALUE_START + step_index] = LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL; sprintf (value_labels[step_index], G_("Value Step %d"), step_index); port_names[SEQUENCER_VALUE_START + step_index] = value_labels[step_index]; port_range_hints[SEQUENCER_VALUE_START + step_index].HintDescriptor = 0; } /* Parameters for Output */ port_descriptors[SEQUENCER_OUTPUT] = LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO; port_names[SEQUENCER_OUTPUT] = G_("Value Out"); port_range_hints[SEQUENCER_OUTPUT].HintDescriptor = 0; descriptor->activate = activateSequencer; descriptor->cleanup = cleanupSequencer; descriptor->connect_port = connectPortSequencer; descriptor->deactivate = NULL; descriptor->instantiate = instantiateSequencer; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (sequencer_descriptors) { for (i = 0; i < SEQUENCER_VARIANT_COUNT; i++) { descriptor = sequencer_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (sequencer_descriptors); } } blop-0.2.8/src/fmod_1656.so.c0000644000175000006270000002267110025734205011127 /* fmod.so.c - A LADSPA plugin to modulate a frequency by a signal Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "math_func.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define FMOD_BASE_ID 1656 #define FMOD_VARIANT_COUNT 4 #define FMOD_FREQUENCY 0 #define FMOD_MODULATOR 1 #define FMOD_OUTPUT 2 LADSPA_Descriptor ** fmod_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * modulator; LADSPA_Data * output; } Fmod; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < FMOD_VARIANT_COUNT) return fmod_descriptors[index]; return 0; } void cleanupFmod (LADSPA_Handle instance) { free(instance); } void connectPortFmod (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Fmod * plugin = (Fmod *) instance; switch (port) { case FMOD_FREQUENCY: plugin->frequency = data; break; case FMOD_MODULATOR: plugin->modulator = data; break; case FMOD_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateFmod (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Fmod * plugin = (Fmod *) malloc (sizeof (Fmod)); return (LADSPA_Handle) plugin; } void runFmod_fama_oa (LADSPA_Handle instance, unsigned long sample_count) { Fmod * plugin = (Fmod *) instance; /* Frequency to Modulate (array of floats of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* LFO Input (array of floats of length sample_count) */ LADSPA_Data * modulator = plugin->modulator; /* Output Frequency (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data freq; LADSPA_Data mod; LADSPA_Data scale; unsigned int s; for (s = 0; s < sample_count; s++) { freq = frequency[s]; mod = modulator[s]; scale = (LADSPA_Data) EXPF (M_LN2 * mod); output[s] = scale * freq; } } void runFmod_famc_oa (LADSPA_Handle instance, unsigned long sample_count) { Fmod * plugin = (Fmod *) instance; /* Frequency to Modulate (array of floats of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Shift (Octaves) (float value) */ LADSPA_Data modulator = * (plugin->modulator); /* Output Frequency (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data freq; LADSPA_Data scale = (LADSPA_Data) EXPF (M_LN2 * modulator); unsigned int s; for (s = 0; s < sample_count; s++) { freq = frequency[s]; output[s] = scale * freq; } } void runFmod_fcma_oa (LADSPA_Handle instance, unsigned long sample_count) { Fmod * plugin = (Fmod *) instance; /* Frequency to Modulate (float value) */ LADSPA_Data frequency = * (plugin->frequency); /* LFO Input (array of floats of length sample_count) */ LADSPA_Data * modulator = plugin->modulator; /* Output Frequency (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data mod; LADSPA_Data scale; unsigned int s; for (s = 0; s < sample_count; s++) { mod = modulator[s]; scale = (LADSPA_Data) EXPF (M_LN2 * mod); output[s] = scale * frequency; } } void runFmod_fcmc_oc (LADSPA_Handle instance, unsigned long sample_count) { Fmod * plugin = (Fmod *) instance; /* Frequency to Modulate (float value) */ LADSPA_Data frequency = * (plugin->frequency); /* Shift (Octaves) (float value) */ LADSPA_Data modulator = * (plugin->modulator); /* Output Frequency (pointer to float value) */ LADSPA_Data * output = plugin->output; LADSPA_Data scale; scale = (LADSPA_Data) EXPF (M_LN2 * modulator); output[0] = scale * frequency; } void _init (void) { static const char * labels[] = {"fmod_fama_oa", "fmod_famc_oa", "fmod_fcma_oa", "fmod_fcmc_oc"}; static const char * names[] = {G_NOP("Frequency Modulator (FAMA)"), G_NOP("Frequency Modulator (FAMC)"), G_NOP("Frequency Modulator (FCMA)"), G_NOP("Frequency Modulator (FCMC)")}; char ** port_names; LADSPA_PortDescriptor *port_descriptors; LADSPA_PortRangeHint *port_range_hints; LADSPA_Descriptor *descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor modulator_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runFmod_fama_oa, runFmod_famc_oa, runFmod_fcma_oa, runFmod_fcmc_oc}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif fmod_descriptors = (LADSPA_Descriptor **) calloc (FMOD_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (fmod_descriptors) { for (i = 0; i < FMOD_VARIANT_COUNT; i++) { fmod_descriptors[i] = (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor)); descriptor = fmod_descriptors[i]; if (descriptor) { descriptor->UniqueID = FMOD_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency to Modulate */ port_descriptors[FMOD_FREQUENCY] = frequency_port_descriptors[i]; port_names[FMOD_FREQUENCY] = G_("Frequency (Hz)"); port_range_hints[FMOD_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_440; port_range_hints[FMOD_FREQUENCY].LowerBound = 1.0f / 48000.0f; port_range_hints[FMOD_FREQUENCY].UpperBound = 0.5f; /* Parameters for LFO Input */ port_descriptors[FMOD_MODULATOR] = modulator_port_descriptors[i]; port_names[FMOD_MODULATOR] = G_("Modulation (Octaves)"); port_range_hints[FMOD_MODULATOR].HintDescriptor = 0; /* Parameters for Output Frequency */ port_descriptors[FMOD_OUTPUT] = output_port_descriptors[i]; port_names[FMOD_OUTPUT] = G_("Modulated Frequency (Hz)"); port_range_hints[FMOD_OUTPUT].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupFmod; descriptor->connect_port = connectPortFmod; descriptor->deactivate = NULL; descriptor->instantiate = instantiateFmod; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (fmod_descriptors) { for (i = 0; i < FMOD_VARIANT_COUNT; i++) { descriptor = fmod_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (fmod_descriptors); } } blop-0.2.8/src/difference_2030.so.c0000644000175000006270000002166210036233225012254 /* difference.so.c - A LADSPA plugin to calculate the difference of two signals Copyright (C) 2004 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define DIFFERENCE_BASE_ID 2030 #define DIFFERENCE_VARIANT_COUNT 4 #define DIFFERENCE_INPUT 0 #define DIFFERENCE_MINUS 1 #define DIFFERENCE_OUTPUT 2 LADSPA_Descriptor ** difference_descriptors = 0; typedef struct { LADSPA_Data * input; LADSPA_Data * minus; LADSPA_Data * output; } Difference; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < DIFFERENCE_VARIANT_COUNT) return difference_descriptors[index]; return 0; } void cleanupDifference (LADSPA_Handle instance) { free (instance); } void connectPortDifference (LADSPA_Handle instance, unsigned long port, LADSPA_Data *data) { Difference * plugin = (Difference *) instance; switch (port) { case DIFFERENCE_INPUT: plugin->input = data; break; case DIFFERENCE_MINUS: plugin->minus = data; break; case DIFFERENCE_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateDifference (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Difference * plugin = (Difference *) malloc (sizeof (Difference)); return (LADSPA_Handle) plugin; } void runDifference_iama_oa (LADSPA_Handle instance, unsigned long sample_count) { Difference * plugin = (Difference *) instance; /* Input (array of floats of length sample_count) */ LADSPA_Data * input = plugin->input; /* Input to Subtract (array of floats of length sample_count) */ LADSPA_Data * minus = plugin->minus; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data in; LADSPA_Data mi; unsigned int s; for (s = 0; s < sample_count; s++) { in = input[s]; mi = minus[s]; output[s] = in - mi; } } void runDifference_iamc_oa (LADSPA_Handle instance, unsigned long sample_count) { Difference * plugin = (Difference *) instance; /* Input (array of floats of length sample_count) */ LADSPA_Data * input = plugin->input; /* Input to Subtract (float value) */ LADSPA_Data minus = * (plugin->minus); /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data in; unsigned int s; for (s = 0; s < sample_count; s++) { in = input[s]; output[s] = in - minus; } } void runDifference_icma_oa (LADSPA_Handle instance, unsigned long sample_count) { Difference * plugin = (Difference *) instance; /* Input (float value) */ LADSPA_Data input = * (plugin->input); /* Input to Subtract (array of floats of length sample_count) */ LADSPA_Data * minus = plugin->minus; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data mi; unsigned int s; for (s = 0; s < sample_count; s++) { mi = minus[s]; output[s] = input - mi; } } void runDifference_icmc_oc (LADSPA_Handle instance, unsigned long sample_count) { Difference *plugin = (Difference *)instance; /* Input (float value) */ LADSPA_Data input = * (plugin->input); /* Input to Subtract (float value) */ LADSPA_Data minus = * (plugin->minus); /* Output Frequency (pointer to float value) */ LADSPA_Data * output = plugin->output; output[0] = input - minus; } void _init (void) { static const char * labels[] = {"difference_iama_oa", "difference_iamc_oa", "difference_icma_oa", "difference_icmc_oc"}; static const char * names[] = {G_NOP("Signal Difference (IAMA)"), G_NOP("Signal Difference (IAMC)"), G_NOP("Signal Difference (ICMA)"), G_NOP("Signal Difference (ICMC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor input_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor minus_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runDifference_iama_oa, runDifference_iamc_oa, runDifference_icma_oa, runDifference_icmc_oc}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif difference_descriptors = (LADSPA_Descriptor **) calloc (DIFFERENCE_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (difference_descriptors) { for (i = 0; i < DIFFERENCE_VARIANT_COUNT; i++) { difference_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = difference_descriptors[i]; if (descriptor) { descriptor->UniqueID = DIFFERENCE_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Input */ port_descriptors[DIFFERENCE_INPUT] = input_port_descriptors[i]; port_names[DIFFERENCE_INPUT] = G_("Input"); port_range_hints[DIFFERENCE_INPUT].HintDescriptor = 0; /* Parameters for Input to Subtract */ port_descriptors[DIFFERENCE_MINUS] = minus_port_descriptors[i]; port_names[DIFFERENCE_MINUS] = G_("Input to Subtract"); port_range_hints[DIFFERENCE_MINUS].HintDescriptor = 0; /* Parameters for Output */ port_descriptors[DIFFERENCE_OUTPUT] = output_port_descriptors[i]; port_names[DIFFERENCE_OUTPUT] = G_("Difference Output"); port_range_hints[DIFFERENCE_OUTPUT].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupDifference; descriptor->connect_port = connectPortDifference; descriptor->deactivate = NULL; descriptor->instantiate = instantiateDifference; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (difference_descriptors) { for (i = 0; i < DIFFERENCE_VARIANT_COUNT; i++) { descriptor = difference_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (difference_descriptors); } } blop-0.2.8/src/square_1643.so.c0000644000175000006270000001751307773051357011515 /* square.so.c - A LADSPA plugin to generate a bandlimited square waveform Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "wavedata.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define SQUARE_BASE_ID 1643 #define SQUARE_VARIANT_COUNT 2 #define SQUARE_FREQUENCY 0 #define SQUARE_OUTPUT 1 LADSPA_Descriptor ** square_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * output; LADSPA_Data phase; Wavedata wdat; } Square; /***************************************************************************** * * LADSPA Plugin code * *****************************************************************************/ const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < SQUARE_VARIANT_COUNT) return square_descriptors[index]; return 0; } void connectPortSquare (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Square * plugin = (Square *) instance; switch (port) { case SQUARE_FREQUENCY: plugin->frequency = data; break; case SQUARE_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateSquare (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Square *plugin = (Square *) malloc (sizeof (Square)); if (wavedata_load (&plugin->wdat, BLOP_DLSYM_SQUARE, sample_rate)) { free (plugin); return NULL; } return (LADSPA_Handle) plugin; } void cleanupSquare (LADSPA_Handle instance) { Square * plugin = (Square *) instance; wavedata_unload (&plugin->wdat); free (instance); } void activateSquare (LADSPA_Handle instance) { Square * plugin = (Square *) instance; plugin->phase = 0.0f; } void runSquare_fa_oa (LADSPA_Handle instance, unsigned long sample_count) { Square * plugin = (Square *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data freq; unsigned long s; for (s = 0; s < sample_count; s++) { freq = frequency[s]; /* Get table to play */ wavedata_get_table (wdat, freq); /* Get interpolated sample */ output[s] = wavedata_get_sample (wdat, phase); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runSquare_fc_oa (LADSPA_Handle instance, unsigned long sample_count) { Square * plugin = (Square *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = * (plugin->frequency); /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; unsigned long s; wavedata_get_table (wdat, frequency); for (s = 0; s < sample_count; s++) { output[s] = wavedata_get_sample (wdat, phase); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void _init (void) { static const char * labels[] = {"square_fa_oa", "square_fc_oa"}; static const char * names[] = {G_NOP("Bandlimited Square Oscillator (FA)"), G_NOP("Bandlimited Square Oscillator (FC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runSquare_fa_oa, runSquare_fc_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif square_descriptors = (LADSPA_Descriptor **) calloc (SQUARE_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (square_descriptors) { for (i = 0; i < SQUARE_VARIANT_COUNT; i++) { square_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = square_descriptors[i]; if (descriptor) { descriptor->UniqueID = SQUARE_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 2; port_descriptors = (LADSPA_PortDescriptor *) calloc (2, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (2, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (2, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency */ port_descriptors[SQUARE_FREQUENCY] = frequency_port_descriptors[i]; port_names[SQUARE_FREQUENCY] = G_("Frequency"); port_range_hints[SQUARE_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_440; port_range_hints[SQUARE_FREQUENCY].LowerBound = 1.0f / 48000.0f; port_range_hints[SQUARE_FREQUENCY].UpperBound = 0.5f; /* Parameters for Output */ port_descriptors[SQUARE_OUTPUT] = output_port_descriptors[i]; port_names[SQUARE_OUTPUT] = G_("Output"); port_range_hints[SQUARE_OUTPUT].HintDescriptor = 0; descriptor->activate = activateSquare; descriptor->cleanup = cleanupSquare; descriptor->connect_port = connectPortSquare; descriptor->deactivate = NULL; descriptor->instantiate = instantiateSquare; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (square_descriptors) { for (i = 0; i < SQUARE_VARIANT_COUNT; i++) { descriptor = square_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (square_descriptors); } } blop-0.2.8/src/amp_1654.so.c0000644000175000006270000001530110025734205010745 /* amp.so.c - A LADSPA plugin representing a simple mono amplifier Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "math_func.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define AMP_BASE_ID 1654 #define AMP_VARIANT_COUNT 2 #define AMP_GAIN 0 #define AMP_INPUT 1 #define AMP_OUTPUT 2 LADSPA_Descriptor ** amp_descriptors = 0; typedef struct { LADSPA_Data *gain; LADSPA_Data *input; LADSPA_Data *output; } Amp; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < AMP_VARIANT_COUNT) return amp_descriptors[index]; else return 0; } void cleanupAmp (LADSPA_Handle instance) { free (instance); } void connectPortAmp (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Amp * plugin = (Amp *) instance; switch (port) { case AMP_GAIN: plugin->gain = data; break; case AMP_INPUT: plugin->input = data; break; case AMP_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateAmp (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Amp * plugin = (Amp *) malloc (sizeof (Amp)); return (LADSPA_Handle) plugin; } void runAmp_gaia_oa (LADSPA_Handle instance, unsigned long sample_count) { Amp * plugin = (Amp *) instance; /* Gain (dB) */ LADSPA_Data *gain = plugin->gain; /* Input */ LADSPA_Data *input = plugin->input; /* Output */ LADSPA_Data *output = plugin->output; LADSPA_Data gn; LADSPA_Data in; LADSPA_Data scale; unsigned int s; for (s = 0; s < sample_count; s++) { gn = gain[s]; in = input[s]; scale = (LADSPA_Data) EXPF (M_LN10 * gn * 0.05f); output[s] = scale * in; } } void runAmp_gcia_oa (LADSPA_Handle instance, unsigned long sample_count) { Amp * plugin = (Amp *) instance; /* Gain (dB) */ LADSPA_Data gain = * (plugin->gain); /* Input */ LADSPA_Data *input = plugin->input; /* Output */ LADSPA_Data *output = plugin->output; LADSPA_Data in; LADSPA_Data scale = (LADSPA_Data) EXPF (M_LN10 * gain * 0.05f); unsigned int s; for (s = 0; s < sample_count; s++) { in = input[s]; output[s] = scale * in; } } void _init () { static const char * labels[] = {"amp_gaia_oa", "amp_gcia_oa"}; static const char * names[] = {G_NOP("Amplifier (GAIA)"), G_NOP("Amplifier (GCIA)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor gain_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor input_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runAmp_gaia_oa, runAmp_gcia_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif amp_descriptors = (LADSPA_Descriptor **) calloc (AMP_VARIANT_COUNT, sizeof(LADSPA_Descriptor)); if (amp_descriptors) { for (i = 0; i < AMP_VARIANT_COUNT; i++) { amp_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = amp_descriptors[i]; if (descriptor) { descriptor->UniqueID = AMP_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *)port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Gain */ port_descriptors[AMP_GAIN] = gain_port_descriptors[i]; port_names[AMP_GAIN] = G_("Gain (dB)"); port_range_hints[AMP_GAIN].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE; port_range_hints[AMP_GAIN].LowerBound = -96.0f; port_range_hints[AMP_GAIN].UpperBound = +96.0f; /* Parameters for Input */ port_descriptors[AMP_INPUT] = input_port_descriptors[i]; port_names[AMP_INPUT] = G_("Input"); port_range_hints[AMP_INPUT].HintDescriptor = 0; /* Parameters for Output Frequency */ port_descriptors[AMP_OUTPUT] = output_port_descriptors[i]; port_names[AMP_OUTPUT] = G_("Output"); port_range_hints[AMP_OUTPUT].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupAmp; descriptor->connect_port = connectPortAmp; descriptor->deactivate = NULL; descriptor->instantiate = instantiateAmp; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini () { LADSPA_Descriptor * descriptor; int i; if (amp_descriptors) { for (i = 0; i < AMP_VARIANT_COUNT; i++) { descriptor = amp_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (amp_descriptors); } } blop-0.2.8/src/triangle_1649.so.c0000644000175000006270000003300310025742214011777 /* triangle.so.c - A LADSPA plugin to generate a bandlimited slope-variable triangle waveform Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "wavedata.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define TRIANGLE_BASE_ID 1649 #define TRIANGLE_VARIANT_COUNT 4 #define TRIANGLE_FREQUENCY 0 #define TRIANGLE_SLOPE 1 #define TRIANGLE_OUTPUT 2 LADSPA_Descriptor ** triangle_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * slope; LADSPA_Data * output; LADSPA_Data phase; LADSPA_Data min_slope; LADSPA_Data max_slope; Wavedata wdat; } Triangle; /***************************************************************************** * * LADSPA Plugin code * *****************************************************************************/ const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < TRIANGLE_VARIANT_COUNT) return triangle_descriptors[index]; return 0; } void connectPortTriangle (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Triangle * plugin = (Triangle *) instance; switch (port) { case TRIANGLE_FREQUENCY: plugin->frequency = data; break; case TRIANGLE_SLOPE: plugin->slope = data; break; case TRIANGLE_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateTriangle (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Triangle * plugin = (Triangle *) malloc (sizeof (Triangle)); if (wavedata_load (&plugin->wdat, BLOP_DLSYM_PARABOLA, sample_rate)) { free (plugin); return 0; } plugin->min_slope = 2.0f / plugin->wdat.sample_rate; plugin->max_slope = 1.0f - plugin->min_slope; return (LADSPA_Handle) plugin; } void cleanupTriangle (LADSPA_Handle instance) { Triangle * plugin = (Triangle *) instance; wavedata_unload (&plugin->wdat); free (instance); } void activateTriangle (LADSPA_Handle instance) { Triangle * plugin = (Triangle *) instance; plugin->phase = 0.0f; } void runTriangle_fasa_oa (LADSPA_Handle instance, unsigned long sample_count) { Triangle * plugin = (Triangle *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Slope (array of LADSPA_Data of length sample_count) */ LADSPA_Data * slope = plugin->slope; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data min_slope = plugin->min_slope; LADSPA_Data max_slope = plugin->max_slope; LADSPA_Data freq; LADSPA_Data slp; LADSPA_Data phase_shift; unsigned long s; for (s = 0; s < sample_count; s++) { freq = frequency[s]; slp = f_clip (slope[s], min_slope, max_slope); phase_shift = slp * wdat->sample_rate; /* Lookup which table to use from frequency */ wavedata_get_table (wdat, freq); /* Get samples from parabola and phase shifted inverted parabola, and scale to compensate */ output[s] = (wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift)) / (8.0f * (slp - (slp * slp))); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runTriangle_fasc_oa (LADSPA_Handle instance, unsigned long sample_count) { Triangle * plugin = (Triangle *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Slope (LADSPA_Data value) */ LADSPA_Data slope = *(plugin->slope); /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data min_slope = plugin->min_slope; LADSPA_Data max_slope = plugin->max_slope; LADSPA_Data freq; LADSPA_Data phase_shift; LADSPA_Data scale; unsigned long s; slope = f_clip (slope, min_slope, max_slope); scale = 1.0f / (8.0f * (slope - (slope * slope))); phase_shift = slope * wdat->sample_rate; for (s = 0; s < sample_count; s++) { freq = frequency[s]; /* Lookup which table to use from frequency */ wavedata_get_table (wdat, freq); /* Get samples from parabola and phase shifted inverted parabola, and scale to compensate */ output[s] = (wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift)) * scale; /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runTriangle_fcsa_oa (LADSPA_Handle instance, unsigned long sample_count) { Triangle * plugin = (Triangle *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = *(plugin->frequency); /* Slope (array of LADSPA_Data of length sample_count) */ LADSPA_Data * slope = plugin->slope; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data min_slope = plugin->min_slope; LADSPA_Data max_slope = plugin->max_slope; LADSPA_Data slp; LADSPA_Data phase_shift; unsigned long s; wavedata_get_table (wdat, frequency); for (s = 0; s < sample_count; s++) { slp = f_clip (slope[s], min_slope, max_slope); phase_shift = slp * wdat->sample_rate; /* Get samples from parabola and phase shifted inverted parabola, and scale to compensate */ output[s] = (wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift)) / (8.0f * (slp - (slp * slp))); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runTriangle_fcsc_oa (LADSPA_Handle instance, unsigned long sample_count) { Triangle * plugin = (Triangle *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = *(plugin->frequency); /* Slope (LADSPA_Data value) */ LADSPA_Data slope = *(plugin->slope); /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data min_slope = plugin->min_slope; LADSPA_Data max_slope = plugin->max_slope; LADSPA_Data scale; LADSPA_Data phase_shift; unsigned long s; slope = f_clip (slope, min_slope, max_slope); scale = 1.0f / (8.0f * (slope - (slope * slope))); phase_shift = slope * wdat->sample_rate; wavedata_get_table (wdat, frequency); for (s = 0; s < sample_count; s++) { /* Get samples from parabola and phase shifted inverted parabola, and scale to compensate */ output[s] = (wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift)) * scale; /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void _init (void) { static const char * labels[] = {"triangle_fasa_oa", "triangle_fasc_oa", "triangle_fcsa_oa", "triangle_fcsc_oa"}; static const char * names[] = {G_NOP("Bandlimited Variable Slope Triangle Oscillator (FASA)"), G_NOP("Bandlimited Variable Slope Triangle Oscillator (FASC)"), G_NOP("Bandlimited Variable Slope Triangle Oscillator (FCSA)"), G_NOP("Bandlimited Variable Slope Triangle Oscillator (FCSC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor slope_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runTriangle_fasa_oa, runTriangle_fasc_oa, runTriangle_fcsa_oa, runTriangle_fcsc_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif triangle_descriptors = (LADSPA_Descriptor **) calloc (TRIANGLE_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (triangle_descriptors) { for (i = 0; i < TRIANGLE_VARIANT_COUNT; i++) { triangle_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = triangle_descriptors[i]; if (descriptor) { descriptor->UniqueID = TRIANGLE_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency */ port_descriptors[TRIANGLE_FREQUENCY] = frequency_port_descriptors[i]; port_names[TRIANGLE_FREQUENCY] = G_("Frequency"); port_range_hints[TRIANGLE_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_440; port_range_hints[TRIANGLE_FREQUENCY].LowerBound = 1.0f / 48000.0f; port_range_hints[TRIANGLE_FREQUENCY].UpperBound = 0.5f; /* Parameters for Slope */ port_descriptors[TRIANGLE_SLOPE] = slope_port_descriptors[i]; port_names[TRIANGLE_SLOPE] = G_("Slope"); port_range_hints[TRIANGLE_SLOPE].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MIDDLE; port_range_hints[TRIANGLE_SLOPE].LowerBound = 0.0f; port_range_hints[TRIANGLE_SLOPE].UpperBound = 1.0f; /* Parameters for Output */ port_descriptors[TRIANGLE_OUTPUT] = output_port_descriptors[i]; port_names[TRIANGLE_OUTPUT] = G_("Output"); port_range_hints[TRIANGLE_OUTPUT].HintDescriptor = 0; descriptor->activate = activateTriangle; descriptor->cleanup = cleanupTriangle; descriptor->connect_port = connectPortTriangle; descriptor->deactivate = NULL; descriptor->instantiate = instantiateTriangle; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (triangle_descriptors) { for (i = 0; i < TRIANGLE_VARIANT_COUNT; i++) { descriptor = triangle_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (triangle_descriptors); } } blop-0.2.8/src/branch_1673.so.c0000644000175000006270000001526007773052103011440 /* branch.so.c - A LADSPA plugin to split a signal into two Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define BRANCH_BASE_ID 1673 #define BRANCH_VARIANT_COUNT 2 #define BRANCH_INPUT 0 #define BRANCH_OUTPUT1 1 #define BRANCH_OUTPUT2 2 LADSPA_Descriptor **sum_descriptors = 0; typedef struct { LADSPA_Data *input; LADSPA_Data *output1; LADSPA_Data *output2; } Branch; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < BRANCH_VARIANT_COUNT) return sum_descriptors[index]; else return 0; } void cleanupBranch (LADSPA_Handle instance) { free(instance); } void connectPortBranch (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Branch * plugin = (Branch *) instance; switch (port) { case BRANCH_INPUT: plugin->input = data; break; case BRANCH_OUTPUT1: plugin->output1 = data; break; case BRANCH_OUTPUT2: plugin->output2 = data; break; } } LADSPA_Handle instantiateBranch (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Branch * plugin = (Branch *) malloc (sizeof (Branch)); return (LADSPA_Handle) plugin; } void runBranch_ia_oaoa (LADSPA_Handle instance, unsigned long sample_count) { Branch * plugin = (Branch *) instance; /* Input (array of floats of length sample_count) */ LADSPA_Data * input = plugin->input; /* First Output (array of floats of length sample_count) */ LADSPA_Data * output1 = plugin->output1; /* Second Output (array of floats of length sample_count) */ LADSPA_Data * output2 = plugin->output2; LADSPA_Data in; unsigned int s; for (s = 0; s < sample_count; s++) { in = input[s]; output1[s] = in; output2[s] = in; } } void runBranch_ic_ococ (LADSPA_Handle instance, unsigned long sample_count) { Branch * plugin = (Branch *) instance; /* Input (float value) */ LADSPA_Data input = * (plugin->input); /* First Output (pointer to float value) */ LADSPA_Data * output1 = plugin->output1; /* Second Output (pointer to float value) */ LADSPA_Data * output2 = plugin->output2; output1[0] = input; output2[0] = input; } void _init() { static const char * labels[] = {"branch_ia_oaoa", "branch_ic_ococ"}; static const char * names[] = {G_NOP("Signal Branch (IA)"), G_NOP("Signal Branch (IC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor input_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output1_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output2_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runBranch_ia_oaoa, runBranch_ic_ococ}; #ifdef ENABLE_NLS setlocale(LC_ALL, ""); bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); #endif sum_descriptors = (LADSPA_Descriptor **) calloc (BRANCH_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (sum_descriptors) { for (i = 0; i < BRANCH_VARIANT_COUNT; i++) { sum_descriptors[i] = (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor)); descriptor = sum_descriptors[i]; if (descriptor) { descriptor->UniqueID = BRANCH_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof(LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Input */ port_descriptors[BRANCH_INPUT] = input_port_descriptors[i]; port_names[BRANCH_INPUT] = G_("Input"); port_range_hints[BRANCH_INPUT].HintDescriptor = 0; /* Parameters for First Output */ port_descriptors[BRANCH_OUTPUT1] = output1_port_descriptors[i]; port_names[BRANCH_OUTPUT1] = G_("First Output"); port_range_hints[BRANCH_OUTPUT1].HintDescriptor = 0; /* Parameters for Second Output */ port_descriptors[BRANCH_OUTPUT2] = output2_port_descriptors[i]; port_names[BRANCH_OUTPUT2] = G_("Second Output"); port_range_hints[BRANCH_OUTPUT2].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupBranch; descriptor->connect_port = connectPortBranch; descriptor->deactivate = NULL; descriptor->instantiate = instantiateBranch; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini () { LADSPA_Descriptor * descriptor; int i; if (sum_descriptors) { for (i = 0; i < BRANCH_VARIANT_COUNT; i++) { descriptor = sum_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (sum_descriptors); } } blop-0.2.8/src/random_1661.so.c0000644000175000006270000003312310025734205011450 /* random.so.c - A LADSPA plugin to generate a 'random' wave of varying frequency and smoothness Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include "math_func.h" #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define RANDOM_BASE_ID 1661 #define RANDOM_VARIANT_COUNT 4 #define RANDOM_FREQUENCY 0 #define RANDOM_SMOOTH 1 #define RANDOM_OUTPUT 2 LADSPA_Descriptor ** random_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * smooth; LADSPA_Data * output; LADSPA_Data nyquist; LADSPA_Data inv_nyquist; LADSPA_Data phase; LADSPA_Data value1; LADSPA_Data value2; } Random; LADSPA_Data inv_rand_max; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < RANDOM_VARIANT_COUNT) return random_descriptors[index]; return 0; } void cleanupRandom (LADSPA_Handle instance) { free (instance); } void connectPortRandom (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Random * plugin = (Random *) instance; switch (port) { case RANDOM_FREQUENCY: plugin->frequency = data; break; case RANDOM_SMOOTH: plugin->smooth = data; break; case RANDOM_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateRandom (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Random * plugin = (Random *) malloc (sizeof (Random)); srand ((int) time ((time_t *) 0)); inv_rand_max = 2.0f / (LADSPA_Data) RAND_MAX; plugin->nyquist = (LADSPA_Data) sample_rate / 2.0f; plugin->inv_nyquist = 1.0f / plugin->nyquist; plugin->value1 = rand() * inv_rand_max - 1.0f; plugin->value2 = rand() * inv_rand_max - 1.0f; return (LADSPA_Handle) plugin; } void activateRandom (LADSPA_Handle instance) { Random * plugin = (Random *) instance; plugin->phase = 0.0f; } void runRandom_fasa_oa (LADSPA_Handle instance, unsigned long sample_count) { Random * plugin = (Random *) instance; /* Frequency (Hz) (array of floats of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Wave smoothness (array of floats of length sample_count) */ LADSPA_Data * smooth = plugin->smooth; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; /* Instance data */ LADSPA_Data nyquist = plugin->nyquist; LADSPA_Data inv_nyquist = plugin->inv_nyquist; LADSPA_Data phase = plugin->phase; LADSPA_Data value1 = plugin->value1; LADSPA_Data value2 = plugin->value2; LADSPA_Data freq; LADSPA_Data smth; LADSPA_Data interval; LADSPA_Data result; unsigned int s; for (s = 0; s < sample_count; s++) { freq = f_clip (frequency[s], 0.0f, nyquist); smth = f_clip (smooth[s], 0.0f, 1.0f); interval = (1.0f - smth) * 0.5f; if (phase < interval) result = 1.0f; else if (phase > (1.0f - interval)) result = -1.0f; else if (interval > 0.0f) result = COSF ((phase - interval) / smth * M_PI); else result = COSF (phase * M_PI); result *= (value2 - value1) * 0.5f; result -= (value2 + value1) * 0.5f; output[s] = result; phase += freq * inv_nyquist; if (phase > 1.0f) { phase -= 1.0f; value1 = value2; value2 = (LADSPA_Data) rand () * inv_rand_max - 1.0f; } } plugin->phase = phase; plugin->value1 = value1; plugin->value2 = value2; } void runRandom_fasc_oa (LADSPA_Handle instance, unsigned long sample_count) { Random * plugin = (Random *) instance; /* Frequency (Hz) (array of floats of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Wave smoothness (float value) */ LADSPA_Data smooth = f_clip (* (plugin->smooth), 0.0f, 1.0f); /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; /* Instance data */ LADSPA_Data nyquist = plugin->nyquist; LADSPA_Data inv_nyquist = plugin->inv_nyquist; LADSPA_Data phase = plugin->phase; LADSPA_Data value1 = plugin->value1; LADSPA_Data value2 = plugin->value2; LADSPA_Data freq; LADSPA_Data interval = (1.0f - smooth) * 0.5f; LADSPA_Data result; unsigned int s; for (s = 0; s < sample_count; s++) { freq = f_clip (frequency[s], 0.0f, nyquist); if (phase < interval) result = 1.0f; else if (phase > (1.0f - interval)) result = -1.0f; else if (interval > 0.0f) result = COSF ((phase - interval) / smooth * M_PI); else result = COSF (phase * M_PI); result *= (value2 - value1) * 0.5f; result -= (value2 + value1) * 0.5f; output[s] = result; phase += freq * inv_nyquist; if (phase > 1.0f) { phase -= 1.0f; value1 = value2; value2 = (LADSPA_Data) rand () * inv_rand_max - 1.0f; } } plugin->phase = phase; plugin->value1 = value1; plugin->value2 = value2; } void runRandom_fcsa_oa (LADSPA_Handle instance, unsigned long sample_count) { Random *plugin = (Random *)instance; /* Frequency (Hz) (float value) */ LADSPA_Data frequency = *(plugin->frequency); /* Wave smoothness (array of floats of length sample_count) */ LADSPA_Data *smooth = plugin->smooth; /* Output (pointer to float value) */ LADSPA_Data *output = plugin->output; /* Instance data */ LADSPA_Data nyquist = plugin->nyquist; LADSPA_Data inv_nyquist = plugin->inv_nyquist; LADSPA_Data phase = plugin->phase; LADSPA_Data value1 = plugin->value1; LADSPA_Data value2 = plugin->value2; LADSPA_Data phase_scale = f_clip(frequency, 0.0f, nyquist) * inv_nyquist; LADSPA_Data smth; LADSPA_Data interval; LADSPA_Data result; unsigned int s; for (s = 0; s < sample_count; s++) { smth = f_clip (smooth[s], 0.0f, 1.0f); interval = (1.0f - smth) * 0.5f; if (phase < interval) result = 1.0f; else if (phase > (1.0f - interval)) result = -1.0f; else if (interval > 0.0f) result = COSF ((phase - interval) / smth * M_PI); else result = COSF (phase * M_PI); result *= (value2 - value1) * 0.5f; result -= (value2 + value1) * 0.5f; output[s] = result; phase += phase_scale; if (phase > 1.0f) { phase -= 1.0f; value1 = value2; value2 = (LADSPA_Data) rand () * inv_rand_max - 1.0f; } } plugin->phase = phase; plugin->value1 = value1; plugin->value2 = value2; } void runRandom_fcsc_oa (LADSPA_Handle instance, unsigned long sample_count) { Random * plugin = (Random *) instance; /* Frequency (Hz) (float value) */ LADSPA_Data frequency = * (plugin->frequency); /* Wave smoothness (float value) */ LADSPA_Data smooth = f_clip (* (plugin->smooth), 0.0f, 1.0f); /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; /* Instance data */ LADSPA_Data nyquist = plugin->nyquist; LADSPA_Data inv_nyquist = plugin->inv_nyquist; LADSPA_Data phase = plugin->phase; LADSPA_Data value1 = plugin->value1; LADSPA_Data value2 = plugin->value2; LADSPA_Data phase_scale = f_clip (frequency, 0.0f, nyquist) * inv_nyquist; LADSPA_Data interval = (1.0f - smooth) * 0.5f; LADSPA_Data result; unsigned int s; for (s = 0; s < sample_count; s++) { if (phase < interval) result = 1.0f; else if (phase > (1.0f - interval)) result = -1.0f; else if (interval > 0.0f) result = COSF ((phase - interval) / smooth * M_PI); else result = COSF (phase * M_PI); result *= (value2 - value1) * 0.5f; result -= (value2 + value1) * 0.5f; output[s] = result; phase += phase_scale; if (phase > 1.0f) { phase -= 1.0f; value1 = value2; value2 = (LADSPA_Data) rand () * inv_rand_max - 1.0f; } } plugin->phase = phase; plugin->value1 = value1; plugin->value2 = value2; } void _init (void) { static const char * labels[] = {"random_fasa_oa", "random_fasc_oa", "random_fcsa_oa", "random_fcsc_oa"}; static const char * names[] = {G_NOP("Random Wave Generator (FASA)"), G_NOP("Random Wave Generator (FASC)"), G_NOP("Random Wave Generator (FCSA)"), G_NOP("Random Wave Generator (FCSC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor smooth_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runRandom_fasa_oa, runRandom_fasc_oa, runRandom_fcsa_oa, runRandom_fcsc_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif random_descriptors = (LADSPA_Descriptor **) calloc (RANDOM_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (random_descriptors) { for (i = 0; i < RANDOM_VARIANT_COUNT; i++) { random_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = random_descriptors[i]; if (descriptor) { descriptor->UniqueID = RANDOM_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency (Hz) */ port_descriptors[RANDOM_FREQUENCY] = frequency_port_descriptors[i]; port_names[RANDOM_FREQUENCY] = G_("Frequency (Hz)"); port_range_hints[RANDOM_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_440; port_range_hints[RANDOM_FREQUENCY].LowerBound = 1.0f / 48000.0f; port_range_hints[RANDOM_FREQUENCY].UpperBound = 0.5f; /* Parameters for Wave smoothness */ port_descriptors[RANDOM_SMOOTH] = smooth_port_descriptors[i]; port_names[RANDOM_SMOOTH] = G_("Wave Smoothness"); port_range_hints[RANDOM_SMOOTH].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MAXIMUM; port_range_hints[RANDOM_SMOOTH].LowerBound = 0.0f; port_range_hints[RANDOM_SMOOTH].UpperBound = 1.0f; /* Parameters for Output */ port_descriptors[RANDOM_OUTPUT] = output_port_descriptors[i]; port_names[RANDOM_OUTPUT] = G_("Output"); port_range_hints[RANDOM_OUTPUT].HintDescriptor = 0; descriptor->activate = activateRandom; descriptor->cleanup = cleanupRandom; descriptor->connect_port = connectPortRandom; descriptor->deactivate = NULL; descriptor->instantiate = instantiateRandom; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (random_descriptors) { for (i = 0; i < RANDOM_VARIANT_COUNT; i++) { descriptor = random_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (random_descriptors); } } blop-0.2.8/src/adsr_1653.so.c0000644000175000006270000002465607773052103011143 /* adsr.so.c - A LADSPA plugin to generate ADSR envelopes Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define ADSR_BASE_ID 1653 #define ADSR_VARIANT_COUNT 1 #define ADSR_SIGNAL 0 #define ADSR_TRIGGER 1 #define ADSR_ATTACK 2 #define ADSR_DECAY 3 #define ADSR_SUSTAIN 4 #define ADSR_RELEASE 5 #define ADSR_OUTPUT 6 LADSPA_Descriptor ** adsr_descriptors = 0; typedef enum { IDLE, ATTACK, DECAY, SUSTAIN, RELEASE } ADSRState; typedef struct { LADSPA_Data *signal; LADSPA_Data *trigger; LADSPA_Data *attack; LADSPA_Data *decay; LADSPA_Data *sustain; LADSPA_Data *release; LADSPA_Data *output; LADSPA_Data srate; LADSPA_Data inv_srate; LADSPA_Data from_level; LADSPA_Data level; ADSRState state; unsigned long samples; } Adsr; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < 1) return adsr_descriptors[index]; else return 0; } void cleanupAdsr (LADSPA_Handle instance) { free(instance); } void connectPortAdsr (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Adsr *plugin = (Adsr *) instance; switch (port) { case ADSR_SIGNAL: plugin->signal = data; break; case ADSR_TRIGGER: plugin->trigger = data; break; case ADSR_ATTACK: plugin->attack = data; break; case ADSR_DECAY: plugin->decay = data; break; case ADSR_SUSTAIN: plugin->sustain = data; break; case ADSR_RELEASE: plugin->release = data; break; case ADSR_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateAdsr (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Adsr * plugin = (Adsr *) malloc (sizeof (Adsr)); plugin->srate = (LADSPA_Data) sample_rate; plugin->inv_srate = 1.0f / plugin->srate; return (LADSPA_Handle) plugin; } void activateAdsr (LADSPA_Handle instance) { Adsr * plugin = (Adsr *) instance; plugin->from_level = 0.0f; plugin->level = 0.0f; plugin->state = IDLE; plugin->samples = 0; } void runAdsr (LADSPA_Handle instance, unsigned long sample_count) { Adsr * plugin = (Adsr *) instance; /* Driving signal */ LADSPA_Data *signal = plugin->signal; /* Trigger Threshold */ LADSPA_Data trigger = * (plugin->trigger); /* Attack Time (s) */ LADSPA_Data attack = * (plugin->attack); /* Decay Time (s) */ LADSPA_Data decay = * (plugin->decay); /* Sustain Level */ LADSPA_Data sustain = f_clip (* (plugin->sustain), 0.0f, 1.0f); /* Release Time (s) */ LADSPA_Data release = * (plugin->release); /* Envelope Out */ LADSPA_Data *output = plugin->output; LADSPA_Data srate = plugin->srate; LADSPA_Data inv_srate = plugin->inv_srate; LADSPA_Data from_level = plugin->from_level; LADSPA_Data level = plugin->level; ADSRState state = plugin->state; unsigned long samples = plugin->samples; LADSPA_Data elapsed; unsigned long s; /* Convert times into rates */ attack = attack > 0.0f ? inv_srate / attack : srate; decay = decay > 0.0f ? inv_srate / decay : srate; release = release > 0.0f ? inv_srate / release : srate; for (s = 0; s < sample_count; s++) { /* Determine if attack or release happened */ if ((state == IDLE) || (state == RELEASE)) { if (signal[s] > trigger) { if (attack < srate) { state = ATTACK; } else { state = decay < srate ? DECAY : SUSTAIN; level = 1.0f; } samples = 0; } } else { if (signal[s] <= trigger) { state = release < srate ? RELEASE : IDLE; samples = 0; } } if (samples == 0) from_level = level; /* Calculate level of envelope from current state */ switch (state) { case IDLE: level = 0; break; case ATTACK: samples++; elapsed = (LADSPA_Data)samples * attack; if (elapsed > 1.0f) { state = decay < srate ? DECAY : SUSTAIN; level = 1.0f; samples = 0; } else { level = from_level + elapsed * (1.0f - from_level); } break; case DECAY: samples++; elapsed = (LADSPA_Data)samples * decay; if (elapsed > 1.0f) { state = SUSTAIN; level = sustain; samples = 0; } else { level = from_level + elapsed * (sustain - from_level); } break; case SUSTAIN: level = sustain; break; case RELEASE: samples++; elapsed = (LADSPA_Data)samples * release; if (elapsed > 1.0f) { state = IDLE; level = 0.0f; samples = 0; } else { level = from_level - elapsed * from_level; } break; default: /* Should never happen */ level = 0.0f; } output[s] = level; } plugin->from_level = from_level; plugin->level = level; plugin->state = state; plugin->samples = samples; } void _init() { char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor signal_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor trigger_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor attack_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor decay_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor sustain_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor release_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runAdsr}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif adsr_descriptors = (LADSPA_Descriptor **) calloc (ADSR_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (adsr_descriptors) { for (i = 0; i < ADSR_VARIANT_COUNT; i++) { adsr_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = adsr_descriptors[i]; if (descriptor) { descriptor->UniqueID = ADSR_BASE_ID + i; descriptor->Label = "adsr"; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_("ADSR Envelope"); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 7; port_descriptors = (LADSPA_PortDescriptor *) calloc (7, sizeof(LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (7, sizeof(LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (7, sizeof (char *)); descriptor->PortNames = (const char **) port_names; /* Parameters for Driving Signal */ port_descriptors[ADSR_SIGNAL] = signal_port_descriptors[i]; port_names[ADSR_SIGNAL] = G_("Driving Signal"); port_range_hints[ADSR_SIGNAL].HintDescriptor = 0; /* Parameters for Trigger Threshold */ port_descriptors[ADSR_TRIGGER] = trigger_port_descriptors[i]; port_names[ADSR_TRIGGER] = G_("Trigger Threshold"); port_range_hints[ADSR_TRIGGER].HintDescriptor = 0; /* Parameters for Attack Time (s) */ port_descriptors[ADSR_ATTACK] = attack_port_descriptors[i]; port_names[ADSR_ATTACK] = G_("Attack Time (s)"); port_range_hints[ADSR_ATTACK].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[ADSR_ATTACK].LowerBound = 0.0f; /* Parameters for Decay Time (s) */ port_descriptors[ADSR_DECAY] = decay_port_descriptors[i]; port_names[ADSR_DECAY] = G_("Decay Time (s)"); port_range_hints[ADSR_DECAY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[ADSR_DECAY].LowerBound = 0.0f; /* Parameters for Sustain Level */ port_descriptors[ADSR_SUSTAIN] = sustain_port_descriptors[i]; port_names[ADSR_SUSTAIN] = G_("Sustain Level"); port_range_hints[ADSR_SUSTAIN].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MAXIMUM; port_range_hints[ADSR_SUSTAIN].LowerBound = 0.0f; port_range_hints[ADSR_SUSTAIN].UpperBound = 1.0f; /* Parameters for Release Time (s) */ port_descriptors[ADSR_RELEASE] = release_port_descriptors[i]; port_names[ADSR_RELEASE] = G_("Release Time (s)"); port_range_hints[ADSR_RELEASE].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[ADSR_RELEASE].LowerBound = 0.0f; /* Parameters for Envelope Out */ port_descriptors[ADSR_OUTPUT] = output_port_descriptors[i]; port_names[ADSR_OUTPUT] = G_("Envelope Out"); port_range_hints[ADSR_OUTPUT].HintDescriptor = 0; descriptor->activate = activateAdsr; descriptor->cleanup = cleanupAdsr; descriptor->connect_port = connectPortAdsr; descriptor->deactivate = NULL; descriptor->instantiate = instantiateAdsr; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini () { LADSPA_Descriptor * descriptor; int i; if (adsr_descriptors) { for (i = 0; i < ADSR_VARIANT_COUNT; i++) { descriptor = adsr_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (adsr_descriptors); } } blop-0.2.8/src/wavegen.c0000644000175000006270000001772210063052552010536 /* wavegen.c - A program to generate c header files containing pre-calculated wavedata. Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include "wdatutil.h" #include "wavedata.h" #include "common.h" void usage(void) { int i; fprintf (stderr, "\n"); fprintf (stderr, "Generate bandlimited wavedata and write as c header file\n"); fprintf (stderr, "\n"); fprintf (stderr, "Usage: wavegen -w -r -f -s \n"); fprintf (stderr, " -m [-o ] [-p ]\n"); fprintf (stderr, " [-g ] [-q] [-t] [-h]\n"); fprintf (stderr, "\n"); fprintf (stderr, " -w OR --wave Name of wave to generate (case insensitive)\n"); fprintf (stderr, " -r OR --rate Intended playback rate in Samples/Second\n"); fprintf (stderr, " -f OR --first First MIDI note to generate table for\n"); fprintf (stderr, " -s OR --step Number of MIDI notes to skip for next table\n"); fprintf (stderr, " -m OR --min Minimum table size in samples\n"); fprintf (stderr, " -o OR --output Output Filename, name of file to output\n"); fprintf (stderr, " If not given, output is to stdout\n"); fprintf (stderr, " -p OR --prefix Prefix for declarations in header\n"); fprintf (stderr, " -g OR --gibbs Compensate for Gibbs' effect\n"); fprintf (stderr, " -q OR --quiet Surpress stderr output\n"); fprintf (stderr, " -t OR --test Don't actually generate data\n"); fprintf (stderr, " -h OR --help Print this text and exit\n"); fprintf (stderr, "\n"); fprintf (stderr, "Supported waves:\n"); for (i = 0; i < WAVE_TYPE_COUNT; i++) fprintf (stderr, " %s (%s)\n", wave_names[i], wave_descriptions[i]); fprintf (stderr, "\n"); fprintf (stderr, "Gibbs' Effect\n"); fprintf (stderr, " Gibbs' effect causes overshoot in waves generated from finite\n"); fprintf (stderr, " Fourier Series. Compensation can be applied, which will result in\n"); fprintf (stderr, " a waveform that sounds slightly less bright.\n"); fprintf (stderr, " Use the --gibbs option to set degree of compensatation, from 0.0\n"); fprintf (stderr, " (no compensation) to 1.0 (full compensation)\n"); fprintf (stderr, "\n"); } /* * Create bandlimited wavedata header files for various * waveforms */ int main (int argc, char **argv) { int option_index; int opt; const char * options = "w:r:f:s:m:o:p:g:qth"; struct option long_options[] = { { "wave", 1, 0, 'w' }, { "rate", 1, 0, 'r' }, { "first", 1, 0, 'f' }, { "step", 1, 0, 's' }, { "min", 1, 0, 'm' }, { "output", 1, 0, 'o' }, { "prefix", 0, 0, 'p' }, { "gibbs", 1, 0, 'g' }, { "quiet", 0, 0, 'q' }, { "test", 0, 0, 't' }, { "help", 0, 0, 'h' }, {0, 0, 0, 0} }; int wavetype = -1; long sample_rate = -1; long first_note = -1; long note_step = -1; long min_table_size = -1; char *filename = NULL; FILE *file; char *prefix = NULL; float gibbs = 0.0f; int quiet = 0; int test = 0; Wavedata * w; LADSPA_Data freq; unsigned long sample_count; unsigned long max_harmonic_hf; unsigned long max_harmonic_lf; unsigned long i; size_t strcmplen; size_t len1; size_t len2; /* Parse arguments */ if (argc == 1) { usage (); exit (-1); } opterr = 0; while ((opt = getopt_long (argc, argv, options, long_options, &option_index)) != -1) { switch (opt) { case 'w': for (i = 0; i < WAVE_TYPE_COUNT; i++) { len1 = strlen (optarg); len2 = strlen (wave_names[i]); strcmplen = len1 < len2 ? len1 : len2; if (!strncasecmp (optarg, wave_names[i], strcmplen)) wavetype = i; } if (wavetype == -1) { fprintf (stderr, "Unrecognised option for Wave: %s\n", optarg); exit (-1); } break; case 'r': sample_rate = (long) atoi (optarg); break; case 'f': first_note = (long) atoi (optarg); break; case 's': note_step = (long) atoi (optarg); break; case 'm': min_table_size = (long) atoi (optarg); break; case 'o': filename = strdup (optarg); break; case 'p': prefix = strdup (optarg); break; case 'g': gibbs = atof (optarg); break; case 'q': quiet = -1; break; case 't': test = -1; break; case 'h': usage (); exit (0); break; default: usage (); exit (-1); } } /* Check basic arguments */ if (wavetype == -1) { if (!quiet) fprintf (stderr, "No wavetype specified.\n"); exit (-1); } if (sample_rate == -1) { if (!quiet) fprintf (stderr, "No sample rate specified.\n"); exit (-1); } if (first_note == -1) { if (!quiet) fprintf (stderr, "No first note specified.\n"); exit (-1); } if (note_step == -1) { if (!quiet) fprintf (stderr, "No note step specified.\n"); exit (-1); } if (min_table_size == -1) { if (!quiet) fprintf (stderr, "No minimum table size specified.\n"); exit (-1); } if (gibbs < 0.0f || gibbs > 1.0f) { if (!quiet) { fprintf (stderr, "Gibbs compensation clamped to [0.0, 1.0]\n"); fprintf (stderr, " Supplied value: %.2f\n", gibbs); } gibbs = gibbs < 0.0f ? 0.0f : gibbs; gibbs = gibbs > 1.0f ? 1.0f : gibbs; if (!quiet) fprintf (stderr, " Clamped to: %.2f\n", gibbs); } if (note_step < 1) { if (!quiet) fprintf (stderr, "Using minimum note step of 1\n"); note_step = 1; } /* Get file to write to */ if (!filename) file = stdout; else file = fopen (filename, "w"); w = wavedata_new (sample_rate); if (!w) { if (!quiet) fprintf (stderr, "Unable to create wavedata\n"); exit (-1); } freq = FREQ_FROM_NOTE (first_note); max_harmonic_lf = HARM_FROM_FREQ (freq, sample_rate); max_harmonic_hf = max_harmonic_lf; for (i = 0; max_harmonic_hf > MIN_HARM (wavetype); i += note_step) { freq = FREQ_FROM_NOTE (first_note + i + note_step); max_harmonic_hf = HARM_FROM_FREQ (freq, sample_rate); max_harmonic_hf = ACTUAL_HARM (max_harmonic_hf, wavetype); max_harmonic_lf = ACTUAL_HARM (max_harmonic_lf, wavetype); while (max_harmonic_lf == max_harmonic_hf) { i += note_step; freq = FREQ_FROM_NOTE (first_note + i + note_step); max_harmonic_hf = HARM_FROM_FREQ (freq, sample_rate); max_harmonic_hf = ACTUAL_HARM (max_harmonic_hf, wavetype); } if (max_harmonic_lf > MIN_EXTRA_HARM (wavetype)) { sample_count = max_harmonic_lf * 2; sample_count = sample_count < min_table_size ? min_table_size : sample_count; if (wavedata_add_table (w, sample_count, max_harmonic_lf)) { if (!quiet) fprintf (stderr, "Could not add wavetable to wavedata\n"); wavedata_cleanup (w); exit (-1); } } max_harmonic_lf = max_harmonic_hf; } if (!quiet) { fprintf (stderr, "\n"); fprintf (stderr, "Generating %s wave\n", wave_names[wavetype]); fprintf (stderr, " Sample Rate: %ld\n", sample_rate); if (gibbs > 0.0f) fprintf(stderr, " Gibbs' compensation factor: %+.2f\n\n", gibbs); } wavedata_generate_tables (w, wavetype, gibbs); if (!test) { if (wavedata_write (w, file, prefix)) { if (!quiet) fprintf (stderr, "Could not write to file %s!\n\n", filename); } else { if (!quiet) fprintf (stderr, "Written to file %s\n\n", filename); } } if (filename) free (filename); if (prefix) free (prefix); wavedata_cleanup (w); return 0; } blop-0.2.8/src/tracker_2025.so.c0000644000175000006270000003041210036226254011616 /* tracker.so.c - A LADSPA plugin to shape a signal in various ways Copyright (C) 2003 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define TRACKER_BASE_ID 2025 #define TRACKER_VARIANT_COUNT 2 #define TRACKER_GATE 0 #define TRACKER_HATTACK 1 #define TRACKER_HDECAY 2 #define TRACKER_LATTACK 3 #define TRACKER_LDECAY 4 #define TRACKER_INPUT 5 #define TRACKER_OUTPUT 6 LADSPA_Descriptor ** tracker_descriptors = 0; typedef struct { LADSPA_Data * gate; LADSPA_Data * hattack; LADSPA_Data * hdecay; LADSPA_Data * lattack; LADSPA_Data * ldecay; LADSPA_Data * input; LADSPA_Data * output; LADSPA_Data coeff; LADSPA_Data last_value; } Tracker; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < TRACKER_VARIANT_COUNT) return tracker_descriptors[index]; return 0; } void cleanupTracker (LADSPA_Handle instance) { free (instance); } void connectPortTracker (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Tracker * plugin = (Tracker *) instance; switch (port) { case TRACKER_GATE: plugin->gate = data; break; case TRACKER_HATTACK: plugin->hattack = data; break; case TRACKER_HDECAY: plugin->hdecay = data; break; case TRACKER_LATTACK: plugin->lattack = data; break; case TRACKER_LDECAY: plugin->ldecay = data; break; case TRACKER_INPUT: plugin->input = data; break; case TRACKER_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateTracker (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Tracker * plugin = (Tracker *) malloc (sizeof (Tracker)); plugin->coeff = 2.0f * M_PI / (LADSPA_Data) sample_rate; return (LADSPA_Handle) plugin; } void activateTracker (LADSPA_Handle instance) { Tracker * plugin = (Tracker *) instance; plugin->last_value = 0.0f; } void runTracker_gaaadaia_oa (LADSPA_Handle instance, unsigned long sample_count) { Tracker * plugin = (Tracker *) instance; /* Gate (array of floats of length sample_count) */ LADSPA_Data * gate = plugin->gate; /* Gate High Attack Rate (array of floats of length sample_count) */ LADSPA_Data * hattack = plugin->hattack; /* Gate High Decay Rate (array of floats of length sample_count) */ LADSPA_Data * hdecay = plugin->hdecay; /* Gate Low Attack Rate (array of floats of length sample_count) */ LADSPA_Data * lattack = plugin->lattack; /* Gate Low Decay Rate (array of floats of length sample_count) */ LADSPA_Data * ldecay = plugin->ldecay; /* Input (array of floats of length sample_count) */ LADSPA_Data * input = plugin->input; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; /* Instance Data */ LADSPA_Data coeff = plugin->coeff; LADSPA_Data last_value = plugin->last_value; LADSPA_Data rate; LADSPA_Data in; unsigned int s; for (s = 0; s < sample_count; s++) { in = input[s]; if (gate[s] > 0.0f) rate = in > last_value ? hattack[s] : hdecay[s]; else rate = in > last_value ? lattack[s] : ldecay[s]; rate = f_min (1.0f, rate * coeff); last_value = last_value * (1.0f - rate) + in * rate; output[s] = last_value; } plugin->last_value = last_value; } void runTracker_gaacdcia_oa (LADSPA_Handle instance, unsigned long sample_count) { Tracker * plugin = (Tracker *) instance; /* Gate (array of floats of length sample_count) */ LADSPA_Data * gate = plugin->gate; /* Gate High Attack Rate (float value) */ LADSPA_Data hattack = * (plugin->hattack); /* Gate High Decay Rate (float value) */ LADSPA_Data hdecay = * (plugin->hdecay); /* Gate Low Attack Rate (float value) */ LADSPA_Data lattack = * (plugin->lattack); /* Gate Low Decay Rate (float value) */ LADSPA_Data ldecay = * (plugin->ldecay); /* Input (array of floats of length sample_count) */ LADSPA_Data * input = plugin->input; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; /* Instance Data */ LADSPA_Data coeff = plugin->coeff; LADSPA_Data last_value = plugin->last_value; LADSPA_Data in; LADSPA_Data rate; unsigned int s; hattack = f_min (1.0f, hattack * coeff); hdecay = f_min (1.0f, hdecay * coeff); lattack = f_min (1.0f, lattack * coeff); ldecay = f_min (1.0f, ldecay * coeff); for (s = 0; s < sample_count; s++) { in = input[s]; if (gate[s] > 0.0f) rate = in > last_value ? hattack : hdecay; else rate = in > last_value ? lattack : ldecay; last_value = last_value * (1.0f - rate) + in * rate; output[s] = last_value; } plugin->last_value = last_value; } void _init (void) { static const char * labels[] = {"tracker_gaaadaia_oa", "tracker_gaacdcia_oa"}; static const char * names[] = {G_NOP("Signal Tracker (Audio Rates)"), G_NOP("Signal Tracker (Control Rates)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor gate_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor hattack_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor hdecay_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor lattack_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor ldecay_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor input_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runTracker_gaaadaia_oa, runTracker_gaacdcia_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif tracker_descriptors = (LADSPA_Descriptor **) calloc (TRACKER_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (tracker_descriptors) { for (i = 0; i < TRACKER_VARIANT_COUNT; i++) { tracker_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = tracker_descriptors[i]; if (descriptor) { descriptor->UniqueID = TRACKER_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 7; port_descriptors = (LADSPA_PortDescriptor *)calloc(7, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *)port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (7, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (7, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Gate */ port_descriptors[TRACKER_GATE] = gate_port_descriptors[i]; port_names[TRACKER_GATE] = G_("Gate"); port_range_hints[TRACKER_GATE].HintDescriptor = 0; /* Parameters for Gate High Attack Rate */ port_descriptors[TRACKER_HATTACK] = hattack_port_descriptors[i]; port_names[TRACKER_HATTACK] = G_("Attack Rate (Hz) when Gate High"); port_range_hints[TRACKER_HATTACK].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_100; port_range_hints[TRACKER_HATTACK].LowerBound = 1.0f / 48000.0f; port_range_hints[TRACKER_HATTACK].UpperBound = 0.5f; /* Parameters for Gate High Decay Rate */ port_descriptors[TRACKER_HDECAY] = hdecay_port_descriptors[i]; port_names[TRACKER_HDECAY] = G_("Decay Rate (Hz) when Gate High"); port_range_hints[TRACKER_HDECAY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_100; port_range_hints[TRACKER_HDECAY].LowerBound = 1.0f / 48000.0f; port_range_hints[TRACKER_HDECAY].UpperBound = 0.5f; /* Parameters for Gate Low Attack Rate */ port_descriptors[TRACKER_LATTACK] = lattack_port_descriptors[i]; port_names[TRACKER_LATTACK] = G_("Attack Rate (Hz) when Gate Low"); port_range_hints[TRACKER_LATTACK].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_100; port_range_hints[TRACKER_LATTACK].LowerBound = 1.0f / 48000.0f; port_range_hints[TRACKER_LATTACK].UpperBound = 0.5f; /* Parameters for Gate Low Decay Rate */ port_descriptors[TRACKER_LDECAY] = ldecay_port_descriptors[i]; port_names[TRACKER_LDECAY] = G_("Decay Rate (Hz) when Gate Low"); port_range_hints[TRACKER_LDECAY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_DEFAULT_100; port_range_hints[TRACKER_LDECAY].LowerBound = 1.0f / 48000.0f; port_range_hints[TRACKER_LDECAY].UpperBound = 0.5f; /* Parameters for Input */ port_descriptors[TRACKER_INPUT] = input_port_descriptors[i]; port_names[TRACKER_INPUT] = G_("Input"); port_range_hints[TRACKER_INPUT].HintDescriptor = 0; /* Parameters for Output */ port_descriptors[TRACKER_OUTPUT] = output_port_descriptors[i]; port_names[TRACKER_OUTPUT] = G_("Output"); port_range_hints[TRACKER_OUTPUT].HintDescriptor = 0; descriptor->activate = activateTracker; descriptor->cleanup = cleanupTracker; descriptor->connect_port = connectPortTracker; descriptor->deactivate = NULL; descriptor->instantiate = instantiateTracker; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (tracker_descriptors) { for (i = 0; i < TRACKER_VARIANT_COUNT; i++) { descriptor = tracker_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (tracker_descriptors); } } blop-0.2.8/src/product_1668.so.c0000644000175000006270000001740710025742214011665 /* product.so.c - A LADSPA plugin to calculate the product of two signals Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define PRODUCT_BASE_ID 1668 #define PRODUCT_VARIANT_COUNT 3 #define PRODUCT_INPUT1 0 #define PRODUCT_INPUT2 1 #define PRODUCT_OUTPUT 2 LADSPA_Descriptor ** product_descriptors = 0; typedef struct { LADSPA_Data * input1; LADSPA_Data * input2; LADSPA_Data * output; } Product; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < PRODUCT_VARIANT_COUNT) return product_descriptors[index]; return 0; } void cleanupProduct (LADSPA_Handle instance) { free (instance); } void connectPortProduct (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Product * plugin = (Product *) instance; switch (port) { case PRODUCT_INPUT1: plugin->input1 = data; break; case PRODUCT_INPUT2: plugin->input2 = data; break; case PRODUCT_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateProduct (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Product * plugin = (Product *) malloc (sizeof (Product)); return (LADSPA_Handle) plugin; } void runProduct_iaia_oa (LADSPA_Handle instance, unsigned long sample_count) { Product * plugin = (Product *) instance; /* First Input (array of floats of length sample_count) */ LADSPA_Data * input1 = plugin->input1; /* Second Input (array of floats of length sample_count) */ LADSPA_Data * input2 = plugin->input2; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data in1; LADSPA_Data in2; unsigned int s; for (s = 0; s < sample_count; s++) { in1 = input1[s]; in2 = input2[s]; output[s] = in1 * in2; } } void runProduct_iaic_oa (LADSPA_Handle instance, unsigned long sample_count) { Product * plugin = (Product *) instance; /* First Input (array of floats of length sample_count) */ LADSPA_Data *input1 = plugin->input1; /* Second Input (float value) */ LADSPA_Data input2 = * (plugin->input2); /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data in1; unsigned int s; for (s = 0; s < sample_count; s++) { in1 = input1[s]; output[s] = in1 * input2; } } void runProduct_icic_oc (LADSPA_Handle instance, unsigned long sample_count) { Product * plugin = (Product *) instance; /* First Input (float value) */ LADSPA_Data input1 = * (plugin->input1); /* Second Input (float value) */ LADSPA_Data input2 = * (plugin->input2); /* Output (pointer to float value) */ LADSPA_Data * output = plugin->output; output[0] = input1 * input2; } void _init (void) { static const char * labels[] = {"product_iaia_oa", "product_iaic_oa", "product_icic_oc"}; static const char * names[] = {G_NOP("Signal Product (IAIA)"), G_NOP("Signal Product (IAIC)"), G_NOP("Signal Product (ICIC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor input1_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor input2_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runProduct_iaia_oa, runProduct_iaic_oa, runProduct_icic_oc}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif product_descriptors = (LADSPA_Descriptor **) calloc (PRODUCT_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (product_descriptors) { for (i = 0; i < PRODUCT_VARIANT_COUNT; i++) { product_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = product_descriptors[i]; if (descriptor) { descriptor->UniqueID = PRODUCT_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for First Input */ port_descriptors[PRODUCT_INPUT1] = input1_port_descriptors[i]; port_names[PRODUCT_INPUT1] = G_("First Input"); port_range_hints[PRODUCT_INPUT1].HintDescriptor = 0; /* Parameters for Second Input */ port_descriptors[PRODUCT_INPUT2] = input2_port_descriptors[i]; port_names[PRODUCT_INPUT2] = G_("Second Input"); port_range_hints[PRODUCT_INPUT2].HintDescriptor = 0; /* Parameters for Output */ port_descriptors[PRODUCT_OUTPUT] = output_port_descriptors[i]; port_names[PRODUCT_OUTPUT] = G_("Product Output"); port_range_hints[PRODUCT_OUTPUT].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupProduct; descriptor->connect_port = connectPortProduct; descriptor->deactivate = NULL; descriptor->instantiate = instantiateProduct; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (product_descriptors) { for (i = 0; i < PRODUCT_VARIANT_COUNT; i++) { descriptor = product_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (product_descriptors); } } blop-0.2.8/src/Makefile.am0000644000175000006270000001170610063535733010775 ## Process this file with automake to produce Makefile.in SUBDIRS = include AM_CPPFLAGS = -I$(ladspa_prefix)/include -Iinclude -I. \ -DLOCALEDIR=\"$(datadir)/locale\" LINK = $(COMPILE) -nostartfiles -shared -lc -o $@ CLEANFILES = parabola_1649_data.so.c \ sawtooth_1641_data.so.c \ square_1643_data.so.c MAINTAINERCLEANFILES = Makefile.in ## These are really libs, eh? I have yet to try libtool. pkgbin_PROGRAMS = adsr_1653.so adsr_1680.so amp_1654.so branch_1673.so \ dahdsr_2021.so difference_2030.so fmod_1656.so \ interpolator_1660.so lp4pole_1671.so \ product_1668.so pulse_1645.so quantiser20_2027.so \ quantiser50_2028.so quantiser100_2029.so random_1661.so \ ratio_2034.so sawtooth_1641.so sequencer64_1675.so \ sequencer32_1676.so sequencer16_1677.so square_1643.so \ sum_1665.so sync_pulse_2023.so sync_square_1678.so \ tracker_2025.so triangle_1649.so wavedata_PROGRAMS = sawtooth_1641_data.so \ square_1643_data.so \ parabola_1649_data.so nodist_sawtooth_1641_data_so_SOURCES = sawtooth_1641_data.so.c nodist_square_1643_data_so_SOURCES = square_1643_data.so.c nodist_parabola_1649_data_so_SOURCES = parabola_1649_data.so.c pkgbindir = $(ladspa_plugin_dir) wavedatadir = $(ladspa_plugin_dir)/$(wavedata_subdir) noinst_PROGRAMS = wavegen wavegen_SOURCES = wavegen.c wdatutil.c wavegen_DEPENDENCIES = include/wdatutil.h include/common.h wavegen_LINK = $(COMPILE) -lc -lm -o $@ ## Need to specify sources so that make dist will include them lp4pole_1671_so_SOURCES = lp4pole_1671.so.c lp4pole_filter.c pulse_1645_so_SOURCES = pulse_1645.so.c wavedata.c quantiser20_2027_so_SOURCES = quantiser.so.c quantiser50_2028_so_SOURCES = quantiser.so.c quantiser100_2029_so_SOURCES = quantiser.so.c sawtooth_1641_so_SOURCES = sawtooth_1641.so.c wavedata.c sequencer64_1675_so_SOURCES = sequencer.so.c sequencer32_1676_so_SOURCES = sequencer.so.c sequencer16_1677_so_SOURCES = sequencer.so.c square_1643_so_SOURCES = square_1643.so.c wavedata.c triangle_1649_so_SOURCES = triangle_1649.so.c wavedata.c adsr_1653_so_DEPENDENCIES = include/common.h adsr_1680_so_DEPENDENCIES = include/common.h amp_1654_so_DEPENDENCIES = include/math_func.h dahdsr_2021_so_DEPENDENCIES = include/common.h fmod_1656_so_DEPENDENCIES = include/math_func.h lp4pole_1671_so_DEPENDENCIES = include/lp4pole_filter.h include/common.h pulse_1645_so_DEPENDENCIES = include/wavedata.h quantiser20_2027_so_DEPENDENCIES = include/common.h include/math_func.h quantiser50_2028_so_DEPENDENCIES = include/common.h include/math_func.h quantiser100_2029_so_DEPENDENCIES = include/common.h include/math_func.h random_1661_so_DEPENDENCIES = include/common.h include/math_func.h ratio_2034_so_DEPENDENCIES = include/common.h include/math_func.h sawtooth_1641_so_DEPENDENCIES = include/wavedata.h sequencer16_1677_so_DEPENDENCIES = include/common.h include/math_func.h sequencer32_1676_so_DEPENDENCIES = include/common.h include/math_func.h sequencer64_1675_so_DEPENDENCIES = include/common.h include/math_func.h square_1643_so_DEPENDENCIES = include/wavedata.h sync_pulse_2023_so_DEPENDENCIES = include/common.h tracker_2025_so_DEPENDENCIES = include/common.h triangle_1649_so_DEPENDENCIES = include/wavedata.h clean: rm -f *.so *.so.o wavedata.o: wavedata.c include/wavedata.h include/interpolate.h \ include/math_func.h include/common.h $(COMPILE) -DWAVEDATA_SUBDIR=\"$(wavedata_subdir)\" -c wavedata.c sequencer64_1675.so$(EXEEXT): sequencer.so.c $(LINK) -DSEQUENCER_MAX_INPUTS=64 -DSEQUENCER_BASE_ID=1675 sequencer.so.c sequencer32_1676.so$(EXEEXT): sequencer.so.c $(LINK) -DSEQUENCER_MAX_INPUTS=32 -DSEQUENCER_BASE_ID=1676 sequencer.so.c sequencer16_1677.so$(EXEEXT): sequencer.so.c $(LINK) -DSEQUENCER_MAX_INPUTS=16 -DSEQUENCER_BASE_ID=1677 sequencer.so.c ## Remove optimisation, as -O1 or greater will cause quantiser to fail. I Don't Know Why. quantiser20_2027.so$(EXEEXT): quantiser.so.c $(LINK) -O0 -DQUANTISER_MAX_INPUTS=20 -DQUANTISER_BASE_ID=2027 -lm quantiser.so.c quantiser50_2028.so$(EXEEXT): quantiser.so.c $(LINK) -O0 -DQUANTISER_MAX_INPUTS=50 -DQUANTISER_BASE_ID=2028 -lm quantiser.so.c quantiser100_2029.so$(EXEEXT): quantiser.so.c $(LINK) -O0 -DQUANTISER_MAX_INPUTS=100 -DQUANTISER_BASE_ID=2029 -lm quantiser.so.c parabola_1649_data.so.c: wavegen ./wavegen -r $(sample_rate) -f $(first_note) -s $(note_step) \ -m $(min_table_size) -g $(gibbs) \ -w parabola -p parabola -o parabola_1649_data.so.c sawtooth_1641_data.so.c: wavegen ./wavegen -r $(sample_rate) -f $(first_note) -s $(note_step) \ -m $(min_table_size) -g $(gibbs) \ -w saw -p sawtooth -o sawtooth_1641_data.so.c square_1643_data.so.c: wavegen ./wavegen -r $(sample_rate) -f $(first_note) -s $(note_step) \ -m $(min_table_size) -g $(gibbs) \ -w square -p square -o square_1643_data.so.c blop-0.2.8/src/Makefile.in0000644000175000006270000010326510063536500011001 # Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = .. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ AMTAR = @AMTAR@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ DEPDIR = @DEPDIR@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ HAVE_LIB = @HAVE_LIB@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ LIB = @LIB@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LTLIB = @LTLIB@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ MAINT = @MAINT@ MKINSTALLDIRS = @MKINSTALLDIRS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ first_note = @first_note@ gibbs = @gibbs@ install_sh = @install_sh@ ladspa_plugin_dir = @ladspa_plugin_dir@ ladspa_prefix = @ladspa_prefix@ min_table_size = @min_table_size@ note_step = @note_step@ sample_rate = @sample_rate@ wavedata_subdir = @wavedata_subdir@ SUBDIRS = include AM_CPPFLAGS = -I$(ladspa_prefix)/include -Iinclude -I. \ -DLOCALEDIR=\"$(datadir)/locale\" LINK = $(COMPILE) -nostartfiles -shared -lc -o $@ CLEANFILES = parabola_1649_data.so.c \ sawtooth_1641_data.so.c \ square_1643_data.so.c MAINTAINERCLEANFILES = Makefile.in pkgbin_PROGRAMS = adsr_1653.so adsr_1680.so amp_1654.so branch_1673.so \ dahdsr_2021.so difference_2030.so fmod_1656.so \ interpolator_1660.so lp4pole_1671.so \ product_1668.so pulse_1645.so quantiser20_2027.so \ quantiser50_2028.so quantiser100_2029.so random_1661.so \ ratio_2034.so sawtooth_1641.so sequencer64_1675.so \ sequencer32_1676.so sequencer16_1677.so square_1643.so \ sum_1665.so sync_pulse_2023.so sync_square_1678.so \ tracker_2025.so triangle_1649.so wavedata_PROGRAMS = sawtooth_1641_data.so \ square_1643_data.so \ parabola_1649_data.so nodist_sawtooth_1641_data_so_SOURCES = sawtooth_1641_data.so.c nodist_square_1643_data_so_SOURCES = square_1643_data.so.c nodist_parabola_1649_data_so_SOURCES = parabola_1649_data.so.c pkgbindir = $(ladspa_plugin_dir) wavedatadir = $(ladspa_plugin_dir)/$(wavedata_subdir) noinst_PROGRAMS = wavegen wavegen_SOURCES = wavegen.c wdatutil.c wavegen_DEPENDENCIES = include/wdatutil.h include/common.h wavegen_LINK = $(COMPILE) -lc -lm -o $@ lp4pole_1671_so_SOURCES = lp4pole_1671.so.c lp4pole_filter.c pulse_1645_so_SOURCES = pulse_1645.so.c wavedata.c quantiser20_2027_so_SOURCES = quantiser.so.c quantiser50_2028_so_SOURCES = quantiser.so.c quantiser100_2029_so_SOURCES = quantiser.so.c sawtooth_1641_so_SOURCES = sawtooth_1641.so.c wavedata.c sequencer64_1675_so_SOURCES = sequencer.so.c sequencer32_1676_so_SOURCES = sequencer.so.c sequencer16_1677_so_SOURCES = sequencer.so.c square_1643_so_SOURCES = square_1643.so.c wavedata.c triangle_1649_so_SOURCES = triangle_1649.so.c wavedata.c adsr_1653_so_DEPENDENCIES = include/common.h adsr_1680_so_DEPENDENCIES = include/common.h amp_1654_so_DEPENDENCIES = include/math_func.h dahdsr_2021_so_DEPENDENCIES = include/common.h fmod_1656_so_DEPENDENCIES = include/math_func.h lp4pole_1671_so_DEPENDENCIES = include/lp4pole_filter.h include/common.h pulse_1645_so_DEPENDENCIES = include/wavedata.h quantiser20_2027_so_DEPENDENCIES = include/common.h include/math_func.h quantiser50_2028_so_DEPENDENCIES = include/common.h include/math_func.h quantiser100_2029_so_DEPENDENCIES = include/common.h include/math_func.h random_1661_so_DEPENDENCIES = include/common.h include/math_func.h ratio_2034_so_DEPENDENCIES = include/common.h include/math_func.h sawtooth_1641_so_DEPENDENCIES = include/wavedata.h sequencer16_1677_so_DEPENDENCIES = include/common.h include/math_func.h sequencer32_1676_so_DEPENDENCIES = include/common.h include/math_func.h sequencer64_1675_so_DEPENDENCIES = include/common.h include/math_func.h square_1643_so_DEPENDENCIES = include/wavedata.h sync_pulse_2023_so_DEPENDENCIES = include/common.h tracker_2025_so_DEPENDENCIES = include/common.h triangle_1649_so_DEPENDENCIES = include/wavedata.h subdir = src mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = noinst_PROGRAMS = wavegen$(EXEEXT) pkgbin_PROGRAMS = adsr_1653.so$(EXEEXT) adsr_1680.so$(EXEEXT) \ amp_1654.so$(EXEEXT) branch_1673.so$(EXEEXT) \ dahdsr_2021.so$(EXEEXT) difference_2030.so$(EXEEXT) \ fmod_1656.so$(EXEEXT) interpolator_1660.so$(EXEEXT) \ lp4pole_1671.so$(EXEEXT) product_1668.so$(EXEEXT) \ pulse_1645.so$(EXEEXT) quantiser20_2027.so$(EXEEXT) \ quantiser50_2028.so$(EXEEXT) quantiser100_2029.so$(EXEEXT) \ random_1661.so$(EXEEXT) ratio_2034.so$(EXEEXT) \ sawtooth_1641.so$(EXEEXT) sequencer64_1675.so$(EXEEXT) \ sequencer32_1676.so$(EXEEXT) sequencer16_1677.so$(EXEEXT) \ square_1643.so$(EXEEXT) sum_1665.so$(EXEEXT) \ sync_pulse_2023.so$(EXEEXT) sync_square_1678.so$(EXEEXT) \ tracker_2025.so$(EXEEXT) triangle_1649.so$(EXEEXT) wavedata_PROGRAMS = sawtooth_1641_data.so$(EXEEXT) \ square_1643_data.so$(EXEEXT) parabola_1649_data.so$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) $(pkgbin_PROGRAMS) $(wavedata_PROGRAMS) adsr_1653_so_SOURCES = adsr_1653.so.c adsr_1653_so_OBJECTS = adsr_1653.so.$(OBJEXT) adsr_1653_so_LDADD = $(LDADD) adsr_1653_so_LDFLAGS = adsr_1680_so_SOURCES = adsr_1680.so.c adsr_1680_so_OBJECTS = adsr_1680.so.$(OBJEXT) adsr_1680_so_LDADD = $(LDADD) adsr_1680_so_LDFLAGS = amp_1654_so_SOURCES = amp_1654.so.c amp_1654_so_OBJECTS = amp_1654.so.$(OBJEXT) amp_1654_so_LDADD = $(LDADD) amp_1654_so_LDFLAGS = branch_1673_so_SOURCES = branch_1673.so.c branch_1673_so_OBJECTS = branch_1673.so.$(OBJEXT) branch_1673_so_LDADD = $(LDADD) branch_1673_so_DEPENDENCIES = branch_1673_so_LDFLAGS = dahdsr_2021_so_SOURCES = dahdsr_2021.so.c dahdsr_2021_so_OBJECTS = dahdsr_2021.so.$(OBJEXT) dahdsr_2021_so_LDADD = $(LDADD) dahdsr_2021_so_LDFLAGS = difference_2030_so_SOURCES = difference_2030.so.c difference_2030_so_OBJECTS = difference_2030.so.$(OBJEXT) difference_2030_so_LDADD = $(LDADD) difference_2030_so_DEPENDENCIES = difference_2030_so_LDFLAGS = fmod_1656_so_SOURCES = fmod_1656.so.c fmod_1656_so_OBJECTS = fmod_1656.so.$(OBJEXT) fmod_1656_so_LDADD = $(LDADD) fmod_1656_so_LDFLAGS = interpolator_1660_so_SOURCES = interpolator_1660.so.c interpolator_1660_so_OBJECTS = interpolator_1660.so.$(OBJEXT) interpolator_1660_so_LDADD = $(LDADD) interpolator_1660_so_DEPENDENCIES = interpolator_1660_so_LDFLAGS = am_lp4pole_1671_so_OBJECTS = lp4pole_1671.so.$(OBJEXT) \ lp4pole_filter.$(OBJEXT) lp4pole_1671_so_OBJECTS = $(am_lp4pole_1671_so_OBJECTS) lp4pole_1671_so_LDADD = $(LDADD) lp4pole_1671_so_LDFLAGS = nodist_parabola_1649_data_so_OBJECTS = parabola_1649_data.so.$(OBJEXT) parabola_1649_data_so_OBJECTS = $(nodist_parabola_1649_data_so_OBJECTS) parabola_1649_data_so_LDADD = $(LDADD) parabola_1649_data_so_DEPENDENCIES = parabola_1649_data_so_LDFLAGS = product_1668_so_SOURCES = product_1668.so.c product_1668_so_OBJECTS = product_1668.so.$(OBJEXT) product_1668_so_LDADD = $(LDADD) product_1668_so_DEPENDENCIES = product_1668_so_LDFLAGS = am_pulse_1645_so_OBJECTS = pulse_1645.so.$(OBJEXT) wavedata.$(OBJEXT) pulse_1645_so_OBJECTS = $(am_pulse_1645_so_OBJECTS) pulse_1645_so_LDADD = $(LDADD) pulse_1645_so_LDFLAGS = am_quantiser100_2029_so_OBJECTS = quantiser.so.$(OBJEXT) quantiser100_2029_so_OBJECTS = $(am_quantiser100_2029_so_OBJECTS) quantiser100_2029_so_LDADD = $(LDADD) quantiser100_2029_so_LDFLAGS = am_quantiser20_2027_so_OBJECTS = quantiser.so.$(OBJEXT) quantiser20_2027_so_OBJECTS = $(am_quantiser20_2027_so_OBJECTS) quantiser20_2027_so_LDADD = $(LDADD) quantiser20_2027_so_LDFLAGS = am_quantiser50_2028_so_OBJECTS = quantiser.so.$(OBJEXT) quantiser50_2028_so_OBJECTS = $(am_quantiser50_2028_so_OBJECTS) quantiser50_2028_so_LDADD = $(LDADD) quantiser50_2028_so_LDFLAGS = random_1661_so_SOURCES = random_1661.so.c random_1661_so_OBJECTS = random_1661.so.$(OBJEXT) random_1661_so_LDADD = $(LDADD) random_1661_so_LDFLAGS = ratio_2034_so_SOURCES = ratio_2034.so.c ratio_2034_so_OBJECTS = ratio_2034.so.$(OBJEXT) ratio_2034_so_LDADD = $(LDADD) ratio_2034_so_LDFLAGS = am_sawtooth_1641_so_OBJECTS = sawtooth_1641.so.$(OBJEXT) \ wavedata.$(OBJEXT) sawtooth_1641_so_OBJECTS = $(am_sawtooth_1641_so_OBJECTS) sawtooth_1641_so_LDADD = $(LDADD) sawtooth_1641_so_LDFLAGS = nodist_sawtooth_1641_data_so_OBJECTS = sawtooth_1641_data.so.$(OBJEXT) sawtooth_1641_data_so_OBJECTS = $(nodist_sawtooth_1641_data_so_OBJECTS) sawtooth_1641_data_so_LDADD = $(LDADD) sawtooth_1641_data_so_DEPENDENCIES = sawtooth_1641_data_so_LDFLAGS = am_sequencer16_1677_so_OBJECTS = sequencer.so.$(OBJEXT) sequencer16_1677_so_OBJECTS = $(am_sequencer16_1677_so_OBJECTS) sequencer16_1677_so_LDADD = $(LDADD) sequencer16_1677_so_LDFLAGS = am_sequencer32_1676_so_OBJECTS = sequencer.so.$(OBJEXT) sequencer32_1676_so_OBJECTS = $(am_sequencer32_1676_so_OBJECTS) sequencer32_1676_so_LDADD = $(LDADD) sequencer32_1676_so_LDFLAGS = am_sequencer64_1675_so_OBJECTS = sequencer.so.$(OBJEXT) sequencer64_1675_so_OBJECTS = $(am_sequencer64_1675_so_OBJECTS) sequencer64_1675_so_LDADD = $(LDADD) sequencer64_1675_so_LDFLAGS = am_square_1643_so_OBJECTS = square_1643.so.$(OBJEXT) wavedata.$(OBJEXT) square_1643_so_OBJECTS = $(am_square_1643_so_OBJECTS) square_1643_so_LDADD = $(LDADD) square_1643_so_LDFLAGS = nodist_square_1643_data_so_OBJECTS = square_1643_data.so.$(OBJEXT) square_1643_data_so_OBJECTS = $(nodist_square_1643_data_so_OBJECTS) square_1643_data_so_LDADD = $(LDADD) square_1643_data_so_DEPENDENCIES = square_1643_data_so_LDFLAGS = sum_1665_so_SOURCES = sum_1665.so.c sum_1665_so_OBJECTS = sum_1665.so.$(OBJEXT) sum_1665_so_LDADD = $(LDADD) sum_1665_so_DEPENDENCIES = sum_1665_so_LDFLAGS = sync_pulse_2023_so_SOURCES = sync_pulse_2023.so.c sync_pulse_2023_so_OBJECTS = sync_pulse_2023.so.$(OBJEXT) sync_pulse_2023_so_LDADD = $(LDADD) sync_pulse_2023_so_LDFLAGS = sync_square_1678_so_SOURCES = sync_square_1678.so.c sync_square_1678_so_OBJECTS = sync_square_1678.so.$(OBJEXT) sync_square_1678_so_LDADD = $(LDADD) sync_square_1678_so_DEPENDENCIES = sync_square_1678_so_LDFLAGS = tracker_2025_so_SOURCES = tracker_2025.so.c tracker_2025_so_OBJECTS = tracker_2025.so.$(OBJEXT) tracker_2025_so_LDADD = $(LDADD) tracker_2025_so_LDFLAGS = am_triangle_1649_so_OBJECTS = triangle_1649.so.$(OBJEXT) \ wavedata.$(OBJEXT) triangle_1649_so_OBJECTS = $(am_triangle_1649_so_OBJECTS) triangle_1649_so_LDADD = $(LDADD) triangle_1649_so_LDFLAGS = am_wavegen_OBJECTS = wavegen.$(OBJEXT) wdatutil.$(OBJEXT) wavegen_OBJECTS = $(am_wavegen_OBJECTS) wavegen_LDADD = $(LDADD) wavegen_LDFLAGS = DEFS = @DEFS@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir) CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ depcomp = $(SHELL) $(top_srcdir)/depcomp @AMDEP_TRUE@DEP_FILES = $(DEPDIR)/adsr_1653.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/adsr_1680.so.Po $(DEPDIR)/amp_1654.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/branch_1673.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/dahdsr_2021.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/difference_2030.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/fmod_1656.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/interpolator_1660.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/lp4pole_1671.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/lp4pole_filter.Po \ @AMDEP_TRUE@ $(DEPDIR)/parabola_1649_data.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/product_1668.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/pulse_1645.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/quantiser.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/random_1661.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/ratio_2034.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/sawtooth_1641.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/sawtooth_1641_data.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/sequencer.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/square_1643.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/square_1643_data.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/sum_1665.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/sync_pulse_2023.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/sync_square_1678.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/tracker_2025.so.Po \ @AMDEP_TRUE@ $(DEPDIR)/triangle_1649.so.Po $(DEPDIR)/wavedata.Po \ @AMDEP_TRUE@ $(DEPDIR)/wavegen.Po $(DEPDIR)/wdatutil.Po COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) CFLAGS = @CFLAGS@ DIST_SOURCES = adsr_1653.so.c adsr_1680.so.c amp_1654.so.c \ branch_1673.so.c dahdsr_2021.so.c difference_2030.so.c \ fmod_1656.so.c interpolator_1660.so.c \ $(lp4pole_1671_so_SOURCES) product_1668.so.c \ $(pulse_1645_so_SOURCES) $(quantiser100_2029_so_SOURCES) \ $(quantiser20_2027_so_SOURCES) $(quantiser50_2028_so_SOURCES) \ random_1661.so.c ratio_2034.so.c $(sawtooth_1641_so_SOURCES) \ $(sequencer16_1677_so_SOURCES) $(sequencer32_1676_so_SOURCES) \ $(sequencer64_1675_so_SOURCES) $(square_1643_so_SOURCES) \ sum_1665.so.c sync_pulse_2023.so.c sync_square_1678.so.c \ tracker_2025.so.c $(triangle_1649_so_SOURCES) \ $(wavegen_SOURCES) RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ install-exec-recursive installdirs-recursive install-recursive \ uninstall-recursive check-recursive installcheck-recursive DIST_COMMON = Makefile.am Makefile.in DIST_SUBDIRS = $(SUBDIRS) SOURCES = adsr_1653.so.c adsr_1680.so.c amp_1654.so.c branch_1673.so.c dahdsr_2021.so.c difference_2030.so.c fmod_1656.so.c interpolator_1660.so.c $(lp4pole_1671_so_SOURCES) $(nodist_parabola_1649_data_so_SOURCES) product_1668.so.c $(pulse_1645_so_SOURCES) $(quantiser100_2029_so_SOURCES) $(quantiser20_2027_so_SOURCES) $(quantiser50_2028_so_SOURCES) random_1661.so.c ratio_2034.so.c $(sawtooth_1641_so_SOURCES) $(nodist_sawtooth_1641_data_so_SOURCES) $(sequencer16_1677_so_SOURCES) $(sequencer32_1676_so_SOURCES) $(sequencer64_1675_so_SOURCES) $(square_1643_so_SOURCES) $(nodist_square_1643_data_so_SOURCES) sum_1665.so.c sync_pulse_2023.so.c sync_square_1678.so.c tracker_2025.so.c $(triangle_1649_so_SOURCES) $(wavegen_SOURCES) all: all-recursive .SUFFIXES: .SUFFIXES: .c .o .obj $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status clean-noinstPROGRAMS: -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS) install-pkgbinPROGRAMS: $(pkgbin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(pkgbindir) @list='$(pkgbin_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkgbindir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(pkgbindir)/$$f; \ else :; fi; \ done uninstall-pkgbinPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(pkgbin_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(pkgbindir)/$$f"; \ rm -f $(DESTDIR)$(pkgbindir)/$$f; \ done clean-pkgbinPROGRAMS: -test -z "$(pkgbin_PROGRAMS)" || rm -f $(pkgbin_PROGRAMS) install-wavedataPROGRAMS: $(wavedata_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(wavedatadir) @list='$(wavedata_PROGRAMS)'; for p in $$list; do \ p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ if test -f $$p \ ; then \ f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(wavedatadir)/$$f"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$p $(DESTDIR)$(wavedatadir)/$$f; \ else :; fi; \ done uninstall-wavedataPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(wavedata_PROGRAMS)'; for p in $$list; do \ f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(wavedatadir)/$$f"; \ rm -f $(DESTDIR)$(wavedatadir)/$$f; \ done clean-wavedataPROGRAMS: -test -z "$(wavedata_PROGRAMS)" || rm -f $(wavedata_PROGRAMS) adsr_1653.so$(EXEEXT): $(adsr_1653_so_OBJECTS) $(adsr_1653_so_DEPENDENCIES) @rm -f adsr_1653.so$(EXEEXT) $(LINK) $(adsr_1653_so_LDFLAGS) $(adsr_1653_so_OBJECTS) $(adsr_1653_so_LDADD) $(LIBS) adsr_1680.so$(EXEEXT): $(adsr_1680_so_OBJECTS) $(adsr_1680_so_DEPENDENCIES) @rm -f adsr_1680.so$(EXEEXT) $(LINK) $(adsr_1680_so_LDFLAGS) $(adsr_1680_so_OBJECTS) $(adsr_1680_so_LDADD) $(LIBS) amp_1654.so$(EXEEXT): $(amp_1654_so_OBJECTS) $(amp_1654_so_DEPENDENCIES) @rm -f amp_1654.so$(EXEEXT) $(LINK) $(amp_1654_so_LDFLAGS) $(amp_1654_so_OBJECTS) $(amp_1654_so_LDADD) $(LIBS) branch_1673.so$(EXEEXT): $(branch_1673_so_OBJECTS) $(branch_1673_so_DEPENDENCIES) @rm -f branch_1673.so$(EXEEXT) $(LINK) $(branch_1673_so_LDFLAGS) $(branch_1673_so_OBJECTS) $(branch_1673_so_LDADD) $(LIBS) dahdsr_2021.so$(EXEEXT): $(dahdsr_2021_so_OBJECTS) $(dahdsr_2021_so_DEPENDENCIES) @rm -f dahdsr_2021.so$(EXEEXT) $(LINK) $(dahdsr_2021_so_LDFLAGS) $(dahdsr_2021_so_OBJECTS) $(dahdsr_2021_so_LDADD) $(LIBS) difference_2030.so$(EXEEXT): $(difference_2030_so_OBJECTS) $(difference_2030_so_DEPENDENCIES) @rm -f difference_2030.so$(EXEEXT) $(LINK) $(difference_2030_so_LDFLAGS) $(difference_2030_so_OBJECTS) $(difference_2030_so_LDADD) $(LIBS) fmod_1656.so$(EXEEXT): $(fmod_1656_so_OBJECTS) $(fmod_1656_so_DEPENDENCIES) @rm -f fmod_1656.so$(EXEEXT) $(LINK) $(fmod_1656_so_LDFLAGS) $(fmod_1656_so_OBJECTS) $(fmod_1656_so_LDADD) $(LIBS) interpolator_1660.so$(EXEEXT): $(interpolator_1660_so_OBJECTS) $(interpolator_1660_so_DEPENDENCIES) @rm -f interpolator_1660.so$(EXEEXT) $(LINK) $(interpolator_1660_so_LDFLAGS) $(interpolator_1660_so_OBJECTS) $(interpolator_1660_so_LDADD) $(LIBS) lp4pole_1671.so$(EXEEXT): $(lp4pole_1671_so_OBJECTS) $(lp4pole_1671_so_DEPENDENCIES) @rm -f lp4pole_1671.so$(EXEEXT) $(LINK) $(lp4pole_1671_so_LDFLAGS) $(lp4pole_1671_so_OBJECTS) $(lp4pole_1671_so_LDADD) $(LIBS) parabola_1649_data.so$(EXEEXT): $(parabola_1649_data_so_OBJECTS) $(parabola_1649_data_so_DEPENDENCIES) @rm -f parabola_1649_data.so$(EXEEXT) $(LINK) $(parabola_1649_data_so_LDFLAGS) $(parabola_1649_data_so_OBJECTS) $(parabola_1649_data_so_LDADD) $(LIBS) product_1668.so$(EXEEXT): $(product_1668_so_OBJECTS) $(product_1668_so_DEPENDENCIES) @rm -f product_1668.so$(EXEEXT) $(LINK) $(product_1668_so_LDFLAGS) $(product_1668_so_OBJECTS) $(product_1668_so_LDADD) $(LIBS) pulse_1645.so$(EXEEXT): $(pulse_1645_so_OBJECTS) $(pulse_1645_so_DEPENDENCIES) @rm -f pulse_1645.so$(EXEEXT) $(LINK) $(pulse_1645_so_LDFLAGS) $(pulse_1645_so_OBJECTS) $(pulse_1645_so_LDADD) $(LIBS) random_1661.so$(EXEEXT): $(random_1661_so_OBJECTS) $(random_1661_so_DEPENDENCIES) @rm -f random_1661.so$(EXEEXT) $(LINK) $(random_1661_so_LDFLAGS) $(random_1661_so_OBJECTS) $(random_1661_so_LDADD) $(LIBS) ratio_2034.so$(EXEEXT): $(ratio_2034_so_OBJECTS) $(ratio_2034_so_DEPENDENCIES) @rm -f ratio_2034.so$(EXEEXT) $(LINK) $(ratio_2034_so_LDFLAGS) $(ratio_2034_so_OBJECTS) $(ratio_2034_so_LDADD) $(LIBS) sawtooth_1641.so$(EXEEXT): $(sawtooth_1641_so_OBJECTS) $(sawtooth_1641_so_DEPENDENCIES) @rm -f sawtooth_1641.so$(EXEEXT) $(LINK) $(sawtooth_1641_so_LDFLAGS) $(sawtooth_1641_so_OBJECTS) $(sawtooth_1641_so_LDADD) $(LIBS) sawtooth_1641_data.so$(EXEEXT): $(sawtooth_1641_data_so_OBJECTS) $(sawtooth_1641_data_so_DEPENDENCIES) @rm -f sawtooth_1641_data.so$(EXEEXT) $(LINK) $(sawtooth_1641_data_so_LDFLAGS) $(sawtooth_1641_data_so_OBJECTS) $(sawtooth_1641_data_so_LDADD) $(LIBS) square_1643.so$(EXEEXT): $(square_1643_so_OBJECTS) $(square_1643_so_DEPENDENCIES) @rm -f square_1643.so$(EXEEXT) $(LINK) $(square_1643_so_LDFLAGS) $(square_1643_so_OBJECTS) $(square_1643_so_LDADD) $(LIBS) square_1643_data.so$(EXEEXT): $(square_1643_data_so_OBJECTS) $(square_1643_data_so_DEPENDENCIES) @rm -f square_1643_data.so$(EXEEXT) $(LINK) $(square_1643_data_so_LDFLAGS) $(square_1643_data_so_OBJECTS) $(square_1643_data_so_LDADD) $(LIBS) sum_1665.so$(EXEEXT): $(sum_1665_so_OBJECTS) $(sum_1665_so_DEPENDENCIES) @rm -f sum_1665.so$(EXEEXT) $(LINK) $(sum_1665_so_LDFLAGS) $(sum_1665_so_OBJECTS) $(sum_1665_so_LDADD) $(LIBS) sync_pulse_2023.so$(EXEEXT): $(sync_pulse_2023_so_OBJECTS) $(sync_pulse_2023_so_DEPENDENCIES) @rm -f sync_pulse_2023.so$(EXEEXT) $(LINK) $(sync_pulse_2023_so_LDFLAGS) $(sync_pulse_2023_so_OBJECTS) $(sync_pulse_2023_so_LDADD) $(LIBS) sync_square_1678.so$(EXEEXT): $(sync_square_1678_so_OBJECTS) $(sync_square_1678_so_DEPENDENCIES) @rm -f sync_square_1678.so$(EXEEXT) $(LINK) $(sync_square_1678_so_LDFLAGS) $(sync_square_1678_so_OBJECTS) $(sync_square_1678_so_LDADD) $(LIBS) tracker_2025.so$(EXEEXT): $(tracker_2025_so_OBJECTS) $(tracker_2025_so_DEPENDENCIES) @rm -f tracker_2025.so$(EXEEXT) $(LINK) $(tracker_2025_so_LDFLAGS) $(tracker_2025_so_OBJECTS) $(tracker_2025_so_LDADD) $(LIBS) triangle_1649.so$(EXEEXT): $(triangle_1649_so_OBJECTS) $(triangle_1649_so_DEPENDENCIES) @rm -f triangle_1649.so$(EXEEXT) $(LINK) $(triangle_1649_so_LDFLAGS) $(triangle_1649_so_OBJECTS) $(triangle_1649_so_LDADD) $(LIBS) wavegen$(EXEEXT): $(wavegen_OBJECTS) $(wavegen_DEPENDENCIES) @rm -f wavegen$(EXEEXT) $(wavegen_LINK) $(wavegen_LDFLAGS) $(wavegen_OBJECTS) $(wavegen_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) core *.core distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/adsr_1653.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/adsr_1680.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/amp_1654.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/branch_1673.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/dahdsr_2021.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/difference_2030.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/fmod_1656.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/interpolator_1660.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lp4pole_1671.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/lp4pole_filter.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/parabola_1649_data.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/product_1668.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/pulse_1645.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/quantiser.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/random_1661.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ratio_2034.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sawtooth_1641.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sawtooth_1641_data.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sequencer.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/square_1643.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/square_1643_data.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sum_1665.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sync_pulse_2023.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/sync_square_1678.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/tracker_2025.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/triangle_1649.so.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/wavedata.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/wavegen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/wdatutil.Po@am__quote@ distclean-depend: -rm -rf $(DEPDIR) .c.o: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$< .c.obj: @AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo' @AMDEPBACKSLASH@ @AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ $(COMPILE) -c `cygpath -w $<` CCDEPMODE = @CCDEPMODE@ uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) GTAGS: here=`CDPATH=: && cd $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = .. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(PROGRAMS) installdirs: installdirs-recursive installdirs-am: $(mkinstalldirs) $(DESTDIR)$(pkgbindir) $(DESTDIR)$(wavedatadir) install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-noinstPROGRAMS clean-pkgbinPROGRAMS \ clean-wavedataPROGRAMS mostlyclean-am distclean: distclean-recursive distclean-am: clean-am distclean-compile distclean-depend \ distclean-generic distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-pkgbinPROGRAMS install-wavedataPROGRAMS install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic uninstall-am: uninstall-info-am uninstall-pkgbinPROGRAMS \ uninstall-wavedataPROGRAMS uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ clean-generic clean-noinstPROGRAMS clean-pkgbinPROGRAMS \ clean-recursive clean-wavedataPROGRAMS distclean \ distclean-compile distclean-depend distclean-generic \ distclean-recursive distclean-tags distdir dvi dvi-am \ dvi-recursive info info-am info-recursive install install-am \ install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ install-pkgbinPROGRAMS install-recursive install-strip \ install-wavedataPROGRAMS installcheck installcheck-am \ installdirs installdirs-am installdirs-recursive \ maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-pkgbinPROGRAMS \ uninstall-recursive uninstall-wavedataPROGRAMS clean: rm -f *.so *.so.o wavedata.o: wavedata.c include/wavedata.h include/interpolate.h \ include/math_func.h include/common.h $(COMPILE) -DWAVEDATA_SUBDIR=\"$(wavedata_subdir)\" -c wavedata.c sequencer64_1675.so$(EXEEXT): sequencer.so.c $(LINK) -DSEQUENCER_MAX_INPUTS=64 -DSEQUENCER_BASE_ID=1675 sequencer.so.c sequencer32_1676.so$(EXEEXT): sequencer.so.c $(LINK) -DSEQUENCER_MAX_INPUTS=32 -DSEQUENCER_BASE_ID=1676 sequencer.so.c sequencer16_1677.so$(EXEEXT): sequencer.so.c $(LINK) -DSEQUENCER_MAX_INPUTS=16 -DSEQUENCER_BASE_ID=1677 sequencer.so.c quantiser20_2027.so$(EXEEXT): quantiser.so.c $(LINK) -O0 -DQUANTISER_MAX_INPUTS=20 -DQUANTISER_BASE_ID=2027 -lm quantiser.so.c quantiser50_2028.so$(EXEEXT): quantiser.so.c $(LINK) -O0 -DQUANTISER_MAX_INPUTS=50 -DQUANTISER_BASE_ID=2028 -lm quantiser.so.c quantiser100_2029.so$(EXEEXT): quantiser.so.c $(LINK) -O0 -DQUANTISER_MAX_INPUTS=100 -DQUANTISER_BASE_ID=2029 -lm quantiser.so.c parabola_1649_data.so.c: wavegen ./wavegen -r $(sample_rate) -f $(first_note) -s $(note_step) \ -m $(min_table_size) -g $(gibbs) \ -w parabola -p parabola -o parabola_1649_data.so.c sawtooth_1641_data.so.c: wavegen ./wavegen -r $(sample_rate) -f $(first_note) -s $(note_step) \ -m $(min_table_size) -g $(gibbs) \ -w saw -p sawtooth -o sawtooth_1641_data.so.c square_1643_data.so.c: wavegen ./wavegen -r $(sample_rate) -f $(first_note) -s $(note_step) \ -m $(min_table_size) -g $(gibbs) \ -w square -p square -o square_1643_data.so.c # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: blop-0.2.8/src/lp4pole_1671.so.c0000644000175000006270000002200307773052103011551 /* lp4pole.so.c - A LADSPA plugin simulating a 4 pole low pass resonant filter. Copyright (C) 2003 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "lp4pole_filter.h" #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s /* * Only two variants - there's not much ground gained by having * Cutoff/Resonance with Audio/Control ports */ #define LP4POLE_BASE_ID 1671 #define LP4POLE_VARIANT_COUNT 2 #define LP4POLE_CUTOFF 0 #define LP4POLE_RESONANCE 1 #define LP4POLE_INPUT 2 #define LP4POLE_OUTPUT 3 LADSPA_Descriptor ** lp4pole_descriptors = 0; typedef struct { LADSPA_Data * cutoff; LADSPA_Data * resonance; LADSPA_Data * input; LADSPA_Data * output; LP4PoleFilter * lpf; } Lp4pole; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < LP4POLE_VARIANT_COUNT) return lp4pole_descriptors[index]; else return 0; } void cleanupLp4pole (LADSPA_Handle instance) { Lp4pole * plugin = (Lp4pole *) instance; lp4pole_cleanup (plugin->lpf); free (instance); } void connectPortLp4pole (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Lp4pole * plugin = (Lp4pole *) instance; switch (port) { case LP4POLE_CUTOFF: plugin->cutoff = data; break; case LP4POLE_RESONANCE: plugin->resonance = data; break; case LP4POLE_INPUT: plugin->input = data; break; case LP4POLE_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateLp4pole (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Lp4pole * plugin = (Lp4pole *) malloc (sizeof (Lp4pole)); if (plugin) { plugin->lpf = lp4pole_new (sample_rate); if (!plugin->lpf) { free(plugin); plugin = 0; } } return (LADSPA_Handle) plugin; } void activateLp4pole (LADSPA_Handle instance) { Lp4pole * plugin = (Lp4pole *) instance; lp4pole_init (plugin->lpf); } void runLp4pole_faraia_oa (LADSPA_Handle instance, unsigned long sample_count) { Lp4pole * plugin = (Lp4pole *) instance; /* Cutoff Frequency (array of floats of length sample_count) */ LADSPA_Data * cutoff = plugin->cutoff; /* Resonance (array of floats of length sample_count) */ LADSPA_Data * resonance = plugin->resonance; /* Input (array of floats of length sample_count) */ LADSPA_Data * input = plugin->input; /* Output (pointer to float value) */ LADSPA_Data * output = plugin->output; /* Instance data */ LP4PoleFilter * lpf = plugin->lpf; LADSPA_Data in; LADSPA_Data co; LADSPA_Data res; unsigned long s; for (s = 0; s < sample_count; s++) { co = cutoff[s]; res = resonance[s]; in = input[s]; lp4pole_set_params (lpf, co, res); output[s] = lp4pole_run (lpf, in); } } void runLp4pole_fcrcia_oa (LADSPA_Handle instance, unsigned long sample_count) { Lp4pole * plugin = (Lp4pole *) instance; /* Cutoff Frequency (float value) */ LADSPA_Data cutoff = * (plugin->cutoff); /* Resonance (float value) */ LADSPA_Data resonance = * (plugin->resonance); /* Input (array of floats of length sample_count) */ LADSPA_Data * input = plugin->input; /* Output (pointer to float value) */ LADSPA_Data * output = plugin->output; /* Instance data */ LP4PoleFilter *lpf = plugin->lpf; LADSPA_Data in; unsigned long s; lp4pole_set_params (lpf, cutoff, resonance); for (s = 0; s < sample_count; s++) { in = input[s]; output[s] = lp4pole_run (lpf, in); } } void _init (void) { static const char * labels[] = {"lp4pole_faraia_oa", "lp4pole_fcrcia_oa"}; static const char * names[] = {G_NOP("4 Pole Low-Pass Filter with Resonance (FARAIA)"), G_NOP("4 Pole Low-Pass Filter with Resonance (FCRCIA)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor *descriptor; int i; LADSPA_PortDescriptor cutoff_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor resonance_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor input_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runLp4pole_faraia_oa, runLp4pole_fcrcia_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif lp4pole_descriptors = (LADSPA_Descriptor **) calloc (LP4POLE_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (lp4pole_descriptors) { for (i = 0; i < LP4POLE_VARIANT_COUNT; i++) { lp4pole_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = lp4pole_descriptors[i]; if (descriptor) { descriptor->UniqueID = LP4POLE_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 4; port_descriptors = (LADSPA_PortDescriptor *) calloc (4, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (4, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (4, sizeof(char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Cutoff Frequency */ port_descriptors[LP4POLE_CUTOFF] = cutoff_port_descriptors[i]; port_names[LP4POLE_CUTOFF] = G_("Cutoff Frequency"); port_range_hints[LP4POLE_CUTOFF].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_MAXIMUM; port_range_hints[LP4POLE_CUTOFF].LowerBound = 1.0f / 48000.0f; port_range_hints[LP4POLE_CUTOFF].UpperBound = 0.5f; /* Parameters for Resonance */ port_descriptors[LP4POLE_RESONANCE] = resonance_port_descriptors[i]; port_names[LP4POLE_RESONANCE] = G_("Resonance"); port_range_hints[LP4POLE_RESONANCE].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[LP4POLE_RESONANCE].LowerBound = 0.0f; port_range_hints[LP4POLE_RESONANCE].UpperBound = 4.0f; /* Parameters for Input */ port_descriptors[LP4POLE_INPUT] = input_port_descriptors[i]; port_names[LP4POLE_INPUT] = G_("Input"); port_range_hints[LP4POLE_INPUT].HintDescriptor = 0; /* Parameters for Output */ port_descriptors[LP4POLE_OUTPUT] = output_port_descriptors[i]; port_names[LP4POLE_OUTPUT] = G_("Output"); port_range_hints[LP4POLE_OUTPUT].HintDescriptor = 0; descriptor->activate = activateLp4pole; descriptor->cleanup = cleanupLp4pole; descriptor->connect_port = connectPortLp4pole; descriptor->deactivate = NULL; descriptor->instantiate = instantiateLp4pole; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor *descriptor; int i; if (lp4pole_descriptors) { for (i = 0; i < LP4POLE_VARIANT_COUNT; i++) { descriptor = lp4pole_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (lp4pole_descriptors); } } blop-0.2.8/src/lp4pole_filter.c0000755000175000006270000000261007773052103012025 /* lp4pole_filter.c - lp4pole filter admin. Copyright (C) 2003 Mike Rawes See lp4pole_filter.h for history This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "lp4pole_filter.h" LP4PoleFilter * lp4pole_new (unsigned long sample_rate) { LP4PoleFilter * lpf; lpf = (LP4PoleFilter *) malloc (sizeof (LP4PoleFilter)); if (lpf) { lpf->inv_nyquist = 2.0f / (LADSPA_Data) sample_rate; lp4pole_init (lpf); } return lpf; } void lp4pole_cleanup (LP4PoleFilter * lpf) { if (lpf) free (lpf); } void lp4pole_init (LP4PoleFilter * lpf) { lpf->in1 = lpf->in2 = lpf->in3 = lpf->in4 = 0.0f; lpf->out1 = lpf->out2 = lpf->out3 = lpf->out4 = 0.0f; lpf->max_abs_in = 0.0f; } blop-0.2.8/src/sync_pulse_2023.so.c0000644000175000006270000002322007773052104012351 /* syncpulse.so.c - A LADSPA plugin to generate a non-bandlimited variable-pulse waveform with gate for trigger and sync Copyright (C) 2003 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define SYNCPULSE_BASE_ID 2023 #define SYNCPULSE_VARIANT_COUNT 2 #define SYNCPULSE_FREQUENCY 0 #define SYNCPULSE_PULSEWIDTH 1 #define SYNCPULSE_GATE 2 #define SYNCPULSE_OUTPUT 3 LADSPA_Descriptor ** syncpulse_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * pulsewidth; LADSPA_Data * gate; LADSPA_Data * output; LADSPA_Data srate; LADSPA_Data phase; } SyncPulse; /***************************************************************************** * * LADSPA Plugin code * *****************************************************************************/ const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < SYNCPULSE_VARIANT_COUNT) return syncpulse_descriptors[index]; return 0; } void cleanupSyncPulse (LADSPA_Handle instance) { free (instance); } void connectPortSyncPulse (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { SyncPulse * plugin = (SyncPulse *) instance; switch (port) { case SYNCPULSE_FREQUENCY: plugin->frequency = data; break; case SYNCPULSE_PULSEWIDTH: plugin->pulsewidth = data; break; case SYNCPULSE_GATE: plugin->gate = data; break; case SYNCPULSE_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateSyncPulse (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { SyncPulse * plugin = (SyncPulse *) malloc (sizeof (SyncPulse)); plugin->srate = (LADSPA_Data) sample_rate; return (LADSPA_Handle) plugin; } void activateSyncPulse (LADSPA_Handle instance) { SyncPulse * plugin = (SyncPulse *) instance; /* Reset phase */ plugin->phase = 0.0f; } void runSyncPulse_fapaga_oa (LADSPA_Handle instance, unsigned long sample_count) { SyncPulse * plugin = (SyncPulse *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Pulse Width (array of LADSPA_Data of length sample_count) */ LADSPA_Data * pulsewidth = plugin->pulsewidth; /* Gate (array of LADSPA_Data of length sample_count) */ LADSPA_Data * gate = plugin->gate; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ LADSPA_Data phase = plugin->phase; LADSPA_Data srate = plugin->srate; LADSPA_Data freq; LADSPA_Data pwidth; unsigned long s; for (s = 0; s < sample_count; s++) { if (gate[s] > 0.0f) { freq = frequency[s]; pwidth = f_clip (pulsewidth[s], 0.0f, 1.0f) * srate; if (phase < pwidth) output[s] = 1.0f; else output[s] = -1.0f; phase += freq; if (phase < 0.0f) phase += srate; else if (phase > srate) phase -= srate; } else { output[s] = 0.0f; phase = 0.0f; } } plugin->phase = phase; } void runSyncPulse_fcpcga_oa (LADSPA_Handle instance, unsigned long sample_count) { SyncPulse * plugin = (SyncPulse *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = * (plugin->frequency); /* Pulse Width (LADSPA_Data value) */ LADSPA_Data pulsewidth = f_clip (* (plugin->pulsewidth), 0.0f, 1.0f); /* Gate (array of LADSPA_Data of length sample_count) */ LADSPA_Data * gate = plugin->gate; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance Data */ LADSPA_Data phase = plugin->phase; LADSPA_Data srate = plugin->srate; unsigned long s; pulsewidth *= srate; for (s = 0; s < sample_count; s++) { if (gate[s] > 0.0f) { if (phase < pulsewidth) output[s] = 1.0f; else output[s] = -1.0f; phase += frequency; if (phase < 0.0f) phase += srate; else if (phase > srate) phase -= srate; } else { output[s] = 0.0f; phase = 0.0f; } } plugin->phase = phase; } void _init (void) { static const char * labels[] = {"syncpulse_fapaga_oa", "syncpulse_fcpcga_oa"}; static const char * names[] = {G_NOP("Clock Pulse Oscillator with Gate (FAPAGA)"), G_NOP("Clock Pulse Oscillator with Gate (FCPCGA)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor pulsewidth_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor gate_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runSyncPulse_fapaga_oa, runSyncPulse_fcpcga_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif syncpulse_descriptors = (LADSPA_Descriptor **) calloc (SYNCPULSE_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (syncpulse_descriptors) { for (i = 0; i < SYNCPULSE_VARIANT_COUNT; i++) { syncpulse_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = syncpulse_descriptors[i]; if (descriptor) { descriptor->UniqueID = SYNCPULSE_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 4; port_descriptors = (LADSPA_PortDescriptor *) calloc (4, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (4, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (4, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency */ port_descriptors[SYNCPULSE_FREQUENCY] = frequency_port_descriptors[i]; port_names[SYNCPULSE_FREQUENCY] = G_("Frequency"); port_range_hints[SYNCPULSE_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_LOW; port_range_hints[SYNCPULSE_FREQUENCY].LowerBound = 0.0f; port_range_hints[SYNCPULSE_FREQUENCY].UpperBound = 64.0f; /* Parameters for Pulse Width */ port_descriptors[SYNCPULSE_PULSEWIDTH] = pulsewidth_port_descriptors[i]; port_names[SYNCPULSE_PULSEWIDTH] = G_("Pulse Width"); port_range_hints[SYNCPULSE_PULSEWIDTH].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MIDDLE; port_range_hints[SYNCPULSE_PULSEWIDTH].LowerBound = 0.0f; port_range_hints[SYNCPULSE_PULSEWIDTH].UpperBound = 1.0f; /* Parameters for Reset Trigger */ port_descriptors[SYNCPULSE_GATE] = gate_port_descriptors[i]; port_names[SYNCPULSE_GATE] = G_("Gate"); port_range_hints[SYNCPULSE_GATE].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Output */ port_descriptors[SYNCPULSE_OUTPUT] = output_port_descriptors[i]; port_names[SYNCPULSE_OUTPUT] = G_("Output"); port_range_hints[SYNCPULSE_OUTPUT].HintDescriptor = 0; descriptor->activate = activateSyncPulse; descriptor->cleanup = cleanupSyncPulse; descriptor->connect_port = connectPortSyncPulse; descriptor->deactivate = NULL; descriptor->instantiate = instantiateSyncPulse; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (syncpulse_descriptors) { for (i = 0; i < SYNCPULSE_VARIANT_COUNT; i++) { descriptor = syncpulse_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (syncpulse_descriptors); } } blop-0.2.8/src/sawtooth_1641.so.c0000644000175000006270000001761307773051357012064 /* sawtooth.so.c - A LADSPA plugin to generate a bandlimited sawtooth waveform Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "wavedata.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define SAWTOOTH_BASE_ID 1641 #define SAWTOOTH_VARIANT_COUNT 2 #define SAWTOOTH_FREQUENCY 0 #define SAWTOOTH_OUTPUT 1 LADSPA_Descriptor ** sawtooth_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * output; LADSPA_Data phase; Wavedata wdat; } Sawtooth; /***************************************************************************** * * LADSPA Plugin code * *****************************************************************************/ const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < 2) return sawtooth_descriptors[index]; return 0; } void connectPortSawtooth (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Sawtooth * plugin = (Sawtooth *) instance; switch (port) { case SAWTOOTH_FREQUENCY: plugin->frequency = data; break; case SAWTOOTH_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateSawtooth (const LADSPA_Descriptor *descriptor, unsigned long sample_rate) { Sawtooth * plugin = (Sawtooth *) malloc (sizeof (Sawtooth)); if (wavedata_load (&plugin->wdat, BLOP_DLSYM_SAWTOOTH, sample_rate)) { free (plugin); return 0; } return (LADSPA_Handle) plugin; } void cleanupSawtooth (LADSPA_Handle instance) { Sawtooth * plugin = (Sawtooth *) instance; wavedata_unload (&plugin->wdat); free (instance); } void activateSawtooth (LADSPA_Handle instance) { Sawtooth * plugin = (Sawtooth *) instance; plugin->phase = 0.0f; } void runSawtooth_fa_oa (LADSPA_Handle instance, unsigned long sample_count) { Sawtooth * plugin = (Sawtooth *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data freq; unsigned long s; for (s = 0; s < sample_count; s++) { freq = frequency[s]; /* Lookup table to play */ wavedata_get_table (wdat, freq); output[s] = wavedata_get_sample (wdat, phase); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runSawtooth_fc_oa (LADSPA_Handle instance, unsigned long sample_count) { Sawtooth * plugin = (Sawtooth *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = * (plugin->frequency); /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; unsigned long s; wavedata_get_table (wdat, frequency); for (s = 0; s < sample_count; s++) { output[s] = wavedata_get_sample (wdat, phase); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void _init (void) { static const char * labels[] = {"sawtooth_fa_oa", "sawtooth_fc_oa"}; static const char * names[] = {G_NOP("Bandlimited Sawtooth Oscillator (FA)"), G_NOP("Bandlimited Sawtooth Oscillator (FC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runSawtooth_fa_oa, runSawtooth_fc_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif sawtooth_descriptors = (LADSPA_Descriptor **) calloc (SAWTOOTH_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (sawtooth_descriptors) { for (i = 0; i < SAWTOOTH_VARIANT_COUNT; i++) { sawtooth_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = sawtooth_descriptors[i]; if (descriptor) { descriptor->UniqueID = SAWTOOTH_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 2; port_descriptors = (LADSPA_PortDescriptor *) calloc (2, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (2, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (2, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency */ port_descriptors[SAWTOOTH_FREQUENCY] = frequency_port_descriptors[i]; port_names[SAWTOOTH_FREQUENCY] = G_("Frequency"); port_range_hints[SAWTOOTH_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_440; port_range_hints[SAWTOOTH_FREQUENCY].LowerBound = 1.0f / 48000.0f; port_range_hints[SAWTOOTH_FREQUENCY].UpperBound = 0.5f; /* Parameters for Output */ port_descriptors[SAWTOOTH_OUTPUT] = output_port_descriptors[i]; port_names[SAWTOOTH_OUTPUT] = G_("Output"); port_range_hints[SAWTOOTH_OUTPUT].HintDescriptor = 0; descriptor->activate = activateSawtooth; descriptor->cleanup = cleanupSawtooth; descriptor->connect_port = connectPortSawtooth; descriptor->deactivate = NULL; descriptor->instantiate = instantiateSawtooth; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (sawtooth_descriptors) { for (i = 0; i < SAWTOOTH_VARIANT_COUNT; i++) { descriptor = sawtooth_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (sawtooth_descriptors); } } blop-0.2.8/src/wdatutil.c0000644000175000006270000004234310063052552010734 /* wdatutil.c - Code to generate wavedata for bandlimited waveforms. Copyright (C) 2003 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include "common.h" #include "wavedata.h" #include "wdatutil.h" #ifdef __cplusplus extern "C" { #endif void generate_sine (LADSPA_Data * samples, unsigned long sample_count); void generate_sawtooth (LADSPA_Data * samples, unsigned long sample_count, unsigned long harmonics, float gibbs_comp); void generate_square (LADSPA_Data * samples, unsigned long sample_count, unsigned long harmonics, float gibbs_comp); void generate_parabola (LADSPA_Data * samples, unsigned long sample_count, unsigned long harmonics, float gibbs_comp); #ifdef __cplusplus } /* extern "C" { */ #endif char *wave_names[] = { "Saw", "Square", "Parabola" }; char *wave_descriptions[] = { "Sawtooth Wave", "Square Wave", "Parabola Wave" }; unsigned long wave_first_harmonics[] = { 1, 1, 1 }; unsigned long wave_harmonic_intervals[] = { 1, 2, 1 }; Wavedata * wavedata_new (unsigned long sample_rate) { Wavedata * w; w = (Wavedata *) malloc (sizeof (Wavedata)); if (!w) return 0; w->data_handle = 0; w->table_count = 0; w->tables = 0; w->lookup = 0; w->lookup_max = 0; w->sample_rate = (LADSPA_Data) sample_rate; w->nyquist = w->sample_rate * 0.5f; return w; } void wavedata_cleanup (Wavedata * w) { unsigned long ti; Wavetable * t; for (ti = 0; ti < w->table_count; ti++) { t = w->tables[ti]; if (t) { if (t->samples_hf) free (t->samples_hf); if (t->samples_lf) free (t->samples_lf); free (t); } } free (w); } int wavedata_add_table (Wavedata * w, unsigned long sample_count, unsigned long harmonics) { Wavetable ** tables; Wavetable * t; size_t bytes; t = (Wavetable *) malloc (sizeof (Wavetable)); if (!t) return -1; /* Extra 3 samples for interpolation */ bytes = (sample_count + 3) * sizeof (LADSPA_Data); t->samples_lf = (LADSPA_Data *) malloc (bytes); if (!t->samples_lf) { free (t); return -1; } t->samples_hf = (LADSPA_Data *) malloc (bytes); if (!t->samples_hf) { free (t->samples_lf); free (t); return -1; } bytes = (w->table_count + 1) * sizeof (Wavetable *); if (w->table_count == 0) tables = (Wavetable **) malloc (bytes); else tables = (Wavetable **) realloc (w->tables, bytes); if (!tables) { free (t); return -1; } t->sample_count = sample_count; t->harmonics = harmonics; if (w->lookup_max < harmonics) w->lookup_max = harmonics; tables[w->table_count] = t; w->tables = tables; w->table_count++; return 0; } void wavedata_generate_tables (Wavedata * w, Wavetype wavetype, float gibbs_comp) { Wavetable * t; LADSPA_Data * samples_lf; LADSPA_Data * samples_hf; unsigned long h_lf; unsigned long h_hf; unsigned long s; unsigned long i; for (i = 0; i < w->table_count; i++) { t = w->tables[i]; h_lf = t->harmonics; if (i < w->table_count - 1) h_hf = w->tables[i+1]->harmonics; else h_hf = 1; samples_lf = t->samples_lf; samples_hf = t->samples_hf; samples_lf++; samples_hf++; switch (wavetype) { case SAW: generate_sawtooth (samples_lf, t->sample_count, h_lf, gibbs_comp); generate_sawtooth (samples_hf, t->sample_count, h_hf, gibbs_comp); break; case SQUARE: generate_square (samples_lf, t->sample_count, h_lf, gibbs_comp); generate_square (samples_hf, t->sample_count, h_hf, gibbs_comp); break; case PARABOLA: generate_parabola (samples_lf, t->sample_count, h_lf, gibbs_comp); generate_parabola (samples_hf, t->sample_count, h_hf, gibbs_comp); break; } /* Basic denormalization */ for (s = 0; s < t->sample_count; s++) samples_lf[s] = FABSF (samples_lf[s]) < SMALLEST_FLOAT ? 0.0 : samples_lf[s]; samples_lf--; samples_lf[0] = samples_lf[t->sample_count]; samples_lf[t->sample_count + 1] = samples_hf[1]; samples_lf[t->sample_count + 2] = samples_hf[2]; for (s = 0; s < t->sample_count; s++) samples_hf[s] = FABSF (samples_hf[s]) < SMALLEST_FLOAT ? 0.0 : samples_hf[s]; samples_hf--; samples_hf[0] = samples_hf[t->sample_count]; samples_hf[t->sample_count + 1] = samples_hf[1]; samples_hf[t->sample_count + 2] = samples_hf[2]; } } int wavedata_write (Wavedata * w, FILE * wdat_fp, char * data_name) { Wavetable * t = 0; unsigned long table_count; unsigned long i; unsigned long j; unsigned long s; int column; /* * Extra table at end */ table_count = w->table_count + 1; fprintf (wdat_fp, "#include \n"); fprintf (wdat_fp, "#include \n"); fprintf (wdat_fp, "#include \"wavedata.h\"\n"); fprintf (wdat_fp, "\n"); /* * Fixed data and tables */ fprintf (wdat_fp, "unsigned long ref_count = 0;\n"); fprintf (wdat_fp, "unsigned long first_sample_rate = 0;\n"); fprintf (wdat_fp, "unsigned long table_count = %ld;\n", table_count); fprintf (wdat_fp, "Wavetable tables[%ld];\n", table_count); fprintf (wdat_fp, "Wavetable * ptables[%ld];\n", table_count); fprintf (wdat_fp, "unsigned long lookup[%ld];\n", w->lookup_max + 1); fprintf (wdat_fp, "unsigned long lookup_max = %ld;\n", w->lookup_max); fprintf (wdat_fp, "\n"); /* * Sample data * Each table has an extra 3 samples for interpolation */ for (i = 0; i < w->table_count; i++) { t = w->tables[i]; fprintf(wdat_fp, "static LADSPA_Data samples_lf_%ld[%ld] = {\n", i, t->sample_count + 3); column = 0; for (s = 0; s < t->sample_count + 3 - 1; s++, column++) { if (column == 5) { fprintf (wdat_fp, "\n"); column = 0; } fprintf (wdat_fp, "%+.8ef,", t->samples_lf[s]); } if (column == 5) fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "%+.8ef\n", t->samples_lf[s]); fprintf (wdat_fp, "};\n"); fprintf (wdat_fp, "\n"); fprintf(wdat_fp, "static LADSPA_Data samples_hf_%ld[%ld] = {\n", i, t->sample_count + 3); column = 0; for (s = 0; s < t->sample_count + 3 - 1; s++, column++) { if (column == 5) { fprintf (wdat_fp, "\n"); column = 0; } fprintf (wdat_fp, "%+.8ef,", t->samples_hf[s]); } if (column == 5) fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "%+.8ef\n", t->samples_hf[s]); fprintf (wdat_fp, "};\n"); fprintf (wdat_fp, "\n"); } fprintf (wdat_fp, "LADSPA_Data samples_zero[%ld];\n", t->sample_count + 3); fprintf (wdat_fp, "\n"); /* * Function to get Wavedata - the sample rate is needed to calculate * frequencies and related things */ fprintf (wdat_fp, "int\n"); fprintf (wdat_fp, "blop_get_%s (Wavedata * w, unsigned long sample_rate)\n", data_name); fprintf (wdat_fp, "{\n"); fprintf (wdat_fp, "\tWavetable * t;\n"); fprintf (wdat_fp, "\tunsigned long ti;\n"); fprintf (wdat_fp, "\n"); /* * Sample rate must be > 0 */ fprintf (wdat_fp, "\tif (sample_rate == 0)\n"); fprintf (wdat_fp, "\t\treturn -1;\n"); fprintf (wdat_fp, "\n"); /* * First time call - set up all sample rate dependent data */ fprintf (wdat_fp, "\tif (first_sample_rate == 0)\n"); fprintf (wdat_fp, "\t{\n"); fprintf (wdat_fp, "\t\tfirst_sample_rate = sample_rate;\n"); fprintf (wdat_fp, "\t\tw->sample_rate = (LADSPA_Data) sample_rate;\n"); fprintf (wdat_fp, "\t\tw->nyquist = w->sample_rate / 2.0f;\n"); fprintf (wdat_fp, "\t\tw->table_count = table_count;\n"); fprintf (wdat_fp, "\t\tw->tables = ptables;\n"); fprintf (wdat_fp, "\t\tw->lookup = lookup;\n"); fprintf (wdat_fp, "\t\tw->lookup_max = lookup_max;\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\t\tfor (ti = 1; ti < table_count - 1; ti++)\n"); fprintf (wdat_fp, "\t\t{\n"); fprintf (wdat_fp, "\t\t\tt = ptables[ti];\n"); fprintf (wdat_fp, "\t\t\tt->min_frequency = w->nyquist / (LADSPA_Data) (ptables[ti - 1]->harmonics);\n"); fprintf (wdat_fp, "\t\t\tt->max_frequency = w->nyquist / (LADSPA_Data) (t->harmonics);\n"); fprintf (wdat_fp, "\t\t}\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\t\tt = w->tables[0];\n"); fprintf (wdat_fp, "\t\tt->min_frequency = 0.0f;\n"); fprintf (wdat_fp, "\t\tt->max_frequency = ptables[1]->min_frequency;\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\t\tt = ptables[table_count - 1];\n"); fprintf (wdat_fp, "\t\tt->min_frequency = ptables[w->table_count - 2]->max_frequency;\n"); fprintf (wdat_fp, "\t\tt->max_frequency = w->nyquist;\n"); fprintf (wdat_fp, "\t\n"); fprintf (wdat_fp, "\t\tfor (ti = 0; ti < w->table_count; ti++)\n"); fprintf (wdat_fp, "\t\t{\n"); fprintf (wdat_fp, "\t\t\tt = w->tables[ti];\n"); fprintf (wdat_fp, "\t\t\tt->phase_scale_factor = (LADSPA_Data) (t->sample_count) / w->sample_rate;\n"); fprintf (wdat_fp, "\t\t\tt->range_scale_factor = 1.0f / (t->max_frequency - t->min_frequency);\n"); fprintf (wdat_fp, "\t\t}\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\t\treturn 0;\n"); fprintf (wdat_fp, "\t}\n"); /* * Already called at least once, so just set up wavedata */ fprintf (wdat_fp, "\telse if (sample_rate == first_sample_rate)\n"); fprintf (wdat_fp, "\t{\n"); fprintf (wdat_fp, "\t\tw->sample_rate = (LADSPA_Data) sample_rate;\n"); fprintf (wdat_fp, "\t\tw->nyquist = w->sample_rate / 2.0f;\n"); fprintf (wdat_fp, "\t\tw->table_count = table_count;\n"); fprintf (wdat_fp, "\t\tw->tables = ptables;\n"); fprintf (wdat_fp, "\t\tw->lookup = lookup;\n"); fprintf (wdat_fp, "\t\tw->lookup_max = lookup_max;\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\t\treturn 0;\n"); fprintf (wdat_fp, "\t}\n"); /* * Sample rate does not match, so fail * * NOTE: This means multiple sample rates are not supported * This should not present any problems */ fprintf (wdat_fp, "\telse\n"); fprintf (wdat_fp, "\t{\n"); fprintf (wdat_fp, "\t\treturn -1;\n"); fprintf (wdat_fp, "\t}\n"); fprintf (wdat_fp, "}\n"); fprintf (wdat_fp, "\n"); /* * _init() * Assemble tables and lookup */ fprintf (wdat_fp, "void\n"); fprintf (wdat_fp, "_init (void)\n"); fprintf (wdat_fp, "{\n"); fprintf (wdat_fp, "\tunsigned long max_harmonic;\n"); fprintf (wdat_fp, "\tunsigned long ti;\n"); fprintf (wdat_fp, "\tunsigned long li;\n"); fprintf (wdat_fp, "\tunsigned long s;\n"); fprintf (wdat_fp, "\n"); for (i = 0; i < w->table_count; i++) { t = w->tables[i]; fprintf (wdat_fp, "\ttables[%ld].sample_count = %ld;\n", i, t->sample_count); fprintf (wdat_fp, "\ttables[%ld].samples_lf = samples_lf_%ld;\n", i, i); fprintf (wdat_fp, "\ttables[%ld].samples_hf = samples_hf_%ld;\n", i, i); fprintf (wdat_fp, "\ttables[%ld].harmonics = %ld;\n", i, t->harmonics); fprintf (wdat_fp, "\n"); } /* * Last table - uses same sample data as previous table for lf data, * and zeroes for hf data */ i = w->table_count - 1; j = i + 1; t = w->tables[i]; /* * Zero silent samples */ fprintf (wdat_fp, "\tfor (s = 0; s < %ld; s++)\n", t->sample_count + 3); fprintf (wdat_fp, "\t\tsamples_zero[s] = 0.0f;\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\ttables[%ld].sample_count = %ld;\n", j, t->sample_count); fprintf (wdat_fp, "\ttables[%ld].samples_lf = samples_hf_%ld;\n", j, i); fprintf (wdat_fp, "\ttables[%ld].samples_hf = samples_zero;\n", j); fprintf (wdat_fp, "\ttables[%ld].harmonics = 1;\n", j); fprintf (wdat_fp, "\n"); /* * Get pointers to each wavetable and put them in the pointer array */ fprintf (wdat_fp, "\tfor (ti = 0; ti < table_count; ti++)\n"); fprintf (wdat_fp, "\t\tptables[ti] = &tables[ti];\n"); fprintf (wdat_fp, "\n"); /* * Shift all sample offsets forward by one sample * !!! NO! Don't! fprintf (wdat_fp, "\tfor (ti = 0; ti < table_count; ti++)\n"); fprintf (wdat_fp, "\t{\n"); fprintf (wdat_fp, "\t\tptables[ti]->samples_lf++;\n"); fprintf (wdat_fp, "\t\tptables[ti]->samples_hf++;\n"); fprintf (wdat_fp, "\t}\n"); fprintf (wdat_fp, "\n"); */ /* * Table lookup vector indexed by harmonic * Add lookup data to vector */ fprintf (wdat_fp, "\tli = 0;"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\tfor (ti = table_count - 1; ti > 0; ti--)\n"); fprintf (wdat_fp, "\t{\n"); fprintf (wdat_fp, "\t\tmax_harmonic = ptables[ti]->harmonics;\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\t\tfor ( ; li <= max_harmonic; li++)\n"); fprintf (wdat_fp, "\t\t\tlookup[li] = ti;\n"); fprintf (wdat_fp, "\t}\n"); fprintf (wdat_fp, "\n"); fprintf (wdat_fp, "\tfor ( ; li <= lookup_max; li++)\n"); fprintf (wdat_fp, "\t\tlookup[li] = 0;\n"); fprintf (wdat_fp, "}\n"); return 0; } void generate_sawtooth (LADSPA_Data * samples, unsigned long sample_count, unsigned long harmonics, float gibbs_comp) { double phase_scale = 2.0 * M_PI / (double) sample_count; LADSPA_Data scale = 2.0f / M_PI; unsigned long i; unsigned long h; double mhf; double hf; double k; double m; double phase; double partial; if (gibbs_comp > 0.0f) { /* Degree of Gibbs Effect compensation */ mhf = (double) harmonics; k = M_PI * (double) gibbs_comp / mhf; for (i = 0; i < sample_count; i++) samples[i] = 0.0f; for (h = 1; h <= harmonics; h++) { hf = (double) h; /* Gibbs Effect compensation - Hamming window */ /* Modified slightly for smoother fade at highest frequencies */ m = 0.54 + 0.46 * cos ((hf - 0.5 / mhf) * k); for (i = 0; i < sample_count; i++) { phase = (double) i * phase_scale; partial = (m / hf) * sin (phase * hf); samples[i] += (LADSPA_Data) partial; } } for (i = 0; i < sample_count; i++) samples[i] *= scale; } else { /* Allow overshoot */ for (i = 0; i < sample_count; i++) { phase = (double) i * phase_scale; samples[i] = 0.0f; for (h = 1; h <= harmonics; h++) { hf = (double) h; partial = (1.0 / hf) * sin (phase * hf); samples[i] += (LADSPA_Data) partial; } samples[i] *= scale; } } } void generate_square (LADSPA_Data * samples, unsigned long sample_count, unsigned long harmonics, float gibbs_comp) { double phase_scale = 2.0 * M_PI / (double) sample_count; LADSPA_Data scale = 4.0f / M_PI; unsigned long i; unsigned long h; double mhf; double hf; double k; double m; double phase; double partial; if (gibbs_comp > 0.0f) { /* Degree of Gibbs Effect compensation */ mhf = (double) harmonics; k = M_PI * (double) gibbs_comp / mhf; for (i = 0; i < sample_count; i++) samples[i] = 0.0f; for (h = 1; h <= harmonics; h += 2) { hf = (double) h; /* Gibbs Effect compensation - Hamming window */ /* Modified slightly for smoother fade at highest frequencies */ m = 0.54 + 0.46 * cos((hf - 0.5 / pow (mhf, 2.2)) * k); for (i = 0; i < sample_count; i++) { phase = (double) i * phase_scale; partial = (m / hf) * sin (phase * hf); samples[i] += (LADSPA_Data) partial; } } for (i = 0; i < sample_count; i++) samples[i] *= scale; } else { /* Allow overshoot */ for (i = 0; i < sample_count; i++) { phase = (double) i * phase_scale; samples[i] = 0.0f; for (h = 1; h <= harmonics; h += 2) { hf = (double) h; partial = (1.0 / hf) * sin (phase * hf); samples[i] += (LADSPA_Data) partial; } samples[i] *= scale; } } } void generate_parabola (LADSPA_Data * samples, unsigned long sample_count, unsigned long harmonics, float gibbs_comp) { double phase_scale = 2.0 * M_PI / (double) sample_count; LADSPA_Data scale = 2.0f / (M_PI * M_PI); unsigned long i; unsigned long h; double mhf; double hf; double k; double m; double phase; double partial; double sign; if (gibbs_comp > 0.0f) { /* Degree of Gibbs Effect compensation */ mhf = (double) harmonics; k = M_PI * (double) gibbs_comp / mhf; for (i = 0; i < sample_count; i++) samples[i] = 0.0f; sign = -1.0; for (h = 1; h <= harmonics; h++) { hf = (double) h; /* Gibbs Effect compensation - Hamming window */ /* Modified slightly for smoother fade at highest frequencies */ m = 0.54 + 0.46 * cos ((hf - 0.5 / mhf) * k); for (i = 0; i < sample_count; i++) { phase = (double) i * phase_scale; partial = (sign * 4.0 / (hf * hf)) * cos (phase * hf); samples[i] += (LADSPA_Data) partial; } sign = -sign; } for (i = 0; i < sample_count; i++) samples[i] *= scale; } else { /* Allow overshoot */ for (i = 0; i < sample_count; i++) { phase = (double) i * phase_scale; samples[i] = 0.0f; sign = -1.0; for (h = 1; h <= harmonics; h++) { hf = (double) h; partial = (sign * 4.0 / (hf * hf)) * cos (phase * hf); samples[i] += (LADSPA_Data) partial; sign = -sign; } samples[i] *= scale; } } } blop-0.2.8/src/pulse_1645.so.c0000644000175000006270000003156707773051357011354 /* pulse.so.c - A LADSPA plugin to generate a bandlimited variable pulse waveform Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "wavedata.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define PULSE_BASE_ID 1645 #define PULSE_VARIANT_COUNT 4 #define PULSE_FREQUENCY 0 #define PULSE_PULSEWIDTH 1 #define PULSE_OUTPUT 2 LADSPA_Descriptor ** pulse_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * pulsewidth; LADSPA_Data * output; LADSPA_Data phase; Wavedata wdat; } Pulse; /***************************************************************************** * * LADSPA Plugin code * *****************************************************************************/ const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < PULSE_VARIANT_COUNT) return pulse_descriptors[index]; return 0; } void connectPortPulse (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Pulse * plugin = (Pulse *) instance; switch (port) { case PULSE_FREQUENCY: plugin->frequency = data; break; case PULSE_PULSEWIDTH: plugin->pulsewidth = data; break; case PULSE_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiatePulse (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Pulse * plugin = (Pulse *) malloc (sizeof (Pulse)); if (wavedata_load (&plugin->wdat, BLOP_DLSYM_SAWTOOTH, sample_rate)) { free (plugin); return 0; } return (LADSPA_Handle) plugin; } void cleanupPulse (LADSPA_Handle instance) { Pulse *plugin = (Pulse *) instance; wavedata_unload (&plugin->wdat); free (instance); } void activatePulse (LADSPA_Handle instance) { Pulse * plugin = (Pulse *) instance; plugin->phase = 0.0f; } void runPulse_fapa_oa (LADSPA_Handle instance, unsigned long sample_count) { Pulse * plugin = (Pulse *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Pulse Width (array of LADSPA_Data of length sample_count) */ LADSPA_Data * pulsewidth = plugin->pulsewidth; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data freq; LADSPA_Data pwidth; LADSPA_Data phase_shift; unsigned long s; for (s = 0; s < sample_count; s++) { freq = frequency[s]; pwidth = f_clip (pulsewidth[s], 0.0f, 1.0f); phase_shift = pwidth * wdat->sample_rate; /* Lookup which table to use from frequency */ wavedata_get_table (wdat, freq); /* Get samples from sawtooth and phase shifted inverted sawtooth, with approriate DC offset */ output[s] = wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift) + 1.0f - (2.0f * pwidth); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runPulse_fapc_oa (LADSPA_Handle instance, unsigned long sample_count) { Pulse * plugin = (Pulse *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Pulse Width (LADSPA_Data value) */ LADSPA_Data pulsewidth = f_clip (*(plugin->pulsewidth), 0.0f, 1.0f); /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data freq; LADSPA_Data dc_shift = 1.0 - (2.0 * pulsewidth); LADSPA_Data phase_shift = pulsewidth * wdat->sample_rate; unsigned long s; for (s = 0; s < sample_count; s++) { freq = frequency[s]; /* Lookup which table to use from frequency */ wavedata_get_table (wdat, freq); /* Get samples from sawtooth and phase shifted inverted sawtooth, with approriate DC offset */ output[s] = wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift) + dc_shift; /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runPulse_fcpa_oa (LADSPA_Handle instance, unsigned long sample_count) { Pulse * plugin = (Pulse *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = *(plugin->frequency); /* Pulse Width (array of LADSPA_Data of length sample_count) */ LADSPA_Data * pulsewidth = plugin->pulsewidth; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data pwidth; LADSPA_Data phase_shift; unsigned long s; wavedata_get_table (wdat, frequency); for (s = 0; s < sample_count; s++) { pwidth = f_clip (pulsewidth[s], 0.0f, 1.0f); phase_shift = pwidth * wdat->sample_rate; /* Get samples from sawtooth and phase shifted inverted sawtooth, with approriate DC offset */ output[s] = wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift) + 1.0f - (2.0f * pwidth); /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void runPulse_fcpc_oa (LADSPA_Handle instance, unsigned long sample_count) { Pulse * plugin = (Pulse *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = *(plugin->frequency); /* Pulse Width (LADSPA_Data value) */ LADSPA_Data pulsewidth = f_clip (*(plugin->pulsewidth), 0.0f, 1.0f); /* Output (pointer to LADSPA_Data value) */ LADSPA_Data *output = plugin->output; /* Instance data */ Wavedata * wdat = &plugin->wdat; LADSPA_Data phase = plugin->phase; LADSPA_Data dc_shift = 1.0f - (2.0f * pulsewidth); LADSPA_Data phase_shift = pulsewidth * wdat->sample_rate; unsigned long s; wavedata_get_table (wdat, frequency); for (s = 0; s < sample_count; s++) { /* Get samples from sawtooth and phase shifted inverted sawtooth, with approriate DC offset */ output[s] = wavedata_get_sample (wdat, phase) - wavedata_get_sample (wdat, phase + phase_shift) + dc_shift; /* Update phase, wrapping if necessary */ phase += wdat->frequency; if (phase < 0.0f) phase += wdat->sample_rate; else if (phase > wdat->sample_rate) phase -= wdat->sample_rate; } plugin->phase = phase; } void _init (void) { static const char * labels[] = {"pulse_fapa_oa", "pulse_fapc_oa", "pulse_fcpa_oa", "pulse_fcpc_oa"}; static const char * names[] = {G_NOP("Bandlimited Variable Width Pulse Oscillator (FAPA)"), G_NOP("Bandlimited Variable Width Pulse Oscillator (FAPC)"), G_NOP("Bandlimited Variable Width Pulse Oscillator (FCPA)"), G_NOP("Bandlimited Variable Width Pulse Oscillator (FCPC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor pulsewidth_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runPulse_fapa_oa, runPulse_fapc_oa, runPulse_fcpa_oa, runPulse_fcpc_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif pulse_descriptors = (LADSPA_Descriptor **) calloc (PULSE_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (pulse_descriptors) { for (i = 0; i < PULSE_VARIANT_COUNT; i++) { pulse_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = pulse_descriptors[i]; if (descriptor) { descriptor->UniqueID = PULSE_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency */ port_descriptors[PULSE_FREQUENCY] = frequency_port_descriptors[i]; port_names[PULSE_FREQUENCY] = G_("Frequency"); port_range_hints[PULSE_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_SAMPLE_RATE | LADSPA_HINT_LOGARITHMIC | LADSPA_HINT_DEFAULT_440; port_range_hints[PULSE_FREQUENCY].LowerBound = 1.0f / 48000.0f; port_range_hints[PULSE_FREQUENCY].UpperBound = 0.5f; /* Parameters for Pulse Width */ port_descriptors[PULSE_PULSEWIDTH] = pulsewidth_port_descriptors[i]; port_names[PULSE_PULSEWIDTH] = G_("Pulse Width"); port_range_hints[PULSE_PULSEWIDTH].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MIDDLE; port_range_hints[PULSE_PULSEWIDTH].LowerBound = 0.0f; port_range_hints[PULSE_PULSEWIDTH].UpperBound = 1.0f; /* Parameters for Output */ port_descriptors[PULSE_OUTPUT] = output_port_descriptors[i]; port_names[PULSE_OUTPUT] = G_("Output"); port_range_hints[PULSE_OUTPUT].HintDescriptor = 0; descriptor->activate = activatePulse; descriptor->cleanup = cleanupPulse; descriptor->connect_port = connectPortPulse; descriptor->deactivate = NULL; descriptor->instantiate = instantiatePulse; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (pulse_descriptors) { for (i = 0; i < PULSE_VARIANT_COUNT; i++) { descriptor = pulse_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (pulse_descriptors); } } blop-0.2.8/src/adsr_1680.so.c0000644000175000006270000002677507773052103011147 /* adsr.so.c - A LADSPA plugin to generate ADSR envelopes Gate and Trigger variant Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define ADSR_BASE_ID 1680 #define ADSR_VARIANT_COUNT 1 #define ADSR_GATE 0 #define ADSR_TRIGGER 1 #define ADSR_ATTACK 2 #define ADSR_DECAY 3 #define ADSR_SUSTAIN 4 #define ADSR_RELEASE 5 #define ADSR_OUTPUT 6 LADSPA_Descriptor ** adsr_descriptors = 0; typedef enum { IDLE, ATTACK, DECAY, SUSTAIN, RELEASE } ADSRState; typedef struct { LADSPA_Data *gate; LADSPA_Data *trigger; LADSPA_Data *attack; LADSPA_Data *decay; LADSPA_Data *sustain; LADSPA_Data *release; LADSPA_Data *output; LADSPA_Data srate; LADSPA_Data inv_srate; LADSPA_Data last_trigger; LADSPA_Data from_level; LADSPA_Data level; ADSRState state; unsigned long samples; } Adsr; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < 1) return adsr_descriptors[index]; else return 0; } void cleanupAdsr (LADSPA_Handle instance) { free (instance); } void connectPortAdsr(LADSPA_Handle instance, unsigned long port, LADSPA_Data *data) { Adsr * plugin = (Adsr *) instance; switch (port) { case ADSR_GATE: plugin->gate = data; break; case ADSR_TRIGGER: plugin->trigger = data; break; case ADSR_ATTACK: plugin->attack = data; break; case ADSR_DECAY: plugin->decay = data; break; case ADSR_SUSTAIN: plugin->sustain = data; break; case ADSR_RELEASE: plugin->release = data; break; case ADSR_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateAdsr (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Adsr * plugin = (Adsr *) malloc (sizeof (Adsr)); plugin->srate = (LADSPA_Data) sample_rate; plugin->inv_srate = 1.0f / plugin->srate; return (LADSPA_Handle) plugin; } void activateAdsr (LADSPA_Handle instance) { Adsr * plugin = (Adsr *) instance; plugin->last_trigger = 0.0f; plugin->from_level = 0.0f; plugin->level = 0.0f; plugin->state = IDLE; plugin->samples = 0; } void runAdsr (LADSPA_Handle instance, unsigned long sample_count) { Adsr * plugin = (Adsr *) instance; /* Gate */ LADSPA_Data * gate = plugin->gate; /* Trigger */ LADSPA_Data * trigger = plugin->trigger; /* Attack Time (s) */ LADSPA_Data attack = * (plugin->attack); /* Decay Time (s) */ LADSPA_Data decay = * (plugin->decay); /* Sustain Level */ LADSPA_Data sustain = f_clip (* (plugin->sustain), 0.0f, 1.0f); /* Release Time (s) */ LADSPA_Data release = * (plugin->release); /* Envelope Out */ LADSPA_Data *output = plugin->output; LADSPA_Data srate = plugin->srate; LADSPA_Data inv_srate = plugin->inv_srate; LADSPA_Data last_trigger = plugin->last_trigger; LADSPA_Data from_level = plugin->from_level; LADSPA_Data level = plugin->level; ADSRState state = plugin->state; unsigned long samples = plugin->samples; LADSPA_Data elapsed; unsigned long s; /* Convert times into rates */ attack = attack > 0.0f ? inv_srate / attack : srate; decay = decay > 0.0f ? inv_srate / decay : srate; release = release > 0.0f ? inv_srate / release : srate; for (s = 0; s < sample_count; s++) { /* Attack on trigger, if gate is open */ if (trigger[s] > 0.0f && !(last_trigger > 0.0f) && gate[s] > 0.0f) { if (attack < srate) { state = ATTACK; } else { state = decay < srate ? DECAY : SUSTAIN; level = 1.0f; } samples = 0; } /* Release if gate closed */ if (state != IDLE && state != RELEASE && !(gate[s] > 0.0f)) { state = release < srate ? RELEASE : IDLE; samples = 0; } if (samples == 0) from_level = level; /* Calculate level of envelope from current state */ switch (state) { case IDLE: level = 0; break; case ATTACK: samples++; elapsed = (LADSPA_Data) samples * attack; if (elapsed > 1.0f) { state = decay < srate ? DECAY : SUSTAIN; level = 1.0f; samples = 0; } else { level = from_level + elapsed * (1.0f - from_level); } break; case DECAY: samples++; elapsed = (LADSPA_Data)samples * decay; if (elapsed > 1.0f) { state = SUSTAIN; level = sustain; samples = 0; } else { level = from_level + elapsed * (sustain - from_level); } break; case SUSTAIN: level = sustain; break; case RELEASE: samples++; elapsed = (LADSPA_Data) samples * release; if (elapsed > 1.0f) { state = IDLE; level = 0.0f; samples = 0; } else { level = from_level - elapsed * from_level; } break; default: /* Should never happen */ level = 0.0f; } output[s] = level; last_trigger = trigger[s]; } plugin->last_trigger = last_trigger; plugin->from_level = from_level; plugin->level = level; plugin->state = state; plugin->samples = samples; } void _init() { char **port_names; LADSPA_PortDescriptor *port_descriptors; LADSPA_PortRangeHint *port_range_hints; LADSPA_Descriptor *descriptor; int i; LADSPA_PortDescriptor gate_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor trigger_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor attack_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor decay_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor sustain_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor release_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runAdsr}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif adsr_descriptors = (LADSPA_Descriptor **)calloc(ADSR_VARIANT_COUNT, sizeof(LADSPA_Descriptor)); if (adsr_descriptors) { for (i = 0; i < ADSR_VARIANT_COUNT; i++) { adsr_descriptors[i] = (LADSPA_Descriptor *)malloc(sizeof(LADSPA_Descriptor)); descriptor = adsr_descriptors[i]; if (descriptor) { descriptor->UniqueID = ADSR_BASE_ID + i; descriptor->Label = "adsr_g+t"; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_("ADSR Envelope with Gate and Trigger"); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 7; port_descriptors = (LADSPA_PortDescriptor *)calloc(7, sizeof(LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *)port_descriptors; port_range_hints = (LADSPA_PortRangeHint *)calloc(7, sizeof(LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *)port_range_hints; port_names = (char **)calloc(7, sizeof(char*)); descriptor->PortNames = (const char **)port_names; /* Parameters for Gate */ port_descriptors[ADSR_GATE] = gate_port_descriptors[i]; port_names[ADSR_GATE] = G_("Gate"); port_range_hints[ADSR_GATE].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Trigger */ port_descriptors[ADSR_TRIGGER] = trigger_port_descriptors[i]; port_names[ADSR_TRIGGER] = G_("Trigger"); port_range_hints[ADSR_TRIGGER].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Attack Time (s) */ port_descriptors[ADSR_ATTACK] = attack_port_descriptors[i]; port_names[ADSR_ATTACK] = G_("Attack Time (s)"); port_range_hints[ADSR_ATTACK].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[ADSR_ATTACK].LowerBound = 0.0f; /* Parameters for Decay Time (s) */ port_descriptors[ADSR_DECAY] = decay_port_descriptors[i]; port_names[ADSR_DECAY] = G_("Decay Time (s)"); port_range_hints[ADSR_DECAY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[ADSR_DECAY].LowerBound = 0.0f; /* Parameters for Sustain Level */ port_descriptors[ADSR_SUSTAIN] = sustain_port_descriptors[i]; port_names[ADSR_SUSTAIN] = G_("Sustain Level"); port_range_hints[ADSR_SUSTAIN].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MAXIMUM; port_range_hints[ADSR_SUSTAIN].LowerBound = 0.0f; port_range_hints[ADSR_SUSTAIN].UpperBound = 1.0f; /* Parameters for Release Time (s) */ port_descriptors[ADSR_RELEASE] = release_port_descriptors[i]; port_names[ADSR_RELEASE] = G_("Release Time (s)"); port_range_hints[ADSR_RELEASE].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[ADSR_RELEASE].LowerBound = 0.0f; /* Parameters for Envelope Out */ port_descriptors[ADSR_OUTPUT] = output_port_descriptors[i]; port_names[ADSR_OUTPUT] = G_("Envelope Out"); port_range_hints[ADSR_OUTPUT].HintDescriptor = 0; descriptor->activate = activateAdsr; descriptor->cleanup = cleanupAdsr; descriptor->connect_port = connectPortAdsr; descriptor->deactivate = NULL; descriptor->instantiate = instantiateAdsr; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini() { LADSPA_Descriptor * descriptor; int i; if (adsr_descriptors) { for (i = 0; i < ADSR_VARIANT_COUNT; i++) { descriptor = adsr_descriptors[i]; if (descriptor) { free((LADSPA_PortDescriptor *)descriptor->PortDescriptors); free((char **)descriptor->PortNames); free((LADSPA_PortRangeHint *)descriptor->PortRangeHints); free(descriptor); } } free(adsr_descriptors); } } blop-0.2.8/src/include/0000777000175000006270000000000010063536512010437 5blop-0.2.8/src/include/float_cast.h0000644000175000006270000000553410045127276012655 /* ** Copyright (C) 2001 Erik de Castro Lopo ** ** Permission to use, copy, modify, distribute, and sell this file for any ** purpose is hereby granted without fee, provided that the above copyright ** and this permission notice appear in all copies. No representations are ** made about the suitability of this software for any purpose. It is ** provided "as is" without express or implied warranty. */ /* Version 1.1 */ /*============================================================================ ** On Intel Pentium processors (especially PIII and probably P4), converting ** from float to int is very slow. To meet the C specs, the code produced by ** most C compilers targeting Pentium needs to change the FPU rounding mode ** before the float to int conversion is performed. ** ** Changing the FPU rounding mode causes the FPU pipeline to be flushed. It ** is this flushing of the pipeline which is so slow. ** ** Fortunately the ISO C99 specifications define the functions lrint, lrintf, ** llrint and llrintf which fix this problem as a side effect. ** ** On Unix-like systems, the configure process should have detected the ** presence of these functions. If they weren't found we have to replace them ** here with a standard C cast. */ /* ** The C99 prototypes for lrint and lrintf are as follows: ** ** long int lrintf (float x) ; ** long int lrint (double x) ; */ #ifndef float_cast_h #define float_cast_h #include "config.h" /* The presence of the required functions are detected during the configure ** process and the values HAVE_LRINT and HAVE_LRINTF are set accordingly in ** the config.h file. */ #if (HAVE_LRINT && HAVE_LRINTF) /* These defines enable functionality introduced with the 1999 ISO C ** standard. They must be defined before the inclusion of math.h to ** engage them. If optimisation is enabled, these functions will be ** inlined. With optimisation switched off, you have to link in the ** maths library using -lm. */ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 #define __USE_ISOC9X 1 #define __USE_ISOC99 1 #include #elif (defined (WIN32) || defined (_WIN32)) #include /* Win32 doesn't seem to have these functions. ** Therefore implement inline versions of these functions here. */ __inline long int lrint (double flt) ; { int intgr; _asm { fld flt fistp intgr } ; return intgr ; } __inline long int lrintf (float flt) { int intgr; _asm { fld flt fistp intgr } ; return intgr ; } #else #warning "Don't have the functions lrint() and lrintf ()." #warning "Replacing these functions with a standard C cast." #include #define lrint(dbl) ((int)(dbl)) /* * Round float to int */ static inline int lrintf (float f) { f += (3<<22); return *((int*)&f) - 0x4b400000; } #endif #endif /* float_cast_h */ blop-0.2.8/src/include/wavedata.h0000644000175000006270000001577410025734171012335 /* wavedata.h - Structures to represent a set of wavetables Copyright (C) 2003 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef blop_wavedata_h #define blop_wavedata_h #include #include #include "math_func.h" #include "interpolate.h" #include "common.h" /* Functions identifying wavedata dlls */ #define BLOP_DLSYM_SAWTOOTH "blop_get_sawtooth" #define BLOP_DLSYM_SQUARE "blop_get_square" #define BLOP_DLSYM_PARABOLA "blop_get_parabola" /* * Structure holding a single segment of sample data * along with information relating to playback. */ typedef struct { unsigned long sample_count; /* Sample count */ LADSPA_Data * samples_lf; /* Sample data played back at amplitude inversely proportional to frequency */ LADSPA_Data * samples_hf; /* Sample data played back at amplitude proportional to frequency */ unsigned long harmonics; /* Max harmonic content of sample data */ LADSPA_Data phase_scale_factor; /* Phase scale factor for playback */ LADSPA_Data min_frequency; /* Minimum playback frequency */ LADSPA_Data max_frequency; /* Maximum playback frequency */ LADSPA_Data range_scale_factor; /* Blend scale factor for cross fading */ } Wavetable; /* * Structure holding the wavetable data and playback state */ typedef struct { void * data_handle; /* Data DLL handle */ unsigned long table_count; /* Number of wavetables in wavedata */ Wavetable ** tables; /* One or more wavetables, plus pair of extra tables for frequency extremes */ unsigned long * lookup; /* Wavetable lookup vector */ unsigned long lookup_max; /* For clipping lookup indices */ LADSPA_Data sample_rate; /* Sample rate */ LADSPA_Data nyquist; /* Nyquist rate (sample_rate / 2) */ /* Playback state */ LADSPA_Data frequency; /* Current playback frequency */ LADSPA_Data abs_freq; /* Absolute playback frequency */ LADSPA_Data xfade; /* Crossfade factor for fading */ Wavetable * table; /* Wavetable to playback */ } Wavedata; #ifdef __cplusplus extern "C" { #endif int wavedata_load (Wavedata * w, const char * wdat_descriptor_name, unsigned long sample_rate); void wavedata_unload (Wavedata * w); /***************************************************************************** * Description: Get interpolated sample from current wavetable in wavedata * at given phase offset * * Arguments: w Wavedata containing playback state and data * phase Phase offset [0.0, sample_rate] * * Returns: Interpolated sample * * Notes: Cubic (or quintic) interpolation requires four consecutive * samples for operation: * * phase * : * p1 p0 : n0 n1 * | | x | | * : : * <-o-> * : * interval * * Phase values less than one make p0 the first sample in * the table - p1 will be the last sample, as a previous * sample does not exist. To avoid checking for this case, * a copy of the last sample is stored before the first * sample in each table. * Likewise, if the phase means p0 is the last sample, n0 * and n1 will be the first and second samples respectively. * Copies of these samples are stored after the last sample * in each table. * *****************************************************************************/ static inline LADSPA_Data wavedata_get_sample (Wavedata * w, LADSPA_Data phase) { LADSPA_Data * samples_hf = w->table->samples_hf; LADSPA_Data * samples_lf = w->table->samples_lf; LADSPA_Data p1, p0, n0, n1; LADSPA_Data phase_f; long int index; /* Scale phase to map to position in wavetable */ phase *= w->table->phase_scale_factor; /* Get position of first contributing sample (p1) */ index = LRINTF ((float) phase - 0.5f); phase_f = (LADSPA_Data) index; index %= w->table->sample_count; /* Cross-fade table pairs */ /* Previous two samples */ p1 = w->xfade * (samples_lf[index] - samples_hf[index]) + samples_hf[index]; index++; p0 = w->xfade * (samples_lf[index] - samples_hf[index]) + samples_hf[index]; index++; /* Next two samples */ n0 = w->xfade * (samples_lf[index] - samples_hf[index]) + samples_hf[index]; index++; n1 = w->xfade * (samples_lf[index] - samples_hf[index]) + samples_hf[index]; /* Return interpolated sample */ return interpolate_cubic (phase - phase_f, p1, p0, n0, n1); } /***************************************************************************** * Description: Get wavetable to use for playback frequency. * * Arguments: w Wavedata object (contains all table info) * frequency Playback frequency * * Notes: The lookup vector used to determine the wavetable * is indexed by harmonic number. * * The maximum playback frequency for a wavetable is * determined by its harmonic content and the sample rate, * and equals sample_rate / 2 / max_harmonic_in_table. * *****************************************************************************/ static inline void wavedata_get_table (Wavedata * w, LADSPA_Data frequency) { unsigned long harmonic; w->frequency = frequency; w->abs_freq = (LADSPA_Data) FABSF ((float) frequency); /* Get highest harmonic possible in frequency */ harmonic = LRINTF (w->nyquist / w->abs_freq - 0.5f); /* Clip so lookup is within bounds */ if (harmonic > w->lookup_max) harmonic = w->lookup_max; /* Set playback table */ w->table = w->tables[w->lookup[harmonic]]; /* Get cross fade factor */ w->xfade = f_max (w->table->max_frequency - w->abs_freq, 0.0f) * w->table->range_scale_factor; w->xfade = f_min (w->xfade, 1.0f); } #ifdef __cplusplus } /* extern "C" { */ #endif #endif /* blop_wavedata_h */ blop-0.2.8/src/include/common.h0000644000175000006270000000265310045127246012022 /* common.h - Blah. Some stuff Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef blop_common_h #define blop_common_h #include "math_func.h" /* Handy constants and macros */ /* * Smallest generated non-zero float * Used for pre-empting denormal numbers */ #ifndef SMALLEST_FLOAT #define SMALLEST_FLOAT (1.0 / (float)0xFFFFFFFF) #endif /* * Clip without branch (from http://musicdsp.org) */ static inline float f_min (float x, float a) { return a - (a - x + FABSF (a - x)) * 0.5f; } static inline float f_max (float x, float b) { return (x - b + FABSF (x - b)) * 0.5f + b; } static inline float f_clip (float x, float a, float b) { return 0.5f * (FABSF (x - a) + a + b - FABSF (x - b)); } #endif /* blop_common_h */ blop-0.2.8/src/include/Makefile.am0000644000175000006270000000034610063052552012407 MAINTAINERCLEANFILES = Makefile.in noinst_HEADERS = \ common.h \ float_cast.h \ interpolate.h \ lp4pole_filter.h \ math_func.h \ wavedata.h \ wdatutil.h \ gettext.h blop-0.2.8/src/include/Makefile.in0000644000175000006270000001553210063536500012423 # Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = ../.. ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ AMTAR = @AMTAR@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ DEPDIR = @DEPDIR@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ HAVE_LIB = @HAVE_LIB@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ LIB = @LIB@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LTLIB = @LTLIB@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ MAINT = @MAINT@ MKINSTALLDIRS = @MKINSTALLDIRS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ first_note = @first_note@ gibbs = @gibbs@ install_sh = @install_sh@ ladspa_plugin_dir = @ladspa_plugin_dir@ ladspa_prefix = @ladspa_prefix@ min_table_size = @min_table_size@ note_step = @note_step@ sample_rate = @sample_rate@ wavedata_subdir = @wavedata_subdir@ MAINTAINERCLEANFILES = Makefile.in noinst_HEADERS = \ common.h \ float_cast.h \ interpolate.h \ lp4pole_filter.h \ math_func.h \ wavedata.h \ wdatutil.h \ gettext.h subdir = src/include mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = DIST_SOURCES = HEADERS = $(noinst_HEADERS) DIST_COMMON = $(noinst_HEADERS) Makefile.am Makefile.in all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status uninstall-info-am: tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique $(LISP) TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) GTAGS: here=`CDPATH=: && cd $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(HEADERS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: info: info-am info-am: install-data-am: install-exec-am: install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am .PHONY: GTAGS all all-am check check-am clean clean-generic distclean \ distclean-generic distclean-tags distdir dvi dvi-am info \ info-am install install-am install-data install-data-am \ install-exec install-exec-am install-info install-info-am \ install-man install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic tags uninstall uninstall-am \ uninstall-info-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: blop-0.2.8/src/include/lp4pole_filter.h0000755000175000006270000001207307773052123013463 /* lp4pole_filter.h - Header for lp4pole_filter struct, and functions to run instance. Copyright (C) 2003 Mike Rawes Originally originally appeared in CSound as Timo Tossavainen's (sp?) implementation from the Stilson/Smith CCRMA paper. See http://musicdsp.org/archive.php?classid=3#26 Originally appeared in the arts softsynth by Stefan Westerfeld: http://www.arts-project.org/ First ported to LADSPA by Reiner Klenk (pdq808[at]t-online.de) Tuning and stability issues (output NaN) and additional audio-rate variant added by Mike Rawes (mike_rawes[at]yahoo.co.uk) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef blop_lp4pole_filter_h #define blop_lp4pole_filter_h #include #include "common.h" typedef struct { LADSPA_Data f; LADSPA_Data coeff; LADSPA_Data fb; LADSPA_Data in1; LADSPA_Data in2; LADSPA_Data in3; LADSPA_Data in4; LADSPA_Data inv_nyquist; LADSPA_Data out1; LADSPA_Data out2; LADSPA_Data out3; LADSPA_Data out4; LADSPA_Data max_abs_in; } LP4PoleFilter; /***************************************************************************** * Description: Allocate a new LP4PoleFilter instance * * Arguments: sample_rate Intended playback (DAC) rate * * Returns: Allocated LP4PoleFilter instance *****************************************************************************/ LP4PoleFilter * lp4pole_new (unsigned long sample_rate); /***************************************************************************** * Description: Cleanup an existing LP4PoleFilter instance * * Arguments: lpf Pointer to LP4PoleFilter instance * allocated with initFilter *****************************************************************************/ void lp4pole_cleanup (LP4PoleFilter * lpf); /***************************************************************************** * Description: Initialise filter * * Arguments: lpf Pointer to LP4PoleFilter instance * allocated with initFilter *****************************************************************************/ void lp4pole_init (LP4PoleFilter * lpf); /***************************************************************************** * Set up filter coefficients for given LP4Pole instance * * Arguments: lpf Pointer to LP4PoleFilter instance * cutoff Cutoff frequency in Hz * resonance Resonance [Min=0.0, Max=4.0] *****************************************************************************/ static inline void lp4pole_set_params (LP4PoleFilter *lpf, LADSPA_Data cutoff, LADSPA_Data resonance) { LADSPA_Data fsqd; LADSPA_Data tuning; /* Normalise cutoff and find tuning - Magic numbers found empirically :) */ lpf->f = cutoff * lpf->inv_nyquist; tuning = f_clip (3.13f - (lpf->f * 4.24703592f), 1.56503274f, 3.13f); /* Clip to bounds */ lpf->f = f_clip (lpf->f * tuning, lpf->inv_nyquist, 1.16f); fsqd = lpf->f * lpf->f; lpf->coeff = fsqd * fsqd * 0.35013f; lpf->fb = f_clip (resonance, -1.3f, 4.0f) * (1.0f - 0.15f * fsqd); lpf->f = 1.0f - lpf->f; } /***************************************************************************** * Description: Run given LP4PoleFilter instance for a single sample * * Arguments: lpf Pointer to LP4PoleFilter instance * in Input sample * * Returns: Filtered sample *****************************************************************************/ static inline LADSPA_Data lp4pole_run (LP4PoleFilter * lpf, LADSPA_Data in) { LADSPA_Data abs_in = fabsf (16.0f * in); /* ~24dB unclipped headroom */ lpf->max_abs_in = f_max (lpf->max_abs_in, abs_in); in -= lpf->out4 * lpf->fb; in *= lpf->coeff; lpf->out1 = in + 0.3f * lpf->in1 + lpf->f * lpf->out1; /* Pole 1 */ lpf->in1 = in; lpf->out2 = lpf->out1 + 0.3f * lpf->in2 + lpf->f * lpf->out2; /* Pole 2 */ lpf->in2 = lpf->out1; lpf->out3 = lpf->out2 + 0.3f * lpf->in3 + lpf->f * lpf->out3; /* Pole 3 */ lpf->in3 = lpf->out2; lpf->out4 = lpf->out3 + 0.3f * lpf->in4 + lpf->f * lpf->out4; /* Pole 4 */ lpf->in4 = lpf->out3; /* Simple hard clip to prevent NaN */ lpf->out4 = f_clip (lpf->out4, -lpf->max_abs_in, lpf->max_abs_in); lpf->max_abs_in *= 0.999f; return lpf->out4; } #endif /* blop_lp4pole_filter_h */ blop-0.2.8/src/include/gettext.h0000644000175000006270000000575107726341005012223 /* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # define gettext(Msgid) ((const char *) (Msgid)) # define dgettext(Domainname, Msgid) ((const char *) (Msgid)) # define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid)) # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define textdomain(Domainname) ((const char *) (Domainname)) # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) # define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String #endif /* _LIBGETTEXT_H */ blop-0.2.8/src/include/interpolate.h0000644000175000006270000000531110025734171013051 #ifndef blop_interpolate_h #define blop_interpolate_h #include #include #include "math_func.h" /***************************************************************************** * Description: Interpolates between p0 and n0 taking the previous (p1) * and next (n1) points into account, using a 3rd order * polynomial (aka cubic spline) * * Arguments: interval Normalised time interval between inteprolated * sample and p0 * p1, p0 Samples prior to interpolated one * n0, n1 Samples following interpolated one * * Returns: interpolated sample * * Code: Adapted from Steve Harris' plugin code * swh-plugins-0.2.7/ladspa-util.h::cube_interp * http://plugin.org.uk/releases/0.2.7/ * *****************************************************************************/ static inline LADSPA_Data interpolate_cubic (LADSPA_Data interval, LADSPA_Data p1, LADSPA_Data p0, LADSPA_Data n0, LADSPA_Data n1) { return p0 + 0.5f * interval * (n0 - p1 + interval * (4.0f * n0 + 2.0f * p1 - 5.0f * p0 - n1 + interval * (3.0f * (p0 - n0) - p1 + n1))); } /***************************************************************************** * Description: Interpolates between p0 and n0 taking the previous (p1) * and next (n1) points into account, using a 5th order * polynomial. * * Arguments: interval Normalised time interval between inteprolated * sample and p0 * p1, p0 Samples prior to interpolated one * n0, n1 Samples following interpolated one * * Returns: interpolated sample * * Code: http://www.musicdsp.org/archive.php?classid=5#62 * *****************************************************************************/ static inline LADSPA_Data interpolate_quintic (LADSPA_Data interval, LADSPA_Data p1, LADSPA_Data p0, LADSPA_Data n0, LADSPA_Data n1) { return p0 + 0.5f * interval * (n0 - p1 + interval * (n0 - 2.0f * p0 + p1 + interval * ( 9.0f * (n0 - p0) + 3.0f * (p1 - n1) + interval * (15.0f * (p0 - n0) + 5.0f * (n1 - p1) + interval * ( 6.0f * (n0 - p0) + 2.0f * (p1 - n1)))))); } /* * Linear interpolation */ static inline float f_lerp (float value, float v1, float v2) { value -= LRINTF (value - 0.5f); value *= (v2 - v1); value += v1; return value; } #endif /* blop_interpolate_h */ blop-0.2.8/src/include/wdatutil.h0000644000175000006270000001251410063052552012361 /* wdatutil.h - Code to generate wavedata dl containing pre-calculated wavetables. Copyright (C) 2003 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef blop_wdatutil_h #define blop_wdatutil_h #include #include #include "math_func.h" #include "wavedata.h" #define WAVE_TYPE_COUNT 3 extern char *wave_names[]; extern char *wave_descriptions[]; extern unsigned long wave_first_harmonics[]; extern unsigned long wave_harmonic_intervals[]; /* Get actual maximum harmonic from given harmonic, h, and wavetype, w */ #define ACTUAL_HARM(h,w) h - (h - wave_first_harmonics[w]) % wave_harmonic_intervals[w] /* Get minimum harmonic content in given wavetype, w */ #define MIN_HARM(w) wave_first_harmonics[w] /* Get minimum extra harmonic content possible in given wavetype, w */ #define MIN_EXTRA_HARM(w) wave_harmonic_intervals[w] /* Get frequency from MIDI note, n */ #define FREQ_FROM_NOTE(n) 6.875f * POWF (2.0f, (float)(n + 3) / 12.0f) /* Get max harmonic from given frequency, f, at sample rate, r */ #define HARM_FROM_FREQ(f,r) (unsigned long)((float)r / f / 2.0f) /* * A single wavetable will have a range of pitches at which their samples * may be played back. * * The upper bound is determined by the maximum harmonic present in the * waveform - above this frequency, the higher harmonics will alias. * * The lower bound is chosen to be the higher bound of the previous wavetable * (or a pre-defined limit if there is no such table). */ typedef enum { SAW, SQUARE, PARABOLA } Wavetype; #ifdef __cplusplus extern "C" { #endif /******************************************************************************* * Description: Allocate new wavedata struct * * Arguments: sample_rate Sample rate to use when generating data * * Returns: Pointer to wavedata on success * NULL (0) on failure * * Notes: No wavetables are allocated. Use wavedata_add_table ******************************************************************************/ Wavedata * wavedata_new (unsigned long sample_rate); /******************************************************************************* * Description: Destroy allocated wavedata and any tables * * Arguments: w Wavedata struct to cleanup ******************************************************************************/ void wavedata_cleanup (Wavedata * w); /******************************************************************************* * Description: Add new wavetable information to wavedata file object * * Arguments: w Wavedata to add table to * sample_count Number of samples in wavetable * harmonics Maximum harmonics present in table * * Returns: 0 on success * -1 otherwise ******************************************************************************/ int wavedata_add_table (Wavedata * w, unsigned long sample_count, unsigned long harmonics); /******************************************************************************* * Description: Initialise all wavetables in wavedata with a waveform * generated from Fourier series. * * Arguments: w Wavedata to generate data for * wavetype Wavetype to generate * gibbs_comp Compensation for Gibbs' effect: * 0.0: none (wave will overshoot) * 1.0: full (wave will not overshoot) * * Notes: Compensation for Gibbs' Effect will reduce the degree * of overshoot and ripple at the transitions. A value of 1.0 * will pretty much eliminate it. ******************************************************************************/ void wavedata_generate_tables (Wavedata * w, Wavetype wavetype, float gibbs_comp); /******************************************************************************* * Description: Write wavedata as a c header file * * Arguments: w Wavedata to write * wdat_fp Pointer to output file * prefix Prefix to use in declarations. If this is null * declarations are prefixed with 'wdat'. * * Returns: 0 on success * -1 otherwise ******************************************************************************/ int wavedata_write (Wavedata * w, FILE * wdat_fp, char * prefix); #ifdef __cplusplus } /* extern "C" { */ #endif #endif /* blop_wdatutil_h */ blop-0.2.8/src/include/math_func.h0000644000175000006270000000151010063052552012462 /* * Provide double fallbacks for environments lacking sinf and * friends (e.g. Solaris) */ #ifndef math_func_h #define math_func_h #include "float_cast.h" #include /* Must be after float_cast.h */ #include "config.h" #ifdef HAVE_SINF /* Use float functions */ #define SINF(x) sinf(x) #define COSF(x) cosf(x) #define FABSF(x) fabsf(x) #define FLOORF(x) floorf(x) #define EXPF(x) expf(x) #define POWF(x,p) powf(x,p) #define COPYSIGNF(s,d) copysignf(s,d) #define LRINTF(x) lrintf(x) #else /* Use double functions */ #define SINF(x) sin(x) #define COSF(x) cos(x) #define FABSF(x) fabs(x) #define FLOORF(x) floor(x) #define EXPF(x) exp(x) #define POWF(x,p) pow(x) #define COPYSIGNF(s,d) copysign(s,d) #define LRINTF(x) lrint(x) #endif #endif blop-0.2.8/src/ratio_2034.so.c0000644000175000006270000002204710036233225011302 /* ratio.so.c - A LADSPA plugin to calculate the ratio of two signals Copyright (C) 2004 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "math_func.h" #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define RATIO_BASE_ID 2034 #define RATIO_VARIANT_COUNT 4 #define RATIO_NUMERATOR 0 #define RATIO_DENOMINATOR 1 #define RATIO_OUTPUT 2 LADSPA_Descriptor ** ratio_descriptors = 0; typedef struct { LADSPA_Data * numerator; LADSPA_Data * denominator; LADSPA_Data * output; } Ratio; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < RATIO_VARIANT_COUNT) return ratio_descriptors[index]; return 0; } void cleanupRatio (LADSPA_Handle instance) { free (instance); } void connectPortRatio (LADSPA_Handle instance, unsigned long port, LADSPA_Data *data) { Ratio * plugin = (Ratio *) instance; switch (port) { case RATIO_NUMERATOR: plugin->numerator = data; break; case RATIO_DENOMINATOR: plugin->denominator = data; break; case RATIO_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateRatio (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Ratio * plugin = (Ratio *) malloc (sizeof (Ratio)); return (LADSPA_Handle) plugin; } void runRatio_nada_oa (LADSPA_Handle instance, unsigned long sample_count) { Ratio * plugin = (Ratio *) instance; /* Numerator (array of floats of length sample_count) */ LADSPA_Data * numerator = plugin->numerator; /* Denominator (array of floats of length sample_count) */ LADSPA_Data * denominator = plugin->denominator; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data n; LADSPA_Data d; unsigned int s; for (s = 0; s < sample_count; s++) { n = numerator[s]; d = denominator[s]; d = COPYSIGNF (f_max (FABSF (d), 1e-16f), d); output[s] = n / d; } } void runRatio_nadc_oa (LADSPA_Handle instance, unsigned long sample_count) { Ratio * plugin = (Ratio *) instance; /* Numerator (array of floats of length sample_count) */ LADSPA_Data * numerator = plugin->numerator; /* Denominator (float value) */ LADSPA_Data denominator = * (plugin->denominator); /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data n; unsigned int s; denominator = COPYSIGNF (f_max (FABSF (denominator), 1e-16f), denominator); for (s = 0; s < sample_count; s++) { n = numerator[s]; output[s] = n / denominator; } } void runRatio_ncda_oa (LADSPA_Handle instance, unsigned long sample_count) { Ratio * plugin = (Ratio *) instance; /* Numerator (float value) */ LADSPA_Data numerator = * (plugin->numerator); /* Denominator (array of floats of length sample_count) */ LADSPA_Data * denominator = plugin->denominator; /* Output (array of floats of length sample_count) */ LADSPA_Data * output = plugin->output; LADSPA_Data d; unsigned int s; for (s = 0; s < sample_count; s++) { d = denominator[s]; d = COPYSIGNF (f_max (FABSF (d), 1e-16f), d); output[s] = numerator / d; } } void runRatio_ncdc_oc (LADSPA_Handle instance, unsigned long sample_count) { Ratio *plugin = (Ratio *)instance; /* Numerator (float value) */ LADSPA_Data numerator = * (plugin->numerator); /* Denominator (float value) */ LADSPA_Data denominator = * (plugin->denominator); /* Output Frequency (pointer to float value) */ LADSPA_Data * output = plugin->output; denominator = COPYSIGNF (f_max (FABSF (denominator), 1e-16f), denominator); output[0] = numerator / denominator; } void _init (void) { static const char * labels[] = {"ratio_nada_oa", "ratio_nadc_oa", "ratio_ncda_oa", "ratio_ncdc_oc"}; static const char * names[] = {G_NOP("Signal Ratio (NADA)"), G_NOP("Signal Ratio (NADC)"), G_NOP("Signal Ratio (NCDA)"), G_NOP("Signal Ratio (NCDC)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor numerator_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor denominator_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_CONTROL}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runRatio_nada_oa, runRatio_nadc_oa, runRatio_ncda_oa, runRatio_ncdc_oc}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif ratio_descriptors = (LADSPA_Descriptor **) calloc (RATIO_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (ratio_descriptors) { for (i = 0; i < RATIO_VARIANT_COUNT; i++) { ratio_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = ratio_descriptors[i]; if (descriptor) { descriptor->UniqueID = RATIO_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Numerator */ port_descriptors[RATIO_NUMERATOR] = numerator_port_descriptors[i]; port_names[RATIO_NUMERATOR] = G_("Numerator"); port_range_hints[RATIO_NUMERATOR].HintDescriptor = 0; /* Parameters for Denominator */ port_descriptors[RATIO_DENOMINATOR] = denominator_port_descriptors[i]; port_names[RATIO_DENOMINATOR] = G_("Denominator"); port_range_hints[RATIO_DENOMINATOR].HintDescriptor = 0; /* Parameters for Output */ port_descriptors[RATIO_OUTPUT] = output_port_descriptors[i]; port_names[RATIO_OUTPUT] = G_("Ratio Output"); port_range_hints[RATIO_OUTPUT].HintDescriptor = 0; descriptor->activate = NULL; descriptor->cleanup = cleanupRatio; descriptor->connect_port = connectPortRatio; descriptor->deactivate = NULL; descriptor->instantiate = instantiateRatio; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (ratio_descriptors) { for (i = 0; i < RATIO_VARIANT_COUNT; i++) { descriptor = ratio_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (ratio_descriptors); } } blop-0.2.8/src/dahdsr_2021.so.c0000644000175000006270000006315410036225334011433 /* dahdsr.so.c - A LADSPA plugin to generate DAHDSR envelopes Gate and (re)trigger Copyright (C) 2004 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "common.h" #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s /* 3 Variants, id = 2021, 2022 and _2038_ #define DAHDSR_BASE_ID 2021 */ #define DAHDSR_VARIANT_COUNT 3 #define DAHDSR_GATE 0 #define DAHDSR_TRIGGER 1 #define DAHDSR_DELAY 2 #define DAHDSR_ATTACK 3 #define DAHDSR_HOLD 4 #define DAHDSR_DECAY 5 #define DAHDSR_SUSTAIN 6 #define DAHDSR_RELEASE 7 #define DAHDSR_OUTPUT 8 LADSPA_Descriptor ** dahdsr_descriptors = 0; typedef enum { IDLE, DELAY, ATTACK, HOLD, DECAY, SUSTAIN, RELEASE } DAHDSRState; typedef struct { LADSPA_Data * gate; LADSPA_Data * trigger; LADSPA_Data * delay; LADSPA_Data * attack; LADSPA_Data * hold; LADSPA_Data * decay; LADSPA_Data * sustain; LADSPA_Data * release; LADSPA_Data * output; LADSPA_Data srate; LADSPA_Data inv_srate; LADSPA_Data last_gate; LADSPA_Data last_trigger; LADSPA_Data from_level; LADSPA_Data level; DAHDSRState state; unsigned long samples; } Dahdsr; const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < DAHDSR_VARIANT_COUNT) return dahdsr_descriptors[index]; return 0; } void cleanupDahdsr (LADSPA_Handle instance) { free (instance); } void connectPortDahdsr (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { Dahdsr * plugin = (Dahdsr *)instance; switch (port) { case DAHDSR_GATE: plugin->gate = data; break; case DAHDSR_TRIGGER: plugin->trigger = data; break; case DAHDSR_DELAY: plugin->delay = data; break; case DAHDSR_ATTACK: plugin->attack = data; break; case DAHDSR_HOLD: plugin->hold = data; break; case DAHDSR_DECAY: plugin->decay = data; break; case DAHDSR_SUSTAIN: plugin->sustain = data; break; case DAHDSR_RELEASE: plugin->release = data; break; case DAHDSR_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateDahdsr (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { Dahdsr * plugin = (Dahdsr *) malloc (sizeof (Dahdsr)); plugin->srate = (LADSPA_Data) sample_rate; plugin->inv_srate = 1.0f / plugin->srate; return (LADSPA_Handle) plugin; } void activateDahdsr (LADSPA_Handle instance) { Dahdsr * plugin = (Dahdsr *) instance; plugin->last_gate = 0.0f; plugin->last_trigger = 0.0f; plugin->from_level = 0.0f; plugin->level = 0.0f; plugin->state = IDLE; plugin->samples = 0; } void runDahdsr_Audio (LADSPA_Handle instance, unsigned long sample_count) { Dahdsr * plugin = (Dahdsr *) instance; /* Gate */ LADSPA_Data * gate = plugin->gate; /* Trigger */ LADSPA_Data * trigger = plugin->trigger; /* Delay Time (s) */ LADSPA_Data * delay = plugin->delay; /* Attack Time (s) */ LADSPA_Data * attack = plugin->attack; /* Hold Time (s) */ LADSPA_Data * hold = plugin->hold; /* Decay Time (s) */ LADSPA_Data * decay = plugin->decay; /* Sustain Level */ LADSPA_Data * sustain = plugin->sustain; /* Release Time (s) */ LADSPA_Data * release = plugin->release; /* Envelope Out */ LADSPA_Data * output = plugin->output; /* Instance Data */ LADSPA_Data srate = plugin->srate; LADSPA_Data inv_srate = plugin->inv_srate; LADSPA_Data last_gate = plugin->last_gate; LADSPA_Data last_trigger = plugin->last_trigger; LADSPA_Data from_level = plugin->from_level; LADSPA_Data level = plugin->level; DAHDSRState state = plugin->state; unsigned long samples = plugin->samples; LADSPA_Data gat, trg, del, att, hld, dec, sus, rel; LADSPA_Data elapsed; unsigned long s; for (s = 0; s < sample_count; s++) { /* Convert times into rates */ del = delay[s] > 0.0f ? inv_srate / delay[s] : srate; att = attack[s] > 0.0f ? inv_srate / attack[s] : srate; hld = hold[s] > 0.0f ? inv_srate / hold[s] : srate; dec = decay[s] > 0.0f ? inv_srate / decay[s] : srate; rel = release[s] > 0.0f ? inv_srate / release[s] : srate; gat = gate[s]; trg = trigger[s]; sus = f_clip (sustain[s], 0.0f, 1.0f); /* Initialise delay phase if gate is opened and was closed, or we received a trigger */ if ((trg > 0.0f && !(last_trigger > 0.0f)) || (gat > 0.0f && !(last_gate > 0.0f))) { if (del < srate) { state = DELAY; } else if (att < srate) { state = ATTACK; } else { state = hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE))); level = 1.0f; } samples = 0; } /* Release if gate was open and now closed */ if (state != IDLE && state != RELEASE && last_gate > 0.0f && !(gat > 0.0f)) { state = rel < srate ? RELEASE : IDLE; samples = 0; } if (samples == 0) from_level = level; /* Calculate level of envelope from current state */ switch (state) { case IDLE: level = 0; break; case DELAY: samples++; elapsed = (LADSPA_Data) samples * del; if (elapsed > 1.0f) { state = att < srate ? ATTACK : (hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE)))); samples = 0; } break; case ATTACK: samples++; elapsed = (LADSPA_Data) samples * att; if (elapsed > 1.0f) { state = hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE))); level = 1.0f; samples = 0; } else { level = from_level + elapsed * (1.0f - from_level); } break; case HOLD: samples++; elapsed = (LADSPA_Data) samples * hld; if (elapsed > 1.0f) { state = dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE)); samples = 0; } break; case DECAY: samples++; elapsed = (LADSPA_Data) samples * dec; if (elapsed > 1.0f) { state = gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE); level = sus; samples = 0; } else { level = from_level + elapsed * (sus - from_level); } break; case SUSTAIN: level = sus; break; case RELEASE: samples++; elapsed = (LADSPA_Data) samples * rel; if (elapsed > 1.0f) { state = IDLE; level = 0.0f; samples = 0; } else { level = from_level - elapsed * from_level; } break; default: /* Should never happen */ level = 0.0f; } output[s] = level; last_gate = gate[s]; last_trigger = trigger[s]; } plugin->last_gate = last_gate; plugin->last_trigger = last_trigger; plugin->from_level = from_level; plugin->level = level; plugin->state = state; plugin->samples = samples; } void runDahdsr_Control (LADSPA_Handle instance, unsigned long sample_count) { Dahdsr * plugin = (Dahdsr *) instance; /* Gate */ LADSPA_Data * gate = plugin->gate; /* Trigger */ LADSPA_Data * trigger = plugin->trigger; /* Delay Time (s) */ LADSPA_Data delay = * (plugin->delay); /* Attack Time (s) */ LADSPA_Data attack = * (plugin->attack); /* Hold Time (s) */ LADSPA_Data hold = * (plugin->hold); /* Decay Time (s) */ LADSPA_Data decay = * (plugin->decay); /* Sustain Level */ LADSPA_Data sustain = * (plugin->sustain); /* Release Time (s) */ LADSPA_Data release = * (plugin->release); /* Envelope Out */ LADSPA_Data * output = plugin->output; /* Instance Data */ LADSPA_Data srate = plugin->srate; LADSPA_Data inv_srate = plugin->inv_srate; LADSPA_Data last_gate = plugin->last_gate; LADSPA_Data last_trigger = plugin->last_trigger; LADSPA_Data from_level = plugin->from_level; LADSPA_Data level = plugin->level; DAHDSRState state = plugin->state; unsigned long samples = plugin->samples; LADSPA_Data gat, trg, del, att, hld, dec, sus, rel; LADSPA_Data elapsed; unsigned long s; /* Convert times into rates */ del = delay > 0.0f ? inv_srate / delay : srate; att = attack > 0.0f ? inv_srate / attack : srate; hld = hold > 0.0f ? inv_srate / hold : srate; dec = decay > 0.0f ? inv_srate / decay : srate; rel = release > 0.0f ? inv_srate / release : srate; sus = f_clip (sustain, 0.0f, 1.0f); for (s = 0; s < sample_count; s++) { gat = gate[s]; trg = trigger[s]; /* Initialise delay phase if gate is opened and was closed, or we received a trigger */ if ((trg > 0.0f && !(last_trigger > 0.0f)) || (gat > 0.0f && !(last_gate > 0.0f))) { if (del < srate) { state = DELAY; } else if (att < srate) { state = ATTACK; } else { state = hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE))); level = 1.0f; } samples = 0; } /* Release if gate was open and now closed */ if (state != IDLE && state != RELEASE && last_gate > 0.0f && !(gat > 0.0f)) { state = rel < srate ? RELEASE : IDLE; samples = 0; } if (samples == 0) from_level = level; /* Calculate level of envelope from current state */ switch (state) { case IDLE: level = 0; break; case DELAY: samples++; elapsed = (LADSPA_Data) samples * del; if (elapsed > 1.0f) { state = att < srate ? ATTACK : (hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE)))); samples = 0; } break; case ATTACK: samples++; elapsed = (LADSPA_Data) samples * att; if (elapsed > 1.0f) { state = hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE))); level = 1.0f; samples = 0; } else { level = from_level + elapsed * (1.0f - from_level); } break; case HOLD: samples++; elapsed = (LADSPA_Data) samples * hld; if (elapsed > 1.0f) { state = dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE)); samples = 0; } break; case DECAY: samples++; elapsed = (LADSPA_Data) samples * dec; if (elapsed > 1.0f) { state = gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE); level = sus; samples = 0; } else { level = from_level + elapsed * (sus - from_level); } break; case SUSTAIN: level = sus; break; case RELEASE: samples++; elapsed = (LADSPA_Data) samples * rel; if (elapsed > 1.0f) { state = IDLE; level = 0.0f; samples = 0; } else { level = from_level - elapsed * from_level; } break; default: /* Should never happen */ level = 0.0f; } output[s] = level; last_gate = gat; last_trigger = trg; } plugin->last_gate = last_gate; plugin->last_trigger = last_trigger; plugin->from_level = from_level; plugin->level = level; plugin->state = state; plugin->samples = samples; } void runDahdsr_CGT_Control (LADSPA_Handle instance, unsigned long sample_count) { Dahdsr * plugin = (Dahdsr *) instance; /* Gate */ LADSPA_Data gate = * (plugin->gate); /* Trigger */ LADSPA_Data trigger = * (plugin->trigger); /* Delay Time (s) */ LADSPA_Data delay = * (plugin->delay); /* Attack Time (s) */ LADSPA_Data attack = * (plugin->attack); /* Hold Time (s) */ LADSPA_Data hold = * (plugin->hold); /* Decay Time (s) */ LADSPA_Data decay = * (plugin->decay); /* Sustain Level */ LADSPA_Data sustain = * (plugin->sustain); /* Release Time (s) */ LADSPA_Data release = * (plugin->release); /* Envelope Out */ LADSPA_Data * output = plugin->output; /* Instance Data */ LADSPA_Data srate = plugin->srate; LADSPA_Data inv_srate = plugin->inv_srate; LADSPA_Data last_gate = plugin->last_gate; LADSPA_Data last_trigger = plugin->last_trigger; LADSPA_Data from_level = plugin->from_level; LADSPA_Data level = plugin->level; DAHDSRState state = plugin->state; unsigned long samples = plugin->samples; LADSPA_Data gat, trg, del, att, hld, dec, sus, rel; LADSPA_Data elapsed; unsigned long s; /* Convert times into rates */ del = delay > 0.0f ? inv_srate / delay : srate; att = attack > 0.0f ? inv_srate / attack : srate; hld = hold > 0.0f ? inv_srate / hold : srate; dec = decay > 0.0f ? inv_srate / decay : srate; rel = release > 0.0f ? inv_srate / release : srate; gat = gate; trg = trigger; sus = f_clip (sustain, 0.0f, 1.0f); /* Initialise delay phase if gate is opened and was closed, or we received a trigger */ if ((trg > 0.0f && !(last_trigger > 0.0f)) || (gat > 0.0f && !(last_gate > 0.0f))) { if (del < srate) { state = DELAY; } else if (att < srate) { state = ATTACK; } else { state = hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE))); level = 1.0f; } samples = 0; } /* Release if gate was open and now closed */ if (state != IDLE && state != RELEASE && last_gate > 0.0f && !(gat > 0.0f)) { state = rel < srate ? RELEASE : IDLE; samples = 0; } for (s = 0; s < sample_count; s++) { if (samples == 0) from_level = level; /* Calculate level of envelope from current state */ switch (state) { case IDLE: level = 0; break; case DELAY: samples++; elapsed = (LADSPA_Data) samples * del; if (elapsed > 1.0f) { state = att < srate ? ATTACK : (hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE)))); samples = 0; } break; case ATTACK: samples++; elapsed = (LADSPA_Data) samples * att; if (elapsed > 1.0f) { state = hld < srate ? HOLD : (dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE))); level = 1.0f; samples = 0; } else { level = from_level + elapsed * (1.0f - from_level); } break; case HOLD: samples++; elapsed = (LADSPA_Data) samples * hld; if (elapsed > 1.0f) { state = dec < srate ? DECAY : (gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE)); samples = 0; } break; case DECAY: samples++; elapsed = (LADSPA_Data) samples * dec; if (elapsed > 1.0f) { state = gat > 0.0f ? SUSTAIN : (rel < srate ? RELEASE : IDLE); level = sus; samples = 0; } else { level = from_level + elapsed * (sus - from_level); } break; case SUSTAIN: level = sus; break; case RELEASE: samples++; elapsed = (LADSPA_Data) samples * rel; if (elapsed > 1.0f) { state = IDLE; level = 0.0f; samples = 0; } else { level = from_level - elapsed * from_level; } break; default: /* Should never happen */ level = 0.0f; } output[s] = level; } plugin->last_gate = gat; plugin->last_trigger = trg; plugin->from_level = from_level; plugin->level = level; plugin->state = state; plugin->samples = samples; } void _init (void) { static const unsigned long ids[] = {2021, 2022, 2038}; static const char * labels[] = {"dahdsr_g+t_audio", "dahdsr_g+t_control", "dahdsr_cg+t_control"}; static const char * names[] = {G_NOP("DAHDSR Envelope with Gate and Trigger (Audio-Rate Inputs)"), G_NOP("DAHDSR Envelope with Gate and Trigger (Control Inputs)"), G_NOP("DAHDSR Envelope with Control Gate and Trigger (Control Inputs)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor gate_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor trigger_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor delay_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor attack_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor hold_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor decay_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor sustain_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor release_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runDahdsr_Audio, runDahdsr_Control, runDahdsr_CGT_Control}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif dahdsr_descriptors = (LADSPA_Descriptor **) calloc (DAHDSR_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (dahdsr_descriptors) { for (i = 0; i < DAHDSR_VARIANT_COUNT; i++) { dahdsr_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof (LADSPA_Descriptor)); descriptor = dahdsr_descriptors[i]; if (descriptor) { descriptor->UniqueID = ids[i]; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 9; port_descriptors = (LADSPA_PortDescriptor *) calloc (9, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *)port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (9, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (9, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Gate */ port_descriptors[DAHDSR_GATE] = gate_port_descriptors[i]; port_names[DAHDSR_GATE] = G_("Gate"); port_range_hints[DAHDSR_GATE].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Trigger */ port_descriptors[DAHDSR_TRIGGER] = trigger_port_descriptors[i]; port_names[DAHDSR_TRIGGER] = G_("Trigger"); port_range_hints[DAHDSR_TRIGGER].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Delay Time (s) */ port_descriptors[DAHDSR_DELAY] = delay_port_descriptors[i]; port_names[DAHDSR_DELAY] = G_("Delay Time (s)"); port_range_hints[DAHDSR_DELAY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[DAHDSR_DELAY].LowerBound = 0.0f; /* Parameters for Attack Time (s) */ port_descriptors[DAHDSR_ATTACK] = attack_port_descriptors[i]; port_names[DAHDSR_ATTACK] = G_("Attack Time (s)"); port_range_hints[DAHDSR_ATTACK].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[DAHDSR_ATTACK].LowerBound = 0.0f; /* Parameters for Hold Time (s) */ port_descriptors[DAHDSR_HOLD] = hold_port_descriptors[i]; port_names[DAHDSR_HOLD] = G_("Hold Time (s)"); port_range_hints[DAHDSR_HOLD].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[DAHDSR_HOLD].LowerBound = 0.0f; /* Parameters for Decay Time (s) */ port_descriptors[DAHDSR_DECAY] = decay_port_descriptors[i]; port_names[DAHDSR_DECAY] = G_("Decay Time (s)"); port_range_hints[DAHDSR_DECAY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[DAHDSR_DECAY].LowerBound = 0.0f; /* Parameters for Sustain Level */ port_descriptors[DAHDSR_SUSTAIN] = sustain_port_descriptors[i]; port_names[DAHDSR_SUSTAIN] = G_("Sustain Level"); port_range_hints[DAHDSR_SUSTAIN].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_MAXIMUM; port_range_hints[DAHDSR_SUSTAIN].LowerBound = 0.0f; port_range_hints[DAHDSR_SUSTAIN].UpperBound = 1.0f; /* Parameters for Release Time (s) */ port_descriptors[DAHDSR_RELEASE] = release_port_descriptors[i]; port_names[DAHDSR_RELEASE] = G_("Release Time (s)"); port_range_hints[DAHDSR_RELEASE].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_DEFAULT_MINIMUM; port_range_hints[DAHDSR_RELEASE].LowerBound = 0.0f; /* Parameters for Envelope Out */ port_descriptors[DAHDSR_OUTPUT] = output_port_descriptors[i]; port_names[DAHDSR_OUTPUT] = G_("Envelope Out"); port_range_hints[DAHDSR_OUTPUT].HintDescriptor = 0; descriptor->activate = activateDahdsr; descriptor->cleanup = cleanupDahdsr; descriptor->connect_port = connectPortDahdsr; descriptor->deactivate = NULL; descriptor->instantiate = instantiateDahdsr; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (dahdsr_descriptors) { for (i = 0; i < DAHDSR_VARIANT_COUNT; i++) { descriptor = dahdsr_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (dahdsr_descriptors); } } blop-0.2.8/src/sync_square_1678.so.c0000644000175000006270000002122510025742322012533 /* syncsquare.so.c - A LADSPA plugin to generate a non-bandlimited square waveform with gate for trigger and sync Copyright (C) 2002 Mike Rawes This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include "gettext.h" #ifdef ENABLE_NLS #include #define G_(s) gettext(s) #else #define G_(s) (s) #endif #define G_NOP(s) s #define SYNCSQUARE_BASE_ID 1678 #define SYNCSQUARE_VARIANT_COUNT 2 #define SYNCSQUARE_FREQUENCY 0 #define SYNCSQUARE_GATE 1 #define SYNCSQUARE_OUTPUT 2 LADSPA_Descriptor ** syncsquare_descriptors = 0; typedef struct { LADSPA_Data * frequency; LADSPA_Data * gate; LADSPA_Data * output; LADSPA_Data srate; LADSPA_Data nyquist; LADSPA_Data phase; } SyncSquare; /***************************************************************************** * * LADSPA Plugin code * *****************************************************************************/ const LADSPA_Descriptor * ladspa_descriptor (unsigned long index) { if (index < SYNCSQUARE_VARIANT_COUNT) return syncsquare_descriptors[index]; return 0; } void cleanupSyncSquare (LADSPA_Handle instance) { free (instance); } void connectPortSyncSquare (LADSPA_Handle instance, unsigned long port, LADSPA_Data * data) { SyncSquare * plugin = (SyncSquare *) instance; switch (port) { case SYNCSQUARE_FREQUENCY: plugin->frequency = data; break; case SYNCSQUARE_GATE: plugin->gate = data; break; case SYNCSQUARE_OUTPUT: plugin->output = data; break; } } LADSPA_Handle instantiateSyncSquare (const LADSPA_Descriptor * descriptor, unsigned long sample_rate) { SyncSquare * plugin = (SyncSquare *) malloc (sizeof (SyncSquare)); plugin->srate = (LADSPA_Data) sample_rate; plugin->nyquist = (LADSPA_Data) (sample_rate / 2); return (LADSPA_Handle) plugin; } void activateSyncSquare (LADSPA_Handle instance) { SyncSquare * plugin = (SyncSquare *) instance; plugin->phase = 0.0f; } void runSyncSquare_faga_oa (LADSPA_Handle instance, unsigned long sample_count) { SyncSquare * plugin = (SyncSquare *) instance; /* Frequency (array of LADSPA_Data of length sample_count) */ LADSPA_Data * frequency = plugin->frequency; /* Gate (array of LADSPA_Data of length sample_count) */ LADSPA_Data * gate = plugin->gate; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance data */ LADSPA_Data phase = plugin->phase; LADSPA_Data srate = plugin->srate; LADSPA_Data nyquist = plugin->nyquist; LADSPA_Data freq; unsigned long s; for (s = 0; s < sample_count; s++) { if (gate[s] > 0.0f) { freq = frequency[s]; if (phase < nyquist) output[s] = 1.0f; else output[s] = -1.0f; phase += freq; if (phase < 0.0f) phase += srate; else if (phase > srate) phase -= srate; } else { output[s] = 0.0f; phase = 0.0f; } } plugin->phase = phase; } void runSyncSquare_fcga_oa (LADSPA_Handle instance, unsigned long sample_count) { SyncSquare * plugin = (SyncSquare *) instance; /* Frequency (LADSPA_Data value) */ LADSPA_Data frequency = * (plugin->frequency); /* Gate (array of LADSPA_Data of length sample_count) */ LADSPA_Data * gate = plugin->gate; /* Output (pointer to LADSPA_Data value) */ LADSPA_Data * output = plugin->output; /* Instance Data */ LADSPA_Data phase = plugin->phase; LADSPA_Data srate = plugin->srate; LADSPA_Data nyquist = plugin->nyquist; unsigned long s; for (s = 0; s < sample_count; s++) { if (gate[s] > 0.0f) { if (phase < nyquist) output[s] = 1.0f; else output[s] = -1.0f; phase += frequency; if (phase < 0.0f) phase += srate; else if (phase > srate) phase -= srate; } else { output[s] = 0.0f; phase = 0.0f; } } plugin->phase = phase; } void _init (void) { static const char * labels[] = {"syncsquare_faga_oa", "syncsquare_fcga_oa"}; static const char * names[] = {G_NOP("Clock Oscillator with Gate (FAGA)"), G_NOP("Clock Oscillator with Gate (FCGA)")}; char ** port_names; LADSPA_PortDescriptor * port_descriptors; LADSPA_PortRangeHint * port_range_hints; LADSPA_Descriptor * descriptor; int i; LADSPA_PortDescriptor frequency_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_CONTROL}; LADSPA_PortDescriptor gate_port_descriptors[] = {LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_INPUT | LADSPA_PORT_AUDIO}; LADSPA_PortDescriptor output_port_descriptors[] = {LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO, LADSPA_PORT_OUTPUT | LADSPA_PORT_AUDIO}; void (*run_functions[]) (LADSPA_Handle, unsigned long) = {runSyncSquare_faga_oa, runSyncSquare_fcga_oa}; #ifdef ENABLE_NLS setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); #endif syncsquare_descriptors = (LADSPA_Descriptor **) calloc (SYNCSQUARE_VARIANT_COUNT, sizeof (LADSPA_Descriptor)); if (syncsquare_descriptors) { for (i = 0; i < SYNCSQUARE_VARIANT_COUNT; i++) { syncsquare_descriptors[i] = (LADSPA_Descriptor *) malloc (sizeof(LADSPA_Descriptor)); descriptor = syncsquare_descriptors[i]; if (descriptor) { descriptor->UniqueID = SYNCSQUARE_BASE_ID + i; descriptor->Label = labels[i]; descriptor->Properties = LADSPA_PROPERTY_HARD_RT_CAPABLE; descriptor->Name = G_(names[i]); descriptor->Maker = "Mike Rawes "; descriptor->Copyright = "GPL"; descriptor->PortCount = 3; port_descriptors = (LADSPA_PortDescriptor *) calloc (3, sizeof (LADSPA_PortDescriptor)); descriptor->PortDescriptors = (const LADSPA_PortDescriptor *) port_descriptors; port_range_hints = (LADSPA_PortRangeHint *) calloc (3, sizeof (LADSPA_PortRangeHint)); descriptor->PortRangeHints = (const LADSPA_PortRangeHint *) port_range_hints; port_names = (char **) calloc (3, sizeof (char*)); descriptor->PortNames = (const char **) port_names; /* Parameters for Frequency */ port_descriptors[SYNCSQUARE_FREQUENCY] = frequency_port_descriptors[i]; port_names[SYNCSQUARE_FREQUENCY] = G_("Frequency"); port_range_hints[SYNCSQUARE_FREQUENCY].HintDescriptor = LADSPA_HINT_BOUNDED_BELOW | LADSPA_HINT_BOUNDED_ABOVE | LADSPA_HINT_DEFAULT_LOW; port_range_hints[SYNCSQUARE_FREQUENCY].LowerBound = 0.0f; port_range_hints[SYNCSQUARE_FREQUENCY].UpperBound = 64.0f; /* Parameters for Reset Trigger */ port_descriptors[SYNCSQUARE_GATE] = gate_port_descriptors[i]; port_names[SYNCSQUARE_GATE] = G_("Gate"); port_range_hints[SYNCSQUARE_GATE].HintDescriptor = LADSPA_HINT_TOGGLED; /* Parameters for Output */ port_descriptors[SYNCSQUARE_OUTPUT] = output_port_descriptors[i]; port_names[SYNCSQUARE_OUTPUT] = G_("Output"); port_range_hints[SYNCSQUARE_OUTPUT].HintDescriptor = 0; descriptor->activate = activateSyncSquare; descriptor->cleanup = cleanupSyncSquare; descriptor->connect_port = connectPortSyncSquare; descriptor->deactivate = NULL; descriptor->instantiate = instantiateSyncSquare; descriptor->run = run_functions[i]; descriptor->run_adding = NULL; descriptor->set_run_adding_gain = NULL; } } } } void _fini (void) { LADSPA_Descriptor * descriptor; int i; if (syncsquare_descriptors) { for (i = 0; i < SYNCSQUARE_VARIANT_COUNT; i++) { descriptor = syncsquare_descriptors[i]; if (descriptor) { free ((LADSPA_PortDescriptor *) descriptor->PortDescriptors); free ((char **) descriptor->PortNames); free ((LADSPA_PortRangeHint *) descriptor->PortRangeHints); free (descriptor); } } free (syncsquare_descriptors); } } blop-0.2.8/NEWS0000644000175000006270000000311207616057666006657 Jan-29-2003: Now with RDF metadata Jan-25-2003: Improved performance of bandlimited oscillators (between 16% and 89% faster) Low pass filter now comes in two variants - a fast roughly tuned one, and a new slower accurately tuned variant. Jan-09-2003: New sequencer, sync square and gate+trigger ADSR Major fixes to oscillator code (removed branches) and properly tuned low pass filter. Jul-14-2002: New low-pass resonant filter plugin Jul-10-2002: Now with configure and autostuff Jul-08-2002: A couple of new plugins (sum, which was lmod, and product). Jul-06-2002: Finalised GNU build system - confirmed as functional Jun-19-2002: A few more new plugins: random wave, adsr and control-to-audio interpolator Jun-17-2002: New plugins added: amp, fmod and lmod Oh, and the first page on the website is up... http://blop.sourceforge.net Jun-14-2002: Fixed extreme frequency bug that was causing phase drift. Now ignores frequencies exceeding [-Nyquist,+Nyquist] - no phase advance. Jun-09-2002: Fixed Gibbs compensation - now works properly. Jun-01-2002: Bugfix: Parabola generation code was using the wrong scale factor, causing triangle plugin to have excessive amplitude. Now matches other plugins. May-31-2002: Some optimisations mean they now run faster Now really do use cubic spline interpolation (previously 5th order) May-15-2002: Now does cubic spline interpolation. blop-0.2.8/TODO0000644000175000006270000001101210063536355006631 TODO: Entry Date Item Description Completed Release ------------------------------------------------------------------------------ 2003-12-01 Where have I been? Clean up the wavedata generation code Too many structures, too complicated Karplus-Strong (pluck) oscillator would be nice, plus some variants (different filters etc) 2003-08-27 Replace malloced data structures with static data where possible Create arpeggiator and combined BL osc with phase sync gettext support 2003-09-09 2003-01-29 Create gentoo .ebuild for v0.2.6 2003-01-29 0.2.6 2003-01-25 Create rdf file to describe plugins 2003-01-29 0.2.6 2003-01-15 Check recent changes re: performance, and 2003-01-25 0.2.6 release 0.2.6. It's been faaaar too long 2002-12-17 See what can be done to make the 2002-12-23 0.2.6 oscillator code branchless 2002-11-24 The low pass filter - tune it, sigmoid it 2002-12-17 0.2.6 and FINISH it. Dammit :) 2002-09-18 Where have I been? Erm.... 2002-11-24 0.2.6 Need an ADSR with Gate+Trigger 2002-07-10 Rework the lowpass filter plugin that 2002-07-14 0.2.5 comes with ladspaToy - make it stable and add an audio port variant. 2002-06-17 ADSR, Control-to-Audio interpolator and 2002-06-25 0.2.4 Randomizer plugins Get IDs for new plugins 2002-06-25 0.2.4 Add make rules for new plugins 2002-06-25 0.2.4 2002-06-07 Square waves only contain odd harmonics 2002-06-08 0.2.0 - need to fix wavegen and co to handle this properly (at present, some wavetables have extra sample data containing 0 harmonics). 2002-06-04 NONSENSE REMOVED 2002-06-04 0.2.0 Triangle plugin still producing the odd 2002-06-05 0.2.0 NaN - need to really test it properly 2002-05-31 triangle.so.c - Why is it really loud 2002-06-01 0.2.0 (compared to sawtooth)? 2002-05-29 Interpolate.h - getSamples: This function 2002-06-01 0.2.0 needs urgent attention. All those %'s. Find a way of cleaning it up. getTable: Cross fading should not be 2002-06-02 0.2.0 done at the two extreme frequencies (below minimum or above maximum). And no output should result from very high frequencies. 2002-05-23 Optimisation - there are definitely a couple of ways of reducing the number of interpolations done per sample: 1) For the pulse and triangle, if the DISCARDED pulsewidth/slope is kept to a whole (2002-06-02) number phase offset (so that the interpolation interval is the same for both the in-phase and shifted waveforms), it is possible to do the difference (to get the pulse), and then do a single interpolation on the result. 2) For cross fading, it is slightly 2002-05-28 0.1.3 more difficult, as each wave has a different number of samples (so the interval is different for each, requiring two interpolations). This can be overcome by generating pairs of wavetables of the same sample count for cross fading, at the cost of doubling the memory used for the wavedata. 2002-05-15 Stress tests (make sure there are no 2002-06-14 0.2.3 crashes etc. for extreme values) 2002-05-12 Build System - Use Auto{make,conf} 2002-07-10 0.2.4 Resampling interpolation - it's linear 2002-05-15 0.1.2 at the moment, which works, but is a bit crap. Try cubic spline interp. Mixing of two wavetables: Should be logarithmic, not linear proportions. See if there's a better way to do 2002-05-23 0.1.2 wavetable lookups than the binary tree. All those float comparisons will take their toll... blop-0.2.8/depcomp0000755000175000006270000002752510040210547007521 #! /bin/sh # depcomp - compile a program generating dependencies as side-effects # Copyright 1999, 2000 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # `libtool' can also be set to `yes' or `no'. depfile=${depfile-`echo "$object" | sed 's,\([^/]*\)$,.deps/\1,;s/\.\([^.]*\)$/.P\1/'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the `deleted header file' problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' ' ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as ## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like `#:fec' to the end of the # dependency line. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr ' ' ' ' >> $depfile echo >> $depfile # The second pass generates a dummy entry for each header file. tr ' ' ' ' < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> $depfile else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. This file always lives in the current directory. # Also, the AIX compiler puts `$object:' at the start of each line; # $object doesn't have directory information. stripped=`echo "$object" | sed -e 's,^.*/,,' -e 's/\(.*\)\..*$/\1/'` tmpdepfile="$stripped.u" outname="$stripped.o" if test "$libtool" = yes; then "$@" -Wc,-M else "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi if test -f "$tmpdepfile"; then # Each line is of the form `foo.o: dependent.h'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; tru64) # The Tru64 AIX compiler uses -MD to generate dependencies as a side # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in `foo.d' instead, so we check for that too. # Subdirectories are respected. tmpdepfile1="$object.d" tmpdepfile2=`echo "$object" | sed -e 's/.o$/.d/'` if test "$libtool" = yes; then "$@" -Wc,-MD else "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi if test -f "$tmpdepfile1"; then tmpdepfile="$tmpdepfile1" else tmpdepfile="$tmpdepfile2" fi if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" # That's a space and a tab in the []. sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. test -z "$dashmflag" && dashmflag=-M ( IFS=" " case " $* " in *" --mode=compile "*) # this is libtool, let us make it quiet for arg do # cycle over the arguments case "$arg" in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" $dashmflag | sed 's:^[^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' ' ' < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) # X makedepend ( shift cleared=no for arg in "$@"; do case $cleared in no) set ""; shift cleared=yes esac case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift;; -*) ;; *) set fnord "$@" "$arg"; shift;; esac done obj_suffix="`echo $object | sed 's/^.*\././'`" touch "$tmpdepfile" ${MAKEDEPEND-makedepend} 2>/dev/null -o"$obj_suffix" -f"$tmpdepfile" "$@" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tail +3 "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" -E | sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the proprocessed file to stdout, regardless of -o, # because we must use -o when running libtool. ( IFS=" " case " $* " in *" --mode=compile "*) for arg do # cycle over the arguments case $arg in "--mode=compile") # insert --quiet before "--mode=compile" set fnord "$@" --quiet shift # fnord ;; esac set fnord "$@" "$arg" shift # fnord shift # "$arg" done ;; esac "$@" -E | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" ) & proc=$! "$@" stat=$? wait "$proc" if test "$stat" != 0; then exit $stat; fi rm -f "$depfile" echo "$object : \\" > "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" echo " " >> "$depfile" . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 blop-0.2.8/aclocal.m40000644000175000006270000030503010063536467010013 # aclocal.m4 generated automatically by aclocal 1.5 # Copyright 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. dnl @synopsis AC_C99_FUNC_LRINTF dnl dnl Check whether C99's lrintf function is available. dnl @version 1.1 dnl @author Erik de Castro Lopo dnl dnl Permission to use, copy, modify, distribute, and sell this file for any dnl purpose is hereby granted without fee, provided that the above copyright dnl and this permission notice appear in all copies. No representations are dnl made about the suitability of this software for any purpose. It is dnl provided "as is" without express or implied warranty. dnl AC_DEFUN([AC_C99_FUNC_LRINTF], [AC_CACHE_CHECK(for lrintf, ac_cv_c99_lrintf, [AC_TRY_COMPILE([ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 #define __USE_ISOC99 1 #define __USE_ISOC9X 1 #include ], [ int value = lrintf (0.432) ; ], ac_cv_c99_lrintf=yes, ac_cv_c99_lrintf=no)]) if test $ac_cv_c99_lrintf = yes; then AC_DEFINE(HAVE_LRINTF, 1, [Define if you have C99's lrintf function.]) fi ])# AC_C99_LRINTF dnl @synopsis AC_C99_FUNC_LRINT dnl dnl Check whether C99's lrint function is available. dnl @version 1.1 dnl @author Erik de Castro Lopo dnl dnl Permission to use, copy, modify, distribute, and sell this file for any dnl purpose is hereby granted without fee, provided that the above copyright dnl and this permission notice appear in all copies. No representations are dnl made about the suitability of this software for any purpose. It is dnl provided "as is" without express or implied warranty. dnl AC_DEFUN([AC_C99_FUNC_LRINT], [AC_CACHE_CHECK(for lrint, ac_cv_c99_lrint, [AC_TRY_COMPILE([ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 #define __USE_ISOC99 1 #define __USE_ISOC9X 1 #include ], [ int value = lrint (0.432) ; ], ac_cv_c99_lrint=yes, ac_cv_c99_lrint=no)]) if test $ac_cv_c99_lrint = yes; then AC_DEFINE(HAVE_LRINT, 1, [Define if you have C99's lrint function.]) fi ])# AC_C99_LRINT # Like AC_CONFIG_HEADER, but automatically create stamp file. # serial 3 # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. We must strip everything past the first ":", # and everything past the last "/". AC_PREREQ([2.12]) AC_DEFUN([AM_CONFIG_HEADER], [ifdef([AC_FOREACH],dnl [dnl init our file count if it isn't already m4_ifndef([_AM_Config_Header_Index], m4_define([_AM_Config_Header_Index], [0])) dnl prepare to store our destination file list for use in config.status AC_FOREACH([_AM_File], [$1], [m4_pushdef([_AM_Dest], m4_patsubst(_AM_File, [:.*])) m4_define([_AM_Config_Header_Index], m4_incr(_AM_Config_Header_Index)) dnl and add it to the list of files AC keeps track of, along dnl with our hook AC_CONFIG_HEADERS(_AM_File, dnl COMMANDS, [, INIT-CMDS] [# update the timestamp echo timestamp >"AS_ESCAPE(_AM_DIRNAME(]_AM_Dest[))/stamp-h]_AM_Config_Header_Index[" ][$2]m4_ifval([$3], [, [$3]]))dnl AC_CONFIG_HEADERS m4_popdef([_AM_Dest])])],dnl [AC_CONFIG_HEADER([$1]) AC_OUTPUT_COMMANDS( ifelse(patsubst([$1], [[^ ]], []), [], [test -z "$CONFIG_HEADERS" || echo timestamp >dnl patsubst([$1], [^\([^:]*/\)?.*], [\1])stamp-h]),dnl [am_indx=1 for am_file in $1; do case " \$CONFIG_HEADERS " in *" \$am_file "*) am_dir=\`echo \$am_file |sed 's%:.*%%;s%[^/]*\$%%'\` if test -n "\$am_dir"; then am_tmpdir=\`echo \$am_dir |sed 's%^\(/*\).*\$%\1%'\` for am_subdir in \`echo \$am_dir |sed 's%/% %'\`; do am_tmpdir=\$am_tmpdir\$am_subdir/ if test ! -d \$am_tmpdir; then mkdir \$am_tmpdir fi done fi echo timestamp > "\$am_dir"stamp-h\$am_indx ;; esac am_indx=\`expr \$am_indx + 1\` done]) ])]) # AM_CONFIG_HEADER # _AM_DIRNAME(PATH) # ----------------- # Like AS_DIRNAME, only do it during macro expansion AC_DEFUN([_AM_DIRNAME], [m4_if(m4_regexp([$1], [^.*[^/]//*[^/][^/]*/*$]), -1, m4_if(m4_regexp([$1], [^//\([^/]\|$\)]), -1, m4_if(m4_regexp([$1], [^/.*]), -1, [.], m4_patsubst([$1], [^\(/\).*], [\1])), m4_patsubst([$1], [^\(//\)\([^/].*\|$\)], [\1])), m4_patsubst([$1], [^\(.*[^/]\)//*[^/][^/]*/*$], [\1]))[]dnl ]) # _AM_DIRNAME # Do all the work for Automake. This macro actually does too much -- # some checks are only needed if your package does certain things. # But this isn't really a big deal. # serial 5 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # We require 2.13 because we rely on SHELL being computed by configure. AC_PREREQ([2.13]) # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) # ----------------------------------------------------------- # If MACRO-NAME is provided do IF-PROVIDED, else IF-NOT-PROVIDED. # The purpose of this macro is to provide the user with a means to # check macros which are provided without letting her know how the # information is coded. # If this macro is not defined by Autoconf, define it here. ifdef([AC_PROVIDE_IFELSE], [], [define([AC_PROVIDE_IFELSE], [ifdef([AC_PROVIDE_$1], [$2], [$3])])]) # AM_INIT_AUTOMAKE(PACKAGE,VERSION, [NO-DEFINE]) # ---------------------------------------------- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run \"make distclean\" there first]) fi # Define the identity of the package. PACKAGE=$1 AC_SUBST(PACKAGE)dnl VERSION=$2 AC_SUBST(VERSION)dnl ifelse([$3],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])]) # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow # the ones we care about. ifdef([m4_pattern_allow], [m4_pattern_allow([^AM_[A-Z]+FLAGS])])dnl # Autoconf 2.50 always computes EXEEXT. However we need to be # compatible with 2.13, for now. So we always define EXEEXT, but we # don't compute it. AC_SUBST(EXEEXT) # Similar for OBJEXT -- only we only use OBJEXT if the user actually # requests that it be used. This is a bit dumb. : ${OBJEXT=o} AC_SUBST(OBJEXT) # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_DEP_TRACK])dnl AC_REQUIRE([AM_SET_DEPDIR])dnl AC_PROVIDE_IFELSE([AC_PROG_][CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_][CC], defn([AC_PROG_][CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_][CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_][CXX], defn([AC_PROG_][CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) # # Check to make sure that the build environment is sane. # # serial 3 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # serial 2 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= am_backtick='`' AC_MSG_WARN([${am_backtick}missing' script is too old or missing]) fi ]) # AM_AUX_DIR_EXPAND # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [ # expand $ac_aux_dir to an absolute path am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd` ]) # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # serial 4 -*- Autoconf -*- # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # --------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX" or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'] [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi for depmode in $am_compiler_list; do # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. echo '#include "conftest.h"' > conftest.c echo 'int i;' > conftest.h echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=conftest.c object=conftest.o \ depfile=conftest.Po tmpdepfile=conftest.TPo \ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && grep conftest.h conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then am_cv_$1_dependencies_compiler_type=$depmode break fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) $1DEPMODE="depmode=$am_cv_$1_dependencies_compiler_type" AC_SUBST([$1DEPMODE]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [rm -f .deps 2>/dev/null mkdir .deps 2>/dev/null if test -d .deps; then DEPDIR=.deps else # MS-DOS does not allow filenames that begin with a dot. DEPDIR=_deps fi rmdir .deps 2>/dev/null AC_SUBST(DEPDIR) ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) pushdef([subst], defn([AC_SUBST])) subst(AMDEPBACKSLASH) popdef([subst]) ]) # Generate code to set up dependency tracking. # This macro should only be invoked once -- use via AC_REQUIRE. # Usage: # AM_OUTPUT_DEPENDENCY_COMMANDS # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],[ AC_OUTPUT_COMMANDS([ test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do case "$mf" in Makefile|GNUmakefile) dirpart=.;; */Makefile|*/GNUmakefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;; *) continue;; esac grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # We invoke sed twice because it is the simplest approach to # changing $(DEPDIR) to its actual value in the expansion. for file in `sed -n -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`echo "$file" | sed -e 's|/[^/]*$||'` $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1 # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])]) # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' doit: @echo done END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include='#' am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote='"' _am_result=BSD fi fi AC_SUBST(am__include) AC_SUBST(am__quote) AC_MSG_RESULT($_am_result) rm -f confinc confmf ]) # serial 3 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. # # FIXME: Once using 2.50, use this: # m4_match([$1], [^TRUE\|FALSE$], [AC_FATAL([$0: invalid condition: $1])])dnl AC_DEFUN([AM_CONDITIONAL], [ifelse([$1], [TRUE], [errprint(__file__:__line__: [$0: invalid condition: $1 ])dnl m4exit(1)])dnl ifelse([$1], [FALSE], [errprint(__file__:__line__: [$0: invalid condition: $1 ])dnl m4exit(1)])dnl AC_SUBST([$1_TRUE]) AC_SUBST([$1_FALSE]) if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi]) # Add --enable-maintainer-mode option to configure. # From Jim Meyering # serial 1 AC_DEFUN([AM_MAINTAINER_MODE], [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode is disabled by default AC_ARG_ENABLE(maintainer-mode, [ --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer], USE_MAINTAINER_MODE=$enableval, USE_MAINTAINER_MODE=no) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST(MAINT)dnl ] ) # gettext.m4 serial 20 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define(gt_included_intl, ifelse([$1], [external], [no], [yes])) define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], [])) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Set USE_NLS. AM_NLS ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. dnl Add a version number to the cache macros. define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1))) define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc]) define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl]) AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc, [AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings], gt_cv_func_gnugettext_libc=yes, gt_cv_func_gnugettext_libc=no)]) if test "$gt_cv_func_gnugettext_libc" != "yes"; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], gt_cv_func_gnugettext_libintl, [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], gt_cv_func_gnugettext_libintl=yes, gt_cv_func_gnugettext_libintl=no) dnl Now see whether libintl exists and depends on libiconv. if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include ]ifelse([$2], [need-formatstring-macros], [#ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ], [])[extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias ();], [bindtextdomain ("", ""); return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext_libintl=yes ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if test "$gt_cv_func_gnugettext_libc" = "yes" \ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext_libintl" = "yes"; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([AC_ISC_POSIX])dnl AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_C_CONST])dnl AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_OFF_T])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([jm_GLIBC21])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \ stdlib.h string.h unistd.h sys/param.h]) AC_CHECK_FUNCS([feof_unlocked fgets_unlocked getc_unlocked getcwd getegid \ geteuid getgid getuid mempcpy munmap putenv setenv setlocale stpcpy \ strcasecmp strdup strtoul tsearch __argz_count __argz_stringify __argz_next \ __fsetlocking]) AM_ICONV AM_LANGINFO_CODESET if test $ac_cv_header_locale_h = yes; then AM_LC_MESSAGES fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) # po.m4 serial 1 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_MKINSTALLDIRS])dnl AC_REQUIRE([AM_NLS])dnl dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :) dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU msgfmt. if test "$GMSGFMT" != ":"; then dnl If it is no GNU msgfmt we define it as : so that the dnl Makefiles still can work. if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` AC_MSG_RESULT( [found $GMSGFMT program is not GNU msgfmt; ignore it]) GMSGFMT=":" fi fi dnl This could go away some day; the PATH_PROG_WITH_TEST already does it. dnl Test whether we really found GNU xgettext. if test "$XGETTEXT" != ":"; then dnl If it is no GNU xgettext we define it as : so that the dnl Makefiles still can work. if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else AC_MSG_RESULT( [found xgettext program is not GNU xgettext; ignore it]) XGETTEXT=":" fi dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po fi AC_OUTPUT_COMMANDS([ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= GMOFILES= UPDATEPOFILES= DUMMYPOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) # nls.m4 serial 1 (gettext-0.12) dnl Copyright (C) 1995-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) AC_DEFUN([AM_MKINSTALLDIRS], [ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly dnl find the mkinstalldirs script in another subdir but $(top_srcdir). dnl Try to locate it. MKINSTALLDIRS= if test -n "$ac_aux_dir"; then case "$ac_aux_dir" in /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; esac fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi AC_SUBST(MKINSTALLDIRS) ]) # progtest.m4 serial 3 (gettext-0.12) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) # lib-prefix.m4 serial 2 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) # lib-link.m4 serial 4 (gettext-0.12) dnl Copyright (C) 2001-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) # lib-ld.m4 serial 2 (gettext-0.12) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no fi]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-1.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_ARG_WITH(gnu-ld, [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) # iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) # isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) # glibc21.m4 serial 2 (fileutils-4.1.3, gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([jm_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) # intdiv0.m4 serial 1 (gettext-0.11.3) dnl Copyright (C) 2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([gt_INTDIV0], [ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], gt_cv_int_divbyzero_sigfpe, [ AC_TRY_RUN([ #include #include static void #ifdef __cplusplus sigfpe_handler (int sig) #else sigfpe_handler (sig) int sig; #endif { /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ exit (sig != SIGFPE); } int x = 1; int y = 0; int z; int nan; int main () { signal (SIGFPE, sigfpe_handler); /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) signal (SIGTRAP, sigfpe_handler); #endif /* Linux/SPARC yields signal SIGILL. */ #if defined (__sparc__) && defined (__linux__) signal (SIGILL, sigfpe_handler); #endif z = x / y; nan = y / y; exit (1); } ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, [ # Guess based on the CPU. case "$host_cpu" in alpha* | i[34567]86 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac ]) ]) case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, [Define if integer division by zero raises signal SIGFPE.]) ]) # uintmax_t.m4 serial 7 (gettext-0.12) dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. AC_PREREQ(2.13) # Define uintmax_t to 'unsigned long' or 'unsigned long long' # if it is not already defined in or . AC_DEFUN([jm_AC_TYPE_UINTMAX_T], [ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) AC_REQUIRE([jm_AC_HEADER_STDINT_H]) if test $jm_ac_cv_header_inttypes_h = no && test $jm_ac_cv_header_stdint_h = no; then AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) test $ac_cv_type_unsigned_long_long = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, [Define to unsigned long or unsigned long long if and don't define.]) else AC_DEFINE(HAVE_UINTMAX_T, 1, [Define if you have the 'uintmax_t' type in or .]) fi ]) # inttypes_h.m4 serial 5 (gettext-0.12) dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([jm_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], jm_ac_cv_header_inttypes_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], jm_ac_cv_header_inttypes_h=yes, jm_ac_cv_header_inttypes_h=no)]) if test $jm_ac_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) # stdint_h.m4 serial 3 (gettext-0.12) dnl Copyright (C) 1997-2003 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([jm_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], jm_ac_cv_header_stdint_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1;], jm_ac_cv_header_stdint_h=yes, jm_ac_cv_header_stdint_h=no)]) if test $jm_ac_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) # ulonglong.m4 serial 2 (fileutils-4.0.32, gettext-0.10.40) dnl Copyright (C) 1999-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. AC_DEFUN([jm_AC_TYPE_UNSIGNED_LONG_LONG], [ AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long, [AC_TRY_LINK([unsigned long long ull = 1; int i = 63;], [unsigned long long ullmax = (unsigned long long) -1; return ull << i | ull >> i | ullmax / ull | ullmax % ull;], ac_cv_type_unsigned_long_long=yes, ac_cv_type_unsigned_long_long=no)]) if test $ac_cv_type_unsigned_long_long = yes; then AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, [Define if you have the unsigned long long type.]) fi ]) # inttypes.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H if exists and doesn't clash with # . AC_DEFUN([gt_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, [ AC_TRY_COMPILE( [#include #include ], [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) ]) if test $gt_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, [Define if exists and doesn't clash with .]) fi ]) # inttypes-pri.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_REQUIRE([gt_HEADER_INTTYPES_H]) if test $gt_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], gt_cv_inttypes_pri_broken, [ AC_TRY_COMPILE([#include #ifdef PRId32 char *p = PRId32; #endif ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, [Define if exists and defines unusable PRI* macros.]) fi ]) # codeset.m4 serial AM1 (gettext-0.10.40) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET);], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) # lcmessage.m4 serial 3 (gettext-0.11.3) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([AM_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) if test $am_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) blop-0.2.8/README0000644000175000006270000000301110063533023007006 This software is released under the GNU General Public License. See the file named COPYING for details. Further information can be found in the doc directory ----ooooOOOOoooo---- Generic installation instructions can be found in the file named INSTALL. Briefly, it's just: $ ./configure $ make and $ make install to install the plugins. It is assumed that the LADSPA SDK is installed under /usr - you can change this by supplying the path to configure using --with-ladspa-prefix. If you want the plugins to be installed somewhere in particular, use the --with-ladspa-plugin-dir option (make sure that the path supplied is in your $LADSPA_PATH!) If you want smaller wavedata, use the --enable-small-wavedata option. This trades off accuracy against size. It still sounds good though... Finally, if you already have plugins with the same name as any of the blop plugins, you can use --program-prefix=blop_ (or something else) to ensure the existing ones are not overwritten. Alternatively, just put them in a new directory.... If you have installed liblrdf, there is an rdf metadata file: doc/blop.rdf - copy this to wherever you keep your rdf's ----ooooOOOOoooo---- Building from CVS: Versions: autoconf 2.58 automake 1.5 gettext 0.12.1 After initial checkout, you need to run gettextize to set up symlinks to installed gettext bits and pieces: $ gettextize -f --no-changelog You'll then need to prepare the build cruft: $ aclocal -I m4 $ autoheader $ autoconf $ automake -a blop-0.2.8/THANKS0000644000175000006270000000110607623762213007061 Erik de Castro Lopo for his nice paper on float to int casting and optimisation thereof: Steve Harris , whose plugin distribution contains a useful perl script that generates C code from an xml file. This was used to generate the plugin code, which was then modified by me to allow for the multiple port variants. I also nicked (and modified a bit) his cube_interp code... Joe Wright , who wrote a nice intro to bandlimiting waveforms using wavetables: blop-0.2.8/configure0000755000175000006270000067603310063536475010077 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.58. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` exec 6>&1 # # Initializations. # ac_default_prefix=/usr/local ac_config_libobj_dir=. cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Maximum number of lines to put in a shell here document. # This variable seems obsolete. It should probably be removed, and # only ac_max_sed_lines should be used. : ${ac_max_here_lines=38} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="src/adsr_1653.so.c" # Factoring default headers for most tests. ac_includes_default="\ #include #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_STAT_H # include #endif #if STDC_HEADERS # include # include #else # if HAVE_STDLIB_H # include # endif #endif #if HAVE_STRING_H # if !STDC_HEADERS && HAVE_MEMORY_H # include # endif # include #endif #if HAVE_STRINGS_H # include #endif #if HAVE_INTTYPES_H # include #else # if HAVE_STDINT_H # include # endif #endif #if HAVE_UNISTD_H # include #endif" ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS wavedata_subdir sample_rate first_note note_step min_table_size gibbs INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION EXEEXT OBJEXT ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh INSTALL_STRIP_PROGRAM AWK SET_MAKE AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH DEPDIR MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC am__include am__quote CCDEPMODE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB ladspa_prefix ladspa_plugin_dir CPP EGREP LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. ac_init_help= ac_init_version=false # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datadir='${prefix}/share' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' libdir='${exec_prefix}/lib' includedir='${prefix}/include' oldincludedir='/usr/include' infodir='${prefix}/info' mandir='${prefix}/man' ac_prev= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval "$ac_prev=\$ac_option" ac_prev= continue fi ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_option in -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ | --da=*) datadir=$ac_optarg ;; -disable-* | --disable-*) ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` eval "enable_$ac_feature=no" ;; -enable-* | --enable-*) ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid feature name: $ac_feature" >&2 { (exit 1); exit 1; }; } ac_feature=`echo $ac_feature | sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "enable_$ac_feature='$ac_optarg'" ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst \ | --locals | --local | --loca | --loc | --lo) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package| sed 's/-/_/g'` case $ac_option in *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; *) ac_optarg=yes ;; esac eval "with_$ac_package='$ac_optarg'" ;; -without-* | --without-*) ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid package name: $ac_package" >&2 { (exit 1); exit 1; }; } ac_package=`echo $ac_package | sed 's/-/_/g'` eval "with_$ac_package=no" ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` eval "$ac_envvar='$ac_optarg'" export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi # Be sure to have absolute paths. for ac_var in exec_prefix prefix do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* | NONE | '' ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # Be sure to have absolute paths. for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ localstatedir libdir includedir oldincludedir infodir mandir do eval ac_val=$`echo $ac_var` case $ac_val in [\\/$]* | ?:[\\/]* ) ;; *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; };; esac done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then its parent. ac_confdir=`(dirname "$0") 2>/dev/null || $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$0" : 'X\(//\)[^/]' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$0" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` srcdir=$ac_confdir if test ! -r $srcdir/$ac_unique_file; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r $srcdir/$ac_unique_file; then if test "$ac_srcdir_defaulted" = yes; then { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 { (exit 1); exit 1; }; } else { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi fi (cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 { (exit 1); exit 1; }; } srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ac_env_build_alias_set=${build_alias+set} ac_env_build_alias_value=$build_alias ac_cv_env_build_alias_set=${build_alias+set} ac_cv_env_build_alias_value=$build_alias ac_env_host_alias_set=${host_alias+set} ac_env_host_alias_value=$host_alias ac_cv_env_host_alias_set=${host_alias+set} ac_cv_env_host_alias_value=$host_alias ac_env_target_alias_set=${target_alias+set} ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} ac_cv_env_CC_value=$CC ac_env_CFLAGS_set=${CFLAGS+set} ac_env_CFLAGS_value=$CFLAGS ac_cv_env_CFLAGS_set=${CFLAGS+set} ac_cv_env_CFLAGS_value=$CFLAGS ac_env_LDFLAGS_set=${LDFLAGS+set} ac_env_LDFLAGS_value=$LDFLAGS ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ac_cv_env_LDFLAGS_value=$LDFLAGS ac_env_CPPFLAGS_set=${CPPFLAGS+set} ac_env_CPPFLAGS_value=$CPPFLAGS ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ac_cv_env_CPPFLAGS_value=$CPPFLAGS ac_env_CPP_set=${CPP+set} ac_env_CPP_value=$CPP ac_cv_env_CPP_set=${CPP+set} ac_cv_env_CPP_value=$CPP # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] _ACEOF cat <<_ACEOF Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --datadir=DIR read-only architecture-independent data [PREFIX/share] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --infodir=DIR info documentation [PREFIX/info] --mandir=DIR man documentation [PREFIX/man] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-dependency-tracking Speeds up one-time builds --enable-dependency-tracking Do not reject slow dependency extractors --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-debug Enable debugging no --enable-small-wavedata Use this to generate smaller wavetable data for the oscillators. With this option, each oscillator should be about 50k. Without, it's nearer 450k. Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-ladspa-prefix=LADSPA Path where LADSPA SDK is installed /usr --with-ladspa-plugin-dir=DIR Where to install plugins LADSPA/lib/ladspa Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. ac_popdir=`pwd` for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d $ac_dir || continue ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac case "$ac_dir" in .) ac_abs_builddir=$ac_builddir;; *) case $ac_builddir in .) ac_abs_builddir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_builddir=$ac_builddir;; *) ac_abs_builddir="$ac_dir"/$ac_builddir;; esac;; esac case "$ac_dir" in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir="$ac_dir"/${ac_top_builddir}.;; esac;; esac case "$ac_dir" in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir="$ac_dir"/$ac_srcdir;; esac;; esac case "$ac_dir" in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir="$ac_dir"/$ac_top_srcdir;; esac;; esac cd $ac_dir # Check for guested configure; otherwise get Cygnus style configure. if test -f $ac_srcdir/configure.gnu; then echo $SHELL $ac_srcdir/configure.gnu --help=recursive elif test -f $ac_srcdir/configure; then echo $SHELL $ac_srcdir/configure --help=recursive elif test -f $ac_srcdir/configure.ac || test -f $ac_srcdir/configure.in; then echo $ac_configure --help else echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi cd $ac_popdir done fi test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF Copyright (C) 2003 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit 0 fi exec 5>config.log cat >&5 <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.58. Invocation command line was $ $0 $@ _ACEOF { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` hostinfo = `(hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. echo "PATH: $as_dir" done } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_sep= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" # Get rid of the leading space. ac_sep=" " ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Be sure not to use single quotes in there, as some shells, # such as our DU 5.0 friend, will then `close' the trap. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, { (set) 2>&1 | case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in *ac_space=\ *) sed -n \ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ;; *) sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------- ## ## Output files. ## ## ------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=$`echo $ac_var` echo "$ac_var='"'"'$ac_val'"'"'" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo sed "/^$/d" confdefs.h | sort echo fi test "$ac_signal" != 0 && echo "$as_me: caught signal $ac_signal" echo "$as_me: exit $exit_status" } >&5 rm -f core *.core && rm -rf conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -rf conftest* confdefs.h # AIX cpp loses on an empty file, so make sure it contains at least a newline. echo >confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer explicitly selected file to automatically selected ones. if test -z "$CONFIG_SITE"; then if test "x$prefix" != xNONE; then CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" else CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi fi for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { echo "$as_me:$LINENO: loading cache $cache_file" >&5 echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . $cache_file;; *) . ./$cache_file;; esac fi else { echo "$as_me:$LINENO: creating cache $cache_file" >&5 echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in `(set) 2>&1 | sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val="\$ac_cv_env_${ac_var}_value" eval ac_new_val="\$ac_env_${ac_var}_value" case $ac_old_set,$ac_new_set in set,) { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 echo "$as_me: former value: $ac_old_val" >&2;} { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 echo "$as_me: current value: $ac_new_val" >&2;} ac_cache_corrupted=: fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" wavedata_subdir=blop_files sample_rate=48000 first_note=12 note_step=1 min_table_size=128 gibbs=1.0 ac_aux_dir= for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f $ac_dir/install.sh; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f $ac_dir/shtool; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} { (exit 1); exit 1; }; } fi ac_config_guess="$SHELL $ac_aux_dir/config.guess" ac_config_sub="$SHELL $ac_aux_dir/config.sub" ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi done done ;; esac done fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. We don't cache a # path for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the path is relative. INSTALL=$ac_install_sh fi fi echo "$as_me:$LINENO: result: $INSTALL" >&5 echo "${ECHO_T}$INSTALL" >&6 # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo "$as_me:$LINENO: checking whether build environment is sane" >&5 echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&5 echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken alias in your environment" >&2;} { (exit 1); exit 1; }; } fi test "$2" = conftest.file ) then # Ok. : else { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! Check your system clock" >&5 echo "$as_me: error: newly created file is older than distributed files! Check your system clock" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s,\$,$program_suffix,;$program_transform_name" # Double any \ or $. echo might interpret backslashes. # By default was `s,x,x', remove it if useless. cat <<\_ACEOF >conftest.sed s/[\\$]/&&/g;s/;s,x,x,$// _ACEOF program_transform_name=`echo $program_transform_name | sed -f conftest.sed` rm conftest.sed # expand $ac_aux_dir to an absolute path am_aux_dir=`CDPATH=:; cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= am_backtick='`' { echo "$as_me:$LINENO: WARNING: ${am_backtick}missing' script is too old or missing" >&5 echo "$as_me: WARNING: ${am_backtick}missing' script is too old or missing" >&2;} fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_AWK+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then echo "$as_me:$LINENO: result: $AWK" >&5 echo "${ECHO_T}$AWK" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$AWK" && break done echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.make <<\_ACEOF all: @echo 'ac_maketemp="$(MAKE)"' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` if test -n "$ac_maketemp"; then eval ac_cv_prog_make_${ac_make}_set=yes else eval ac_cv_prog_make_${ac_make}_set=no fi rm -f conftest.make fi if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 SET_MAKE= else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 SET_MAKE="MAKE=${MAKE-make}" fi # Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then enableval="$enable_dependency_tracking" fi; if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi rm -f .deps 2>/dev/null mkdir .deps 2>/dev/null if test -d .deps; then DEPDIR=.deps else # MS-DOS does not allow filenames that begin with a dot. DEPDIR=_deps fi rmdir .deps 2>/dev/null # test to see if srcdir already configured if test "`CDPATH=:; cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} { (exit 1); exit 1; }; } fi # Define the identity of the package. PACKAGE=blop VERSION=0.2.8 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Autoconf 2.50 wants to disallow AM_ names. We explicitly allow # the ones we care about. # Autoconf 2.50 always computes EXEEXT. However we need to be # compatible with 2.13, for now. So we always define EXEEXT, but we # don't compute it. # Similar for OBJEXT -- only we only use OBJEXT if the user actually # requests that it be used. This is a bit dumb. : ${OBJEXT=o} # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} AMTAR=${AMTAR-"${am_missing_run}tar"} install_sh=${install_sh-"$am_aux_dir/install-sh"} INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6 # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given. if test "${enable_maintainer_mode+set}" = set; then enableval="$enable_maintainer_mode" USE_MAINTAINER_MODE=$enableval else USE_MAINTAINER_MODE=no fi; echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6 if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE MKINSTALLDIRS= if test -n "$ac_aux_dir"; then case "$ac_aux_dir" in /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;; *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;; esac fi if test -z "$MKINSTALLDIRS"; then MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" fi echo "$as_me:$LINENO: checking whether NLS is requested" >&5 echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" USE_NLS=$enableval else USE_NLS=yes fi; echo "$as_me:$LINENO: result: $USE_NLS" >&5 echo "${ECHO_T}$USE_NLS" >&6 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_MSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then echo "$as_me:$LINENO: result: $MSGFMT" >&5 echo "${ECHO_T}$MSGFMT" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_GMSGFMT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then echo "$as_me:$LINENO: result: $GMSGFMT" >&5 echo "${ECHO_T}$GMSGFMT" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_XGETTEXT+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then echo "$as_me:$LINENO: result: $XGETTEXT" >&5 echo "${ECHO_T}$XGETTEXT" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi rm -f messages.po # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_path_MSGMERGE+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then echo "$as_me:$LINENO: result: $MSGMERGE" >&5 echo "${ECHO_T}$MSGMERGE" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi if test "$GMSGFMT" != ":"; then if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 && (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'` echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5 echo "${ECHO_T}found $GMSGFMT program is not GNU msgfmt; ignore it" >&6 GMSGFMT=":" fi fi if test "$XGETTEXT" != ":"; then if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 && (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then : ; else echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5 echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6 XGETTEXT=":" fi rm -f messages.po fi ac_config_commands="$ac_config_commands default-1" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ac_config_commands="$ac_config_commands default-2" am_make=${MAKE-make} cat > confinc << 'END' doit: @echo done END # If we don't find an include directive, just comment out the code. echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 am__include='#' am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # We grep out `Entering directory' and `Leaving directory' # messages which can occur if `w' ends up in MAKEFLAGS. # In particular we don't look at `^make:' because GNU make might # be invoked under some other name (usually "gmake"), in which # case it prints its new name instead of `make'. if test "`$am_make -s -f confmf 2> /dev/null | fgrep -v 'ing directory'`" = "done"; then am__include=include am__quote= _am_result=GNU fi # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then am__include=.include am__quote='"' _am_result=BSD fi fi echo "$as_me:$LINENO: result: $_am_result" >&5 echo "${ECHO_T}$_am_result" >&6 rm -f confinc confmf ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi CC=$ac_ct_CC else CC="$ac_cv_prog_CC" fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then echo "$as_me:$LINENO: result: $CC" >&5 echo "${ECHO_T}$CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 echo "${ECHO_T}$ac_ct_CC" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -n "$ac_ct_CC" && break done CC=$ac_ct_CC fi fi test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } # Provide some information about the compiler. echo "$as_me:$LINENO:" \ "checking for C compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 (eval $ac_compiler --version &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 (eval $ac_compiler -v &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 (eval $ac_compiler -V &5) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 (eval $ac_link_default) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Find the output, starting from the most likely. This scheme is # not robust to junk in `.', hence go to wildcards (a.*) only as a last # resort. # Be careful to initialize this variable, since it used to be cached. # Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ac_cv_exeext= # b.out is created by i960 compilers. for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; conftest.$ac_ext ) # This is the source file. ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` # FIXME: I believe we export ac_cv_exeext for Libtool, # but it would be cool to find out if it's true. Does anybody # maintain Libtool? --akim. export ac_cv_exeext break;; * ) break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; } fi ac_exeext=$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_file" >&5 echo "${ECHO_T}$ac_file" >&6 # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether the C compiler works" >&5 echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi fi fi echo "$as_me:$LINENO: result: yes" >&5 echo "${ECHO_T}yes" >&6 rm -f a.out a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $cross_compiling" >&5 echo "${ECHO_T}$cross_compiling" >&6 echo "$as_me:$LINENO: checking for suffix of executables" >&5 echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` export ac_cv_exeext break;; * ) break;; esac done else { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest$ac_cv_exeext echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 echo "${ECHO_T}$ac_cv_exeext" >&6 rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT echo "$as_me:$LINENO: checking for suffix of object files" >&5 echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 if test "${ac_cv_objext+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 echo "${ECHO_T}$ac_cv_objext" >&6 OBJEXT=$ac_cv_objext ac_objext=$OBJEXT echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 if test "${ac_cv_c_compiler_gnu+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_compiler_gnu=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 GCC=`test $ac_compiler_gnu = yes && echo yes` ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS CFLAGS="-g" echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 if test "${ac_cv_prog_cc_g+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_g=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_prog_cc_g=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 if test "${ac_cv_prog_cc_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_prog_cc_stdc=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std1 is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std1. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF # Don't try gcc -ansi; that turns off useful extensions and # breaks some systems' header files. # AIX -qlanglvl=ansi # Ultrix and OSF/1 -std1 # HP-UX 10.20 and later -Ae # HP-UX older versions -Aa -D_HPUX_SOURCE # SVR4 -Xc -D__EXTENSIONS__ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_prog_cc_stdc=$ac_arg break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext done rm -f conftest.$ac_ext conftest.$ac_objext CC=$ac_save_CC fi case "x$ac_cv_prog_cc_stdc" in x|xno) echo "$as_me:$LINENO: result: none needed" >&5 echo "${ECHO_T}none needed" >&6 ;; *) echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 CC="$CC $ac_cv_prog_cc_stdc" ;; esac # Some people use a C++ compiler to compile C. Since we use `exit', # in C++ we need to declare it. In case someone uses the same compiler # for both compiling C and C++ we need to have the C++ compiler decide # the declaration of exit, since it's the most demanding environment. cat >conftest.$ac_ext <<_ACEOF #ifndef __cplusplus choke me #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then for ac_declaration in \ '' \ 'extern "C" void std::exit (int) throw (); using std::exit;' \ 'extern "C" void std::exit (int); using std::exit;' \ 'extern "C" void exit (int) throw ();' \ 'extern "C" void exit (int);' \ 'void exit (int);' do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration #include int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 continue fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_declaration int main () { exit (42); ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done rm -f conftest* if test -n "$ac_declaration"; then echo '#ifdef __cplusplus' >>confdefs.h echo $ac_declaration >>confdefs.h echo '#endif' >>confdefs.h fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi for depmode in $am_compiler_list; do # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. echo '#include "conftest.h"' > conftest.c echo 'int i;' > conftest.h echo "${am__include} ${am__quote}conftest.Po${am__quote}" > confmf case $depmode in nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; none) break ;; esac # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. if depmode=$depmode \ source=conftest.c object=conftest.o \ depfile=conftest.Po tmpdepfile=conftest.TPo \ $SHELL ./depcomp $depcc -c conftest.c -o conftest.o >/dev/null 2>&1 && grep conftest.h conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then am_cv_CC_dependencies_compiler_type=$depmode break fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 CCDEPMODE="depmode=$am_cv_CC_dependencies_compiler_type" # Make sure we can run config.sub. $ac_config_sub sun4 >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5 echo "$as_me: error: cannot run $ac_config_sub" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking build system type" >&5 echo $ECHO_N "checking build system type... $ECHO_C" >&6 if test "${ac_cv_build+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_build_alias=$build_alias test -z "$ac_cv_build_alias" && ac_cv_build_alias=`$ac_config_guess` test -z "$ac_cv_build_alias" && { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 echo "$as_me: error: cannot guess build type; you must specify one" >&2;} { (exit 1); exit 1; }; } ac_cv_build=`$ac_config_sub $ac_cv_build_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_build" >&5 echo "${ECHO_T}$ac_cv_build" >&6 build=$ac_cv_build build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` echo "$as_me:$LINENO: checking host system type" >&5 echo $ECHO_N "checking host system type... $ECHO_C" >&6 if test "${ac_cv_host+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_host_alias=$host_alias test -z "$ac_cv_host_alias" && ac_cv_host_alias=$ac_cv_build_alias ac_cv_host=`$ac_config_sub $ac_cv_host_alias` || { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5 echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: result: $ac_cv_host" >&5 echo "${ECHO_T}$ac_cv_host" >&6 host=$ac_cv_host host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Check whether --with-gnu-ld or --without-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then withval="$with_gnu_ld" test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi; # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo "$as_me:$LINENO: checking for ld used by GCC" >&5 echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then echo "$as_me:$LINENO: checking for GNU ld" >&5 echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6 else echo "$as_me:$LINENO: checking for non-GNU ld" >&5 echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6 fi if test "${acl_cv_path_LD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break else test "$with_gnu_ld" != yes && break fi fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then echo "$as_me:$LINENO: result: $LD" >&5 echo "${ECHO_T}$LD" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5 echo "$as_me: error: no acceptable ld found in \$PATH" >&2;} { (exit 1); exit 1; }; } echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5 echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6 if test "${acl_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. if $LD -v 2>&1 &5; then acl_cv_prog_gnu_ld=yes else acl_cv_prog_gnu_ld=no fi fi echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5 echo "${ECHO_T}$acl_cv_prog_gnu_ld" >&6 with_gnu_ld=$acl_cv_prog_gnu_ld echo "$as_me:$LINENO: checking for shared library run path origin" >&5 echo $ECHO_N "checking for shared library run path origin... $ECHO_C" >&6 if test "${acl_cv_rpath+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5 echo "${ECHO_T}$acl_cv_rpath" >&6 wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath or --disable-rpath was given. if test "${enable_rpath+set}" = set; then enableval="$enable_rpath" : else enable_rpath=yes fi; use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then withval="$with_libiconv_prefix" if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi fi; LIBICONV= LTLIBICONV= INCICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi echo "$as_me:$LINENO: checking whether NLS is requested" >&5 echo $ECHO_N "checking whether NLS is requested... $ECHO_C" >&6 # Check whether --enable-nls or --disable-nls was given. if test "${enable_nls+set}" = set; then enableval="$enable_nls" USE_NLS=$enableval else USE_NLS=yes fi; echo "$as_me:$LINENO: result: $USE_NLS" >&5 echo "${ECHO_T}$USE_NLS" >&6 LIBINTL= LTLIBINTL= POSUB= if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5 echo $ECHO_N "checking for GNU gettext in libc... $ECHO_C" >&6 if test "${gt_cv_func_gnugettext1_libc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_gnugettext1_libc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_gnugettext1_libc=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5 echo "${ECHO_T}$gt_cv_func_gnugettext1_libc" >&6 if test "$gt_cv_func_gnugettext1_libc" != "yes"; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done echo "$as_me:$LINENO: checking for iconv" >&5 echo $ECHO_N "checking for iconv... $ECHO_C" >&6 if test "${am_cv_func_iconv+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then am_cv_lib_iconv=yes am_cv_func_iconv=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5 echo "${ECHO_T}$am_cv_func_iconv" >&6 if test "$am_cv_func_iconv" = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_ICONV 1 _ACEOF fi if test "$am_cv_lib_iconv" = yes; then echo "$as_me:$LINENO: checking how to link with libiconv" >&5 echo $ECHO_N "checking how to link with libiconv... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $LIBICONV" >&5 echo "${ECHO_T}$LIBICONV" >&6 else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix or --without-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then withval="$with_libintl_prefix" if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/lib" fi fi fi; LIBINTL= LTLIBINTL= INCINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then found_dir="$additional_libdir" found_so="$additional_libdir/lib$name.$shlibext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then found_dir="$dir" found_so="$dir/lib$name.$shlibext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/lib"; then haveit= if test "X$additional_libdir" = "X/usr/local/lib"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5 echo $ECHO_N "checking for GNU gettext in libintl... $ECHO_C" >&6 if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (); int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0) ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then gt_cv_func_gnugettext1_libintl=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 gt_cv_func_gnugettext1_libintl=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (); int main () { bindtextdomain ("", ""); return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0) ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" gt_cv_func_gnugettext1_libintl=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5 echo "${ECHO_T}$gt_cv_func_gnugettext1_libintl" >&6 fi if test "$gt_cv_func_gnugettext1_libc" = "yes" \ || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then cat >>confdefs.h <<\_ACEOF #define ENABLE_NLS 1 _ACEOF else USE_NLS=no fi fi echo "$as_me:$LINENO: checking whether to use NLS" >&5 echo $ECHO_N "checking whether to use NLS... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $USE_NLS" >&5 echo "${ECHO_T}$USE_NLS" >&6 if test "$USE_NLS" = "yes"; then echo "$as_me:$LINENO: checking where the gettext function comes from" >&5 echo $ECHO_N "checking where the gettext function comes from... $ECHO_C" >&6 if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi echo "$as_me:$LINENO: result: $gt_source" >&5 echo "${ECHO_T}$gt_source" >&6 fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then echo "$as_me:$LINENO: checking how to link with libintl" >&5 echo $ECHO_N "checking how to link with libintl... $ECHO_C" >&6 echo "$as_me:$LINENO: result: $LIBINTL" >&5 echo "${ECHO_T}$LIBINTL" >&6 for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi cat >>confdefs.h <<\_ACEOF #define HAVE_GETTEXT 1 _ACEOF cat >>confdefs.h <<\_ACEOF #define HAVE_DCGETTEXT 1 _ACEOF fi POSUB=po fi INTLLIBS="$LIBINTL" # Check whether --enable-debug or --disable-debug was given. if test "${enable_debug+set}" = set; then enableval="$enable_debug" CFLAGS="-pipe -Wall -O0 -g" else CFLAGS="-pipe -Wall -O3 -Wno-unused -DNO_DEBUG -DPIC -fPIC \ -ffast-math -fomit-frame-pointer -funroll-loops" fi; # Check whether --enable-small-wavedata or --disable-small-wavedata was given. if test "${enable_small_wavedata+set}" = set; then enableval="$enable_small_wavedata" note_step=6 first_note=24 else note_step=$note_step fi; # Check whether --with-ladspa-prefix or --without-ladspa-prefix was given. if test "${with_ladspa_prefix+set}" = set; then withval="$with_ladspa_prefix" ladspa_prefix=$withval else ladspa_prefix=/usr fi; # Check whether --with-ladspa-plugin-dir or --without-ladspa-plugin-dir was given. if test "${with_ladspa_plugin_dir+set}" = set; then withval="$with_ladspa_plugin_dir" ladspa_plugin_dir=$withval else ladspa_plugin_dir=$ladspa_prefix/lib/ladspa fi; ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi echo "$as_me:$LINENO: result: $CPP" >&5 echo "${ECHO_T}$CPP" >&6 ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then : else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether non-existent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then # Broken: success on invalid input. continue else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu echo "$as_me:$LINENO: checking for egrep" >&5 echo $ECHO_N "checking for egrep... $ECHO_C" >&6 if test "${ac_cv_prog_egrep+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else if echo a | (grep -E '(a|b)') >/dev/null 2>&1 then ac_cv_prog_egrep='grep -E' else ac_cv_prog_egrep='egrep' fi fi echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 echo "${ECHO_T}$ac_cv_prog_egrep" >&6 EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking for ANSI C header files" >&5 echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 if test "${ac_cv_header_stdc+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_header_stdc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } _ACEOF rm -f conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else echo "$as_me: program exited with status $ac_status" >&5 echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 echo "${ECHO_T}$ac_cv_header_stdc" >&6 if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_header" >&5 echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_Header=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 if test `eval echo '${'$as_ac_Header'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done as_ac_Header=`echo "ac_cv_header_$ladspa_prefix/include/ladspa.h" | $as_tr_sh` if eval "test \"\${$as_ac_Header+set}\" = set"; then echo "$as_me:$LINENO: checking for $ladspa_prefix/include/ladspa.h" >&5 echo $ECHO_N "checking for $ladspa_prefix/include/ladspa.h... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 else # Is the header compilable? echo "$as_me:$LINENO: checking $ladspa_prefix/include/ladspa.h usability" >&5 echo $ECHO_N "checking $ladspa_prefix/include/ladspa.h usability... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ladspa_prefix/include/ladspa.h> _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_header_compiler=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_compiler=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 echo "${ECHO_T}$ac_header_compiler" >&6 # Is the header present? echo "$as_me:$LINENO: checking $ladspa_prefix/include/ladspa.h presence" >&5 echo $ECHO_N "checking $ladspa_prefix/include/ladspa.h presence... $ECHO_C" >&6 cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include <$ladspa_prefix/include/ladspa.h> _ACEOF if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null; then if test -s conftest.err; then ac_cpp_err=$ac_c_preproc_warn_flag ac_cpp_err=$ac_cpp_err$ac_c_werror_flag else ac_cpp_err= fi else ac_cpp_err=yes fi if test -z "$ac_cpp_err"; then ac_header_preproc=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_header_preproc=no fi rm -f conftest.err conftest.$ac_ext echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 echo "${ECHO_T}$ac_header_preproc" >&6 # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in yes:no: ) { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: accepted by the compiler, rejected by the preprocessor!" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: accepted by the compiler, rejected by the preprocessor!" >&2;} { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: proceeding with the compiler's result" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: proceeding with the compiler's result" >&2;} ac_header_preproc=yes ;; no:yes:* ) { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: present but cannot be compiled" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: present but cannot be compiled" >&2;} { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: check for missing prerequisite headers?" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: check for missing prerequisite headers?" >&2;} { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: see the Autoconf documentation" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: see the Autoconf documentation" >&2;} { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: section \"Present But Cannot Be Compiled\"" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: section \"Present But Cannot Be Compiled\"" >&2;} { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: proceeding with the preprocessor's result" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: proceeding with the preprocessor's result" >&2;} { echo "$as_me:$LINENO: WARNING: $ladspa_prefix/include/ladspa.h: in the future, the compiler will take precedence" >&5 echo "$as_me: WARNING: $ladspa_prefix/include/ladspa.h: in the future, the compiler will take precedence" >&2;} ( cat <<\_ASBOX ## ------------------------------------------ ## ## Report this to the AC_PACKAGE_NAME lists. ## ## ------------------------------------------ ## _ASBOX ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac echo "$as_me:$LINENO: checking for $ladspa_prefix/include/ladspa.h" >&5 echo $ECHO_N "checking for $ladspa_prefix/include/ladspa.h... $ECHO_C" >&6 if eval "test \"\${$as_ac_Header+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else eval "$as_ac_Header=\$ac_header_preproc" fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 fi if test `eval echo '${'$as_ac_Header'}'` = yes; then : else { { echo "$as_me:$LINENO: error: ** Couldn't find ladspa.h" >&5 echo "$as_me: error: ** Couldn't find ladspa.h" >&2;} { (exit 1); exit 1; }; } fi echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 if test "${ac_cv_c_const+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset x; /* SunOS 4.1.1 cc rejects this. */ char const *const *ccp; char **p; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; ccp = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++ccp; p = (char**) ccp; ccp = (char const *const *) p; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; } #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_const=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 echo "${ECHO_T}$ac_cv_c_const" >&6 if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const _ACEOF fi echo "$as_me:$LINENO: checking for inline" >&5 echo $ECHO_N "checking for inline... $ECHO_C" >&6 if test "${ac_cv_c_inline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c_inline=$ac_kw; break else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext done fi echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 echo "${ECHO_T}$ac_cv_c_inline" >&6 case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6 if test "${ac_cv_type_size_t+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if ((size_t *) 0) return 0; if (sizeof (size_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_type_size_t=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 echo "${ECHO_T}$ac_cv_type_size_t" >&6 if test $ac_cv_type_size_t = yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned _ACEOF fi for ac_func in strdup do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 if eval "test \"\${$as_ac_var+set}\" = set"; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_$ac_func) || defined (__stub___$ac_func) choke me #else char (*f) () = $ac_func; #endif #ifdef __cplusplus } #endif int main () { return f != $ac_func; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then eval "$as_ac_var=yes" else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 if test `eval echo '${'$as_ac_var'}'` = yes; then cat >>confdefs.h <<_ACEOF #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done echo "$as_me:$LINENO: checking for sinf" >&5 echo $ECHO_N "checking for sinf... $ECHO_C" >&6 if test "${ac_cv_func_sinf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define sinf to an innocuous variant, in case declares sinf. For example, HP-UX 11i declares gettimeofday. */ #define sinf innocuous_sinf /* System header to define __stub macros and hopefully few prototypes, which can conflict with char sinf (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef sinf /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char sinf (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_sinf) || defined (__stub___sinf) choke me #else char (*f) () = sinf; #endif #ifdef __cplusplus } #endif int main () { return f != sinf; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_sinf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_sinf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_sinf" >&5 echo "${ECHO_T}$ac_cv_func_sinf" >&6 if test $ac_cv_func_sinf = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SINF 1 _ACEOF else echo "$as_me:$LINENO: checking for sinf in -lm" >&5 echo $ECHO_N "checking for sinf in -lm... $ECHO_C" >&6 if test "${ac_cv_lib_m_sinf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char sinf (); int main () { sinf (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_m_sinf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_m_sinf=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_m_sinf" >&5 echo "${ECHO_T}$ac_cv_lib_m_sinf" >&6 if test $ac_cv_lib_m_sinf = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_SINF 1 _ACEOF else { echo "$as_me:$LINENO: WARNING: ** No sinf function found - using sin" >&5 echo "$as_me: WARNING: ** No sinf function found - using sin" >&2;} fi fi echo "$as_me:$LINENO: checking for getopt_long" >&5 echo $ECHO_N "checking for getopt_long... $ECHO_C" >&6 if test "${ac_cv_func_getopt_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define getopt_long to an innocuous variant, in case declares getopt_long. For example, HP-UX 11i declares gettimeofday. */ #define getopt_long innocuous_getopt_long /* System header to define __stub macros and hopefully few prototypes, which can conflict with char getopt_long (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef getopt_long /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" { #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char getopt_long (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined (__stub_getopt_long) || defined (__stub___getopt_long) choke me #else char (*f) () = getopt_long; #endif #ifdef __cplusplus } #endif int main () { return f != getopt_long; ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_func_getopt_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_func_getopt_long=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_func_getopt_long" >&5 echo "${ECHO_T}$ac_cv_func_getopt_long" >&6 if test $ac_cv_func_getopt_long = yes; then : else echo "$as_me:$LINENO: checking for getopt_long in -lgnugetopt" >&5 echo $ECHO_N "checking for getopt_long in -lgnugetopt... $ECHO_C" >&6 if test "${ac_cv_lib_gnugetopt_getopt_long+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgnugetopt $LIBS" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus extern "C" #endif /* We use char because int might match the return type of a gcc2 builtin and then its argument prototype would still apply. */ char getopt_long (); int main () { getopt_long (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_lib_gnugetopt_getopt_long=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_lib_gnugetopt_getopt_long=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi echo "$as_me:$LINENO: result: $ac_cv_lib_gnugetopt_getopt_long" >&5 echo "${ECHO_T}$ac_cv_lib_gnugetopt_getopt_long" >&6 if test $ac_cv_lib_gnugetopt_getopt_long = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_LIBGNUGETOPT 1 _ACEOF LIBS="-lgnugetopt $LIBS" else { { echo "$as_me:$LINENO: error: ** No getopt_long function found" >&5 echo "$as_me: error: ** No getopt_long function found" >&2;} { (exit 1); exit 1; }; } fi fi if test "$HAVE_LIBGNUGETOPT" != ""; then ac_save_LIBS="$LIBS" LIBS= "$ac_save_LIBS -lgnugetopt" fi echo "$as_me:$LINENO: checking for lrint" >&5 echo $ECHO_N "checking for lrint... $ECHO_C" >&6 if test "${ac_cv_c99_lrint+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 #define __USE_ISOC99 1 #define __USE_ISOC9X 1 #include int main () { int value = lrint (0.432) ; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c99_lrint=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c99_lrint=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c99_lrint" >&5 echo "${ECHO_T}$ac_cv_c99_lrint" >&6 if test $ac_cv_c99_lrint = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LRINT 1 _ACEOF fi echo "$as_me:$LINENO: checking for lrintf" >&5 echo $ECHO_N "checking for lrintf... $ECHO_C" >&6 if test "${ac_cv_c99_lrintf+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 #define __USE_ISOC99 1 #define __USE_ISOC9X 1 #include int main () { int value = lrintf (0.432) ; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ac_cv_c99_lrintf=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c99_lrintf=no fi rm -f conftest.err conftest.$ac_objext conftest.$ac_ext fi echo "$as_me:$LINENO: result: $ac_cv_c99_lrintf" >&5 echo "${ECHO_T}$ac_cv_c99_lrintf" >&6 if test $ac_cv_c99_lrintf = yes; then cat >>confdefs.h <<\_ACEOF #define HAVE_LRINTF 1 _ACEOF fi ac_config_files="$ac_config_files Makefile doc/Makefile m4/Makefile po/Makefile.in src/Makefile src/include/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, don't put newlines in cache variables' values. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. { (set) 2>&1 | case `(ac_space=' '; set | grep ac_space) 2>&1` in *ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n \ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ;; esac; } | sed ' t clear : clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ : end' >>confcache if diff $cache_file confcache >/dev/null 2>&1; then :; else if test -w $cache_file; then test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" cat confcache >$cache_file else echo "not updating unwritable cache $cache_file" fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/; s/:*\${srcdir}:*/:/; s/:*@srcdir@:*/:/; s/^\([^=]*=[ ]*\):*/\1/; s/:*$//; s/^[^=]*=[ ]*$//; }' fi DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_i=`echo "$ac_i" | sed 's/\$U\././;s/\.o$//;s/\.obj$//'` # 2. Add them. ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then set -o posix fi DUALCASE=1; export DUALCASE # for MKS sh # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # Work around bugs in pre-3.0 UWIN ksh. $as_unset ENV MAIL MAILPATH PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. for as_var in \ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \ LC_TELEPHONE LC_TIME do if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then eval $as_var=C; export $as_var else $as_unset $as_var fi done # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)$' \| \ . : '\(.\)' 2>/dev/null || echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; } /^X\/\(\/\/\)$/{ s//\1/; q; } /^X\/\(\/\).*/{ s//\1/; q; } s/.*/./; q'` # PATH needs CR, and LINENO needs CR and PATH. # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" || { # Find who we are. Look in the path if we contain no path at all # relative or not. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} { (exit 1); exit 1; }; } fi case $CONFIG_SHELL in '') as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for as_base in sh bash ksh sh5; do case $as_dir in /*) if ("$as_dir/$as_base" -c ' as_lineno_1=$LINENO as_lineno_2=$LINENO as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` test "x$as_lineno_1" != "x$as_lineno_2" && test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } CONFIG_SHELL=$as_dir/$as_base export CONFIG_SHELL exec "$CONFIG_SHELL" "$0" ${1+"$@"} fi;; esac done done ;; esac # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line before each line; the second 'sed' does the real # work. The second script uses 'N' to pair each line-number line # with the numbered line, and appends trailing '-' during # substitution so that $LINENO is not a special case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) sed '=' <$as_myself | sed ' N s,$,-, : loop s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, t loop s,-$,, s,^['$as_cr_digits']*\n,, ' >$as_me.lineno && chmod +x $as_me.lineno || { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensible to this). . ./$as_me.lineno # Exit status is that of the last command. exit } case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in *c*,-n*) ECHO_N= ECHO_C=' ' ECHO_T=' ' ;; *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; *) ECHO_N= ECHO_C='\c' ECHO_T= ;; esac if expr a : '\(a\)' >/dev/null 2>&1; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file echo >conf$$.file if ln -s conf$$.file conf$$ 2>/dev/null; then # We could just check for DJGPP; but this test a) works b) is more generic # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). if test -f conf$$.exe; then # Don't use ln at all; we don't have any links as_ln_s='cp -p' else as_ln_s='ln -s' fi elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.file if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_executable_p="test -f" # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" # IFS # We need space, tab and new line, in precisely that order. as_nl=' ' IFS=" $as_nl" # CDPATH. $as_unset CDPATH exec 6>&1 # Open the log real soon, to keep \$[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. Logging --version etc. is OK. exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX } >&5 cat >&5 <<_CSEOF This file was extended by $as_me, which was generated by GNU Autoconf 2.58. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ _CSEOF echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 echo >&5 _ACEOF # Files that config.status was made for. if test -n "$ac_config_files"; then echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS fi if test -n "$ac_config_headers"; then echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS fi if test -n "$ac_config_links"; then echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS fi if test -n "$ac_config_commands"; then echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS fi cat >>$CONFIG_STATUS <<\_ACEOF ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTIONS] [FILE]... -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.58, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2003 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." srcdir=$srcdir INSTALL="$INSTALL" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # If no file are specified by the user, then we need to provide default # value. By we need to know if files were specified by the user. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "x$1" : 'x\([^=]*\)='` ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ac_shift=: ;; -*) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; *) # This is not an option, so the user has probably given explicit # arguments. ac_option=$1 ac_need_defaults=false;; esac case $ac_option in # Handling of the options. _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --vers* | -V ) echo "$ac_cs_version"; exit 0 ;; --he | --h) # Conflict between --help and --header { { echo "$as_me:$LINENO: error: ambiguous option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: ambiguous option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; };; --help | --hel | -h ) echo "$ac_cs_usage"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift CONFIG_FILES="$CONFIG_FILES $ac_optarg" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ac_need_defaults=false;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 Try \`$0 --help' for more information." >&5 echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2;} { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF if \$ac_cs_recheck; then echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # INIT-COMMANDS section. # # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES, CATALOGS. But hide it # from automake. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_config_target in $ac_config_targets do case "$ac_config_target" in # Handling of arguments. "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; "doc/Makefile" ) CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "m4/Makefile" ) CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/include/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;; "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;; "default-2" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;; "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason to put it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Create a temporary directory, and hook for its removal unless debugging. $debug || { trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./confstat$$-$RANDOM (umask 077 && mkdir $tmp) } || { echo "$me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF # # CONFIG_FILES section. # # No need to generate the scripts if there are no CONFIG_FILES. # This happens for instance when ./config.status config.h if test -n "\$CONFIG_FILES"; then # Protect against being on the right side of a sed subst in config.status. sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF s,@SHELL@,$SHELL,;t t s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t s,@exec_prefix@,$exec_prefix,;t t s,@prefix@,$prefix,;t t s,@program_transform_name@,$program_transform_name,;t t s,@bindir@,$bindir,;t t s,@sbindir@,$sbindir,;t t s,@libexecdir@,$libexecdir,;t t s,@datadir@,$datadir,;t t s,@sysconfdir@,$sysconfdir,;t t s,@sharedstatedir@,$sharedstatedir,;t t s,@localstatedir@,$localstatedir,;t t s,@libdir@,$libdir,;t t s,@includedir@,$includedir,;t t s,@oldincludedir@,$oldincludedir,;t t s,@infodir@,$infodir,;t t s,@mandir@,$mandir,;t t s,@build_alias@,$build_alias,;t t s,@host_alias@,$host_alias,;t t s,@target_alias@,$target_alias,;t t s,@DEFS@,$DEFS,;t t s,@ECHO_C@,$ECHO_C,;t t s,@ECHO_N@,$ECHO_N,;t t s,@ECHO_T@,$ECHO_T,;t t s,@LIBS@,$LIBS,;t t s,@wavedata_subdir@,$wavedata_subdir,;t t s,@sample_rate@,$sample_rate,;t t s,@first_note@,$first_note,;t t s,@note_step@,$note_step,;t t s,@min_table_size@,$min_table_size,;t t s,@gibbs@,$gibbs,;t t s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t s,@PACKAGE@,$PACKAGE,;t t s,@VERSION@,$VERSION,;t t s,@EXEEXT@,$EXEEXT,;t t s,@OBJEXT@,$OBJEXT,;t t s,@ACLOCAL@,$ACLOCAL,;t t s,@AUTOCONF@,$AUTOCONF,;t t s,@AUTOMAKE@,$AUTOMAKE,;t t s,@AUTOHEADER@,$AUTOHEADER,;t t s,@MAKEINFO@,$MAKEINFO,;t t s,@AMTAR@,$AMTAR,;t t s,@install_sh@,$install_sh,;t t s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t s,@AWK@,$AWK,;t t s,@SET_MAKE@,$SET_MAKE,;t t s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t s,@DEPDIR@,$DEPDIR,;t t s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t s,@MAINT@,$MAINT,;t t s,@MKINSTALLDIRS@,$MKINSTALLDIRS,;t t s,@USE_NLS@,$USE_NLS,;t t s,@MSGFMT@,$MSGFMT,;t t s,@GMSGFMT@,$GMSGFMT,;t t s,@XGETTEXT@,$XGETTEXT,;t t s,@MSGMERGE@,$MSGMERGE,;t t s,@CC@,$CC,;t t s,@CFLAGS@,$CFLAGS,;t t s,@LDFLAGS@,$LDFLAGS,;t t s,@CPPFLAGS@,$CPPFLAGS,;t t s,@ac_ct_CC@,$ac_ct_CC,;t t s,@am__include@,$am__include,;t t s,@am__quote@,$am__quote,;t t s,@CCDEPMODE@,$CCDEPMODE,;t t s,@build@,$build,;t t s,@build_cpu@,$build_cpu,;t t s,@build_vendor@,$build_vendor,;t t s,@build_os@,$build_os,;t t s,@host@,$host,;t t s,@host_cpu@,$host_cpu,;t t s,@host_vendor@,$host_vendor,;t t s,@host_os@,$host_os,;t t s,@LIBICONV@,$LIBICONV,;t t s,@LTLIBICONV@,$LTLIBICONV,;t t s,@INTLLIBS@,$INTLLIBS,;t t s,@LIBINTL@,$LIBINTL,;t t s,@LTLIBINTL@,$LTLIBINTL,;t t s,@POSUB@,$POSUB,;t t s,@ladspa_prefix@,$ladspa_prefix,;t t s,@ladspa_plugin_dir@,$ladspa_plugin_dir,;t t s,@CPP@,$CPP,;t t s,@EGREP@,$EGREP,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # Split the substitutions into bite-sized pieces for seds with # small command number limits, like on Digital OSF/1 and HP-UX. ac_max_sed_lines=48 ac_sed_frag=1 # Number of current file. ac_beg=1 # First line for current file. ac_end=$ac_max_sed_lines # Line after last line for current file. ac_more_lines=: ac_sed_cmds= while $ac_more_lines; do if test $ac_beg -gt 1; then sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag else sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag fi if test ! -s $tmp/subs.frag; then ac_more_lines=false else # The purpose of the label and of the branching condition is to # speed up the sed processing (if there are no `@' at all, there # is no need to browse any of the substitutions). # These are the two extra sed commands mentioned above. (echo ':t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed if test -z "$ac_sed_cmds"; then ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" else ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" fi ac_sed_frag=`expr $ac_sed_frag + 1` ac_beg=$ac_end ac_end=`expr $ac_end + $ac_max_sed_lines` fi done if test -z "$ac_sed_cmds"; then ac_sed_cmds=cat fi fi # test -n "$CONFIG_FILES" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac case "$ac_dir" in .) ac_abs_builddir=$ac_builddir;; *) case $ac_builddir in .) ac_abs_builddir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_builddir=$ac_builddir;; *) ac_abs_builddir="$ac_dir"/$ac_builddir;; esac;; esac case "$ac_dir" in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir="$ac_dir"/${ac_top_builddir}.;; esac;; esac case "$ac_dir" in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir="$ac_dir"/$ac_srcdir;; esac;; esac case "$ac_dir" in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir="$ac_dir"/$ac_top_srcdir;; esac;; esac case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_builddir$INSTALL ;; esac if test x"$ac_file" != x-; then { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} rm -f "$ac_file" fi # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then configure_input= else configure_input="$ac_file. " fi configure_input=$configure_input"Generated from `echo $ac_file_in | sed 's,.*/,,'` by configure." # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } _ACEOF cat >>$CONFIG_STATUS <<_ACEOF sed "$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s,@configure_input@,$configure_input,;t t s,@srcdir@,$ac_srcdir,;t t s,@abs_srcdir@,$ac_abs_srcdir,;t t s,@top_srcdir@,$ac_top_srcdir,;t t s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t s,@builddir@,$ac_builddir,;t t s,@abs_builddir@,$ac_abs_builddir,;t t s,@top_builddir@,$ac_top_builddir,;t t s,@abs_top_builddir@,$ac_abs_top_builddir,;t t s,@INSTALL@,$ac_INSTALL,;t t " $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out rm -f $tmp/stdin if test x"$ac_file" != x-; then mv $tmp/out $ac_file else cat $tmp/out rm -f $tmp/out fi done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_HEADER section. # # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where # NAME is the cpp macro being defined and VALUE is the value it is being given. # # ac_d sets the value in "#define NAME VALUE" lines. ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ac_dB='[ ].*$,\1#\2' ac_dC=' ' ac_dD=',;t' # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ac_uB='$,\1#\2define\3' ac_uC=' ' ac_uD=',;t' for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". case $ac_file in - | *:- | *:-:* ) # input from stdin cat >$tmp/stdin ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; * ) ac_file_in=$ac_file.in ;; esac test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 echo "$as_me: creating $ac_file" >&6;} # First look for the input files in the build tree, otherwise in the # src tree. ac_file_inputs=`IFS=: for f in $ac_file_in; do case $f in -) echo $tmp/stdin ;; [\\/$]*) # Absolute (can't be DOS-style, as IFS=:) test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } # Do quote $f, to prevent DOS paths from being IFS'd. echo "$f";; *) # Relative if test -f "$f"; then # Build tree echo "$f" elif test -f "$srcdir/$f"; then # Source tree echo "$srcdir/$f" else # /dev/null tree { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 echo "$as_me: error: cannot find input file: $f" >&2;} { (exit 1); exit 1; }; } fi;; esac done` || { (exit 1); exit 1; } # Remove the trailing spaces. sed 's/[ ]*$//' $ac_file_inputs >$tmp/in _ACEOF # Transform confdefs.h into two sed scripts, `conftest.defines' and # `conftest.undefs', that substitutes the proper values into # config.h.in to produce config.h. The first handles `#define' # templates, and the second `#undef' templates. # And first: Protect against being on the right side of a sed subst in # config.status. Protect against being in an unquoted here document # in config.status. rm -f conftest.defines conftest.undefs # Using a here document instead of a string reduces the quoting nightmare. # Putting comments in sed scripts is not portable. # # `end' is used to avoid that the second main sed command (meant for # 0-ary CPP macros) applies to n-ary macro definitions. # See the Autoconf documentation for `clear'. cat >confdef2sed.sed <<\_ACEOF s/[\\&,]/\\&/g s,[\\$`],\\&,g t clear : clear s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp t end s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp : end _ACEOF # If some macros were called several times there might be several times # the same #defines, which is useless. Nevertheless, we may not want to # sort them, since we want the *last* AC-DEFINE to be honored. uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs rm -f confdef2sed.sed # This sed command replaces #undef with comments. This is necessary, for # example, in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. cat >>conftest.undefs <<\_ACEOF s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, _ACEOF # Break up conftest.defines because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS echo ' :' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.defines >/dev/null do # Write a limited-size here document to $tmp/defines.sed. echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#define' lines. echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/defines.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail rm -f conftest.defines mv conftest.tail conftest.defines done rm -f conftest.defines echo ' fi # grep' >>$CONFIG_STATUS echo >>$CONFIG_STATUS # Break up conftest.undefs because some shells have a limit on the size # of here documents, and old seds have small limits too (100 cmds). echo ' # Handle all the #undef templates' >>$CONFIG_STATUS rm -f conftest.tail while grep . conftest.undefs >/dev/null do # Write a limited-size here document to $tmp/undefs.sed. echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS # Speed up: don't consider the non `#undef' echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS # Work around the forget-to-reset-the-flag bug. echo 't clr' >>$CONFIG_STATUS echo ': clr' >>$CONFIG_STATUS sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS echo 'CEOF sed -f $tmp/undefs.sed $tmp/in >$tmp/out rm -f $tmp/in mv $tmp/out $tmp/in ' >>$CONFIG_STATUS sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail rm -f conftest.undefs mv conftest.tail conftest.undefs done rm -f conftest.undefs cat >>$CONFIG_STATUS <<\_ACEOF # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ if test x"$ac_file" = x-; then echo "/* Generated by configure. */" >$tmp/config.h else echo "/* $ac_file. Generated by configure. */" >$tmp/config.h fi cat $tmp/in >>$tmp/config.h rm -f $tmp/in if test x"$ac_file" != x-; then if diff $ac_file $tmp/config.h >/dev/null 2>&1; then { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 echo "$as_me: $ac_file is unchanged" >&6;} else ac_dir=`(dirname "$ac_file") 2>/dev/null || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } rm -f $ac_file mv $tmp/config.h $ac_file fi else cat $tmp/config.h rm -f $tmp/config.h fi # Run the commands associated with the file. case $ac_file in config.h ) # update the timestamp echo timestamp >"./stamp-h1" ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF # # CONFIG_COMMANDS section. # for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ac_dir=`(dirname "$ac_dest") 2>/dev/null || $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_dest" : 'X\(//\)[^/]' \| \ X"$ac_dest" : 'X\(//\)$' \| \ X"$ac_dest" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$ac_dest" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` { if $as_mkdir_p; then mkdir -p "$ac_dir" else as_dir="$ac_dir" as_dirs= while test ! -d "$as_dir"; do as_dirs="$as_dir $as_dirs" as_dir=`(dirname "$as_dir") 2>/dev/null || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| \ . : '\(.\)' 2>/dev/null || echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } /^X\(\/\/\)[^/].*/{ s//\1/; q; } /^X\(\/\/\)$/{ s//\1/; q; } /^X\(\/\).*/{ s//\1/; q; } s/.*/./; q'` done test ! -n "$as_dirs" || mkdir $as_dirs fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. if test "$ac_dir" != .; then ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` # A "../" for each directory in $ac_dir_suffix. ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` else ac_dir_suffix= ac_top_builddir= fi case $srcdir in .) # No --srcdir option. We are building in place. ac_srcdir=. if test -z "$ac_top_builddir"; then ac_top_srcdir=. else ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` fi ;; [\\/]* | ?:[\\/]* ) # Absolute path. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ;; *) # Relative path. ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_builddir$srcdir ;; esac case "$ac_dir" in .) ac_abs_builddir=$ac_builddir;; *) case $ac_builddir in .) ac_abs_builddir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_builddir=$ac_builddir;; *) ac_abs_builddir="$ac_dir"/$ac_builddir;; esac;; esac case "$ac_dir" in .) ac_abs_top_builddir=${ac_top_builddir}.;; *) case ${ac_top_builddir}. in .) ac_abs_top_builddir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; *) ac_abs_top_builddir="$ac_dir"/${ac_top_builddir}.;; esac;; esac case "$ac_dir" in .) ac_abs_srcdir=$ac_srcdir;; *) case $ac_srcdir in .) ac_abs_srcdir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; *) ac_abs_srcdir="$ac_dir"/$ac_srcdir;; esac;; esac case "$ac_dir" in .) ac_abs_top_srcdir=$ac_top_srcdir;; *) case $ac_top_srcdir in .) ac_abs_top_srcdir="$ac_dir";; [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; *) ac_abs_top_srcdir="$ac_dir"/$ac_top_srcdir;; esac;; esac { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 echo "$as_me: executing $ac_dest commands" >&6;} case $ac_dest in default-1 ) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, GMOFILES, UPDATEPOFILES, DUMMYPOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= GMOFILES= UPDATEPOFILES= DUMMYPOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; default-2 ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do case "$mf" in Makefile|GNUmakefile) dirpart=.;; */Makefile|*/GNUmakefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;; *) continue;; esac grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue # Extract the definition of DEP_FILES from the Makefile without # running `make'. DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"` test -z "$DEPDIR" && continue # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n -e '/^U = / s///p' < "$mf"` test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # We invoke sed twice because it is the simplest approach to # changing $(DEPDIR) to its actual value in the expansion. for file in `sed -n -e ' /^DEP_FILES = .*\\\\$/ { s/^DEP_FILES = // :loop s/\\\\$// p n /\\\\$/ b loop p } /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`echo "$file" | sed -e 's|/[^/]*$||'` $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1 # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done ;; esac done _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi blop-0.2.8/configure.in0000644000175000006270000000741010063070304010444 dnl Process this file with autoconf to produce a configure script AC_INIT(src/adsr_1653.so.c) AM_CONFIG_HEADER(config.h) dnl Some variables for wave generation dnl Wavedata Subdir Where to put wavedata .so files relative to install dnl path (so they don't end up in LADSPA_PATH) dnl Sample Rate Rate of sampling used for generating tables dnl (Does not need to match playback sample rate) dnl First Note First MIDI note to generate table for [0-127] dnl Note Step Note interval between subsequent tables dnl This is set to 6 if --enable-small-wavedata is dnl set at configure time dnl Min Table Size Minimum wavetable size in samples dnl Gibbs Gibbs compensation to use [0.0-1.0] wavedata_subdir=blop_files sample_rate=48000 first_note=12 note_step=1 min_table_size=128 gibbs=1.0 AC_SUBST(wavedata_subdir) AC_SUBST(sample_rate) AC_SUBST(first_note) AC_SUBST(note_step) AC_SUBST(min_table_size) AC_SUBST(gibbs) dnl Automake dnl !!!! Remember to update version !!!! AM_INIT_AUTOMAKE(blop, 0.2.8) dnl This is required to prevent time stamp problems with auto builders, dnl such as dpkg (debian) AM_MAINTAINER_MODE dnl Trigger internationalization support AM_GNU_GETTEXT([external]) dnl Supported --enable and --with options dnl Have to specify all optimisations used individually, as a simple -O1 or 2, 3 dnl will cause quantiser to fail. I Have No Idea Why. AC_ARG_ENABLE( debug, [ --enable-debug Enable debugging [no]], [CFLAGS="-pipe -Wall -O0 -g"], [CFLAGS="-pipe -Wall -O3 -Wno-unused -DNO_DEBUG -DPIC -fPIC \ -ffast-math -fomit-frame-pointer -funroll-loops"] ) AC_ARG_ENABLE( small-wavedata, [ --enable-small-wavedata Use this to generate smaller wavetable data for the oscillators. With this option, each oscillator should be about 50k. Without, it's nearer 450k.], [note_step=6 first_note=24 AC_SUBST(note_step) AC_SUBST(first_note)], dnl Can't have empty statement - so we just make note_step = note step :) [note_step=$note_step AC_SUBST(note_step)] ) AC_ARG_WITH( ladspa-prefix, [ --with-ladspa-prefix=LADSPA Path where LADSPA SDK is installed [/usr]], [ladspa_prefix=$withval AC_SUBST(ladspa_prefix)], [ladspa_prefix=/usr AC_SUBST(ladspa_prefix)] ) AC_ARG_WITH( ladspa-plugin-dir, [ --with-ladspa-plugin-dir=DIR Where to install plugins [LADSPA/lib/ladspa]], [ladspa_plugin_dir=$withval AC_SUBST(ladspa_plugin_dir)], [ladspa_plugin_dir=$ladspa_prefix/lib/ladspa AC_SUBST(ladspa_plugin_dir)] ) dnl Checks for programs dnl Checks for libraries dnl Checks for headers AC_CHECK_HEADER( $ladspa_prefix/include/ladspa.h, [], [AC_MSG_ERROR( ** Couldn't find ladspa.h)] ) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T dnl Checks for library functions. AC_CHECK_FUNCS(strdup) AC_CHECK_FUNC( sinf, [AC_DEFINE(HAVE_SINF, 1, [Define if you have sinf and friends])], [AC_CHECK_LIB(m, sinf, [AC_DEFINE(HAVE_SINF, 1, [Define if you have sinf and friends])], [AC_MSG_WARN( ** No sinf function found - using sin)] )] ) AC_CHECK_FUNC(getopt_long,[], [AC_CHECK_LIB(gnugetopt, getopt_long, [], [AC_MSG_ERROR( ** No getopt_long function found)])]) if test "$HAVE_LIBGNUGETOPT" != ""; then ac_save_LIBS="$LIBS" LIBS= "$ac_save_LIBS -lgnugetopt" fi AC_C99_FUNC_LRINT AC_C99_FUNC_LRINTF dnl Makefiles generated AC_OUTPUT(Makefile \ doc/Makefile \ m4/Makefile \ po/Makefile.in \ src/Makefile \ src/include/Makefile) blop-0.2.8/config.guess0000755000175000006270000011544310040210547010461 #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002 Free Software Foundation, Inc. timestamp='2002-07-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # The plan is that this can be called by configure scripts if you # don't specify an explicit build system type. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # This shell variable is my proudest work .. or something. --bje set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; dummy=$tmpdir/dummy ; files="$dummy.c $dummy.o $dummy.rel $dummy" ; trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; rm -f $files ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; unset files' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep __ELF__ >/dev/null then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; amiga:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; arc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; hp300:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mac68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; macppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme68k:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvme88k:OpenBSD:*:*) echo m88k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; mvmeppc:OpenBSD:*:*) echo powerpc-unknown-openbsd${UNAME_RELEASE} exit 0 ;; pmax:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sgi:OpenBSD:*:*) echo mipseb-unknown-openbsd${UNAME_RELEASE} exit 0 ;; sun3:OpenBSD:*:*) echo m68k-unknown-openbsd${UNAME_RELEASE} exit 0 ;; wgrisc:OpenBSD:*:*) echo mipsel-unknown-openbsd${UNAME_RELEASE} exit 0 ;; *:OpenBSD:*:*) echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` fi # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. eval $set_cc_for_build cat <$dummy.s .data \$Lformat: .byte 37,100,45,37,120,10,0 # "%d-%x\n" .text .globl main .align 4 .ent main main: .frame \$30,16,\$26,0 ldgp \$29,0(\$27) .prologue 1 .long 0x47e03d80 # implver \$0 lda \$2,-1 .long 0x47e20c21 # amask \$2,\$1 lda \$16,\$Lformat mov \$0,\$17 not \$1,\$18 jsr \$26,printf ldgp \$29,0(\$26) mov 0,\$16 jsr \$26,exit .end main EOF $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null if test "$?" = 0 ; then case `$dummy` in 0-0) UNAME_MACHINE="alpha" ;; 1-0) UNAME_MACHINE="alphaev5" ;; 1-1) UNAME_MACHINE="alphaev56" ;; 1-101) UNAME_MACHINE="alphapca56" ;; 2-303) UNAME_MACHINE="alphaev6" ;; 2-307) UNAME_MACHINE="alphaev67" ;; 2-1307) UNAME_MACHINE="alphaev68" ;; 3-1307) UNAME_MACHINE="alphaev7" ;; esac fi rm -f $dummy.s $dummy && rmdir $tmpdir echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit 0 ;; DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD $dummy.c -o $dummy \ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 rm -f $dummy.c $dummy && rmdir $tmpdir echo mips-mips-riscos${UNAME_RELEASE} exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit 0 ;; Night_Hawk:*:*:PowerMAX_OS) echo powerpc-harris-powermax exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 rm -f $dummy.c $dummy && rmdir $tmpdir echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy` if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi rm -f $dummy.c $dummy && rmdir $tmpdir fi ;; esac echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 rm -f $dummy.c $dummy && rmdir $tmpdir echo unknown-hitachi-hiuxwe2 exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3D:*:*:*) echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit 0 ;; *:FreeBSD:*:*) # Determine whether the default compiler uses glibc. eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #if __GLIBC__ >= 2 LIBC=gnu #else LIBC= #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` rm -f $dummy.c && rmdir $tmpdir echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit 0 ;; x86:Interix*:3*) echo i386-pc-interix3 exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i386-pc-interix exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef mips #undef mipsel #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=mipsel #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=mips #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` rm -f $dummy.c && rmdir $tmpdir test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu exit 0 ;; i*86:Linux:*:*) # The BFD linker knows what the default object file format is, so # first see if it will tell us. cd to the root directory to prevent # problems with other programs or directories called `ld' in the path. # Set LC_ALL=C to ensure ld outputs messages in English. ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \ | sed -ne '/supported targets:/!d s/[ ][ ]*/ /g s/.*supported targets: *// s/ .*// p'` case "$ld_supported_targets" in elf32-i386) TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include #ifdef __ELF__ # ifdef __GLIBC__ # if __GLIBC__ >= 2 LIBC=gnu # else LIBC=gnulibc1 # endif # else LIBC=gnulibc1 # endif #else #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` rm -f $dummy.c && rmdir $tmpdir test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit 0 ;; i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit 0 ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit 0 ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp exit 0 ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit 0 ;; paragon:*:*:*) echo i860-intel-osf1 exit 0 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit 0 ;; M68*:*:R3V[567]*:*) test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit 0 ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit 0 ;; *:Darwin:*:*) echo `uname -p`-apple-darwin${UNAME_RELEASE} exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx exit 0 ;; NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit 0 ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its exit 0 ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit 0 ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 rm -f $dummy.c $dummy && rmdir $tmpdir # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit 0 ;; c34*) echo c34-convex-bsd exit 0 ;; c38*) echo c38-convex-bsd exit 0 ;; c4*) echo c4-convex-bsd exit 0 ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: blop-0.2.8/config.rpath0000755000175000006270000003521710063062210010446 #! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2003 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except M$VC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $CC in icc|ecc) wl='-Wl,' ;; ccc) wl='-Wl,' ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we can use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = yes; then # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi4*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then hardcode_direct=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10* | hpux11*) if test "$with_gnu_ld" = no; then case "$host_cpu" in hppa*64*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=no ;; ia64*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=no # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; *) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; sco3.2v5*) ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4.2uw2*) hardcode_direct=yes hardcode_minus_L=no ;; sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*) ;; sysv5*) hardcode_libdir_flag_spec= ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi4*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; freebsd*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case "$host_cpu" in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; netbsd*) ;; newsos6) ;; nto-qnx) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; sco3.2v5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ;; sysv4*MP*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. Submit a context # diff and a properly formatted ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit 0 ;; --version | -v ) echo "$version" ; exit 0 ;; --help | --h* | -h ) echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit 0;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis) os= basic_machine=$1 ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ | ip2k \ | m32r | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64orion | mips64orionel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa64 | mipsisa64el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | ns16k | ns32k \ | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ | tahoe | thumb | tic80 | tron \ | v850 | v850e \ | we32k \ | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c54x-* \ | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* \ | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64orion-* | mips64orionel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipstx39 | mipstx39el \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ | tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; c90) basic_machine=c90-cray os=-unicos ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; crds | unos) basic_machine=m68k-crds ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; # I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; mmix*) basic_machine=mmix-knuth os=-mmixware ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; mvs) basic_machine=i370-ibm os=-mvs ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; or32 | or32-*) basic_machine=or32-unknown os=-coff ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon) basic_machine=i686-pc ;; pentiumii | pentium2) basic_machine=i686-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc) basic_machine=powerpc-unknown ;; ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3d) basic_machine=alpha-cray os=-unicos ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; windows32) basic_machine=i386-pc os=-windows32-msvcrt ;; xps | xps100) basic_machine=xps100-honeywell ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) basic_machine=sh-unknown ;; sh64) basic_machine=sh64-unknown ;; sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; c4x*) basic_machine=c4x-none os=-coff ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto*) os=-nto-qnx ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 # This also exists in the configure program, but was not the # default. # os=-sunos4 ;; m68*-cisco) os=-aout ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -ptx*) vendor=sequent ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: blop-0.2.8/missing0000755000175000006270000002123110040210547007527 #! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright 1996, 1997, 1999, 2000 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.3 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar ${1+"$@"} && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar ${1+"$@"} && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" ${1+"$@"} && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" ${1+"$@"} && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 blop-0.2.8/mkinstalldirs0000755000175000006270000000132210040210547010735 #! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here blop-0.2.8/Makefile.am0000644000175000006270000000062310063140174010171 ## Process this file with automake to produce Makefile.in SUBDIRS = doc m4 po src INCLUDES = -I$(ladspa_prefix)/include MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in configure \ install-sh missing mkinstalldirs stamp-h.in \ config.cache config.log config.status depcomp ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = mkinstalldirs config.rpath depcomp blop-0.2.8/Makefile.in0000644000175000006270000003373510063536477010233 # Makefile.in generated automatically by automake 1.5 from Makefile.am. # Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ SHELL = @SHELL@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ sbindir = @sbindir@ libexecdir = @libexecdir@ datadir = @datadir@ sysconfdir = @sysconfdir@ sharedstatedir = @sharedstatedir@ localstatedir = @localstatedir@ libdir = @libdir@ infodir = @infodir@ mandir = @mandir@ includedir = @includedir@ oldincludedir = /usr/include pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . ACLOCAL = @ACLOCAL@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ AMTAR = @AMTAR@ AWK = @AWK@ BUILD_INCLUDED_LIBINTL = @BUILD_INCLUDED_LIBINTL@ CATOBJEXT = @CATOBJEXT@ CC = @CC@ DATADIRNAME = @DATADIRNAME@ DEPDIR = @DEPDIR@ EXEEXT = @EXEEXT@ GENCAT = @GENCAT@ GLIBC21 = @GLIBC21@ GMSGFMT = @GMSGFMT@ HAVE_LIB = @HAVE_LIB@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTOBJEXT = @INSTOBJEXT@ INTLBISON = @INTLBISON@ INTLLIBS = @INTLLIBS@ INTLOBJS = @INTLOBJS@ INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@ LIB = @LIB@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LTLIB = @LTLIB@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ MAINT = @MAINT@ MKINSTALLDIRS = @MKINSTALLDIRS@ OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ POSUB = @POSUB@ RANLIB = @RANLIB@ USE_INCLUDED_LIBINTL = @USE_INCLUDED_LIBINTL@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ am__include = @am__include@ am__quote = @am__quote@ first_note = @first_note@ gibbs = @gibbs@ install_sh = @install_sh@ ladspa_plugin_dir = @ladspa_plugin_dir@ ladspa_prefix = @ladspa_prefix@ min_table_size = @min_table_size@ note_step = @note_step@ sample_rate = @sample_rate@ wavedata_subdir = @wavedata_subdir@ SUBDIRS = doc m4 po src INCLUDES = -I$(ladspa_prefix)/include MAINTAINERCLEANFILES = Makefile.in aclocal.m4 config.h.in configure \ install-sh missing mkinstalldirs stamp-h.in \ config.cache config.log config.status depcomp ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = mkinstalldirs config.rpath depcomp subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = DIST_SOURCES = RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ install-exec-recursive installdirs-recursive install-recursive \ uninstall-recursive check-recursive installcheck-recursive DIST_COMMON = README ./stamp-h.in ABOUT-NLS AUTHORS COPYING ChangeLog \ INSTALL Makefile.am Makefile.in NEWS THANKS TODO acinclude.m4 \ aclocal.m4 config.guess config.h.in config.sub configure \ configure.in install-sh missing mkinstalldirs DIST_SUBDIRS = $(SUBDIRS) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status cd $(top_builddir) && \ CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$@ $(SHELL) ./config.status $(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 m4/codeset.m4 m4/gettext.m4 m4/glibc21.m4 m4/iconv.m4 m4/intdiv0.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/inttypes_h.m4 m4/isc-posix.m4 m4/lcmessage.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/nls.m4 m4/po.m4 m4/progtest.m4 m4/stdint_h.m4 m4/uintmax_t.m4 m4/ulonglong.m4 cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) config.h: stamp-h @if test ! -f $@; then \ rm -f stamp-h; \ $(MAKE) stamp-h; \ else :; fi stamp-h: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h stamp-hT @echo timestamp > stamp-hT 2> /dev/null cd $(top_builddir) \ && CONFIG_FILES= CONFIG_HEADERS=config.h \ $(SHELL) ./config.status @mv stamp-hT stamp-h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/./stamp-h.in @if test ! -f $@; then \ rm -f $(srcdir)/./stamp-h.in; \ $(MAKE) $(srcdir)/./stamp-h.in; \ else :; fi $(srcdir)/./stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) @rm -f $(srcdir)/./stamp-h.in $(srcdir)/./stamp-h.inT @echo timestamp > $(srcdir)/./stamp-h.inT 2> /dev/null cd $(top_srcdir) && $(AUTOHEADER) @mv $(srcdir)/./stamp-h.inT $(srcdir)/./stamp-h.in distclean-hdr: -rm -f config.h uninstall-info-am: # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" mostlyclean-recursive clean-recursive distclean-recursive \ maintainer-clean-recursive: @set fnord $(MAKEFLAGS); amf=$$2; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ mkid -fID $$unique $(LISP) TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) ' { files[$$0] = 1; } \ END { for (i in files) print i; }'`; \ test -z "$(ETAGS_ARGS)config.h.in$$unique$(LISP)$$tags" \ || etags $(ETAGS_ARGS) $$tags config.h.in $$unique $(LISP) GTAGS: here=`CDPATH=: && cd $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = . # Avoid unsightly `./'. distdir = $(PACKAGE)-$(VERSION) GZIP_ENV = --best distdir: $(DISTFILES) -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) mkdir $(distdir) $(mkinstalldirs) $(distdir)/po @for file in $(DISTFILES); do \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ $(mkinstalldirs) "$(distdir)/$$dir"; \ fi; \ if test -d $$d/$$file; then \ cp -pR $$d/$$file $(distdir) \ || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done for subdir in $(SUBDIRS); do \ if test "$$subdir" = .; then :; else \ test -d $(distdir)/$$subdir \ || mkdir $(distdir)/$$subdir \ || exit 1; \ (cd $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" \ distdir=../$(distdir)/$$subdir \ distdir) \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/=build mkdir $(distdir)/=inst chmod a-w $(distdir) dc_install_base=`CDPATH=: && cd $(distdir)/=inst && pwd` \ && cd $(distdir)/=build \ && ../configure --srcdir=.. --prefix=$$dc_install_base \ --with-included-gettext \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \ || (echo "Error: files left after uninstall" 1>&2; \ exit 1) ) \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && $(MAKE) $(AM_MAKEFLAGS) distclean \ && rm -f $(distdir).tar.gz \ && (test `find . -type f -print | wc -l` -eq 0 \ || (echo "Error: files left after distclean" 1>&2; \ exit 1) ) -chmod -R a+w $(distdir) > /dev/null 2>&1; rm -rf $(distdir) @echo "$(distdir).tar.gz is ready for distribution" | \ sed 'h;s/./=/g;p;x;p;x' check-am: all-am check: check-recursive all-am: Makefile config.h installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: clean-generic: distclean-generic: -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic mostlyclean-am dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz -chmod -R a+w $(distdir) >/dev/null 2>&1; rm -rf $(distdir) distclean: distclean-recursive -rm -f config.status config.cache config.log distclean-am: clean-am distclean-generic distclean-hdr distclean-tags dvi: dvi-recursive dvi-am: info: info-recursive info-am: install-data-am: install-exec-am: install-info: install-info-recursive install-man: installcheck-am: maintainer-clean: maintainer-clean-recursive maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic uninstall-am: uninstall-info-am uninstall-info: uninstall-info-recursive .PHONY: $(RECURSIVE_TARGETS) GTAGS all all-am check check-am clean \ clean-generic clean-recursive dist dist-all distcheck distclean \ distclean-generic distclean-hdr distclean-recursive \ distclean-tags distdir dvi dvi-am dvi-recursive info info-am \ info-recursive install install-am install-data install-data-am \ install-data-recursive install-exec install-exec-am \ install-exec-recursive install-info install-info-am \ install-info-recursive install-man install-recursive \ install-strip installcheck installcheck-am installdirs \ installdirs-am installdirs-recursive maintainer-clean \ maintainer-clean-generic maintainer-clean-recursive mostlyclean \ mostlyclean-generic mostlyclean-recursive tags tags-recursive \ uninstall uninstall-am uninstall-info-am \ uninstall-info-recursive uninstall-recursive # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: blop-0.2.8/config.h.in0000644000175000006270000000463610063536472010202 /* config.h.in. Generated from configure.in by autoheader. */ /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have the iconv() function. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define to 1 if you have the `gnugetopt' library (-lgnugetopt). */ #undef HAVE_LIBGNUGETOPT /* Define if you have C99's lrint function. */ #undef HAVE_LRINT /* Define if you have C99's lrintf function. */ #undef HAVE_LRINTF /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define if you have sinf and friends */ #undef HAVE_SINF /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ #undef VERSION /* Define to empty if `const' does not conform to ANSI C. */ #undef const /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to `unsigned' if does not define. */ #undef size_t blop-0.2.8/acinclude.m40000644000175000006270000000362707623762213010351 dnl @synopsis AC_C99_FUNC_LRINTF dnl dnl Check whether C99's lrintf function is available. dnl @version 1.1 dnl @author Erik de Castro Lopo dnl dnl Permission to use, copy, modify, distribute, and sell this file for any dnl purpose is hereby granted without fee, provided that the above copyright dnl and this permission notice appear in all copies. No representations are dnl made about the suitability of this software for any purpose. It is dnl provided "as is" without express or implied warranty. dnl AC_DEFUN([AC_C99_FUNC_LRINTF], [AC_CACHE_CHECK(for lrintf, ac_cv_c99_lrintf, [AC_TRY_COMPILE([ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 #define __USE_ISOC99 1 #define __USE_ISOC9X 1 #include ], [ int value = lrintf (0.432) ; ], ac_cv_c99_lrintf=yes, ac_cv_c99_lrintf=no)]) if test $ac_cv_c99_lrintf = yes; then AC_DEFINE(HAVE_LRINTF, 1, [Define if you have C99's lrintf function.]) fi ])# AC_C99_LRINTF dnl @synopsis AC_C99_FUNC_LRINT dnl dnl Check whether C99's lrint function is available. dnl @version 1.1 dnl @author Erik de Castro Lopo dnl dnl Permission to use, copy, modify, distribute, and sell this file for any dnl purpose is hereby granted without fee, provided that the above copyright dnl and this permission notice appear in all copies. No representations are dnl made about the suitability of this software for any purpose. It is dnl provided "as is" without express or implied warranty. dnl AC_DEFUN([AC_C99_FUNC_LRINT], [AC_CACHE_CHECK(for lrint, ac_cv_c99_lrint, [AC_TRY_COMPILE([ #define _ISOC9X_SOURCE 1 #define _ISOC99_SOURCE 1 #define __USE_ISOC99 1 #define __USE_ISOC9X 1 #include ], [ int value = lrint (0.432) ; ], ac_cv_c99_lrint=yes, ac_cv_c99_lrint=no)]) if test $ac_cv_c99_lrint = yes; then AC_DEFINE(HAVE_LRINT, 1, [Define if you have C99's lrint function.]) fi ])# AC_C99_LRINT blop-0.2.8/stamp-h.in0000644000175000006270000000000010063536477010042 blop-0.2.8/AUTHORS0000644000175000006270000000004507506123060007206 Mike Rawes blop-0.2.8/INSTALL0000644000175000006270000001722707506140345007206 Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. blop-0.2.8/ABOUT-NLS0000644000175000006270000011311310063062210007355 Notes on the Free Translation Project ************************************* Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work at translations should contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. Quick configuration advice ========================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. INSTALL Matters =============== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the GNU `gettext' own library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will respectively bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might be not what is desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages have usually many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. Using This Package ================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your country by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. Translating Teams ================= For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skill are praised more than programming skill, here. Available Packages ================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of May 2003. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files am az be bg ca cs da de el en en_GB eo es +-------------------------------------------+ a2ps | [] [] [] [] | aegis | () | anubis | | ap-utils | | bash | [] [] [] | batchelor | | bfd | [] [] | binutils | [] [] | bison | [] [] [] | bluez-pin | [] [] | clisp | | clisp | [] [] [] | coreutils | [] [] [] [] | cpio | [] [] [] | darkstat | () [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] | error | [] [] [] [] [] | fetchmail | [] () [] [] [] [] | fileutils | [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] | gas | [] | gawk | [] [] [] [] | gcal | [] | gcc | [] [] | gettext | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gimp-print | [] [] [] [] [] | gliv | | glunarclock | [] [] [] | gnucash | () [] | gnucash-glossary | [] () [] | gnupg | [] () [] [] [] [] | gpe-calendar | [] | gpe-conf | [] | gpe-contacts | [] | gpe-edit | | gpe-login | [] | gpe-ownerinfo | [] | gpe-sketchbook | [] | gpe-timesheet | | gpe-today | [] | gpe-todo | [] | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | () () () | grep | [] [] [] [] [] | gretl | [] | hello | [] [] [] [] [] [] | id-utils | [] [] | indent | [] [] [] [] | jpilot | [] [] [] [] | jwhois | [] | kbd | [] [] [] [] [] | ld | [] [] | libc | [] [] [] [] [] [] | libgpewidget | [] | libiconv | [] [] [] [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lingoteach_lessons | () () | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] | man-db | [] () [] [] () | mysecretdiary | [] [] [] | nano | [] () [] [] [] | nano_1_0 | [] () [] [] [] | opcodes | [] [] | parted | [] [] [] [] [] | ptx | [] [] [] [] [] | python | | radius | | recode | [] [] [] [] [] [] | screem | | sed | [] [] [] [] [] | sh-utils | [] [] [] | sharutils | [] [] [] [] [] [] | sketch | [] () [] | soundtracker | [] [] [] | sp | [] | tar | [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] [] | tin | () () | util-linux | [] [] [] [] [] | vorbis-tools | [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] [] [] [] [] [] | xchat | [] [] [] | xpad | | +-------------------------------------------+ am az be bg ca cs da de el en en_GB eo es 0 1 4 2 31 17 54 60 14 1 4 12 56 et fa fi fr ga gl he hr hu id it ja ko +----------------------------------------+ a2ps | [] [] [] () () | aegis | | anubis | [] | ap-utils | [] | bash | [] [] | batchelor | [] | bfd | [] [] | binutils | [] [] | bison | [] [] [] [] | bluez-pin | [] [] [] [] | clisp | | clisp | [] | coreutils | [] [] [] [] | cpio | [] [] [] [] | darkstat | () [] [] [] | diffutils | [] [] [] [] [] [] [] | e2fsprogs | | enscript | [] [] | error | [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] [] [] [] [] [] | flex | [] [] | gas | [] | gawk | [] [] | gcal | [] | gcc | [] | gettext | [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] | gimp-print | [] [] | gliv | () | glunarclock | [] [] [] [] | gnucash | [] | gnucash-glossary | [] | gnupg | [] [] [] [] [] [] [] | gpe-calendar | [] | gpe-conf | | gpe-contacts | [] | gpe-edit | [] [] | gpe-login | [] | gpe-ownerinfo | [] [] [] | gpe-sketchbook | [] | gpe-timesheet | [] [] [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | [] [] [] | gprof | [] [] | gpsdrive | () [] () () | grep | [] [] [] [] [] [] [] [] [] [] [] | gretl | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] [] [] [] [] [] | jpilot | [] () | jwhois | [] [] [] [] | kbd | [] | ld | [] | libc | [] [] [] [] [] [] | libgpewidget | [] [] [] | libiconv | [] [] [] [] [] [] [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] | lingoteach_lessons | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | | make | [] [] [] [] [] [] | man-db | [] () () | mysecretdiary | [] [] | nano | [] [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | radius | | recode | [] [] [] [] [] [] | screem | | sed | [] [] [] [] [] [] [] [] | sh-utils | [] [] [] [] [] [] | sharutils | [] [] [] [] [] | sketch | [] | soundtracker | [] [] [] | sp | [] () | tar | [] [] [] [] [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] [] [] | tin | [] () | util-linux | [] [] [] [] () [] | vorbis-tools | [] | wastesedge | () | wdiff | [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] | xpad | | +----------------------------------------+ et fa fi fr ga gl he hr hu id it ja ko 20 1 15 73 14 24 8 10 30 31 19 31 9 lg lt lv ms nb nl nn no pl pt pt_BR ro +----------------------------------------+ a2ps | [] [] () () () [] [] | aegis | () | anubis | [] [] | ap-utils | () | bash | [] | batchelor | | bfd | | binutils | | bison | [] [] [] [] | bluez-pin | [] | clisp | | clisp | [] | coreutils | [] | cpio | [] [] [] | darkstat | [] [] [] [] | diffutils | [] [] [] | e2fsprogs | | enscript | [] [] | error | [] [] | fetchmail | () () | fileutils | [] | findutils | [] [] [] [] | flex | [] | gas | | gawk | [] | gcal | | gcc | | gettext | [] | gettext-runtime | [] | gettext-tools | | gimp-print | [] | gliv | [] | glunarclock | [] | gnucash | | gnucash-glossary | [] [] | gnupg | | gpe-calendar | [] [] | gpe-conf | [] [] | gpe-contacts | [] | gpe-edit | [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-sketchbook | [] [] | gpe-timesheet | [] [] | gpe-today | [] [] | gpe-todo | [] [] | gphoto2 | | gprof | [] | gpsdrive | () () () | grep | [] [] [] [] | gretl | | hello | [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] | indent | [] [] [] | jpilot | () () | jwhois | [] [] [] | kbd | | ld | | libc | [] [] [] [] | libgpewidget | [] [] | libiconv | [] [] | lifelines | | lilypond | [] | lingoteach | | lingoteach_lessons | | lynx | [] [] | m4 | [] [] [] [] | mailutils | | make | [] [] | man-db | [] | mysecretdiary | [] | nano | [] [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] [] | parted | [] [] [] | ptx | [] [] [] [] [] [] [] | python | | radius | | recode | [] [] [] | screem | | sed | [] [] | sh-utils | [] | sharutils | [] | sketch | [] | soundtracker | | sp | | tar | [] [] [] [] [] [] | texinfo | [] | textutils | [] | tin | | util-linux | [] [] | vorbis-tools | [] [] | wastesedge | | wdiff | [] [] [] [] | wget | [] [] [] | xchat | [] [] | xpad | [] | +----------------------------------------+ lg lt lv ms nb nl nn no pl pt pt_BR ro 0 0 2 11 7 26 3 4 18 15 34 34 ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW +-------------------------------------------+ a2ps | [] [] [] [] [] | 16 aegis | () | 0 anubis | [] [] | 5 ap-utils | () | 1 bash | [] | 7 batchelor | | 1 bfd | [] [] [] | 7 binutils | [] [] [] | 7 bison | [] [] | 13 bluez-pin | | 7 clisp | | 0 clisp | | 5 coreutils | [] [] [] [] [] | 14 cpio | [] [] [] | 13 darkstat | [] () () | 9 diffutils | [] [] [] [] | 21 e2fsprogs | [] | 3 enscript | [] [] [] | 11 error | [] [] [] | 14 fetchmail | [] | 7 fileutils | [] [] [] [] [] [] | 15 findutils | [] [] [] [] [] [] | 27 flex | [] [] [] | 10 gas | [] | 3 gawk | [] [] | 9 gcal | [] [] | 4 gcc | [] | 4 gettext | [] [] [] [] [] [] | 15 gettext-runtime | [] [] [] [] [] [] | 16 gettext-tools | [] [] | 5 gimp-print | [] [] | 10 gliv | | 1 glunarclock | [] [] [] | 11 gnucash | [] [] | 4 gnucash-glossary | [] [] [] | 8 gnupg | [] [] [] [] | 16 gpe-calendar | [] | 5 gpe-conf | | 3 gpe-contacts | [] | 4 gpe-edit | [] | 5 gpe-login | [] | 5 gpe-ownerinfo | [] | 7 gpe-sketchbook | [] | 5 gpe-timesheet | [] | 6 gpe-today | [] | 6 gpe-todo | [] | 6 gphoto2 | [] [] | 9 gprof | [] [] | 7 gpsdrive | [] [] | 3 grep | [] [] [] [] | 24 gretl | | 2 hello | [] [] [] [] [] | 33 id-utils | [] [] [] | 11 indent | [] [] [] [] | 19 jpilot | [] [] [] [] [] | 10 jwhois | () () [] [] | 10 kbd | [] [] | 8 ld | [] [] | 5 libc | [] [] [] [] | 20 libgpewidget | | 6 libiconv | [] [] [] [] [] [] | 21 lifelines | [] | 2 lilypond | [] | 4 lingoteach | | 2 lingoteach_lessons | () | 0 lynx | [] [] [] [] | 14 m4 | [] [] [] | 15 mailutils | | 2 make | [] [] [] [] | 15 man-db | [] | 6 mysecretdiary | [] [] | 8 nano | [] [] [] | 15 nano_1_0 | [] [] [] | 15 opcodes | [] [] | 9 parted | [] [] | 13 ptx | [] [] [] | 22 python | | 0 radius | | 0 recode | [] [] [] [] | 19 screem | [] | 1 sed | [] [] [] [] [] | 20 sh-utils | [] [] [] | 13 sharutils | [] [] [] [] | 16 sketch | [] | 5 soundtracker | [] | 7 sp | [] | 3 tar | [] [] [] [] [] | 24 texinfo | [] [] [] [] | 13 textutils | [] [] [] [] [] | 15 tin | | 1 util-linux | [] [] | 14 vorbis-tools | [] | 7 wastesedge | | 0 wdiff | [] [] [] [] | 17 wget | [] [] [] [] [] [] [] | 25 xchat | [] [] [] | 11 xpad | | 1 +-------------------------------------------+ 50 teams ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW 97 domains 32 19 16 0 56 0 48 10 1 1 12 23 913 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If May 2003 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. Using `gettext' in new packages =============================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. blop-0.2.8/ChangeLog0000644000175000006270000011470710063536172007727 2004-06-15 : Release 0.2.8 2004-06-15 : src/Makefile.am: Removed loopotron for now. src/quantiser.so.c, src/sequencer.so.c: Use macros for 'f' math functions (sinf and friends). 2004-06-13 : Makefile.am, configure.in: Now using installed gettext. ABOUT-NLS config.rpath, config.sub, m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/iconv.m4, m4/intdiv0.m4, m4/inttypes-pri.m4, m4/inttypes.m4, m4/inttypes_h.m4, m4/isc-posix.m4, m4/lcmessage.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4, m4/nls.m4, m4/po.m4, m4/progtest.m4, m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4, po/Makefile.in.in po/Makevars.template po/Rules-quot po/boldquot.sed po/en@boldquot.header po/en@quot.header po/insert-header.sin po/quot.sed po/remove-potcdate.sin: All of these are now symlinks to installed gettext, and have been removed from the repository. 2004-05-02 : src/include/math_func.h: Moved #include below float_cast.h float_cast.h may define ISO C99, which needs to be defined prior to math.h so that the C99 lrint and lrintf functions are used src/include/float_cast.h: #define's to avoid including multiple times src/include/common.h: Removed redundant f_trunc_i 2004-04-30 : configure.in: Oops. Check for sinf, not sinff src/quantiser.so.c, src/sequencer.so.c: No need to free port names - static data 2004-04-15 : doc/blop.rdf: Fixed Quantiser tags 2004-04-11 : doc/plugins_list.txt, src/dahdsr_2021.so.c: Added control-rate gate and trigger variant src/tracker_2025.so.c, Changed copyright year to year written src/difference_2030.so.c, src/ratio_2034.so.c: Renamed labels to reflect port names Changed copyright year to year written po/blop.pot, po/de.po, po/en_GB.po: Regenerated translations doc/blop.rdf: Added DAHDSR, Ratio and Difference plugins 2004-03-17 : src/include/math_func.h: New file Hide math functions behind defines to allow substitution of sin for sinf etc where needed configure.in: Changes for sinf detection - now sets HAVE_SINF src/include/common.h, src/include/interpolate.h, src/include/wavedata.h, src/amp_1654.so.c, src/fmod_1656.so.c, src/random_1661.so.c, src/tracker_2025.so.c: Replaced sinf, expf etc with defined equivalent doc/plugins_list.txt, src/Makefile.am src/difference_2030.so.c, src/ratio_2034.so.c: New plugins src/product_1668.so.c, src/sum_1665.so.c, src/triangle_1649.so.c: Minor comment corrections src/sync_square_1678.so.c: No need for math.h intl/plural.c, po/blop.pot, po/de.po, po/en_GB.po: Updated message positions and for new plugins 2004-01-20 : src/include/wavedata.h, src/wdatutil.c: Fixed phase offset bug 2004-01-11 : src/triangle_1649.so.c: Fixed silly mistake in applying scale factor 2003-12-25 : src/include/wavedata.h, src/include/wdatutil.h, src/wavedata.c, src/wavegen.c, src/wdatutil.c: Changes to wavedata generation - now all static data in separate dll. No SHM anymore... src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c: Changes to use new wavedata. configure.in: Removed check for POSIX SHM src/include/common.h, src/include/float_cast.h, src/include/interpolate.h, src/include/lp4pole_filter.h, src/Makefile.am, src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/lp4pole_filter.c, src/product_1668.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sequencer.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c: Silly code cleaning. I started, so I finished... po/blop.pot, po/de.po, po/en_GB.po: Updated for changes in code. 2003-12-01 : src/fmod_1656.so.c, src/lp4pole_1671.so.c, src/pulse_1645.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Logarithmic minima changed to +ve value for lazy hosts that do a simple log(val). Assumes 48000 Hz sample rate. 2003-11-15 : src/include/wavedata.h, src/wavedata.c: Added SHM for wavedata. src/Makefile.am, configure.in: Added shm as option. 2003-11-09 : src/amp_1654.so.c, src/fmod_1656.so.c: Replaced powf with expf (more efficient) src/quantiser.so.c: Fixed bug in wrapped mode quantiser - subtract, not assign excess range from input src/sync_pulse_2023.so.c: Fixed audio rate variant - pulsewidth should be multiple of sample rate for comparison with phase src/include/wavedata.h, src/wavedata.c, src/wdatutil.c: Changed to generate a separate data .so which is dlopen()ed so that the data can be shared between multiple instances. src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c: Modified to use new .so data instead of #included headers. src/Makefile.am: Build rules changed to build data as .so, and install in subdir configure.in: Added wavedata subdir variable po/blop.pot, po/de.po, po/en_GB.po: Updated to reflect changed positions of strings in oscillator plugins 2003-09-28 : src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Added #include as compiler was complaining about setlocale(). Strange. It Worked Yesterday (tm). src/quantiser.so.c: Some fine-tuning and fixed change-trigger. src/Makefile.am: Removed (added -O0) optimisations for building quantiser, as -O1 and up break it. configure.in: Removed redundant -f options from CFLAGS (covered by -O3) po/blop.pot, po/de.po, po/en_GB.po: Updated since changes to sources 2003-09-23 : po/de.po: German translations from Mario Lang po/blop.pot, po/en_GB.po: Recreated, omitting plugin labels src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Removed gettext marks from plugin labels, as they mostly won't translate well. Makefile.am: Cleaned up EXTRA_DIST madness 2003-09-12 : src/include/wdatutil.h: Fixed macro that accidentally worked anyway src/wavedata.c: No need for stdio.h 2003-09-09 : ABOUT-NLS, config.rpath, intl/* m4/* po/ChangeLog, po/Makefile.in.in, po/Makevars.template, po/Rules-quot, po/boldquot.sed, po/en@boldquot.header, po/en@quot.header, po/insert-header.sin, po/quot.sed, po/remove-potdate.sin: Gettext boilerplate added po/LINGUAS, po/Makevars, po/POTFILES.in, po/blop.pot, po/en_GB.po: BLOP-specific gettext files added. src/Makefile.am: For automake 1.5 (needed for gettext) src/include/Makefile.am: Add gettext.h to dist target 2003-09-05 : Makefile.am, configure.in: gettextize src/include/gettext.h: Added for gettext use in sources src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Added missing semicolon TODO, ChangeLog: 'Proper' dates. 2003-08-30 : src/adsr_1653.so.c, src/adsr_1680.so.c, src/amp_1654.so.c, src/branch_1673.so.c, src/dahdsr_2021.so.c, src/fmod_1656.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/product_1668.so.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/sum_1665.so.c, src/sync_pulse_2023.so.c, src/sync_square_1678.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Prepared for gettext (marked translatable strings) 2003-08-27 : src/include/lp4pole_filter.h, src/adsr_1653.so.c, src/adsr_1680.so.c, src/dahdsr_2021.so.c, src/interpolator_1660.so.c, src/lp4pole_1671.so.c, src/lp4pole_filter.c, src/pulse_1645.so.c, src/quantiser.so.c, src/random_1661.so.c, src/sawtooth_1641.so.c, src/sequencer.so.c, src/square_1643.so.c, src/tracker_2025.so.c, src/triangle_1649.so.c: Moved initialisation of instance data to activate() function in each plugin. src/sync_pulse_2023.so.c, src/sync_square_1678.so.c: As above, plus added TOGGLED hint for gate port. TODO: Added stuff that needs to be done :) 2003-08-23 : src/adsr_1653.so.c, src/adsr_1680.so.c, src/dahdsr_2021.so.c, src/sequencer.so.c: Set TOGGLED hint for gates and triggers. 2003-07-02 : doc/blop.rdf, doc/plugins_list.txt, src/quantiser.so.c, src/Makefile.am: Added quantiser plugin 2003-06-30 : doc/blop.rdf: Added new plugin info src/adsr_1653.so.c, src/adsr_1680.so.c, src/dahdsr_2021.so.c: Fixed some (minor) bugs in envelope generation 2003-06-26 : src/sync_pulse_2023.so.c, src/tracker_2025.so.c: src/Makefile.am: Added new signal tracker and pulse clock plugins 2003-06-15 : doc/plugin_list.txt, src/dahdsr_2021.so.c, src/Makefile.am: Added new dahdsr plugin 2003-06-11 : configure.in: Changed displayed default LADSPA path in help Removed extraneous cpu-type hack src/adsr_1653.so.c, src/adsr_1680.so.c: Sustain level clipping (result of excessive values too nasty to let go. 2003-02-18 : src/Makefile.am: Removed $BUILT_SOURCES things and replaced with some new rules for building oscillators with the generated headers. This was to get rid of annoying side-effects of the BUILT_SOURCES and dependencies. Makefile.am: Removed dist-hook rule - above changes sorted this problem out. Added extraneous files to maintainer-clean 2003-02-18 : src/include/float_cast.h, acinclude.m4: Files added - Erik de Castro Lopo's float cast code for C99 lrintf detection and use src/include/common.h, src/include/interpolate.h, src/include/lp4pole_filter.h, src/include/wavedata.h, src/include/wdatutil.h, src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c, src/wavedata.c: Some header shuffling to get float cast stuff to work right. 2003-02-05 : src/sequencer16_1677.so.c, src/sequencer32_1676.so.c, src/sequencer64_1675.so.c: Files replaced by single common source file compiled with different defines to make maintenance easier src/sequencer.so.c: New common source file for sequencers src/Makefile.am: Fiddling to get three sequencers built from single source 2003-02-04 : src/sequencer16_1677.so.c, src/sequencer32_1676.so.c, src/sequencer64_1675.so.c: Fixed declarations-after-statements bug that broke build on older compilers. 2003-02-02 : doc/blop.rdf: Output port info added 2003-02-01 : src/fmod_1656.so.c, src/pulse_1645.so.c, src/random_1661.so.c, src/sequencer16_1677.so.c, src/sequencer32_1676.so.c, src/sequencer64_1675.so.c, src/sync_square_1678.so.c, src/triangle_1649.so.c: Names changed in source doc/plugins_list.txt: Updated to reflect name changes doc/blop.rdf: Added title, creator and rights information 2003-01-29 : Fixed sequencer plugins - now have option of resetting to fixed value or keeping the last value output when the gate is closed. Added blop.rdf Made --enable-small-wavedata create smaller tables. Still good quality output... 2003-01-26 : Added defaults for some of the plugins 2003-01-25 : configure.in Added option to generate smaller wavetable data [--enable-small-wavedata] src/include/lp4pole_filter.h Made lp4pole tuning independent of sample rate src/include/lut_144log2.h, src/include/lut_tanh.h, src/tuned_lp4pole_1679.so.c Removed this filter - it's actually worse tuning wise than the regular one! 2003-01-24 : Slight performance increase for lp4pole filter by storing state in a struct. src/include/lp4pole_filter.h, src/lp4pole_filter.c Contains code to setup and run filter instance src/lp4pole_1671.so.c Plugin instance data removed - now in above filter code. Calls added to run filter using new code. 2003-01-23 : Improved performance of oscillators (16-89% faster!) src/include/interpolate.h Moved wavetable stuff to src/include/wavedata.h src/include/wavedata.h, src/wavedata.c Extra member data to hold playback state of oscillator. src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c Removed instance data, now held in wavedata instance. Simplified running of oscillator. src/Makefile.am Some minor dependency changes. 2003-01-15 : Argh! Just about to release 0.2.6, and I find nasty bugs, and slowness... Restored original (0.2.5) low pass filter, and created new pair of plugins for the tuned one, as it is much more cpu-intensive (about 4x!) 2002-12-23 : Some further modifications to wavetable business for the oscillators. With the exception of the (very short) one for phase wrapping, all code runs without any branches. src/include/wavedata.h, src/include/interpolate.h, src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c, src/wavedata.c: Reworked code to remove branches. src/include/wdatutil.h, src/wavedata.c, src/wavegen.c, src/wdatutil.c Removed lowest_harmonic things - not needed. 2002-12-19 : Major changes to the oscillators' wavetable playback as I clearly hadn't thought it through - the cross-fade of extra harmonics was causing discontinuities due to the gibbs compensation not matching. This has now been fixed, and the output is much improved. src/include/wavedata.h, src/include/wdatutil.h, src/wavedata.h, src/wavegen.c, src/wdatutil.c: Changes to wavetable pair data to allow for differing gibbs compensation. Some other minor bug fixes. src/include/interpolate.h: Changes to getSamples to cross fade pairs of tables instead of simply fading in extra harmonics. Also removed some branching from the table lookup. src/pulse_1645.so.c, src/sawtooth_1641.so.c, src/square_1643.so.c, src/triangle_1649.so.c: Removed some branching from code. 2002-12-17 : Further work on lowpass filter to eliminate some instabilities (runaway values resulting in noise/NaN). src/include/l2table.h: renamed to lut_144log2.h src/include/lut_tanh.h: added src/Makefile.am: modified dependencies src/lp4pole.so.c: tuned and smooth clipped Dist rule: make dist was keeping the CVS directory under src/include in the dist. Now fixed: src/include/Makefile.am: Added and specified headers etc. src/Makefile.am: Adjusted to make include a subdir configure.in: Added src/include/Makefile create 2002-12-10 : Tuned lowpass filter Added log 2 based table lookup src/include/l2table.h src/Makefile.am src/lp4pole_1671.so.c 2002-11-24 : Added analogue sequencer and sync oscillator Modified wavegen to allow note skip (allows smaller wavedata - e.g. to fit in cpu cache) Some minor bugfixes and updates 2002-11-09 : configure.in: Removed -march flags from CFLAGS, as was causing problems on some architectures 2002-11-02 : (After a looooooonnnnnnggg period of inactivity) I added a branch plugin. Woohoo... 2002-09-24 : configure.in: Added check for getopts 2002-08-12 : Changed plugin names to show port types. Much that I am loathe to duplicate information, most modular synths don't show other info, and rely on names being unique 2002-07-15 : Fixed NaN output bug in lowpass filter - clamped resonance to [0.0, 4.0]. I know it's in the range hints, but plugging an LFO into it (for example) *can* cause the bounds to be exceeded. 2002-07-14 : Added low pass resonant filter plugin 2002-07-10 : blop_ prefix removed from plugins - this can be done at configure time using --program-prefix=FOO 2002-07-10 : Okay. Some compromises made so automake will be nice to me... src/wavegen.c, src/wdatutil.c: Moved to parent src/wavegen: Removed Makefile.am, configure.in, src/Makefile.am: Some finagling to differentiate a plugin build from a regular program build. More fudgin to get 'make dist' to work. 2002-07-09 : Argh - except the result of make dist just plain does not work (seems to ignore building of data headers first.) 2002-07-08 : Tested all new plugins and new build system - all A-OK! 2002-07-06 : Complete revision of directory structure: doc/Makefile.am doc/about.txt doc/plugins_list.txt src/include/common.h src/include/interpolate.h src/include/wavedata.h src/include/wdatutil.h src/wavegen/Makefile.am src/wavegen/wavegen.c src/wavegen/wdatutil.c src/Makefile.am src/blop_adsr.so.c src/blop_amp.so.c src/blop_fmod.so.c src/blop_interpolator.so.c src/blop_product.so.c src/blop_pulse.so.c src/blop_random.so.c src/blop_sawtooth.so.c src/blop_square.so.c src/blop_sum.so.c src/blop_triangle.so.c src/wavedata.c AUTHORS COPYING ChangeLog INSTALL Makefile.am NEWS README THANKS TODO config.h.in configure.in stamp-h.in ------------------------------------------------------------------------------- 2002-06-19 : adsr.so.c: New files - an adsr envelope generator and a control-to-audio interpolator. 2002-06-18 : random.so.c: New file - generates a random wave of varying smoothness - sorta like random noise thru a filter. 2002-06-17 : amp.so.c, fmod.so.c, lmod.so.c: New files added - these are additional plugins to complement the oscillators. They are not released yet. Also planning to add an ADSR, a Control-to-Audio interpolator and a Randomizer (sort of sample-and-hold, but not). All these scheduled for release 0.3. 2002-06-16 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Modified my email address, replaced '@' with '[at]', cos I've been getting spam! (ARGH!) 2002-06-14 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Modified to only advance the phase (position) for frequencies below Nyquist (this is to prevent the phase from drifting too high - this can happen for very large frequencies, and causes instability) 2002-06-09 : Makefile: Added GIBBS variable to allow setting of Gibbs compnesation argument to wavegen. include/wdatutil.h, wavegen.c, wdatutil.h: Improved Gibbs compensation - can now set degree of compensation, from none to maximum. Maximum will now almost completely eliminate overshoot, and the resulting waveform is pretty much normalised to [-1,1] as a result! 2002-06-08 : wdatutil.h: Gibbs compensated parabola generation was skipping the even harmonics - fixed. Makefile: Modified wavedata header rules to use prefix, following addition of prefix option to wavegen. wavedata.h: Moved the extraction of wavedata header data to top of function for clarity. wavegen.c, wdatutil.c: Some other changes to the format of the wavedata header file output by wavegen - now allows specification of unique prefix for declarations - this is so more than one such header may be included in code. include/wdatutil.h, wavegen.c, wdatutil.c: Alterations to fix wave generation for square and parabola waves - base and extra harmonics now generated with respect to actual harmonic content (both square and parabola only contain odd harmonics). Previously, some of the extra samples were ending up zeroed because they were just a single even harmonic. 2002-06-07 : README: A bit more text about bandlimiting methods. include/interpolate.h, include/wavedata.h, wavedata.c: Revised to work with the new wavedata file contents. include/wdatutil.h, wavegen.c, wdatutil.c: Finalised changes to wavedata file format and content. Now each wavetable has two sets of data as before, but one set contains harmonics that would be played at all pitches in range, and the other contains the 'extra' higher harmonics that are faded in as pitch decreases. 2002-06-06 : include/wdatutil.h, wavegen.c, wdatutil.c: Change to the format of the intermediate data before it is written to the header file. More structured representation, instead of lots of huge allocated memory (which would not necessarily be contiguous, and if not, the code would fail). Work on new method for cross fading wavetables of differing harmonics. 2002-06-05 : include/interpolate.h: Further investigation into the abberation in the triangle wave. The likely cause was the two parabola waves were not being queried in sync - resulting in the wrong sample being retrieved in some cases. 2002-06-04 : include/interpolate.h: The triangle plugin was putting out NaNs for very small slopes (where the output approaches a sawtooth wave) - further investigation revealed that there was an aberration at the cross-over point (where the amplitude crosses zero). Some work on the getSamples function seemed to remove the problem. 2002-06-02 : TODO: Removed notes about optimisation: avltree lookup is only faster because special cases were not being handled - these must stay. Restraints on pulsewidth/slope settings caused quite nasty artifacts, so the double interpolation in pulse and traingle plugins has to stay. include/interpolate.h, wavedata.c, wavegen.c, wdatutil.c: Minor changes and some more comments pulse.so.c: Pulsewidth now clamped to [0.0,1.0] triangle.so.c: Slope clamped to [min, max] (dependent on sample rate) 2002-06-01 : include/interpolate.h, wdatutil.c, wavegen.c, wavedata.c: Modified wavetables to have an extra 3 samples per table - this allows interpolation to be done without too much bounds checking on sample index. A small speed increase results! wdatutil.c: Parabola wave generation was using the wrong scale factor, resulting in the triangle plugin having huge amplitudes compared to the rest. This has been fixed. 2002-05-31 : include/wdatutil.h, wavegen.c, wdatutil.c: More farting about with the format. Now only generates wavetables that will be cross faded upon playback (rather than filling the last one with zeroes) include/wavedata.h, wavedata.c: Some slight changes to add the three 'special case' wavetables that are played at the extreme frequencies include/interpolate.h: Finalised getTable - now it *does* return, and it returns that wavetable to play. Some changes to accommodate the special case wavetables. getSamples now incorporates the new special cases, and the cross fade. But it could do with improvement. getXFadeScale is no more. pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Updated to use new interpolate.h functions. Some declarations added for getSamples (rather than having these variables declared every sample, which consumes a measurable amount of CPU) 2002-05-30 : include/interpolate.h Changed getTable from returning true/false to void - no need for this anymore, as cross fade testing will be done in getSamples. pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Removed table_found check - getTable no longer returns. 2002-05-29 : include/interpolate.h, include/wavedata.h, pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c, wavedata.c: Modified to use new wavetable pairs for cross fading. Most of the crap is now in interpolate.h::getSamples. 2002-05-28 : include/wdatutil.h, wavegen.c, wdatutil.c: Modified to generate wavetable 'pairs' for cross fading between successive wavetables. This will allow sample retrieval for cross-faded wavetables to use only one interpolation op (as opposed to two) 2002-05-26 : TODO Notes about optimisation - namely, too many interpolates! include/interpolate.h, pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c Separated out sample extraction from interpolation code. getSamples get's four samples and returns the interval. INTERPOLATE function (now a #define) actually does the interpolation. 2002-05-24 : include/interpolate.h Experiments with cubic vs. 5th order spline resulted in the cubic spline being the winner (as it's faster, and is a fly's hair's whisker away from the 5th order...) 2002-05-23 : include/avltree.h, avltree.c: Removed these two files following confirmation that new lookup vector works properly. Makefile: Removed avltree dependencies. 2002-05-22 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Implemented new table lookup based on simple vector instead of binary tree. include/wavedata.h, include/wdatutil.h, wavedata.c, wdatutil.c, wavegen.c: Modifications to replace tree lookup with new vector lookup (indexed on max harmonic number) 2002-05-20 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Moved table lookup to separate (inlined) function 2002-05-15 : pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c: Cubic spline interpolation (no, it's a 5th order. Silly old me didn't have a clue...) 2002-05-14 : INSTALL: Minor clarifications. AUTHORS: Added some acknowledgements :) include/wavedata.h, include/wdatutil.h, wavedata.c, wavegen.c, wdatutil.c: Changed wavedata file to pass maximum harmonics instead of min and max frequencies. Wavedata sample rate is now independent of sample rate used in plugins (as it should be). include/avltree.h, include/wavedata.h, include/wdatutil.h, pulse.so.c, sawtooth.so.c, square.so.c, triangle.so.c, wavedata.c, wavegen.c, wdatutil.c: Changed data types from float to LADSPA_Data for consistency Some tidying up. 2002-05-12 : Initial code put together blop-0.2.8/COPYING0000644000175000006270000004311007467545130007205 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.