source: trunk/test/common_defs.sh.in @ 2451

Last change on this file since 2451 was 2451, checked in by Peter, 12 years ago

update copyright years

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.7 KB
Line 
1# @configure_input@
2# $Id: common_defs.sh.in 2451 2011-03-28 23:16:14Z peter $
3
4# Copyright (C) 2009, 2010, 2011 Peter Johansson
5#
6# This file is part of the yat library, http://dev.thep.lu.se/yat
7#
8# The yat library is free software; you can redistribute it
9# and/or modify it under the terms of the GNU General Public License as
10# published by the Free Software Foundation; either version 3 of the
11# License, or (at your option) any later version.
12#
13# The yat library is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16# General Public License for more details.
17#
18# You should have received a copy of the GNU General Public License
19# along with yat. If not, see <http://www.gnu.org/licenses/>.
20
21
22# function copied from GNU Automake 1.10.2
23#
24# is_newest FILE FILES
25# --------------------
26# Return false if any file in FILES is newer than FILE.
27# Resolve ties in favor of FILE.
28is_newest ()
29{
30  test x`find "$@" -newer "$1"` = x
31}
32
33#
34#
35bootstrap ()
36{
37    @MKDIR_P@ m4
38    autoreconf -siv && true
39    res=$?
40    case $res in
41        0)
42            :;;
43        63)
44            exit 77;;
45        *)
46            exit $res;;
47    esac
48}
49
50
51me=$0
52
53echo "=== Running $me ==="
54
55# if required tool is not available, exit 77 to skip test
56if test -n "$required"; then
57  for tool in $required; do
58    case $tool in
59      automake)
60      echo "$me: running $tool --version"
61      ($tool --version) || exit 77;
62      # skip test if automake older than v1.10
63      version_am=`$tool --version | head -n 1 | cut -f 2 -d ')'`
64      ver_major=`echo ${version_am} | cut -f 1 -d '.'`
65      test ${ver_major} -ge 1 || exit 77
66      ver_minor=`echo ${version_am} | cut -f 2 -d '.'`
67      test ${ver_major} -gt 1 || test ${ver_minor} -ge 10 || exit 77
68      ;;
69      libtool)
70      # GNU libtool comes as glibtool on Mac OS
71      (echo "$me: running libtool --version" && libtool --version) || \
72      (echo "$me: running glibtool --version" && glibtool --version) || exit 77
73      ;;
74      static)
75      if (test "x@enable_static@" = "xno"); then
76        echo static libyat disabled;
77        exit 77;
78      fi
79      ;;
80      *)
81      echo "$me: running $tool --version"
82      ($tool --version) || exit 77
83    esac
84  done
85fi
86 
87# some defs we need in tests
88test_dir=`echo $me.dir | sed -e 's,.*[\\/],,'`
89test_dir="testSubDir/$test_dir"
90abs_top_builddir=@abs_top_builddir@
91abs_top_srcdir=@abs_top_srcdir@
92move_if_change=@abs_top_srcdir@/build_support/move-if-change
93
94rm -rf $test_dir
95@MKDIR_P@ --verbose $test_dir
96
97cd $test_dir
98
99if (echo "$required" | grep autoconf > /dev/null); then
100echo "creating configure.ac"
101cat > configure.ac <<EOF
102AC_INIT([hello],[1.0])
103AC_CONFIG_SRCDIR([hello.cc])
104AM_INIT_AUTOMAKE([foreign])
105AC_CONFIG_MACRO_DIR([m4])
106AC_LANG(C++)
107AC_PROG_CXXCPP
108AC_PROG_CXX
109EOF
110if (echo "$required" | grep libtool > /dev/null); then
111echo AC_PROG_LIBTOOL >> configure.ac
112fi
113
114
115echo "creating Makefile.am"
116cat > Makefile.am <<EOF
117ACLOCAL_AMFLAGS = -I m4 -I ${abs_top_srcdir}/m4 --install
118AM_CPPFLAGS = \$(YAT_CPPFLAGS)
119AM_CXXFLAGS = \$(YAT_CXXFLAGS)
120LDADD = \$(YAT_LDADD)
121bin_PROGRAMS = hello
122TESTS = hello
123hello_SOURCES = hello.cc
124EOF
125
126echo "creating hello.cc"
127cat > hello.cc <<EOF
128#include <yat/utility/Vector.h>
129#include <yat/utility/version.h>
130#include <algorithm>
131#include <iostream>
132#include <string>
133int main(void)
134{
135  using namespace theplu::yat;
136  if (utility::version()!="@VERSION@") {
137    std::cerr << "Incorrect version of linked libyat\n";
138    return 1;
139  }
140  // testing something with gsl
141  utility::Vector v(10);
142  v.resize(120); 
143  // testing something with boost
144  std::copy(v.begin(), v.begin()+10, v.begin()+10);
145  return 0;
146}
147EOF
148fi #end of creation of autotool files
149
150# turn on shell traces when in verbose mode
151set -x
Note: See TracBrowser for help on using the repository browser.