Commit 8bafffd9 authored by Roland Levillain's avatar Roland Levillain
Browse files

Merge branch 'cleanup' into next

Conflicts:
	ChangeLog
	milena/ChangeLog
parents 8fbf9f2f d4b9819e
2012-10-05 Roland Levillain <roland@lrde.epita.fr>
Update texi2dvi from upstream.
* build-aux/texi2dvi: Update from CVS Texinfo.
2012-10-05 Roland Levillain <roland@lrde.epita.fr>
Remove Trimesh sources from Olena.
* external/trimesh/,
* external/:
Remove.
* configure.ac,
* README:
Remove anything related to Trimesh.
No longer configure external/Makefile.
* Makefile.am (SUBDIRS): Remove external.
2012-10-05 Roland Levillain <roland@lrde.epita.fr>
No longer configure tests of apps depending on Trimesh.
* configure.ac: No longer configure
milena/apps/mesh-segm-skel/test-mesh-max-curv nor
milena/apps/mesh-segm-skel/test-mesh-segm.
2012-06-20 Roland Levillain <roland@lrde.epita.fr>
Ensure `bootstrap -r' regenerates all files.
* bootstrap: Here.
Aesthetic changes.
2012-06-11 Roland Levillain <roland@lrde.epita.fr>
Remove non-distributed headers not required by Milena nor Scribo.
* build-aux/generate_dist_headers.sh: No longer handle the third
argument (list of non-distributed files).
* milena/Makefile.am,
* scribo/Makefile.am
(regen-am, $(srcdir)/headers.mk): Adjust.
(EXTRA_DIST): Remove nodist-headers.
* milena/headers.mk,
* scribo/headers.mk:
Regen.
* milena/nodist-headers,
* scribo/nodist-headers:
Remove.
* milena/mln/accu/math/inf.hh,
* milena/mln/accu/math/sup.hh,
* milena/mln/core/image/vmorph/thru_image.hh,
* milena/mln/core/image/vmorph/thrubin_image.hh,
* milena/mln/data/was.median.hh,
* milena/mln/extract/all.hh,
* milena/mln/extract/blue.hh,
* milena/mln/extract/essential.hh,
* milena/mln/extract/green.hh,
* milena/mln/extract/hue.hh,
* milena/mln/extract/lum.hh,
* milena/mln/extract/red.hh,
* milena/mln/extract/sat.hh,
* milena/mln/fun/access/all.hh,
* milena/mln/fun/access/mean.hh,
* milena/mln/fun/accu_result.hh,
* milena/mln/fun/binary.hh,
* milena/mln/fun/binary_param.hh,
* milena/mln/fun/component/blue.hh,
* milena/mln/fun/component/comp.hh,
* milena/mln/fun/component/comp_count.hh,
* milena/mln/fun/component/green.hh,
* milena/mln/fun/component/ithcomp.hh,
* milena/mln/fun/component/red.hh,
* milena/mln/fun/component/rgb.hh,
* milena/mln/fun/component/scomp.hh,
* milena/mln/fun/compose.hh,
* milena/mln/fun/composition.hh,
* milena/mln/fun/from_accu.hh,
* milena/mln/fun/math/abs.hh,
* milena/mln/fun/math/cos.hh,
* milena/mln/fun/math/inf.hh,
* milena/mln/fun/math/norm.hh,
* milena/mln/fun/math/sup.hh,
* milena/mln/fun/meta/all.hh,
* milena/mln/fun/meta/blue.hh,
* milena/mln/fun/meta/essential.hh,
* milena/mln/fun/meta/first.hh,
* milena/mln/fun/meta/green.hh,
* milena/mln/fun/meta/hue.hh,
* milena/mln/fun/meta/inty.hh,
* milena/mln/fun/meta/lum.hh,
* milena/mln/fun/meta/red.hh,
* milena/mln/fun/meta/sat.hh,
* milena/mln/fun/meta/second.hh,
* milena/mln/fun/meta/to_enc.hh,
* milena/mln/fun/param.hh,
* milena/mln/fun/point/col.hh,
* milena/mln/fun/point/row.hh,
* milena/mln/fun/point/sli.hh,
* milena/mln/fun/spe/binary.hh,
* milena/mln/fun/spe/unary.hh,
* milena/mln/fun/unary.hh,
* milena/mln/fun/unary_param.hh,
* milena/mln/fun/v2v/hsi_to_rgb.hh,
* milena/mln/fun/v2v/rgb_to_hsi.hh,
* milena/mln/linear/gaussian/filter.hh,
* milena/mln/linear/gaussian/impl.hh,
* milena/mln/linear/gaussian/internal/coefficients.hh,
* milena/mln/registration/all.hh,
* milena/mln/registration/essential.hh,
* milena/mln/registration/get_rot.hh,
* milena/mln/registration/get_rtransf.hh,
* milena/mln/registration/icp.hh,
* milena/mln/registration/internal/rms.hh,
* milena/mln/registration/registration.hh,
* milena/mln/subsampling/all.hh,
* milena/mln/subsampling/essential.hh,
* milena/mln/subsampling/gaussian_subsampling.hh,
* milena/mln/subsampling/subsampling.hh,
* milena/mln/trait/functions.hh,
* milena/mln/trait/next/solve.hh,
* milena/mln/trait/next/solve_binary.hh,
* milena/mln/trait/next/solve_proxy.hh,
* milena/mln/trait/next/solve_unary.hh,
* milena/mln/value/hsi.hh,
* milena/mln/value/shell.hh,
* milena/mln/value/stack.hh,
Remove.
* milena/tests/unit_test/unit-tests.mk: Regen.
2012-06-11 Roland Levillain <roland@lrde.epita.fr>
Strip and remove files to match distributed files.
* configure.ac,
* milena/mln/accu/math/all.hh,
* milena/mln/all.hh,
* milena/mln/core/image/vmorph/all.hh,
* milena/mln/core/image/vmorph/fun_image.hh,
* milena/mln/data/all.hh,
* milena/mln/essential/routine.hh,
* milena/mln/fun/all.hh,
* milena/mln/fun/essential.hh,
* milena/mln/fun/v2v/all.hh,
* milena/mln/fun/v2v/essential.hh,
* milena/mln/linear/all.hh,
* milena/mln/trait/all.hh,
* milena/mln/trait/ch_value.hh,
* milena/mln/value/all.hh,
* milena/mln/value/essential.hh,
* milena/tests/Makefile.am,
* milena/tests/convert/Makefile.am,
* milena/tests/extract/Makefile.am,
* milena/tests/fun/v2v/Makefile.am,
* milena/tests/linear/Makefile.am,
* milena/tests/linear/gaussian/Makefile.am,
* milena/tests/registration/Makefile.am,
* milena/tests/trait/ch_value.cc,
* milena/tests/value/Makefile.am:
Strip (some) parts between tags `<<lrde' and `>>'.
* Makefile.am: Likewise.
(LRDE_STRIPPED_DIST_FILES, LRDE_NODIST_FILES, dist-hook): Remove.
* milena/tests/convert/to_hsl.cc,
* milena/tests/extract/blue.cc,
* milena/tests/extract/green.cc,
* milena/tests/extract/hue.cc,
* milena/tests/extract/lum.cc,
* milena/tests/extract/red.cc,
* milena/tests/extract/sat.cc,
* milena/tests/fun/v2v/component.cc,
* milena/tests/linear/gaussian/filter.cc,
* milena/tests/registration/registration.cc,
* milena/tests/value/stack.cc:
Remove.
* build-aux/strip-lrde: Remove.
2011-11-14 Roland Levillain <roland@lrde.epita.fr> 2011-11-14 Roland Levillain <roland@lrde.epita.fr>
* configure.ac: Configure milena/apps/morphers/Makefile. * configure.ac: Configure milena/apps/morphers/Makefile.
......
# Copyright (C) 2006, 2007, 2008, 2009, 2010 EPITA Research and Development # Copyright (C) 2006, 2007, 2008, 2009, 2010, 2012 EPITA Research and
# Laboratory (LRDE). # Development Laboratory (LRDE).
# #
# This file is part of Olena. # This file is part of Olena.
# #
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
SUBDIRS = build-aux external milena SUBDIRS = build-aux milena
if ENABLE_SWILENA if ENABLE_SWILENA
SUBDIRS += swilena SUBDIRS += swilena
...@@ -38,55 +38,6 @@ include $(top_srcdir)/build-aux/regen-recursive.mk ...@@ -38,55 +38,6 @@ include $(top_srcdir)/build-aux/regen-recursive.mk
REGEN_SUBDIRS += milena scribo REGEN_SUBDIRS += milena scribo
#<<lrde
## FIXME: All of this it too much ad hoc. Use Git branches to
## distinguish distributed files from non distributed ones after the
## conversion of the repository.
LRDE_STRIPPED_DIST_FILES = \
$(distdir)/Makefile.am \
$(distdir)/configure.ac \
$(distdir)/milena/mln/accu/math/all.hh \
$(distdir)/milena/mln/all.hh \
$(distdir)/milena/mln/core/image/vmorph/all.hh \
$(distdir)/milena/mln/core/image/vmorph/fun_image.hh \
$(distdir)/milena/mln/data/all.hh \
$(distdir)/milena/mln/essential/routine.hh \
$(distdir)/milena/mln/fun/all.hh \
$(distdir)/milena/mln/fun/essential.hh \
$(distdir)/milena/mln/fun/v2v/all.hh \
$(distdir)/milena/mln/fun/v2v/essential.hh \
$(distdir)/milena/mln/linear/all.hh \
$(distdir)/milena/mln/trait/all.hh \
$(distdir)/milena/mln/trait/ch_value.hh \
$(distdir)/milena/mln/value/all.hh \
$(distdir)/milena/mln/value/essential.hh \
$(distdir)/milena/tests/Makefile.am \
$(distdir)/milena/tests/convert/Makefile.am \
$(distdir)/milena/tests/extract/Makefile.am \
$(distdir)/milena/tests/fun/v2v/Makefile.am \
$(distdir)/milena/tests/linear/Makefile.am \
$(distdir)/milena/tests/linear/gaussian/Makefile.am \
$(distdir)/milena/tests/registration/Makefile.am \
$(distdir)/milena/tests/trait/ch_value.cc \
$(distdir)/milena/tests/value/Makefile.am
LRDE_NODIST_FILES = \
$(distdir)/milena/tests/convert/to_hsl.cc \
$(distdir)/milena/tests/extract/blue.cc \
$(distdir)/milena/tests/extract/green.cc \
$(distdir)/milena/tests/extract/hue.cc \
$(distdir)/milena/tests/extract/lum.cc \
$(distdir)/milena/tests/extract/red.cc \
$(distdir)/milena/tests/extract/sat.cc \
$(distdir)/milena/tests/fun/v2v/component.cc \
$(distdir)/milena/tests/fun/v2v/hsl_to_rgb.cc \
$(distdir)/milena/tests/fun/v2v/rgb_to_hsl.cc \
$(distdir)/milena/tests/linear/gaussian.cc \
$(distdir)/milena/tests/linear/gaussian/filter.cc \
$(distdir)/milena/tests/registration/registration.cc \
$(distdir)/milena/tests/value/stack.cc
PORTFILE=distrib/macports/Portfile PORTFILE=distrib/macports/Portfile
TARBALL_GZ=$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz TARBALL_GZ=$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz
...@@ -115,41 +66,6 @@ CLEANFILES = $(PORTFILE) ...@@ -115,41 +66,6 @@ CLEANFILES = $(PORTFILE)
port: $(PORTFILE) port: $(PORTFILE)
## FIXME: Running `build-aux/build_unit_test.sh' just to update
## `milena/tests/unit_test/unit-tests.mk' is overkill:
##
## 1. It recreates *all* the sources (more than 1200 `.cc' files!).
## => We should just regen `unit-tests.mk', not the `.cc' files.
##
## 2. It visits (almost) all the directories and files under
## milena/mln/ (which admittedly a smaller issue compared to the
## previous one)
## => Prune `unit-tests.mk' instead of regenerating it. The
## simplest solution is probably to equip `unit-tests.mk' in the
## first place with `<<lrde'/`>>' tags, then prune it with
## dist-strip.
##
# Do not distribute parts tagged `lrde' (see build-aux/strip-lrde).
dist-hook:
for f in $(LRDE_STRIPPED_DIST_FILES); do \
$(top_srcdir)/build-aux/strip-lrde $$f; \
done; \
rm -rf $(LRDE_NODIST_FILES) && \
$(top_srcdir)/build-aux/build_unit_test.sh \
$(distdir)/milena/mln \
$(distdir)/milena/tests/unit_test \
$(top_srcdir)/milena/tests/unit_test/disabled_tests \
mln \
&& \
( \
cd $(distdir); \
set -evx; \
autoreconf -f -v -i; \
find . -name autom4te.cache | xargs rm -rf \
)
# Set the package version to olena-x.x-snapshot-dd-mm-yy. # Set the package version to olena-x.x-snapshot-dd-mm-yy.
# #
# Do not check NEWS file (this is not a release so there is no # Do not check NEWS file (this is not a release so there is no
...@@ -163,4 +79,3 @@ snapshot: ...@@ -163,4 +79,3 @@ snapshot:
&& cp -f $(srcdir)/configure.ac.tmp $(srcdir)/configure.ac \ && cp -f $(srcdir)/configure.ac.tmp $(srcdir)/configure.ac \
&& $(MAKE) $(AM_MAKEFLAGS) dist \ && $(MAKE) $(AM_MAKEFLAGS) dist \
&& mv -f $(srcdir)/configure.ac.old $(srcdir)/configure.ac && mv -f $(srcdir)/configure.ac.old $(srcdir)/configure.ac
#>>
...@@ -278,15 +278,6 @@ installation of these applications use:: ...@@ -278,15 +278,6 @@ installation of these applications use::
./configure --enable-apps ./configure --enable-apps
Trimesh
-------
Trimesh, a third-party library that we have been using to manipulate
3D meshes, is shipped with Olena. (We will probably drop Trimesh from
the distribution someday.) To enable it, use::
./configure --enable-trimesh
Input/output libraries Input/output libraries
---------------------- ----------------------
...@@ -383,12 +374,6 @@ And optionally: ...@@ -383,12 +374,6 @@ And optionally:
* Swilena's Python bindings in `/usr/local/lib/python2.x/site-packages/', * Swilena's Python bindings in `/usr/local/lib/python2.x/site-packages/',
* Trimesh programs in `/usr/local/bin/',
* Trimesh libraries in `/usr/local/lib/',
* Trimesh headers in `/usr/local/share/trimesh/',
You can later remove Olena from your system by running You can later remove Olena from your system by running
......
...@@ -164,6 +164,11 @@ require hevea 1.10 -version ...@@ -164,6 +164,11 @@ require hevea 1.10 -version
# Regen files stored in the repository if asked so. # Regen files stored in the repository if asked so.
if $regen_p; then if $regen_p; then
# Generate `milena/headers.mk'.
(cd milena && ../build-aux/generate_dist_headers.sh mln headers.mk)
# Generate `scribo/headers.mk'.
(cd scribo && ../build-aux/generate_dist_headers.sh scribo headers.mk)
# Generate files of Milena's documentation. # Generate files of Milena's documentation.
# * Figures. # * Figures.
( (
...@@ -220,10 +225,16 @@ if $regen_p; then ...@@ -220,10 +225,16 @@ if $regen_p; then
) )
fi fi
# Generate unit test files. # Generate unit tests files. These actions are not part of the `-r'
run . ./build-aux/build_unit_test.sh `pwd`/milena/mln milena/tests/unit_test milena/tests/unit_test/disabled_tests mln # option, since unit tests files are not stored in the repository.
#
# Generate unit test files for Scribo. # * Milena unit tests files.
run . ./build-aux/build_unit_test.sh \
milena/mln \
milena/tests/unit_test \
milena/tests/unit_test/disabled_tests \
mln
# *Scribo unit tests files.
run . ./build-aux/build_unit_test.sh \ run . ./build-aux/build_unit_test.sh \
scribo/scribo \ scribo/scribo \
scribo/tests/unit_test \ scribo/tests/unit_test \
......
#! /bin/sh #! /bin/sh
# Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE). # Copyright (C) 2009, 2012 EPITA Research and Development Laboratory (LRDE).
# #
# This file is part of Olena. # This file is part of Olena.
# #
...@@ -25,26 +25,23 @@ ...@@ -25,26 +25,23 @@
# Use the C locale to have a deterministic sort. # Use the C locale to have a deterministic sort.
export LC_ALL=C export LC_ALL=C
if [ $# -ne 3 ] && [ $# -ne 5 ]; then if [ $# -ne 2 ] && [ $# -ne 4 ]; then
echo "$0 <scanned_dir> <output> <nodist-headers> [<module name> <inc_path>]" echo "Usage: $0 <scanned_dir> <output> [<module name> <inc_path>]"
exit 1 exit 1
fi fi
me=`basename $0` me=`basename $0`
scanned_dir=$1 scanned_dir=$1
output=$2 output=$2
nodist_headers=$3
test -f "$nodist_headers" \
|| { echo "$me: Cannot find \`$nodist_headers' in `pwd`."; exit 1; }
echo "Generating $output..." >&2 echo "Generating $output..." >&2
rm -f "$output" rm -f "$output"
if [ $# -eq 5 ]; then if [ $# -eq 4 ]; then
cat <<EOF > "$output" cat <<EOF > "$output"
## Generated by \`$me', do not edit by hand. ## Generated by \`$me', do not edit by hand.
$4dir = \$(includedir)/$5 $3dir = \$(includedir)/$4
nobase_$4_HEADERS = \\ nobase_$3_HEADERS = \\
EOF EOF
else else
cat <<EOF > "$output" cat <<EOF > "$output"
...@@ -57,7 +54,6 @@ fi ...@@ -57,7 +54,6 @@ fi
find $scanned_dir -type f -a \( -name '*.hh' -o -name '*.hxx' \) \ find $scanned_dir -type f -a \( -name '*.hh' -o -name '*.hxx' \) \
| sort \ | sort \
| comm -23 - "$nodist_headers" \
| sed -e 's/$/ \\/g' >> $output | sed -e 's/$/ \\/g' >> $output
...@@ -65,31 +61,3 @@ last_line=`tail -n 1 $output | sed -e 's/\\\//g'` # remove '\' in last line ...@@ -65,31 +61,3 @@ last_line=`tail -n 1 $output | sed -e 's/\\\//g'` # remove '\' in last line
sed '$d' < $output > $output.tmp # remove last line sed '$d' < $output > $output.tmp # remove last line
mv $output.tmp $output mv $output.tmp $output
echo $last_line >> $output # put the cleaned last line back. echo $last_line >> $output # put the cleaned last line back.
# Add non distributed files to installed headers list.
#
# Non distributed headers will be installed if the installation
# process is launched from the repository copy.
if [ $# -eq 5 ]; then
cat <<EOF >> "$output"
#<<lrde
nobase_$4_HEADERS += \\
EOF
else
cat <<EOF >> "$output"
#<<lrde
nobase_include_HEADERS += \\
EOF
fi
cat $nodist_headers | sed -e 's/$/ \\/g' >> $output
last_line=`tail -n 1 $output | sed -e 's/\\\//g'` # remove '\' in last line
sed '$d' < $output > $output.tmp # remove last line
mv $output.tmp $output
echo $last_line >> $output # put the cleaned last line back.
echo "#>>" >> $output
\ No newline at end of file
#! /bin/sh
# Copyright (C) 2007, 2009 EPITA Research and Development Laboratory (LRDE)
#
# This file is part of Olena.
#
# Olena is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free
# Software Foundation, version 2 of the License.
#
# Olena is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Olena. If not, see <http://www.gnu.org/licenses/>.
# Remove everything between `<<lrde' and `>>' (these tags being at the
# beginning of comment line starting with `#', `//' or `dnl').
exec perl -0777 -pi -e \
's,\n\s*(#|//|dnl)\s*<<lrde(.|\n)+?\n\s*(#|//|dnl)\s*>>\s*\n,\n\n,g' \
"$@"
#! /bin/sh #! /bin/sh
# texi2dvi --- produce DVI (or PDF) files from Texinfo (or (La)TeX) sources. # texi2dvi --- produce DVI (or PDF) files from Texinfo (or (La)TeX) sources.
# $Id: texi2dvi,v 1.157 2010/02/09 18:37:08 karl Exp $ # $Id: texi2dvi,v 1.173 2012/04/20 18:52:48 karl Exp $
# #
# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, # Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
# 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
# Free Software Foundation, Inc.
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
...@@ -33,7 +34,7 @@ unset RUNNING_KSH ...@@ -33,7 +34,7 @@ unset RUNNING_KSH
set -e set -e
# This string is expanded automatically when this file is checked out. # This string is expanded automatically when this file is checked out.
rcs_revision='$Revision: 1.157 $' rcs_revision='$Revision: 1.173 $'
rcs_version=`set - $rcs_revision; echo $2` rcs_version=`set - $rcs_revision; echo $2`
program=`echo $0 | sed -e 's!.*/!!'` program=`echo $0 | sed -e 's!.*/!!'`
...@@ -58,6 +59,7 @@ quiet=false # let the tools' message be displayed ...@@ -58,6 +59,7 @@ quiet=false # let the tools' message be displayed
recode=false recode=false
set_language= set_language=
src_specials= src_specials=
shell_escape=
latex2html=hevea # or set to tex4ht latex2html=hevea # or set to tex4ht
textra= # Extra TeX commands to insert in the input file. textra= # Extra TeX commands to insert in the input file.
txiprereq=19990129 # minimum texinfo.tex version with macro expansion txiprereq=19990129 # minimum texinfo.tex version with macro expansion
...@@ -129,13 +131,15 @@ test -n "$TEX" && test -d "$TEX" && unset TEX ...@@ -129,13 +131,15 @@ test -n "$TEX" && test -d "$TEX" && unset TEX
test_local () { test_local () {
local foo=foo local foo=foo
} }
test_local test_local >/dev/null 2>&1
test $foo = bar test $foo = bar
) || local () { ) || eval '
local () {
case $1 in case $1 in
*=*) eval "$1";; *=*) eval "$1";;
esac esac
} }
'
# cd_orig # cd_orig
...@@ -186,8 +190,8 @@ absolute () ...@@ -186,8 +190,8 @@ absolute ()
local rel local rel
rel=$orig_pwd/`func_dirname "$1"` rel=$orig_pwd/`func_dirname "$1"`
if test -d "$rel"; then if test -d "$rel"; then
(cd "$rel" 2>/dev/null && (cd "$rel" 2>/dev/null \
local n && local n
n=`pwd`/`basename "$1"`"$slashes" n=`pwd`/`basename "$1"`"$slashes"
echo "$n") echo "$n")
else else
...@@ -218,7 +222,7 @@ ensure_dir () ...@@ -218,7 +222,7 @@ ensure_dir ()
# error EXIT_STATUS LINE1 LINE2... # error EXIT_STATUS LINE1 LINE2...
# -------------------------------- # --------------------------------
# Report an error and exit with failure if EXIT_STATUS is non null. # Report an error and exit with failure if EXIT_STATUS is non-null.
error () error ()
{ {
local s="$1" local s="$1"
...@@ -248,8 +252,8 @@ findprog () ...@@ -248,8 +252,8 @@ findprog ()
# design decisions, so there is little chance to make them consistent.) # design decisions, so there is little chance to make them consistent.)
# Thusly, it seems to be difficult to make use of these enhancements. # Thusly, it seems to be difficult to make use of these enhancements.
# #
if { test -f "$dir/$1" && test -x "$dir/$1"; } || if { test -f "$dir/$1" && test -x "$dir/$1"; } \
{ test -f "$dir/$1.exe" && test -x "$dir/$1.exe"; }; then || { test -f "$dir/$1.exe" && test -x "$dir/$1.exe"; }; then
return 0 return 0
fi fi
done done
...@@ -274,8 +278,8 @@ report () ...@@ -274,8 +278,8 @@ report ()
run () run ()
{ {
verbose "Running $@" verbose "Running $@"
"$@" 2>&5 1>&2 || "$@" 2>&5 1>&2 \
error 1 "$1 failed" || error 1 "$1 failed"
} }