blob: a6e4a6e720f6d4d7fcc0d5cee842faca75e945ff [file] [log] [blame]
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -e
usage() {
cat <<EOF
Run this script from a directory containing the Lucy Git repository in
subdir "lucy" and the Clownfish repo in subdir "clownfish". You can fetch
the repos with:
git clone https://git-wip-us.apache.org/repos/asf/lucy-clownfish.git \\
clownfish
git clone https://git-wip-us.apache.org/repos/asf/lucy.git
EOF
}
root="$(pwd)"
cfish_dir="$root/clownfish"
lucy_dir="$root/lucy"
tmp_dir="$lucy_dir/test_tmp"
if [ ! -f "$cfish_dir/runtime/core/Clownfish.cfp" ]; then
echo "Clownfish not found in $cfish_dir"
usage
exit 1
fi
if [ ! -f "$lucy_dir/core/Lucy.cfp" ]; then
echo "Lucy not found in $lucy_dir"
usage
exit 1
fi
set -x
rm -rf "$tmp_dir"
if [ -z "$1" -o "$1" = go ]; then
if [ -z "$GOPATH" ]; then
export GOPATH="$tmp_dir/go"
else
export GOPATH="$tmp_dir/go:$GOPATH"
fi
mkdir -p "$tmp_dir/go/src/git-wip-us.apache.org/repos/asf"
ln -s "$cfish_dir" \
"$tmp_dir/go/src/git-wip-us.apache.org/repos/asf/lucy-clownfish.git"
ln -s "$lucy_dir" \
"$tmp_dir/go/src/git-wip-us.apache.org/repos/asf/lucy.git"
cd "$cfish_dir/compiler/go"
go run build.go test
go run build.go install
cd ../../runtime/go
go run build.go test
go run build.go install
cd "$lucy_dir/go"
go run build.go test
go run build.go clean
cd "$cfish_dir/runtime/go"
go run build.go clean
cd "$cfish_dir/compiler/go"
go run build.go clean
cd "$root"
fi
if [ -z "$1" -o "$1" = perl ]; then
export PERL5LIB="$tmp_dir/perl/lib/perl5:$PERL5LIB"
cd "$cfish_dir/compiler/perl"
perl Build.PL
./Build test
./Build install --install-base "$tmp_dir/perl"
cd ../../runtime/perl
perl Build.PL
./Build test
./Build install --install-base "$tmp_dir/perl"
./Build realclean
cd "$lucy_dir/perl"
perl Build.PL
./Build test
./Build realclean
cd "$root"
fi
if [ -z "$1" -o "$1" = c ]; then
cd "$cfish_dir/compiler/c"
./configure --prefix="$tmp_dir/c"
make -j test
make install
cd ../../runtime/c
./configure --prefix="$tmp_dir/c"
make -j test
make install
make distclean
cd "$lucy_dir/c"
./configure --prefix="$tmp_dir/c" --clownfish-prefix "$tmp_dir/c"
make -j test
make install
make distclean
cd "$root"
fi
rm -rf "$tmp_dir"