[med-svn] [clustalo] 02/06: New upstream version 1.2.4
Andreas Tille
tille at debian.org
Wed Dec 21 20:13:33 UTC 2016
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository clustalo.
commit e110e7028455514c9a74e004bb0d9b839cd9d7ac
Author: Andreas Tille <tille at debian.org>
Date: Wed Dec 21 21:02:20 2016 +0100
New upstream version 1.2.4
---
ChangeLog | 6 +
Doxyfile | 2 +-
INSTALL | 118 +--------
configure | 20 +-
configure.ac | 7 +-
depcomp | 531 ++++++++++++++++++++++++++--------------
install-sh | 392 ++++++++++++++---------------
missing | 461 ++++++++++++----------------------
src/clustal-omega-config.h | 6 +-
src/clustal/mbed.c | 8 +-
src/hhalign/hhalignment-C.h | 146 +++++------
src/hhalign/hhfullalignment-C.h | 6 +-
src/hhalign/hhhalfalignment-C.h | 10 +-
src/hhalign/hhhit-C.h | 106 ++++----
src/hhalign/hhhitlist-C.h | 162 ++++++------
src/hhalign/hhhmm-C.h | 58 ++---
src/hhalign/hhmatrices-C.h | 24 +-
src/hhalign/hhutil-C.h | 6 +-
src/hhalign/util-C.h | 12 +-
src/squid/clustal.c | 6 +-
src/squid/hsregex.c | 4 +-
src/squid/msf.c | 8 +-
22 files changed, 1004 insertions(+), 1095 deletions(-)
diff --git a/ChangeLog b/ChangeLog
old mode 100755
new mode 100644
index ed8e870..bc6e25d
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-12-20 Release 1.2.4 (AndreaGiacomo, r317)
+
+ - made code gcc-6 compliant
+
+ (no new command-line flags)
+
2016-07-20 Release 1.2.3 (AndreaGiacomo, r313)
- fixed consensus line in ClustalW format, 'H' in NHQK not recognised as strong (bug in Squid)
diff --git a/Doxyfile b/Doxyfile
index cde71e7..817ed5c 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -31,7 +31,7 @@ PROJECT_NAME = "Clustal Omega"
# This could be handy for archiving the generated documentation or
# if some version control system is used.
-PROJECT_NUMBER = 1.2.3
+PROJECT_NUMBER = 1.2.4
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
diff --git a/INSTALL b/INSTALL
index b7c0645..2099840 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,43 +1,8 @@
-The impatient can try:
-
-$ ./configure
-$ make
-$ make install
-
-
-Clustal-Omega needs argtable2 (http://argtable.sourceforge.net/). If
-argtable2 is installed in a non-standard directory you might have to
-point configure to its installation directory. For example, if you are
-on a Mac and have argtable installed via MacPorts then you should use
-the following command line:
-
-$ ./configure CFLAGS='-I/opt/local/include' LDFLAGS='-L/opt/local/lib'
-
-ClustalO will automatically support multi-threading if your compiler
-supports OpenMP. For some reason automake's OpenMP detection for
-Apple's gcc is broken. You can force OpenMP detection by calling configure
-like so:
-
-$ ./configure OPENMP_CFLAGS='-fopenmp' CFLAGS='-DHAVE_OPENMP'
-
-You could use a non-Apple gcc installed via MacPorts, adding
-
-CC=/opt/local/bin/gcc-mp-4.5
-
-to the configure call (you will have to change the exact string to match
-your gcc version).
-
-See below for generic installation instructions:
-
-----------------------------------------------------------------------
-
-
-
Installation Instructions
*************************
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
+Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -47,8 +12,8 @@ without warranty of any kind.
Basic Installation
==================
- Briefly, the shell commands `./configure; make; make install' should
-configure, build, and install this package. The following
+ Briefly, the shell command `./configure && make && make install'
+should configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
@@ -261,6 +226,11 @@ order to use an ANSI C compiler:
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
@@ -282,70 +252,6 @@ not `/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
-
- On Windows do
-
- 1. Preparation
-
- 1.1. Install free MinGW64 on Windows 7. Download
- mingw-w64-bin_x86_64-mingw_20111101_sezero.zip from
- http://sourceforge.net/projects/mingw-w64/files/Toolchains
- targetting Win64/Personal Builds/sezero_4.5_20111101/, extract
- it, move mingw64 folder to C:\ and rename it to mingw. MinGW64
- provides tools to develop 64-bit Windows applications using
- gcc and g++. With MinGW64, some software developed for Linux
- platform can be built on Windows.
-
- 1.2. There is a file named pthreads-w64.zip in C:\mingw
- folder. Extract it under C:\mingw folder.
-
- 1.3. Download MSYS-1.0.11.exe from
- http://sourceforge.net/projects/mingw/files/MSYS/Base/msys-core/msys-1.0.11/
- and install it.
-
- 1.4. Download Clustal Omega source from
- http://www.clustal.org/omega/clustal-omega-x.x.x.tar.gz (where
- x.x.x is the current version)
-
- 1.5. Copy downloaded file to MSYS. If you installed MSYS in
- C:\msys and your account is Administrator, copy it to
- C:\msys\1.0\home\Administrator. You can do it using Windows
- explorer.
-
- 1.6. Download argtable2-13.tar.gz from
- http://argtable.sourceforge.net/ and copy it to MSYS. This is
- required by Clustal Omega.
-
- 2. Configuration and Build process
-
- 2.1. Launch MSYS and extract argtable2 source as tar xfz
- argtable2-13.tar.gz.
-
- 2.2. Extract Clustal Omega source as tar xfz
- clustal-omega-1.2.0.tar.gz.
-
- 2.3. cd argtable2-13; ./configure; make; make install
-
- 2.4. cd ~/clustal-omega-1.2.0
-
- 2.5. ./configure CFLAGS='-I/usr/local/include
- -DSRE_STRICT_ANSI' LDFLAGS='-L/usr/local/lib'
-
- 2.6. make; make install
-
- 2.7. You can find clustalo.exe in /usr/local/bin folder which
- is C:\msys\1.0\local/bin.
-
- 2.8. Following DLLs are necessary to run clustalo.exe. Put
- them in the same folder where clustalo.exe
- exists. C:\mingw\bin\libcc_sjlj-1.dll,
- C:\mingw\bin\libgomp-1.dll, C:\mingw\bin\libstdc++-6.dll,
- C:\mingw\bin\pthreadGC2-w64.dll
-
- (lifted from
- http://www.blaststation.com/freestuff/en/howtoBuildx64ClustalO.php,
- as of 2014-10-14)
-
Specifying the System Type
==========================
@@ -403,9 +309,10 @@ causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
-an Autoconf bug. Until the bug is fixed you can use this workaround:
+an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
@@ -461,4 +368,3 @@ operates.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.
-
diff --git a/configure b/configure
index 3090f0a..6a3a706 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for Clustal Omega 1.2.3.
+# Generated by GNU Autoconf 2.63 for Clustal Omega 1.2.4.
#
# Report bugs to <clustalw at ucd.ie>.
#
@@ -745,8 +745,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='Clustal Omega'
PACKAGE_TARNAME='clustal-omega'
-PACKAGE_VERSION='1.2.3'
-PACKAGE_STRING='Clustal Omega 1.2.3'
+PACKAGE_VERSION='1.2.4'
+PACKAGE_STRING='Clustal Omega 1.2.4'
PACKAGE_BUGREPORT='clustalw at ucd.ie'
# Factoring default headers for most tests.
@@ -1483,7 +1483,7 @@ 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 Clustal Omega 1.2.3 to adapt to many kinds of systems.
+\`configure' configures Clustal Omega 1.2.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1553,7 +1553,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Clustal Omega 1.2.3:";;
+ short | recursive ) echo "Configuration of Clustal Omega 1.2.4:";;
esac
cat <<\_ACEOF
@@ -1659,7 +1659,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Clustal Omega configure 1.2.3
+Clustal Omega configure 1.2.4
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1673,7 +1673,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Clustal Omega $as_me 1.2.3, which was
+It was created by Clustal Omega $as_me 1.2.4, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -2492,7 +2492,7 @@ fi
# Define the identity of the package.
PACKAGE='clustal-omega'
- VERSION='1.2.3'
+ VERSION='1.2.4'
cat >>confdefs.h <<_ACEOF
@@ -21790,7 +21790,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Clustal Omega $as_me 1.2.3, which was
+This file was extended by Clustal Omega $as_me 1.2.4, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -21853,7 +21853,7 @@ Report bugs to <bug-autoconf at gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-Clustal Omega config.status 1.2.3
+Clustal Omega config.status 1.2.4
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.ac b/configure.ac
index d827cf8..8e59f2b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
# configure.ac for Clustal Omega
#
-# RCS $Id: configure.ac 313 2016-07-20 13:30:29Z fabian $
+# RCS $Id: configure.ac 317 2016-12-16 17:44:50Z fabian $
# release
@@ -32,7 +32,10 @@
#AC_INIT([Clustal Omega], [1.2.2], [clustalw at ucd.ie])
#PACKAGE_CODENAME="AndreaGiacomo"
# r313
-AC_INIT([Clustal Omega], [1.2.3], [clustalw at ucd.ie])
+#AC_INIT([Clustal Omega], [1.2.3], [clustalw at ucd.ie])
+#PACKAGE_CODENAME="AndreaGiacomo"
+# r317
+AC_INIT([Clustal Omega], [1.2.4], [clustalw at ucd.ie])
PACKAGE_CODENAME="AndreaGiacomo"
# The AC_INIT macro can take any source file as an argument. It just
diff --git a/depcomp b/depcomp
index df8eea7..fc98710 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,9 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2013-05-30.07; # UTC
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999-2014 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
@@ -28,9 +27,9 @@ scriptversion=2009-04-28.21; # UTC
case $1 in
'')
- echo "$0: No command. Try \`$0 --help' for more information." 1>&2
- exit 1;
- ;;
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -40,11 +39,11 @@ as side-effects.
Environment variables:
depmode Dependency tracking mode.
- source Source file read by `PROGRAMS ARGS'.
- object Object file output by `PROGRAMS ARGS'.
+ source Source file read by 'PROGRAMS ARGS'.
+ object Object file output by 'PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
- tmpdepfile Temporary file to use when outputing dependencies.
+ tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake at gnu.org>.
@@ -57,6 +56,66 @@ EOF
;;
esac
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
+# A tabulation character.
+tab=' '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
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
@@ -69,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
# 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
@@ -80,18 +142,32 @@ if test "$depmode" = hp; then
fi
if test "$depmode" = dashXmstdout; then
- # This is just like dashmstdout with a different argument.
- dashmflag=-xM
- depmode=dashmstdout
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
- # This is just like msvisualcpp but w/o cygpath translation.
- # Just convert the backslash-escaped backslashes to single forward
- # slashes to satisfy depend.m4
- cygpath_u="sed s,\\\\\\\\,/,g"
- depmode=msvisualcpp
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
fi
case "$depmode" in
@@ -114,8 +190,7 @@ gcc3)
done
"$@"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
@@ -123,13 +198,17 @@ gcc3)
;;
gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
## 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).
+## -MM, not -M (despite what the docs say). Also, it might not be
+## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
@@ -137,31 +216,31 @@ gcc)
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
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.
+ # 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.
+## 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
+## 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.
+## well. hp depmode also adds that space, but also prefixes the VPATH
+## to the object. Take care to not repeat it in the output.
## 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"
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -179,8 +258,7 @@ sgi)
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
@@ -188,43 +266,41 @@ sgi)
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
+ # 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"
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$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"
+ tr ' ' "$nl" < "$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"
+ make_dummy_depfile
fi
rm -f "$tmpdepfile"
;;
+xlc)
+ # 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
+ ;;
+
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
- # current directory. Also, the AIX compiler puts `$object:' at the
+ # current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
@@ -237,9 +313,7 @@ aix)
"$@" -M
fi
stat=$?
-
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
@@ -248,44 +322,100 @@ aix)
do
test -f "$tmpdepfile" && break
done
- 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,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a tab and a space in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$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"
+ aix_post_process_depfile
+ ;;
+
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
fi
+ rm -f "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
-icc)
- # Intel's C compiler understands `-MD -MF file'. However on
- # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
- # ICC 7.0 will fill foo.d with something like
- # foo.o: sub/foo.c
- # foo.o: sub/foo.h
- # which is wrong. We want:
- # sub/foo.o: sub/foo.c
- # sub/foo.o: sub/foo.h
- # sub/foo.c:
- # sub/foo.h:
- # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file. A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+ # Portland's C compiler understands '-MD'.
+ # Will always output deps to 'file.d' where file is the root name of the
+ # source file under compilation, even if file resides in a subdirectory.
+ # The object file name does not affect the name of the '.d' file.
+ # pgcc 10.2 will output
# foo.o: sub/foo.c sub/foo.h
- # and will wrap long lines using \ :
+ # and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
+ set_dir_from "$object"
+ # Use the source, not the object, to determine the base name, since
+ # that's sadly what pgcc will do too.
+ set_base_from "$source"
+ tmpdepfile=$base.d
+
+ # For projects that build the same source file twice into different object
+ # files, the pgcc approach of using the *source* file root name can cause
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
+ # the same $tmpdepfile.
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
+ numtries=100
+ i=$numtries
+ while test $i -gt 0; do
+ # mkdir is a portable test-and-set.
+ if mkdir "$lockdir" 2>/dev/null; then
+ # This process acquired the lock.
+ "$@" -MD
+ stat=$?
+ # Release the lock.
+ rmdir "$lockdir"
+ break
+ else
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
+ sleep 1
+ i=`expr $i - 1`
+ done
+ fi
+ i=`expr $i - 1`
+ done
+ trap - 1 2 13 15
+ if test $i -le 0; then
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
+ echo "$0: check lockdir '$lockdir'" >&2
+ exit 1
+ fi
- "$@" -MD -MF "$tmpdepfile"
- stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
@@ -297,8 +427,8 @@ icc)
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
- sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
- sed -e 's/$/ :/' >> "$depfile"
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -309,9 +439,8 @@ hp2)
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ set_dir_from "$object"
+ set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
@@ -322,8 +451,7 @@ hp2)
"$@" +Maked
fi
stat=$?
- if test $stat -eq 0; then :
- else
+ if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
@@ -333,77 +461,107 @@ hp2)
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
- # Add `dependent.h:' lines.
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add 'dependent.h:' lines.
sed -ne '2,${
- s/^ *//
- s/ \\*$//
- s/$/:/
- p
- }' "$tmpdepfile" >> "$depfile"
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
else
- echo "#dummy" > "$depfile"
+ make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
- # The Tru64 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.
- dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
- test "x$dir" = "x$object" && dir=
- base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
- if test "$libtool" = yes; then
- # With Tru64 cc, shared objects can also be used to make a
- # static library. This mechanism is used in libtool 1.4 series to
- # handle both shared and static libraries in a single compilation.
- # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
- #
- # With libtool 1.5 this exception was removed, and libtool now
- # generates 2 separate objects for the 2 libraries. These two
- # compilations output dependencies in $dir.libs/$base.o.d and
- # in $dir$base.o.d. We have to check for both files, because
- # one of the two compilations can be disabled. We should prefer
- # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
- # automatically cleaned when .libs/ is deleted, while ignoring
- # the former would cause a distcleancheck panic.
- tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
- tmpdepfile2=$dir$base.o.d # libtool 1.5
- tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
- tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
- "$@" -Wc,-MD
- else
- tmpdepfile1=$dir$base.o.d
- tmpdepfile2=$dir$base.d
- tmpdepfile3=$dir$base.d
- tmpdepfile4=$dir$base.d
- "$@" -MD
- fi
-
- stat=$?
- if test $stat -eq 0; then :
- else
- rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- exit $stat
- fi
-
- for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
- do
- test -f "$tmpdepfile" && break
- done
- if test -f "$tmpdepfile"; then
- sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
- # That's a tab and a space in the [].
- sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
- else
- echo "#dummy" > "$depfile"
- fi
- rm -f "$tmpdepfile"
- ;;
+ # The Tru64 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.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
+
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/'"$tab"'/
+ G
+ p
+}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # 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
+ ;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
@@ -422,7 +580,7 @@ dashmstdout)
shift
fi
- # Remove `-o $object'.
+ # Remove '-o $object'.
IFS=" "
for arg
do
@@ -442,18 +600,18 @@ dashmstdout)
done
test -z "$dashmflag" && dashmflag=-M
- # Require at least two characters before searching for `:'
+ # Require at least two characters before searching for ':'
# in the target name. This is to cope with DOS-style filenames:
- # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
- sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
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"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
@@ -503,12 +661,15 @@ makedepend)
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
- cat < "$tmpdepfile" > "$depfile"
- sed '1,2d' "$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"
+ # makedepend may prepend the VPATH from the source file name to the object.
+ # No need to regex-escape $object, excess matching of '.' is harmless.
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
@@ -525,7 +686,7 @@ cpp)
shift
fi
- # Remove `-o $object'.
+ # Remove '-o $object'.
IFS=" "
for arg
do
@@ -544,10 +705,10 @@ cpp)
esac
done
- "$@" -E |
- sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
- sed '$ s: \\$::' > "$tmpdepfile"
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
@@ -579,23 +740,23 @@ msvisualcpp)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
- set fnord "$@"
- shift
- shift
- ;;
+ set fnord "$@"
+ shift
+ shift
+ ;;
*)
- set fnord "$@" "$arg"
- shift
- shift
- ;;
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
- sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
- echo " " >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+ echo "$tab" >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
diff --git a/install-sh b/install-sh
index 6781b98..59990a1 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2014-09-12.12; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,25 +35,21 @@ scriptversion=2009-04-28.21; # UTC
# FSF changes to this file are in the public domain.
#
# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
+tab=' '
nl='
'
-IFS=" "" $nl"
+IFS=" $tab$nl"
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
-# Don't use :- since 4.3BSD and earlier shells don't like it.
doit=${DOITPROG-}
-if test -z "$doit"; then
- doit_exec=exec
-else
- doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
# Put in absolute file names if you don't have them in your path;
# or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
rmprog=${RMPROG-rm}
stripprog=${STRIPPROG-strip}
-posix_glob='?'
-initialize_posix_glob='
- test "$posix_glob" != "?" || {
- if (set -f) 2>/dev/null; then
- posix_glob=
- else
- posix_glob=:
- fi
- }
-'
-
posix_mkdir=
# Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
dst_arg=
copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
usage="\
Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,42 +122,57 @@ while test $# -ne 0; do
-d) dir_arg=true;;
-g) chgrpcmd="$chgrpprog $2"
- shift;;
+ shift;;
--help) echo "$usage"; exit $?;;
-m) mode=$2
- case $mode in
- *' '* | *' '* | *'
-'* | *'*'* | *'?'* | *'['*)
- echo "$0: invalid mode: $mode" >&2
- exit 1;;
- esac
- shift;;
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
-o) chowncmd="$chownprog $2"
- shift;;
+ shift;;
-s) stripcmd=$stripprog;;
- -t) dst_arg=$2
- shift;;
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
- -T) no_target_directory=true;;
+ -T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
- --) shift
- break;;
+ --) shift
+ break;;
- -*) echo "$0: invalid option: $1" >&2
- exit 1;;
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
*) break;;
esac
shift
done
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
+
if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
# When -d is used, all remaining arguments are directories to create.
# When -t is used, the destination is already specified.
@@ -186,6 +186,10 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
fi
shift # arg
dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
done
fi
@@ -194,13 +198,26 @@ if test $# -eq 0; then
echo "$0: no input file specified." >&2
exit 1
fi
- # It's OK to call `install-sh -d' without argument.
+ # It's OK to call 'install-sh -d' without argument.
# This can happen when creating conditional directories.
exit 0
fi
if test -z "$dir_arg"; then
- trap '(exit $?); exit' 1 2 13 15
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
+
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
# Set umask so as not to create temps with too-generous modes.
# However, 'strip' requires both read and write access to temps.
@@ -211,16 +228,16 @@ if test -z "$dir_arg"; then
*[0-7])
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw='% 200'
+ u_plus_rw='% 200'
fi
cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
*)
if test -z "$stripcmd"; then
- u_plus_rw=
+ u_plus_rw=
else
- u_plus_rw=,u+rw
+ u_plus_rw=,u+rw
fi
cp_umask=$mode$u_plus_rw;;
esac
@@ -228,9 +245,9 @@ fi
for src
do
- # Protect names starting with `-'.
+ # Protect names problematic for 'test' and other utilities.
case $src in
- -*) src=./$src;;
+ -* | [=\(\)!]) src=./$src;;
esac
if test -n "$dir_arg"; then
@@ -252,51 +269,20 @@ do
echo "$0: no destination specified." >&2
exit 1
fi
-
dst=$dst_arg
- # Protect names starting with `-'.
- case $dst in
- -*) dst=./$dst;;
- esac
# If destination is a directory, append the input filename; won't work
# if double slashes aren't ignored.
if test -d "$dst"; then
- if test -n "$no_target_directory"; then
- echo "$0: $dst_arg: Is a directory" >&2
- exit 1
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
fi
dstdir=$dst
dst=$dstdir/`basename "$src"`
dstdir_status=0
else
- # Prefer dirname, but fall back on a substitute if dirname fails.
- dstdir=`
- (dirname "$dst") 2>/dev/null ||
- expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$dst" : 'X\(//\)[^/]' \| \
- X"$dst" : 'X\(//\)$' \| \
- X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
- echo X"$dst" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- s//\1/
- q
- }
- /^X\(\/\/\)[^/].*/{
- s//\1/
- q
- }
- /^X\(\/\/\)$/{
- s//\1/
- q
- }
- /^X\(\/\).*/{
- s//\1/
- q
- }
- s/.*/./; q'
- `
-
+ dstdir=`dirname "$dst"`
test -d "$dstdir"
dstdir_status=$?
fi
@@ -307,74 +293,81 @@ do
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
- # With -d, create the new directory with the user-specified mode.
- # Otherwise, rely on $mkdir_umask.
- if test -n "$dir_arg"; then
- mkdir_mode=-m$mode
- else
- mkdir_mode=
- fi
-
- posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
- trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- if (umask $mkdir_umask &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writeable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- ls_ld_tmpdir=`ls -ld "$tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/d" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ # $RANDOM is not portable (e.g. dash); use it when possible to
+ # lower collision chance
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ # As "mkdir -p" follows symlinks and we work in /tmp possibly; so
+ # create the $tmpdir first (and fail if unsuccessful) to make sure
+ # that nobody tries to guess the $tmpdir name.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
esac
if
$posix_mkdir && (
- umask $mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
)
then :
else
@@ -384,53 +377,51 @@ do
# directory the slow way, step by step, checking for races as we go.
case $dstdir in
- /*) prefix='/';;
- -*) prefix='./';;
- *) prefix='';;
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
esac
- eval "$initialize_posix_glob"
-
oIFS=$IFS
IFS=/
- $posix_glob set -f
+ set -f
set fnord $dstdir
shift
- $posix_glob set +f
+ set +f
IFS=$oIFS
prefixes=
for d
do
- test -z "$d" && continue
-
- prefix=$prefix$d
- if test -d "$prefix"; then
- prefixes=
- else
- if $posix_mkdir; then
- (umask=$mkdir_umask &&
- $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
- # Don't fail if two instances are running concurrently.
- test -d "$prefix" || exit 1
- else
- case $prefix in
- *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
- *) qprefix=$prefix;;
- esac
- prefixes="$prefixes '$qprefix'"
- fi
- fi
- prefix=$prefix/
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
done
if test -n "$prefixes"; then
- # Don't fail if two instances are running concurrently.
- (umask $mkdir_umask &&
- eval "\$doit_exec \$mkdirprog $prefixes") ||
- test -d "$dstdir" || exit 1
- obsolete_mkdir_used=true
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
fi
fi
fi
@@ -465,15 +456,12 @@ do
# If -C, don't bother to copy if it wouldn't change the file.
if $copy_on_change &&
- old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
- new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
-
- eval "$initialize_posix_glob" &&
- $posix_glob set -f &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
set X $old && old=:$2:$4:$5:$6 &&
set X $new && new=:$2:$4:$5:$6 &&
- $posix_glob set +f &&
-
+ set +f &&
test "$old" = "$new" &&
$cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
then
@@ -486,24 +474,24 @@ do
# to itself, or perhaps because mv is so ancient that it does not
# support -f.
{
- # Now remove or move aside any old file at destination location.
- # We try this two ways since rm can't unlink itself on some
- # systems and the destination file might be busy for other
- # reasons. In this case, the final cleanup might fail but the new
- # file should still install successfully.
- {
- test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
- { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
- } ||
- { echo "$0: cannot unlink or rename $dst" >&2
- (exit 1); exit 1
- }
- } &&
-
- # Now rename the file to the real destination.
- $doit $mvcmd "$dsttmp" "$dst"
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
}
fi || exit 1
diff --git a/missing b/missing
index 28055d2..f62bbae 100755
--- a/missing
+++ b/missing
@@ -1,11 +1,10 @@
#! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
-scriptversion=2009-04-28.21; # UTC
+scriptversion=2013-10-28.13; # UTC
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 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
@@ -26,69 +25,40 @@ scriptversion=2009-04-28.21; # UTC
# 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"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
fi
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# 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
-msg="missing on your system"
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
-case $1 in
---run)
- # Try to run requested program, and just exit if it succeeds.
- run=
- shift
- "$@" && exit 0
- # Exit code 63 means version mismatch. This often happens
- # when the user try to use an ancient version of a tool on
- # a file that requires a minimum version. In this case we
- # we should proceed has if the program had been absent, or
- # if --run hadn't been passed.
- if test $? = 63; then
- run=:
- msg="probably too old"
- fi
- ;;
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
-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.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
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'
- autom4te touch the output file, or create a stub one
- 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]
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
Send bug reports to <bug-automake at gnu.org>."
exit $?
@@ -100,272 +70,141 @@ Send bug reports to <bug-automake at gnu.org>."
;;
-*)
- echo 1>&2 "$0: Unknown \`$1' option"
- echo 1>&2 "Try \`$0 --help' for more information"
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
exit 1
;;
esac
-# normalize program name to check for.
-program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
-# Now exit if we have it, but it failed. Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program). This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
- lex*|yacc*)
- # Not GNU programs, they don't have --version.
- ;;
-
- tar*)
- if test -n "$run"; then
- echo 1>&2 "ERROR: \`tar' requires --run"
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- exit 1
- fi
- ;;
-
- *)
- if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
- # We have it, but it failed.
- exit 1
- elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
- # Could not run --version or --help. This is probably someone
- # running `$TOOL --version' or `$TOOL --help' to check whether
- # $TOOL exists and not knowing $TOOL uses missing.
- exit 1
- fi
- ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
- aclocal*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. 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 $msg. 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 $msg. 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 $msg. 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
- ;;
-
- autom4te*)
- echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
- You might have modified some files without having the
- proper tools for further handling them.
- You can get \`$1' as part of \`Autoconf' from any GNU
- archive site."
-
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo "#! /bin/sh"
- echo "# Created by GNU Automake missing as a replacement of"
- echo "# $ $@"
- echo "exit 0"
- chmod +x $file
- exit 1
- fi
- ;;
-
- bison*|yacc*)
- echo 1>&2 "\
-WARNING: \`$1' $msg. 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 test $# -ne 1; then
- eval LASTARG="\${$#}"
- case $LASTARG in
- *.y)
- SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.c
- fi
- SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" y.tab.h
- fi
- ;;
- esac
- fi
- if test ! -f y.tab.h; then
- echo >y.tab.h
- fi
- if test ! -f y.tab.c; then
- echo 'main() { return 0; }' >y.tab.c
- fi
- ;;
-
- lex*|flex*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. 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 test $# -ne 1; then
- eval LASTARG="\${$#}"
- case $LASTARG in
- *.l)
- SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
- if test -f "$SRCFILE"; then
- cp "$SRCFILE" lex.yy.c
- fi
- ;;
- esac
- fi
- if test ! -f lex.yy.c; then
- echo 'main() { return 0; }' >lex.yy.c
- fi
- ;;
-
- help2man*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. 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 "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -f "$file"; then
- touch $file
- else
- test -z "$file" || exec >$file
- echo ".ab help2man is required to generate this page"
- exit $?
- fi
- ;;
-
- makeinfo*)
- echo 1>&2 "\
-WARNING: \`$1' is $msg. 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."
- # The file to touch is that specified with -o ...
- file=`echo "$*" | sed -n "$sed_output"`
- test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
- if test -z "$file"; then
- # ... or it is the one specified with @setfilename ...
- infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
- file=`sed -n '
- /^@setfilename/{
- s/.* \([^ ]*\) *$/\1/
- p
- q
- }' $infile`
- # ... or it is derived from the source name (dir/f.texi becomes f.info)
- test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
- fi
- # If the file does not exist, the user really needs makeinfo;
- # let's fail without touching anything.
- test -f $file || exit 1
- touch $file
- ;;
-
- tar*)
- shift
-
- # 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 "$@" && exit 0
- fi
- if (gtar --version > /dev/null 2>&1); then
- gtar "$@" && exit 0
- fi
- firstarg="$1"
- if shift; then
- case $firstarg in
- *o*)
- firstarg=`echo "$firstarg" | sed s/o//`
- tar "$firstarg" "$@" && exit 0
- ;;
- esac
- case $firstarg in
- *h*)
- firstarg=`echo "$firstarg" | sed s/h//`
- tar "$firstarg" "$@" && 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 is $msg.
- 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 prerequisites 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
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
-exit 0
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/src/clustal-omega-config.h b/src/clustal-omega-config.h
index edcbc4b..68b7313 100644
--- a/src/clustal-omega-config.h
+++ b/src/clustal-omega-config.h
@@ -228,7 +228,7 @@
/* Define to the full name and version of this package. */
#ifndef CLUSTAL_OMEGA_PACKAGE_STRING
-#define CLUSTAL_OMEGA_PACKAGE_STRING "Clustal Omega 1.2.3"
+#define CLUSTAL_OMEGA_PACKAGE_STRING "Clustal Omega 1.2.4"
#endif
/* Define to the one symbol short name of this package. */
@@ -238,7 +238,7 @@
/* Define to the version of this package. */
#ifndef CLUSTAL_OMEGA_PACKAGE_VERSION
-#define CLUSTAL_OMEGA_PACKAGE_VERSION "1.2.3"
+#define CLUSTAL_OMEGA_PACKAGE_VERSION "1.2.4"
#endif
/* The size of `fpos_t', as computed by sizeof. */
@@ -301,7 +301,7 @@
/* Version number of package */
#ifndef CLUSTAL_OMEGA_VERSION
-#define CLUSTAL_OMEGA_VERSION "1.2.3"
+#define CLUSTAL_OMEGA_VERSION "1.2.4"
#endif
/* Define if using the dmalloc debugging malloc package */
diff --git a/src/clustal/mbed.c b/src/clustal/mbed.c
index 33fd2de..2282aa6 100644
--- a/src/clustal/mbed.c
+++ b/src/clustal/mbed.c
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: mbed.c 300 2016-06-13 13:29:58Z fabian $
+ * RCS $Id: mbed.c 316 2016-12-16 16:14:39Z fabian $
*
*
* Reimplementation from scratch of mBed (Blackshields et al., 2010;
@@ -88,8 +88,10 @@ static const int RESTARTS_PER_SPLIT = 10;
#define USE_KMEANS_LLOYDS 0
-#ifndef HAVE_LOG2
-#define log2(x) (log(x) / 0.69314718055994530942)
+//#ifndef HAVE_LOG2
+#ifndef CLUSTAL_OMEGA_HAVE_LOG2
+//#define log2(x) (log(x) / 0.69314718055994530942)
+#define log2(x) ( x<=0 ? (float)(-100000) : 1.442695041*log(x) )
#endif
#define NUMBER_OF_SEEDS(n) pow(log2(((double)n)), 2)
diff --git a/src/hhalign/hhalignment-C.h b/src/hhalign/hhalignment-C.h
index a9aa299..bf5ad99 100644
--- a/src/hhalign/hhalignment-C.h
+++ b/src/hhalign/hhalignment-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhalignment-C.h 309 2016-06-13 14:10:11Z fabian $
+ * RCS $Id: hhalignment-C.h 316 2016-12-16 16:14:39Z fabian $
*/
@@ -82,15 +82,15 @@ Alignment::Alignment(int maxseq, int maxres)
//printf(">>>>>>>>%s:%s:%d: maxseq=%d, maxres=%d\n", __FUNCTION__, __FILE__, __LINE__, maxseq, maxres); /* (FS) */
longname = new(char[DESCLEN]);
- sname = new(char*[maxseq+2]); /* MR1 */
- seq = new(char*[maxseq+2]); /* MR1 */
- l = new(int[maxres]);
- X = new(char*[maxseq+2]); /* MR1 */
- I = new(short unsigned int*[maxseq+2]); /* MR1 */
- keep = new(char[maxseq+2]); /* MR1 */
- display = new(char[maxseq+2]); /* MR1 */
- wg = new(float[maxseq+2]); /* MR1 */
- nseqs = new(int[maxres+2]); /* MR1 */
+ sname = new char*[maxseq+2]; /* MR1 */
+ seq = new char*[maxseq+2]; /* MR1 */
+ l = new int[maxres];
+ X = new char*[maxseq+2]; /* MR1 */
+ I = new short unsigned int*[maxseq+2]; /* MR1 */
+ keep = new char[maxseq+2]; /* MR1 */
+ display = new char[maxseq+2]; /* MR1 */
+ wg = new float[maxseq+2]; /* MR1 */
+ nseqs = new int[maxres+2]; /* MR1 */
N_in=L=0;
nres=NULL; // number of residues per sequence k
first=NULL; // first residue in sequence k
@@ -143,7 +143,7 @@ Alignment::Read(FILE* inf, char infile[], char* firstline)
int k; // Index of sequence being read currently (first=0)
char line[LINELEN]=""; // input line
//char cur_seq[MAXCOL]; // Sequence currently read in
- char *cur_seq=new(char[par.maxColCnt]);
+ char *cur_seq=new char[par.maxColCnt];
char* cur_name; // Sequence currently read in
int linenr=0; // current line number in input file
char skip_sequence=0;
@@ -185,11 +185,11 @@ Alignment::Read(FILE* inf, char infile[], char* firstline)
}
// Create space for residues and paste new sequence in
- seq[k]=new(char[strlen(cur_seq)+2]);
+ seq[k]=new char[strlen(cur_seq)+2];
if (!seq[k]) MemoryError("array for input sequences");
- X[k]=new(char[strlen(cur_seq)+2]);
+ X[k]=new char[strlen(cur_seq)+2];
if (!X[k]) MemoryError("array for input sequences");
- I[k]=new(short unsigned int[strlen(cur_seq)+2]);
+ I[k]=new short unsigned int[strlen(cur_seq)+2];
if (!I[k]) MemoryError("array for input sequences");
strcpy(seq[k],cur_seq);
}
@@ -238,7 +238,7 @@ Alignment::Read(FILE* inf, char infile[], char* firstline)
// store sequence name
if (v>=4) printf("Reading seq %-16.16s k=%3i n_displ=%3i display[k]=%i keep[k]=%i\n",cur_name,k,n_display,display[k],keep[k]);
- sname[k] = new(char[strlen(cur_name)+1]);
+ sname[k] = new char[strlen(cur_name)+1];
if (!sname[k]) {MemoryError("array for sequence names");}
strcpy(sname[k],cur_name);
} // end if(line contains sequence name)
@@ -353,11 +353,11 @@ Alignment::Read(FILE* inf, char infile[], char* firstline)
if (k>=0) //if at least one sequence was read in
{
- seq[k]=new(char[strlen(cur_seq)+2]);
+ seq[k]=new char[strlen(cur_seq)+2];
if (!seq[k]) MemoryError("array for input sequences");
- X[k]=new(char[strlen(cur_seq)+2]);
+ X[k]=new char[strlen(cur_seq)+2];
if (!X[k]) MemoryError("array for input sequences");
- I[k]=new(short unsigned int[strlen(cur_seq)+2]);
+ I[k]=new short unsigned int[strlen(cur_seq)+2];
if (!I[k]) MemoryError("array for input sequences");
strcpy(seq[k],cur_seq);
}
@@ -425,7 +425,7 @@ Alignment::Compress(const char infile[])
/*static short unsigned int h[MAXSEQ];*/
/*short*/ unsigned int *h = NULL; /* short may lead to overflow for long alignments, FS, r235 -> r236 */
- h = new(/*short*/ unsigned int[N_in+2]); /* short -> overflow, FS, r235 -> r236 */
+ h = new /*short*/ unsigned int[N_in+2]; /* short -> overflow, FS, r235 -> r236 */
float *percent_gaps = NULL; /* FS, 2010-Nov */
char *match_state = NULL; /* FS, 2010-Nov */
@@ -557,13 +557,13 @@ Alignment::Compress(const char infile[])
had to move declaration of float *percent_gaps out of switch()
*/
//float percent_gaps[MAXCOL]; //percentage of gaps in column k (with weighted sequences)
- percent_gaps = new(float[par.maxColCnt]);
+ percent_gaps = new float[par.maxColCnt];
//determine number of columns L in alignment
L=strlen(seq[kfirst])-1;
// Conversion to integer representation, checking for unequal lengths and initialization
- if (nres==NULL) nres=new(int[N_in]);
+ if (nres==NULL) nres=new int[N_in];
#if 0
//#ifdef HAVE_OPENMP
#pragma omp parallel for schedule(static), private(l)
@@ -801,7 +801,7 @@ Alignment::Compress(const char infile[])
had to move declaration of float *percent_gaps out of switch()
*/
//char match_state[MAXCOL]; //1: column assigned to match state 0: insert state
- match_state = new(char[par.maxColCnt]);
+ match_state = new char[par.maxColCnt];
// Determine number of columns L in alignment
L=strlen(seq[0]+1);
@@ -963,7 +963,7 @@ Alignment::FilterForDisplay(int max_seqid, int coverage, int qid, float qsc, int
if (par.mark) return n_display;
- char *dummy = new(char[N_in+1]);
+ char *dummy = new char[N_in+1];
int vtmp=v, seqid;
v=0;
n_display=0;
@@ -1026,12 +1026,12 @@ Alignment::Filter2(char keep[], int coverage, int qid, float qsc, int seqid1, in
{
// In the beginnning, keep[k] is 1 for all regular amino acid sequences and 0 for all others (ss_conf, ss_pred,...)
// In the end, keep[k] will be 1 for all regular representative sequences kept in the alignment, 0 for all others
- char* in=new(char[N_in+1]); // in[k]=1: seq k has been accepted; in[k]=0: seq k has not yet been accepted at current seqid
- char* inkk=new(char[N_in+1]); // inkk[k]=1 iff in[ksort[k]]=1 else 0;
- int* Nmax=new(int[L+2]); // position-dependent maximum-sequence-identity threshold for filtering /* MR1, used to be called idmax*/
- int* idmaxwin=new(int[L+2]); // minimum value of idmax[i-WFIL,i+WFIL]
- int* seqid_prev=new(int[N_in+1]); // maximum-sequence-identity threshold used in previous round of filtering (with lower seqid)
- int* N=new(int[L+2]); // N[i] number of already accepted sequences at position i
+ char* in=new char[N_in+1]; // in[k]=1: seq k has been accepted; in[k]=0: seq k has not yet been accepted at current seqid
+ char* inkk=new char[N_in+1]; // inkk[k]=1 iff in[ksort[k]]=1 else 0;
+ int* Nmax=new int[L+2]; // position-dependent maximum-sequence-identity threshold for filtering /* MR1, used to be called idmax*/
+ int* idmaxwin=new int[L+2]; // minimum value of idmax[i-WFIL,i+WFIL]
+ int* seqid_prev=new int[N_in+1]; // maximum-sequence-identity threshold used in previous round of filtering (with lower seqid)
+ int* N=new int[L+2]; // N[i] number of already accepted sequences at position i
const int WFIL=25; // see previous line
int diffNmax=Ndiff; // current maximum difference of Nmax[i] and Ndiff /* MR1 */
@@ -1059,8 +1059,8 @@ Alignment::Filter2(char keep[], int coverage, int qid, float qsc, int seqid1, in
// Determine first[k], last[k]?
if (first==NULL)
{
- first=new(int[N_in]);// first non-gap position in sequence k
- last =new(int[N_in]);// last non-gap position in sequence k
+ first=new int[N_in];// first non-gap position in sequence k
+ last =new int[N_in];// last non-gap position in sequence k
for (k=0; k<N_in; k++) // do this for ALL sequences, not only those with in[k]==1 (since in[k] may be display[k])
{
for (i=1; i<=L; i++) if (X[k][i]<NAA) break;
@@ -1075,7 +1075,7 @@ Alignment::Filter2(char keep[], int coverage, int qid, float qsc, int seqid1, in
//if ( (nres==NULL) || (sizeof(nres)<N_in*sizeof(int)) )
if (nres==NULL)
{
- nres=new(int[N_in]);
+ nres=new int[N_in];
for (k=0; k<N_in; k++) // do this for ALL sequences, not only those with in[k]==1 (since in[k] may be display[k])
{
int nr=0;
@@ -1089,7 +1089,7 @@ Alignment::Filter2(char keep[], int coverage, int qid, float qsc, int seqid1, in
// Sort sequences according to length; afterwards, nres[ksort[kk]] is sorted by size
if (ksort==NULL)
{
- ksort=new(int[N_in]); // never reuse alignment object for new alignment with more sequences
+ ksort=new int[N_in]; // never reuse alignment object for new alignment with more sequences
for (k=0; k<N_in; k++) ksort[k]=k;
QSortInt(nres,ksort,kfirst+1,N_in-1,-1); //Sort sequences after kfirst (query) in descending order
}
@@ -1355,7 +1355,7 @@ Alignment::HomologyFilter(int coverage_core, float qsc_core, float coresc)
const int Ndiff_core=0;
int n;
HMM qcore;
- char* coreseq=new(char[N_in]); // coreseq[k]=1 if sequence belongs to core of alignment (i.e. it is very similar to query)
+ char* coreseq=new char[N_in]; // coreseq[k]=1 if sequence belongs to core of alignment (i.e. it is very similar to query)
for (int k=0; k<N_in; k++) coreseq[k]=keep[k]; // Copy keep[] into coreseq[]
// Remove sequences with seq. identity larger than seqid percent (remove the shorter of two)
@@ -1406,7 +1406,7 @@ Alignment::FilterWithCoreHMM(char in[], float coresc, HMM& qcore)
int i; // column in query alignment
int a; // amino acid (0..19)
int n=1; // number of sequences that passed filter
- float** logodds=new(float*[L+1]); // log-odds ratios for HMM qcore
+ float** logodds=new float*[L+1]; // log-odds ratios for HMM qcore
char gap; // 1: previous state in seq k was a gap 0: previous state in seq k was an amino acid
float score; // score of sequence k aligned with qcore
@@ -1415,8 +1415,8 @@ Alignment::FilterWithCoreHMM(char in[], float coresc, HMM& qcore)
// Determine first[k], last[k]?
if (first==NULL)
{
- first=new(int[N_in]);// first non-gap position in sequence k
- last =new(int[N_in]);// last non-gap position in sequence k
+ first=new int[N_in];// first non-gap position in sequence k
+ last =new int[N_in];// last non-gap position in sequence k
for (k=0; k<N_in; k++) // do this for ALL sequences, not only those with in[k]==1 (since in[k] may be display[k])
{
for (i=1; i<=L; i++) if (X[k][i]<NAA) break;
@@ -1429,7 +1429,7 @@ Alignment::FilterWithCoreHMM(char in[], float coresc, HMM& qcore)
// Determine number of residues nres[k]?
if (nres==NULL)
{
- nres=new(int[N_in]);
+ nres=new int[N_in];
for (k=0; k<N_in; k++) // do this for ALL sequences, not only those with in[k]==1 (since in[k] may be display[k])
{
int nr=0;
@@ -1712,18 +1712,18 @@ Alignment::FrequenciesAndTransitions(HMM& q, char* in)
q.sname[q.ncons]=new(char[10]);
if (!q.sname[q.ncons]) {MemoryError("array of names for displayed sequences");}
strcpy(q.sname[q.ncons],"Consensus");
- q.seq[q.ncons]=new(char[L+2]);
+ q.seq[q.ncons]=new char[L+2];
if (!q.seq[q.ncons]) {MemoryError("array of names for displayed sequences");}
}
if (par.cons)
{
// Reserve space for consensus sequence as first sequence in alignment
q.nfirst=n++; kfirst=-1;
- q.sname[q.nfirst]=new(char[strlen(name)+11]);
+ q.sname[q.nfirst]=new char[strlen(name)+11];
if (!q.sname[q.nfirst]) {MemoryError("array of names for displayed sequences");}
strcpy(q.sname[q.nfirst],name);
strcat(q.sname[q.nfirst],"_consensus");
- q.seq[q.nfirst]=new(char[L+2]);
+ q.seq[q.nfirst]=new char[L+2];
if (!q.seq[q.nfirst]) {MemoryError("array of names for displayed sequences");}
}
// Calculate consensus amino acids using similarity matrix
@@ -1781,10 +1781,10 @@ Alignment::FrequenciesAndTransitions(HMM& q, char* in)
else if (k==kfirst) nn=q.nfirst=n++;
else nn=n++;
// strcut(sname[k]," "); // delete rest of name line beginning with two spaces " " // Why this?? Problem for pdb seqs without chain
- q.sname[nn]=new(char[strlen(sname[k])+1]);
+ q.sname[nn]=new char[strlen(sname[k])+1];
if (!q.sname[nn]) {MemoryError("array of names for displayed sequences");}
strcpy(q.sname[nn],sname[k]);
- q.seq[nn]=new(char[strlen(seq[k])+1]);
+ q.seq[nn]=new char[strlen(seq[k])+1];
if (!q.seq[nn]) {MemoryError("array of names for displayed sequences");}
strcpy(q.seq[nn],seq[k]);
}
@@ -1871,14 +1871,14 @@ Alignment::Amino_acid_frequencies_and_transitions_from_M_state(HMM& q, char* in)
//float wi[MAXSEQ]; // weight of sequence k in column i, calculated from subalignment i
float *wi=NULL; // weight of sequence k in column i, calculated from subalignment i
//float Neff[MAXRES]; // diversity of subalignment i
- float *Neff = new(float[par.maxResLen]); // diversity of subalignment i
+ float *Neff = new float[par.maxResLen]; // diversity of subalignment i
int nseqi=0; // number of sequences in subalignment i
int ncol=0; // number of columns j that contribute to Neff[i]
char change; // has the set of sequences in subalignment changed? 0:no 1:yes
float fj[NAA+3]; // to calculate entropy
float sum;
- wi = new(float[N_in+2]);
+ wi = new float[N_in+2];
// Global weights?
if (par.wg==1)
@@ -1888,7 +1888,7 @@ Alignment::Amino_acid_frequencies_and_transitions_from_M_state(HMM& q, char* in)
// Initialization
q.Neff_HMM=0.0f;
Neff[0]=0.0; // if the first column has no residues (i.e. change==0), Neff[i]=Neff[i-1]=Neff[0]
- n = new(int*[L+2]);
+ n = new int*[L+2];
//#if 0
#ifdef HAVE_OPENMP
#pragma omp parallel for schedule(static) private(a)
@@ -2047,9 +2047,9 @@ Alignment::Amino_acid_frequencies_and_transitions_from_M_state(HMM& q, char* in)
} // end for(k)
// Normalize and take log
sum = q.tr[i][M2M]+q.tr[i][M2I]+q.tr[i][M2D]+FLT_MIN;
- q.tr[i][M2M]=log2(q.tr[i][M2M]/sum);
- q.tr[i][M2I]=log2(q.tr[i][M2I]/sum);
- q.tr[i][M2D]=log2(q.tr[i][M2D]/sum);
+ q.tr[i][M2M]=Log2(q.tr[i][M2M]/sum);
+ q.tr[i][M2I]=Log2(q.tr[i][M2I]/sum);
+ q.tr[i][M2D]=Log2(q.tr[i][M2D]/sum);
// for (k=0; k<N_in; k++) if (in[k]) w[k][i]=wi[k];
} // end loop through alignment columns i
@@ -2099,7 +2099,7 @@ Alignment::Amino_acid_frequencies_and_transitions_from_M_state(HMM& q, char* in)
}
q.Neff_HMM/=L;
float Nlim=fmax(10.0,q.Neff_HMM+1.0); // limiting Neff
- float scale=log2((Nlim-q.Neff_HMM)/(Nlim-1.0)); // for calculating Neff for those seqs with inserts at specific pos
+ float scale=Log2((Nlim-q.Neff_HMM)/(Nlim-1.0)); // for calculating Neff for those seqs with inserts at specific pos
//#if 0
#ifdef HAVE_OPENMP
#pragma omp parallel for schedule(static) private(k)
@@ -2163,7 +2163,7 @@ Alignment::Transitions_from_I_state(HMM& q, char* in)
//float wi[MAXSEQ]; // weight of sequence k in column i, calculated from subalignment i
float *wi = NULL; // weight of sequence k in column i, calculated from subalignment i
//float Neff[MAXRES]; // diversity of subalignment i
- float *Neff = new(float[par.maxResLen]); // diversity of subalignment i
+ float *Neff = new float[par.maxResLen]; // diversity of subalignment i
int nseqi; // number of sequences in subalignment i
int ncol; // number of columns j that contribute to Neff[i]
float fj[NAA+3]; // to calculate entropy
@@ -2171,18 +2171,18 @@ Alignment::Transitions_from_I_state(HMM& q, char* in)
float Nlim=0.0; // only for global weights
float scale=0.0; // only for global weights
- wi = new(float[N_in+2]);
+ wi = new float[N_in+2];
// Global weights?
if (par.wg==1)
{
for (k=0; k<N_in; k++) wi[k]=wg[k];
Nlim=fmax(10.0,q.Neff_HMM+1.0); // limiting Neff
- scale=log2((Nlim-q.Neff_HMM)/(Nlim-1.0)); // for calculating Neff for those seqs with inserts at specific pos
+ scale=Log2((Nlim-q.Neff_HMM)/(Nlim-1.0)); // for calculating Neff for those seqs with inserts at specific pos
}
// Initialization
- n = new(int*[L+2]);
+ n = new int*[L+2];
for (j=1; j<=L; j++) n[j]=new(int[NAA+3]);
//////////////////////////////////////////////////////////////////////////////////////////////
@@ -2309,8 +2309,8 @@ Alignment::Transitions_from_I_state(HMM& q, char* in)
// Normalize and take log
sum = q.tr[i][I2M]+q.tr[i][I2I];
- q.tr[i][I2M]=log2(q.tr[i][I2M]/sum);
- q.tr[i][I2I]=log2(q.tr[i][I2I]/sum);
+ q.tr[i][I2M]=Log2(q.tr[i][I2M]/sum);
+ q.tr[i][I2I]=Log2(q.tr[i][I2I]/sum);
}
// end loop through alignment columns i
@@ -2365,7 +2365,7 @@ Alignment::Transitions_from_D_state(HMM& q, char* in)
//float wi[MAXSEQ]; // weight of sequence k in column i, calculated from subalignment i
float *wi=NULL; // weight of sequence k in column i, calculated from subalignment i
//float Neff[MAXRES]; // diversity of subalignment i
- float *Neff = new(float[par.maxResLen]); // diversity of subalignment i
+ float *Neff = new float[par.maxResLen]; // diversity of subalignment i
int nseqi=0; // number of sequences in subalignment i (for DEBUGGING)
int ncol=0; // number of columns j that contribute to Neff[i]
char change; // has the set of sequences in subalignment changed? 0:no 1:yes
@@ -2374,18 +2374,18 @@ Alignment::Transitions_from_D_state(HMM& q, char* in)
float Nlim=0.0; // only for global weights
float scale=0.0; // only for global weights
- wi = new(float[N_in+2]); /* FIXME: FS */
+ wi = new float[N_in+2]; /* FIXME: FS */
// Global weights?
if (par.wg==1)
{
for (k=0; k<N_in; k++)
wi[k]=wg[k];
Nlim=fmax(10.0,q.Neff_HMM+1.0); // limiting Neff
- scale=log2((Nlim-q.Neff_HMM)/(Nlim-1.0)); // for calculating Neff for those seqs with dels at specific pos
+ scale=Log2((Nlim-q.Neff_HMM)/(Nlim-1.0)); // for calculating Neff for those seqs with dels at specific pos
}
// Initialization
- n = new(int*[L+2]);
+ n = new int*[L+2];
//#if 0
#ifdef HAVE_OPENMP
#pragma omp parallel for schedule(static) private(a)
@@ -2568,8 +2568,8 @@ Alignment::Transitions_from_D_state(HMM& q, char* in)
// Normalize and take log
sum = q.tr[i][D2M]+q.tr[i][D2D];
- q.tr[i][D2M]=log2(q.tr[i][D2M]/sum);
- q.tr[i][D2D]=log2(q.tr[i][D2D]/sum);
+ q.tr[i][D2M]=Log2(q.tr[i][D2M]/sum);
+ q.tr[i][D2D]=Log2(q.tr[i][D2D]/sum);
}
// end loop through alignment columns i
@@ -2696,7 +2696,7 @@ Alignment::MergeMasterSlave(Hit& hit, char ta3mfile[])
N_filtered = Tali.Filter(par.max_seqid,par.coverage,par.qid,par.qsc,par.Ndiff);
// Record imatch[j]
- int* imatch=new(int[hit.j2+1]);
+ int* imatch=new int[hit.j2+1];
int step = hit.nsteps;
for (j=hit.j1; j<=hit.j2; j++)
{
@@ -2828,7 +2828,7 @@ Alignment::MergeMasterSlave(Hit& hit, char ta3mfile[])
iprev=i; lprev=l;
if (h>=maxcol-1000) // too few columns? Reserve double space
{
- char* new_seq=new(char[2*maxcol]);
+ char* new_seq=new char[2*maxcol];
strncpy(new_seq,cur_seq,maxcol); //////// check: maxcol-1 ????
delete[](cur_seq); (cur_seq) = NULL;
cur_seq=new_seq;
@@ -2841,14 +2841,14 @@ Alignment::MergeMasterSlave(Hit& hit, char ta3mfile[])
cur_seq[h++]='\0';
keep[N_in] = display[N_in] = KEEP_CONDITIONALLY;
- seq[N_in]=new(char[h]);
+ seq[N_in]=new char[h];
if (!seq[N_in]) MemoryError("array for input sequences");
strcpy(seq[N_in],cur_seq);
- X[N_in]=new(char[h]);
+ X[N_in]=new char[h];
if (!X[N_in]) MemoryError("array for input sequences");
- I[N_in]=new(short unsigned int[h]);
+ I[N_in]=new short unsigned int[h];
if (!I[N_in]) MemoryError("array for input sequences");
- sname[N_in]=new(char[strlen(Tali.sname[k])+1]);
+ sname[N_in]=new char[strlen(Tali.sname[k])+1];
if (!sname[N_in]) MemoryError("array for input sequences");
strcpy(sname[N_in],Tali.sname[k]);
N_in++;
@@ -2879,7 +2879,7 @@ Alignment::AddSequence(char Xk[], int Ik[])
{
int i; // position in query and target
if (L<=0) InternalError("L is not set in AddSequence()");
- X[N_in]=new(char[L+2]);
+ X[N_in]=new char[L+2];
for (i=0; i<=L+1; i++) X[N_in][i]=Xk[i];
if (Ik==NULL)
for (i=0; i<=L+1; i++) I[N_in][i]=0;
@@ -2929,7 +2929,7 @@ Alignment::GetPositionSpecificWeights(float* w[])
{
// Initialization
- n = new(int*[L+2]);
+ n = new int*[L+2];
for (j=1; j<=L; j++) n[j]=new(int[NAA+3]);
for (j=1; j<=L; j++)
for (a=0; a<NAA+3; a++) n[j][a]=0;
@@ -3046,9 +3046,9 @@ Alignment::Transfer(char **ppcProf, int iCnt){
/* @<allocate memory for sequences etc@> */
for (k = 0; k < iCnt; k++){
#define GOOD_MEASURE 1000 /* Temporary -- can be removed once rest in place */
- I[k] = new(short unsigned int[iLen+2+GOOD_MEASURE]);
- X[k] = new(char[iLen+2+GOOD_MEASURE]);
- seq[k] = new(char[iLen+2+GOOD_MEASURE]);
+ I[k] = new short unsigned int[iLen+2+GOOD_MEASURE];
+ X[k] = new char[iLen+2+GOOD_MEASURE];
+ seq[k] = new char[iLen+2+GOOD_MEASURE];
seq[k][0] = ' ';
seq[k][1] = '\0';
if (NULL == ppcProf[k]){
diff --git a/src/hhalign/hhfullalignment-C.h b/src/hhalign/hhfullalignment-C.h
index 9140c12..8f40fd1 100644
--- a/src/hhalign/hhfullalignment-C.h
+++ b/src/hhalign/hhfullalignment-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhfullalignment-C.h 309 2016-06-13 14:10:11Z fabian $
+ * RCS $Id: hhfullalignment-C.h 315 2016-12-15 17:18:30Z fabian $
*/
// hhfullalignment.C
@@ -357,8 +357,8 @@ FullAlignment::PrintHHR(FILE* outf, Hit& hit)
int iq=hit.i1; // match state counter for query HMM (displayed in consensus line)
int jt=hit.j1; // match state counter for template HMM (displayed in consensus line)
- lq = new(short unsigned int[qa->n+2]);
- lt = new(short unsigned int[ta->n+2]);
+ lq = new short unsigned int[qa->n+2];
+ lt = new short unsigned int[ta->n+2];
for (k=0; k<qa->n; k++) lq[k]=qa->l[k][hit.i1];
for (k=0; k<ta->n; k++) lt[k]=ta->l[k][hit.j1];
diff --git a/src/hhalign/hhhalfalignment-C.h b/src/hhalign/hhhalfalignment-C.h
index 53f1d97..5579b73 100644
--- a/src/hhalign/hhhalfalignment-C.h
+++ b/src/hhalign/hhhalfalignment-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhhalfalignment-C.h 309 2016-06-13 14:10:11Z fabian $
+ * RCS $Id: hhhalfalignment-C.h 315 2016-12-15 17:18:30Z fabian $
*/
// hhfullalignment.C
@@ -64,10 +64,10 @@ HalfAlignment::HalfAlignment(int maxseqdis)
n=0;
sname=seq=NULL;
nss_dssp = nss_pred = nss_conf = nsa_dssp = ncons= -1;
- h = new(int[maxseqdis]); //h[k] = next position of sequence k to be written
- s = new(char*[maxseqdis]); //s[k][h] = character in column h, sequence k of output alignment
- l = new(int*[maxseqdis]); //counts non-gap residues: l[k][i] = index of last residue AT OR BEFORE match state i in seq k
- m = new(int*[maxseqdis]); //counts positions: m[k][i] = position of match state i in string seq[k]
+ h = new int[maxseqdis]; //h[k] = next position of sequence k to be written
+ s = new char*[maxseqdis]; //s[k][h] = character in column h, sequence k of output alignment
+ l = new int*[maxseqdis]; //counts non-gap residues: l[k][i] = index of last residue AT OR BEFORE match state i in seq k
+ m = new int*[maxseqdis]; //counts positions: m[k][i] = position of match state i in string seq[k]
}
/////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/hhalign/hhhit-C.h b/src/hhalign/hhhit-C.h
index e047946..7f2296c 100644
--- a/src/hhalign/hhhit-C.h
+++ b/src/hhalign/hhhit-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhhit-C.h 308 2016-06-13 14:07:35Z fabian $
+ * RCS $Id: hhhit-C.h 316 2016-12-16 16:14:39Z fabian $
*/
// hhhit.C
@@ -177,20 +177,20 @@ void
Hit::AllocateBacktraceMatrix(int Nq, int Nt)
{
int i;
- bMM=new(char*[Nq]);
- bMI=new(char*[Nq]);
- bIM=new(char*[Nq]);
- bDG=new(char*[Nq]);
- bGD=new(char*[Nq]);
- cell_off=new(char*[Nq]);
+ bMM=new char*[Nq];
+ bMI=new char*[Nq];
+ bIM=new char*[Nq];
+ bDG=new char*[Nq];
+ bGD=new char*[Nq];
+ cell_off=new char*[Nq];
for (i=0; i<Nq; i++)
{
- bMM[i]=new(char[Nt]);
- bMI[i]=new(char[Nt]);
- bIM[i]=new(char[Nt]);
- bGD[i]=new(char[Nt]);
- bDG[i]=new(char[Nt]);
- cell_off[i]=new(char[Nt]);
+ bMM[i]=new char[Nt];
+ bMI[i]=new char[Nt];
+ bIM[i]=new char[Nt];
+ bGD[i]=new char[Nt];
+ bDG[i]=new char[Nt];
+ cell_off[i]=new char[Nt] ;
if (!bMM[i] || !bMI[i] || !bIM[i] || !bGD[i] || !bDG[i] || !cell_off[i])
{
fprintf(stderr,"Error: out of memory while allocating row %i (out of %i) for dynamic programming matrices \n",i+1,Nq);
@@ -237,19 +237,19 @@ Hit::DeleteBacktraceMatrix(int Nq)
void
Hit::AllocateForwardMatrix(int Nq, int Nt)
{
- F_MM=new(double*[Nq]);
- F_MI=new(double*[Nq]);
- F_DG=new(double*[Nq]);
- F_IM=new(double*[Nq]);
- F_GD=new(double*[Nq]);
- scale=new(double[Nq+1]); // need Nq+3?
+ F_MM=new double*[Nq];
+ F_MI=new double*[Nq];
+ F_DG=new double*[Nq];
+ F_IM=new double*[Nq];
+ F_GD=new double*[Nq];
+ scale=new double[Nq+1] ; // need Nq+3?
for (int i=0; i<Nq; i++)
{
- F_MM[i] = new(double[Nt]);
- F_MI[i] = new(double[Nt]);
- F_DG[i] = new(double[Nt]);
- F_IM[i] = new(double[Nt]);
- F_GD[i] = new(double[Nt]);
+ F_MM[i] = new double[Nt];
+ F_MI[i] = new double[Nt];
+ F_DG[i] = new double[Nt];
+ F_IM[i] = new double[Nt];
+ F_GD[i] = new double[Nt];
if (!F_MM[i] || !F_MI[i] || !F_IM[i] || !F_GD[i] || !F_DG[i])
{
fprintf(stderr,"Error: out of memory while allocating row %i (out of %i) for dynamic programming matrices \n",i+1,Nq);
@@ -294,14 +294,14 @@ Hit::DeleteForwardMatrix(int Nq)
void
Hit::AllocateBackwardMatrix(int Nq, int Nt)
{
- B_MM=new(double*[Nq]);
+ B_MM=new double*[Nq];
B_MI=F_MI;
B_DG=F_DG;
B_IM=F_IM;
B_GD=F_GD;
for (int i=0; i<Nq; i++)
{
- B_MM[i] = new(double[Nt]);
+ B_MM[i] = new double[Nt];
if (!B_MM[i])
{
fprintf(stderr,"Error: out of memory while allocating row %i (out of %i) for dynamic programming matrices \n",i+1,Nq);
@@ -374,11 +374,11 @@ Hit::Viterbi(HMM& q, HMM& t, float** Sstruc)
//float sDG[MAXRES]; // sDG[i][j] = score of best alignment up to indices (i,j) ending in (Delete,Gap)
//float sIM[MAXRES]; // sIM[i][j] = score of best alignment up to indices (i,j) ending in (Ins,Match)
//float sMI[MAXRES]; // sMI[i][j] = score of best alignment up to indices (i,j) ending in (Match,Ins)
- float *sMM = new(float[par.maxResLen]); // sMM[i][j] = score of best alignment up to indices (i,j) ending in (Match,Match)
- float *sGD = new(float[par.maxResLen]); // sGD[i][j] = score of best alignment up to indices (i,j) ending in (Gap,Delete)
- float *sDG = new(float[par.maxResLen]); // sDG[i][j] = score of best alignment up to indices (i,j) ending in (Delete,Gap)
- float *sIM = new(float[par.maxResLen]); // sIM[i][j] = score of best alignment up to indices (i,j) ending in (Ins,Match)
- float *sMI = new(float[par.maxResLen]); // sMI[i][j] = score of best alignment up to indices (i,j) ending in (Match,Ins)
+ float *sMM = new float[par.maxResLen]; // sMM[i][j] = score of best alignment up to indices (i,j) ending in (Match,Match)
+ float *sGD = new float[par.maxResLen]; // sGD[i][j] = score of best alignment up to indices (i,j) ending in (Gap,Delete)
+ float *sDG = new float[par.maxResLen]; // sDG[i][j] = score of best alignment up to indices (i,j) ending in (Delete,Gap)
+ float *sIM = new float[par.maxResLen]; // sIM[i][j] = score of best alignment up to indices (i,j) ending in (Ins,Match)
+ float *sMI = new float[par.maxResLen]; // sMI[i][j] = score of best alignment up to indices (i,j) ending in (Match,Ins)
float smin=(par.loc? 0:-FLT_MAX); //used to distinguish between SW and NW algorithms in maximization
int i=0,j=0; //query and template match state indices
float sMM_i_j=0, sMI_i_j=0, sIM_i_j=0, sGD_i_j=0, sDG_i_j=0;
@@ -697,8 +697,8 @@ Hit::Forward(HMM& q, HMM& t, float** Pstruc)
}
// Calculate log2(P_forward)
- score = log2(Pforward)-10.0f;
- for (i=1; i<=q.L+1; i++) score -= log2(scale[i]);
+ score = Log2(Pforward)-10.0f;
+ for (i=1; i<=q.L+1; i++) score -= Log2(scale[i]);
// state = MM;
if (par.loc)
@@ -1124,9 +1124,9 @@ Hit::Backtrace(HMM& q, HMM& t)
nsteps=step;
// Allocate new space for alignment scores
- if (t.Xcons) Xcons = new( char[q.L+2]); // for template consensus sequence aligned to query
- S = new( float[nsteps+1]);
- S_ss = new( float[nsteps+1]);
+ if (t.Xcons) Xcons = new char[q.L+2]; // for template consensus sequence aligned to query
+ S = new float[nsteps+1];
+ S_ss = new float[nsteps+1];
if (!S_ss) MemoryError("space for HMM-HMM alignments");
// Add contribution from secondary structure score, record score along alignment,
@@ -1226,7 +1226,7 @@ Hit::StochasticBacktrace(HMM& q, HMM& t, char maximize)
int i,j; // query and template match state indices
// float pmin=(par.loc? 1.0: 0.0); // used to distinguish between SW and NW algorithms in maximization
const float pmin=0;
- double* scale_cum = new(double[q.L+2]);
+ double* scale_cum = new double[q.L+2];
scale_cum[0]=1;
@@ -1245,7 +1245,7 @@ Hit::StochasticBacktrace(HMM& q, HMM& t, char maximize)
else
{
// float sumF[q.L+t.L];
- double* sumF=new(double[q.L+t.L]);
+ double* sumF=new double[q.L+t.L];
sumF[0]=0.0;
for (j=1; j<=t.L; j++) sumF[j] = sumF[j-1] + F_MM[q.L][j]/scale_cum[q.L];;
for (j=t.L+1; j<t.L+q.L; j++) sumF[j] = sumF[j-1] + F_MM[j-t.L][t.L]/scale_cum[j-t.L];;
@@ -1369,9 +1369,9 @@ Hit::StochasticBacktrace(HMM& q, HMM& t, char maximize)
nsteps=step;
// Allocate new space for alignment scores
- if (t.Xcons) Xcons = new( char[q.L+2]); // for template consensus sequence aligned to query
- S = new( float[nsteps+1]);
- S_ss = new( float[nsteps+1]);
+ if (t.Xcons) Xcons = new char[q.L+2]; // for template consensus sequence aligned to query
+ S = new float[nsteps+1];
+ S_ss = new float[nsteps+1];
if (!S_ss) MemoryError("space for HMM-HMM alignments");
// Add contribution from secondary structure score, record score along alignment,
@@ -1473,10 +1473,10 @@ Hit::BacktraceMAC(HMM& q, HMM& t)
nsteps=step;
// Allocate new space for alignment scores
- if (t.Xcons) Xcons = new( char[q.L+2]); // for template consensus sequence aligned to query
- S = new( float[nsteps+1]);
- S_ss = new( float[nsteps+1]);
- P_posterior = new( float[nsteps+1]);
+ if (t.Xcons) Xcons = new char[q.L+2]; // for template consensus sequence aligned to query
+ S = new float[nsteps+1];
+ S_ss = new float[nsteps+1];
+ P_posterior = new float[nsteps+1];
if (!P_posterior) MemoryError("space for HMM-HMM alignments");
// Add contribution from secondary structure score, record score along alignment,
@@ -1681,9 +1681,9 @@ Hit::InitializeBacktrace(HMM& q, HMM& t)
if (irep==1) //if this is the first single repeat repeat hit with this template
{
//Copy information about template profile to hit and reset template pointers to avoid destruction
- longname=new(char[strlen(t.longname)+1])();
- name =new(char[strlen(t.name)+1])();
- file =new(char[strlen(t.file)+1])();
+ longname=new char[strlen(t.longname)+1]();
+ name =new char[strlen(t.name)+1]();
+ file =new char[strlen(t.file)+1]();
if (!file) {
MemoryError("space for alignments with database HMMs. \nNote that all alignments have to be kept in memory");
}
@@ -1694,8 +1694,8 @@ Hit::InitializeBacktrace(HMM& q, HMM& t)
strcpy(fold ,t.fold);
strcpy(cl ,t.cl);
strcpy(file,t.file);
- sname=new(char*[t.n_display])(); // Call Compare only once with irep=1
- seq =new(char*[t.n_display])(); // Call Compare only once with irep=1
+ sname=new char*[t.n_display](); // Call Compare only once with irep=1
+ seq =new char*[t.n_display](); // Call Compare only once with irep=1
if (!sname || !seq) {
MemoryError("space for alignments with database HMMs.\nNote that all sequences for display have to be kept in memory");
}
@@ -1728,9 +1728,9 @@ Hit::InitializeBacktrace(HMM& q, HMM& t)
}
// Allocate new space
- this->i = new( int[i2+j2+2])();
- this->j = new( int[i2+j2+2])();
- states = new( char[i2+j2+2])();
+ this->i = new int[i2+j2+2]();
+ this->j = new int[i2+j2+2]();
+ states = new char[i2+j2+2]();
S = S_ss = P_posterior = NULL; // set to NULL to avoid deleting data from irep=1 when hit with irep=2 is removed
Xcons = NULL;
} /* this is the end of Hit::InitializeBacktrace() */
diff --git a/src/hhalign/hhhitlist-C.h b/src/hhalign/hhhitlist-C.h
index 95777fc..a86c23d 100644
--- a/src/hhalign/hhhitlist-C.h
+++ b/src/hhalign/hhhitlist-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhhitlist-C.h 307 2016-06-13 14:04:39Z fabian $
+ * RCS $Id: hhhitlist-C.h 315 2016-12-15 17:18:30Z fabian $
*/
// hhhitlist.C
@@ -1283,32 +1283,32 @@ HitList::TransitiveScoring()
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
@@ -1371,12 +1371,12 @@ HitList::TransitiveScoring()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
- double** Cinv = new(double*[M]);
+ double** Csub = new double*[M];
+ double** Cinv = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
- Cinv[m] = new(double[M]);
+ Csub[m] = new double[M];
+ Cinv[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -1451,10 +1451,10 @@ HitList::TransitiveScoring()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -1468,8 +1468,8 @@ HitList::TransitiveScoring()
else
{
- double** Cinv = new(double*[M]);
- for (m=0; m<M; m++) Cinv[m] = new(double[M]);
+ double** Cinv = new double*[M];
+ for (m=0; m<M; m++) Cinv[m] = new double[M];
// Invert Csub
InvertMatrix(Cinv,Csub,M);
@@ -1648,32 +1648,32 @@ HitList::TransitiveScoring2()
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
@@ -1737,12 +1737,12 @@ HitList::TransitiveScoring2()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
- double** Cinv = new(double*[M]);
+ double** Csub = new double*[M];
+ double** Cinv = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
- Cinv[m] = new(double[M]);
+ Csub[m] = new double[M];
+ Cinv[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -1819,10 +1819,10 @@ HitList::TransitiveScoring2()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -1836,8 +1836,8 @@ HitList::TransitiveScoring2()
else
{
- double** Cinv = new(double*[M]);
- for (m=0; m<M; m++) Cinv[m] = new(double[M]);
+ double** Cinv = new double*[M];
+ for (m=0; m<M; m++) Cinv[m] = new double[M];
// // Invert Csub
// InvertMatrix(Cinv,Csub,M);
@@ -2018,32 +2018,32 @@ HitList::TransitiveScoring3()
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
@@ -2112,12 +2112,12 @@ HitList::TransitiveScoring3()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
- double** Cinv = new(double*[M]);
+ double** Csub = new double*[M];
+ double** Cinv = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
- Cinv[m] = new(double[M]);
+ Csub[m] = new double[M];
+ Cinv[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -2184,10 +2184,10 @@ HitList::TransitiveScoring3()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -2201,8 +2201,8 @@ HitList::TransitiveScoring3()
else
{
- double** Cinv = new(double*[M]);
- for (m=0; m<M; m++) Cinv[m] = new(double[M]);
+ double** Cinv = new double*[M];
+ for (m=0; m<M; m++) Cinv[m] = new double[M];
// Invert Csub
InvertMatrix(Cinv,Csub,M);
@@ -2383,32 +2383,32 @@ HitList::TransitiveScoring4()
index.Add(name,k);
}
// Read symmetric Z-scores matrix
- Z = new(float*[N]);
+ Z = new float*[N];
for (k=0; k<N; k++)
{
- Z[k] = new(float[N]);
+ Z[k] = new float[N];
for (l=0; l<k; l++) Z[k][l] = Z[l][k];
unused = fread(Z[k]+k,sizeof(float),N-k,wfile);
}
// Read symmetric covariance matrix
- C = new(float*[N]);
+ C = new float*[N];
for (k=0; k<N; k++)
{
- C[k] = new(float[N]);
+ C[k] = new float[N];
for (l=0; l<k; l++) C[k][l] = C[l][k];
unused = fread(C[k]+k,sizeof(float),N-k,wfile);
}
fclose(wfile);
// Allocate memory
- Zq = new(float[N]);
- Ztq = new(float[N]);
- Zrq = new(float[N]);
- fold = new(char*[N]);
- fam = new(char*[N]);
- Prob = new(float[N]);
- ll = new(int[N]);
- w = new(float[N]);
+ Zq = new float[N];
+ Ztq = new float[N];
+ Zrq = new float[N];
+ fold = new char*[N];
+ fam = new char*[N];
+ Prob = new float[N];
+ ll = new int[N];
+ w = new float[N];
// Transform P-values to normally distributed Z-scores and store in Zq vector
fprintf(stderr,"Transform P-values to Z-scores\n");
@@ -2470,10 +2470,10 @@ HitList::TransitiveScoring4()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -2536,10 +2536,10 @@ HitList::TransitiveScoring4()
else
{
// Generate submatrix of C for indices l for which Z_lq,Z_lk > Zmin_trans
- double** Csub = new(double*[M]);
+ double** Csub = new double*[M];
for (m=0; m<M; m++)
{
- Csub[m] = new(double[M]);
+ Csub[m] = new double[M];
for (n=0; n<M; n++)
Csub[m][n] = double(C[ll[m]][ll[n]]);
}
@@ -2838,9 +2838,9 @@ HitList::InvertMatrix(double** B, double** A, int N)
}
int k,l,m;
- double** V = new(double*[N]);
- double* s = new(double[N]);
- for (k=0; k<N; k++) V[k] = new(double[N]);
+ double** V = new double*[N];
+ double* s = new double[N];
+ for (k=0; k<N; k++) V[k] = new double[N];
// Copy original matrix A into B since B will be overwritten by SVD()
for (k=0; k<N; k++)
@@ -2923,7 +2923,7 @@ HitList::SVD(double **A, int n, double w[], double **V)
double pythag(double a, double b);
int flag,i,its,j,jj,k,l=1,nm=1;
double anorm,c,f,g,h,s,scale,x,y,z,*rv1;
- rv1=new(double[n]);
+ rv1=new double[n];
g=scale=anorm=0.0;
// Householder reduction to bidiagonal form.
diff --git a/src/hhalign/hhhmm-C.h b/src/hhalign/hhhmm-C.h
index ce4d7db..401c724 100644
--- a/src/hhalign/hhhmm-C.h
+++ b/src/hhalign/hhhmm-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhhmm-C.h 309 2016-06-13 14:10:11Z fabian $
+ * RCS $Id: hhhmm-C.h 316 2016-12-16 16:14:39Z fabian $
*/
@@ -186,12 +186,12 @@ HMM& HMM::operator=(HMM& q)
n_display=q.n_display;
for (int k=0; k<n_display; k++) {
- sname[k]=new(char[strlen(q.sname[k])+1]);
+ sname[k]=new char[strlen(q.sname[k])+1];
if (!sname[k]) MemoryError("array of names for sequences to display");
strcpy(sname[k],q.sname[k]);
}
for (int k=0; k<n_display; k++) {
- seq[k]=new(char[strlen(q.seq[k])+1]);
+ seq[k]=new char[strlen(q.seq[k])+1];
if (!seq[k]) MemoryError("array of names for sequences to display");
strcpy(seq[k],q.seq[k]);
}
@@ -327,7 +327,7 @@ HMM::Read(FILE* dbf, char* path)
else if (!strcmp("SEQ",str3))
{
//char cur_seq[MAXCOL]=""; //Sequence currently read in
- char *cur_seq = new(char[par.maxColCnt]); //Sequence currently read in
+ char *cur_seq = new char[par.maxColCnt]; //Sequence currently read in
int k; // sequence index; start with -1; after reading name of n'th sequence-> k=n
int h; // index for character in input line
int l=1; // index of character in sequence seq[k]
@@ -358,14 +358,14 @@ HMM::Read(FILE* dbf, char* path)
//If this is not the first sequence then store residues of previous sequence
if (k>0) {
- seq[k-1]=new(char[strlen(cur_seq)+1]);
+ seq[k-1]=new char[strlen(cur_seq)+1];
if (!seq[k-1]) MemoryError("array of sequences to display");
strcpy(seq[k-1],cur_seq);
}
// store sequence name
strcut(line+1); //find next white-space character and overwrite it with end-of-string character
- sname[k] = new (char[strlen(line+1)+1]); //+1 for terminating '\0'
+ sname[k] = new char[strlen(line+1)+1]; //+1 for terminating '\0'
if (!sname[k]) MemoryError("array of names for sequences to display");
strcpy(sname[k],line+1); //store sequence name in **name
l=1; i=1;
@@ -461,7 +461,7 @@ HMM::Read(FILE* dbf, char* path)
} //while(getline)
//If this is not the first sequence some residues have already been read in
if (k>=0) {
- seq[k]=new(char[strlen(cur_seq)+1]);
+ seq[k]=new char[strlen(cur_seq)+1];
if (!seq[k]) MemoryError("array of sequences to display");
strcpy(seq[k],cur_seq);
}
@@ -733,7 +733,7 @@ HMM::ReadHMMer(FILE* dbf, char* filestr)
if (nsa_dssp<0)
{
nsa_dssp=k++;
- seq[nsa_dssp] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nsa_dssp] = new char[/*MAXRES*/par.maxResLen+2];
sname[nsa_dssp] = new(char[15]);
strcpy(seq[nsa_dssp]," ");
strcpy(sname[nsa_dssp],"sa_dssp");
@@ -754,7 +754,7 @@ HMM::ReadHMMer(FILE* dbf, char* filestr)
if (nss_pred<0)
{
nss_pred=k++;
- seq[nss_pred] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nss_pred] = new char[/*MAXRES*/par.maxResLen+2];
sname[nss_pred] = new(char[15]);
strcpy(seq[nss_pred]," ");
strcpy(sname[nss_pred],"ss_pred");
@@ -775,7 +775,7 @@ HMM::ReadHMMer(FILE* dbf, char* filestr)
if (nss_conf<0)
{
nss_conf=k++;
- seq[nss_conf] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nss_conf] = new char[/*MAXRES*/par.maxResLen+2];
sname[nss_conf] = new(char[15]);
strcpy(seq[nss_conf]," ");
strcpy(sname[nss_conf],"ss_conf");
@@ -857,7 +857,7 @@ HMM::ReadHMMer(FILE* dbf, char* filestr)
// Prepare to store DSSP states (if there are none, delete afterwards)
nss_dssp=k++;
- seq[nss_dssp] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nss_dssp] = new char[/*MAXRES*/par.maxResLen+2];
sname[nss_dssp] = new(char[15]);
strcpy(sname[nss_dssp],"ss_dssp");
@@ -1033,12 +1033,12 @@ HMM::ReadHMMer(FILE* dbf, char* filestr)
{
sname[k]=new(char[10]);
strcpy(sname[k],"Consensus");
- sname[k+1]=new(char[strlen(longname)+1]);
+ sname[k+1]=new char[strlen(longname)+1];
strcpy(sname[k+1],longname);
- seq[k]=new(char[L+2]);
+ seq[k]=new char[L+2];
seq[k][0]=' ';
seq[k][L+1]='\0';
- seq[k+1]=new(char[L+2]);
+ seq[k+1]=new char[L+2];
seq[k+1][0]=' ';
seq[k+1][L+1]='\0';
for (i=1; i<=L; ++i)
@@ -1056,11 +1056,11 @@ HMM::ReadHMMer(FILE* dbf, char* filestr)
}
else
{
- sname[k]=new(char[strlen(longname)+1]);
+ sname[k]=new char[strlen(longname)+1];
/* FIXME valgrind says bytes get lost here during hmm iteration --
fixed in HMM::ClobberGlobal(), I (FS) think */
strcpy(sname[k],longname);
- seq[k]=new(char[L+2]);
+ seq[k]=new char[L+2];
seq[k][0]=' ';
seq[k][L+1]='\0';
}
@@ -1235,7 +1235,7 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
if (nsa_dssp<0)
{
nsa_dssp=k++;
- seq[nsa_dssp] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nsa_dssp] = new char[/*MAXRES*/par.maxResLen+2];
sname[nsa_dssp] = new(char[15]);
strcpy(seq[nsa_dssp]," ");
strcpy(sname[nsa_dssp],"sa_dssp");
@@ -1256,7 +1256,7 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
if (nss_pred<0)
{
nss_pred=k++;
- seq[nss_pred] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nss_pred] = new char[/*MAXRES*/par.maxResLen+2];
sname[nss_pred] = new(char[15]);
strcpy(seq[nss_pred]," ");
strcpy(sname[nss_pred],"ss_pred");
@@ -1277,7 +1277,7 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
if (nss_conf<0)
{
nss_conf=k++;
- seq[nss_conf] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nss_conf] = new char[/*MAXRES*/par.maxResLen+2];
sname[nss_conf] = new(char[15]);
strcpy(seq[nss_conf]," ");
strcpy(sname[nss_conf],"ss_conf");
@@ -1333,7 +1333,7 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
ptr = strscn(line);
for (a=0; a<=D2D && ptr; ++a)
- tr[0][a] = log2((float) exp(-1.0*strflta(ptr,99999))); //store transition probabilites as log2 values
+ tr[0][a] = Log2((float) exp(-1.0*strflta(ptr,99999))); //store transition probabilites as log2 values
// strinta returns next integer in string and puts ptr to first char
// after the integer. Returns -99999 if '*' is found.
// ptr is set to 0 if no integer is found after ptr.
@@ -1347,7 +1347,7 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
// Prepare to store DSSP states (if there are none, delete afterwards)
nss_dssp=k++;
- seq[nss_dssp] = new(char[/*MAXRES*/par.maxResLen+2]);
+ seq[nss_dssp] = new char[/*MAXRES*/par.maxResLen+2];
sname[nss_dssp] = new(char[15]);
strcpy(sname[nss_dssp],"ss_dssp");
@@ -1471,7 +1471,7 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
ptr+=2;
for (a=0; a<=D2D && ptr; ++a)
- tr[i][a] = log2((float) exp(-1.0*strflta(ptr,99999))); //store transition prob's as log2-values
+ tr[i][a] = Log2((float) exp(-1.0*strflta(ptr,99999))); //store transition prob's as log2-values
if (!ptr) return Warning(dbf,line,name);
if (v>=4)
{
@@ -1527,12 +1527,12 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
{
sname[k]=new(char[10]);
strcpy(sname[k],"Consensus");
- sname[k+1]=new(char[strlen(longname)+1]);
+ sname[k+1]=new char[strlen(longname)+1];
strcpy(sname[k+1],longname);
- seq[k]=new(char[L+2]);
+ seq[k]=new char[L+2];
seq[k][0]=' ';
seq[k][L+1]='\0';
- seq[k+1]=new(char[L+2]);
+ seq[k+1]=new char[L+2];
seq[k+1][0]=' ';
seq[k+1][L+1]='\0';
for (i=1; i<=L; ++i)
@@ -1550,9 +1550,9 @@ HMM::ReadHMMer3(FILE* dbf, char* filestr)
}
else
{
- sname[k]=new(char[strlen(longname)+1]);
+ sname[k]=new char[strlen(longname)+1];
strcpy(sname[k],longname);
- seq[k]=new(char[L+2]);
+ seq[k]=new char[L+2];
seq[k][0]=' ';
seq[k][L+1]='\0';
}
@@ -2107,7 +2107,7 @@ void
HMM::InsertCalibration(char* infile)
{
char* line = new(char[LINELEN]); // input line
- char** lines = new(char*[3*L+100000]);
+ char** lines = new char*[3*L+100000];
int nline=0;
int l;
char done=0; // inserted new 'EVD mu sigma' line?
@@ -2136,7 +2136,7 @@ HMM::InsertCalibration(char* infile)
sprintf(lines[nline],"EVD %-7.4f %-7.4f",lamda,mu);
nline++;
}
- lines[nline]=new(char[strlen(line)+1]);
+ lines[nline]=new char[strlen(line)+1];
if (!lines[nline]) MemoryError("space to read in HHM file for calibration");
strcpy (lines[nline],line);
nline++;
diff --git a/src/hhalign/hhmatrices-C.h b/src/hhalign/hhmatrices-C.h
index 38261fe..dacc65d 100644
--- a/src/hhalign/hhmatrices-C.h
+++ b/src/hhalign/hhmatrices-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhmatrices-C.h 274 2012-04-24 23:28:24Z dave $
+ * RCS $Id: hhmatrices-C.h 316 2016-12-16 16:14:39Z fabian $
*/
// Substitution matrices and their background frequencies
@@ -430,7 +430,7 @@ SetSubstitutionMatrix()
//Precompute matrix R for amino acid pseudocounts:
for (a=0; a<20; ++a)
for (b=0; b<20; ++b)
- S[a][b] = log2(R[a][b]/pb[a]); // S[a][b] = log2(P(a,b)/P(a)/P(b))
+ S[a][b] = Log2(R[a][b]/pb[a]); // S[a][b] = log2(P(a,b)/P(a)/P(b))
// Evaluate sequence identity underlying substitution matrix
if (v>=3)
@@ -440,11 +440,11 @@ SetSubstitutionMatrix()
float entropy_pb=0.0f;
float mut_info=0.0f;
for (a=0; a<20; ++a) id+=P[a][a];
- for (a=0; a<20; ++a) entropy_pb-=pb[a]*log2(pb[a]);
+ for (a=0; a<20; ++a) entropy_pb-=pb[a]*Log2(pb[a]);
for (a=0; a<20; ++a)
for (b=0; b<20; ++b)
{
- entropy-=P[a][b]*log2(R[a][b]);
+ entropy-=P[a][b]*Log2(R[a][b]);
mut_info += P[a][b]*S[a][b];
}
@@ -538,7 +538,7 @@ SetRnaSubstitutionMatrix()
//Precompute matrix R for amino acid pseudocounts:
for (a=0; a<20; ++a)
for (b=0; b<20; ++b)
- S[a][b] = log2(R[a][b]/pb[a]); // S[a][b] = log2(P(a,b)/P(a)/P(b))
+ S[a][b] = Log2(R[a][b]/pb[a]); // S[a][b] = log2(P(a,b)/P(a)/P(b))
// Evaluate sequence identity underlying substitution matrix
if (v>=3)
@@ -548,11 +548,11 @@ SetRnaSubstitutionMatrix()
float entropy_pb=0.0f;
float mut_info=0.0f;
for (a=0; a<20; ++a) id+=P[a][a];
- for (a=0; a<20; ++a) entropy_pb-=pb[a]*log2(pb[a]);
+ for (a=0; a<20; ++a) entropy_pb-=pb[a]*Log2(pb[a]);
for (a=0; a<20; ++a)
for (b=0; b<20; ++b)
{
- entropy-=P[a][b]*log2(R[a][b]);
+ entropy-=P[a][b]*Log2(R[a][b]);
mut_info += P[a][b]*S[a][b];
}
@@ -646,7 +646,7 @@ SetDnaSubstitutionMatrix()
//Precompute matrix R for amino acid pseudocounts:
for (a=0; a<20; ++a)
for (b=0; b<20; ++b)
- S[a][b] = log2(R[a][b]/pb[a]); // S[a][b] = log2(P(a,b)/P(a)/P(b))
+ S[a][b] = Log2(R[a][b]/pb[a]); // S[a][b] = log2(P(a,b)/P(a)/P(b))
// Evaluate sequence identity underlying substitution matrix
if (v>=3)
@@ -656,11 +656,11 @@ SetDnaSubstitutionMatrix()
float entropy_pb=0.0f;
float mut_info=0.0f;
for (a=0; a<20; ++a) id+=P[a][a];
- for (a=0; a<20; ++a) entropy_pb-=pb[a]*log2(pb[a]);
+ for (a=0; a<20; ++a) entropy_pb-=pb[a]*Log2(pb[a]);
for (a=0; a<20; ++a)
for (b=0; b<20; ++b)
{
- entropy-=P[a][b]*log2(R[a][b]);
+ entropy-=P[a][b]*Log2(R[a][b]);
mut_info += P[a][b]*S[a][b];
}
@@ -739,7 +739,7 @@ SetSecStrucSubstitutionMatrix()
for (B=0; B<NSSPRED; B++)
{
P73[A][B][cf] = 1.-par.ssa + par.ssa*Ppred[cf*NSSPRED*NDSSP + B*NDSSP + A];
- S73[A][B][cf] = log2(P73[A][B][cf]);
+ S73[A][B][cf] = Log2(P73[A][B][cf]);
}
for (B=0; B<NSSPRED; B++)
@@ -750,7 +750,7 @@ SetSecStrucSubstitutionMatrix()
sum=0;
for (A=1; A<NDSSP; A++)
sum += P73[A][B][cf] * P73[A][BB][ccf] * Pobs[A];
- S33[B][cf][BB][ccf] = log2(sum);
+ S33[B][cf][BB][ccf] = Log2(sum);
}
} /* this is the end of SetSecStrucSubstitutionMatrix() */
diff --git a/src/hhalign/hhutil-C.h b/src/hhalign/hhutil-C.h
index ddf81aa..b7b2981 100644
--- a/src/hhalign/hhutil-C.h
+++ b/src/hhalign/hhutil-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: hhutil-C.h 290 2013-09-20 15:18:12Z fabian $
+ * RCS $Id: hhutil-C.h 315 2016-12-15 17:18:30Z fabian $
*/
#define PARAMETERSFROMFILE 0
@@ -513,12 +513,12 @@ ReadDefaultsFile(int& argc_conf, char** argv_conf)
if (*c=='\0' || *c=='\n' || *c=='#') //Is end of line reached?
{
*c='\0';
- argv_conf[argc_conf]=new(char[strlen(c_first)+1]);
+ argv_conf[argc_conf]=new char[strlen(c_first)+1];
strcpy(argv_conf[argc_conf++],c_first);
break;
}
*c='\0';
- argv_conf[argc_conf]=new(char[strlen(c_first)+1]);
+ argv_conf[argc_conf]=new char[strlen(c_first)+1];
strcpy(argv_conf[argc_conf++],c_first);
printf("Argument: %s\n",c_first);
c++;
diff --git a/src/hhalign/util-C.h b/src/hhalign/util-C.h
index 224ce17..f3031f0 100644
--- a/src/hhalign/util-C.h
+++ b/src/hhalign/util-C.h
@@ -15,7 +15,7 @@
********************************************************************/
/*
- * RCS $Id: util-C.h 309 2016-06-13 14:10:11Z fabian $
+ * RCS $Id: util-C.h 316 2016-12-16 16:14:39Z fabian $
*/
// Utility subroutines
@@ -30,6 +30,7 @@
#endif
#include <sys/time.h>
//#include "new_new.h" /* memory tracking */
+#include "../config.h"
/////////////////////////////////////////////////////////////////////////////////////
// Arithmetics
@@ -51,8 +52,11 @@ inline int iround(double x) {return int(floor(x+0.5));}
inline double fmean(double x, double y, double d) { return pow( (pow(x,d)+pow(y,d))/2 ,1./d);}
// log base 2
-inline float log2(float x) {return (x<=0? (float)(-100000):1.442695041*log(x));}
-inline float log10(float x) {return (x<=0? (float)(-100000):0.434294481*log(x));}
+//#ifndef CLUSTAL_OMEGA_HAVE_LOG2
+//#ifndef HAVE_LOG2
+inline float Log2(float x) {return (x<=0? (float)(-100000):1.442695041*log(x));}
+inline float Log10(float x) {return (x<=0? (float)(-100000):0.434294481*log(x));}
+//#endif
/////////////////////////////////////////////////////////////////////////////////////
@@ -243,7 +247,7 @@ inline float NormalizeToX(float* array, int length, float x, float* def_array=NU
inline char* sprintg(float val, int w)
{
static char str[100];
- float log10val = log10(fabs(val));
+ float log10val = Log10(fabs(val));
int neg = (val<0? 1: 0);
if (log10val >= w-neg-1 || -log10val > 3)
{
diff --git a/src/squid/clustal.c b/src/squid/clustal.c
index 06f5400..650004a 100644
--- a/src/squid/clustal.c
+++ b/src/squid/clustal.c
@@ -14,7 +14,7 @@
* formatted files. Derivative of msf.c; MSF is a pretty
* generic interleaved format.
*
- * RCS $Id: clustal.c 312 2016-07-14 16:57:39Z fabian $ (Original squid RCS Id: clustal.c,v 1.1 1999/07/15 22:26:53 eddy Exp)
+ * RCS $Id: clustal.c 315 2016-12-15 17:18:30Z fabian $ (Original squid RCS Id: clustal.c,v 1.1 1999/07/15 22:26:53 eddy Exp)
*/
#include <stdbool.h>
@@ -291,12 +291,12 @@ WriteClustal(FILE *fp, MSA *msa)
}
/* printf("%*s") gives problems for unicode, FS, -> 290 */
/*fprintf(fp, "%-*s\t%s\t%d\n", namelen+5, msa->sqname[idx], buf, piResCnt[idx]);*/
- fprintf(fp, "%s%*s %s\t%d\n", msa->sqname[idx], namelen+5-utf8len(msa->sqname[idx]), "", buf, piResCnt[idx]);
+ fprintf(fp, "%s%*s %s\t%d\n", msa->sqname[idx], (int)(namelen+5-utf8len(msa->sqname[idx])), "", buf, piResCnt[idx]);
}
else {
/* printf("%*s") gives problems for unicode, FS, -> 290 */
/*fprintf(fp, "%-*s\t%s\n", namelen+5, msa->sqname[idx], buf);*/
- fprintf(fp, "%s%*s %s\n", msa->sqname[idx], namelen+5-utf8len(msa->sqname[idx]), "", buf);
+ fprintf(fp, "%s%*s %s\n", msa->sqname[idx], (int)(namelen+5-utf8len(msa->sqname[idx])), "", buf);
}
#else
fprintf(fp, "%*s %s\n", namelen, msa->sqname[idx], buf);
diff --git a/src/squid/hsregex.c b/src/squid/hsregex.c
index 52d4898..aaaeaf8 100644
--- a/src/squid/hsregex.c
+++ b/src/squid/hsregex.c
@@ -494,7 +494,7 @@ int *flagp;
register char *ret;
register char *chain;
register char *latest;
- int flags;
+ int flags = 0;
register int c;
*flagp = WORST; /* Tentatively. */
@@ -535,7 +535,7 @@ int *flagp;
register char *ret;
register char op;
register char *next;
- int flags;
+ int flags = 0;
ret = regatom(cp, &flags);
if (ret == NULL)
diff --git a/src/squid/msf.c b/src/squid/msf.c
index 6b59f91..b322441 100644
--- a/src/squid/msf.c
+++ b/src/squid/msf.c
@@ -14,7 +14,7 @@
* formatted files. Designed using format specifications
* kindly provided by Steve Smith of Genetics Computer Group.
*
- * RCS $Id: msf.c 217 2011-03-19 10:27:10Z andreas $ (Original squid RCS Id: msf.c,v 1.4 2001/04/23 00:35:33 eddy Exp)
+ * RCS $Id: msf.c 316 2016-12-16 16:14:39Z fabian $ (Original squid RCS Id: msf.c,v 1.4 2001/04/23 00:35:33 eddy Exp)
*/
#include <stdio.h>
@@ -80,9 +80,9 @@ ReadMSF(MSAFILE *afp)
{
MSA *msa;
char *s;
- int alleged_alen;
- int alleged_type;
- int alleged_checksum;
+ int alleged_alen = 0;
+ int alleged_type = 0;
+ int alleged_checksum = 0;
char *tok;
char *sp;
int slen;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/clustalo.git
More information about the debian-med-commit
mailing list