# template.at -- test C++ templates with libtool              -*- Autotest -*-
#
#   Copyright (C) 2005, 2007, 2008 Free Software Foundation, Inc.
#   Written by Markus Christen, 2005
#
#   This file is part of GNU Libtool.
#
# GNU Libtool is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# GNU Libtool 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 GNU Libtool; see the file COPYING.  If not, a copy
# can be downloaded from  http://www.gnu.org/licenses/gpl.html,
# or obtained by writing to the Free Software Foundation, Inc.,
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
####

AT_BANNER([C++ template tests.])

AT_SETUP([simple template test])
LT_AT_TAG([CXX])
AT_KEYWORDS([libtool])

AT_DATA(aclib.h,
[[int cf(int);
]])

AT_DATA(aclib.cpp,
[[#include "aclib.h"
template<typename T>

T cq(T b)
{
  return b * 3;
}

int cf(int i)
{
  return cq(i);
}
]])

AT_DATA(alib.h,
[[int f(int);
]])

AT_DATA(alib.cpp,
[[#include "alib.h"

template<typename T>
T q(T b)
{
  return b * 2;
}

int f(int i)
{
  return q(i);
}
]])

AT_DATA(prog.cpp,
[[#include "alib.h"
#include "aclib.h"

int main()
{
  return f(3) + 3 - cf(3) != 0;
}
]])

AT_CHECK([$LIBTOOL --tag=CXX --mode=compile $CXX -I. $CPPFLAGS $CXXFLAGS -c -o alib.lo alib.cpp],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=compile $CXX -I. $CPPFLAGS $CXXFLAGS -c -o aclib.lo aclib.cpp],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CPPFLAGS $CXXFLAGS $LDFLAGS -o libaclib.la aclib.lo],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CPPFLAGS $CXXFLAGS $LDFLAGS -o libalib.la -rpath /nonexistent alib.lo libaclib.la],
	 [0], [ignore], [ignore])
AT_CHECK([$CXX -I. $CPPFLAGS $CXXFLAGS -c prog.cpp],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CPPFLAGS $CXXFLAGS $LDFLAGS -o prog prog.$OBJEXT libalib.la],
	 [0], [ignore], [ignore])

LT_AT_EXEC_CHECK([./prog], [0], [ignore], [ignore])


dnl with autoreconf, use:

dnl AT_DATA(configure.ac,
dnl [[AC_INIT([template_1], ]]AT_PACKAGE_VERSION[[, ]]AT_PACKAGE_BUGREPORT[[)
dnl AC_CONFIG_HEADERS([config.h:config-h.in])
dnl AC_CONFIG_MACRO_DIR([m4])
dnl AC_CONFIG_AUX_DIR([config])
dnl AM_INIT_AUTOMAKE([foreign])
dnl AC_LANG([C++])
dnl AC_PROG_CXX
dnl AC_PROG_LIBTOOL
dnl AC_CONFIG_FILES([Makefile])
dnl AC_OUTPUT
dnl ]])

dnl AT_DATA(Makefile.am,
dnl [[ACLOCAL_AMFLAGS = -I m4
dnl noinst_LTLIBRARIES = libaclib.la
dnl libaclib_la_SOURCES = aclib.cpp aclib.h
dnl lib_LTLIBRARIES = libalib.la
dnl include_HEADERS = alib.h
dnl libalib_la_SOURCES = alib.cpp
dnl libalib_la_LIBADD = libaclib.la
dnl bin_PROGRAMS = prog
dnl prog_SOURCES = prog.cpp
dnl LDADD = libalib.la
dnl ]])

AT_CLEANUP


AT_SETUP([template test with subdirs])
LT_AT_TAG([CXX])
AT_KEYWORDS([libtool])

noskip=:
# Mac OS X.
# The linker has issues with this test. 
case $host in
*-darwin*) noskip=false ;;
esac


CPPFLAGS="$CPPFLAGS -I../src/lib -I../src/lib2"

mkdir src obj
( cd src; mkdir lib lib2 sub )
( cd obj; mkdir lib lib2 sub )

AT_DATA(src/lib/a.hh,
[[template <class T>
unsigned int a(const T&);

template <class T>
unsigned int a(const T& t)
{
  return sizeof t;
}

extern int a2(char t);

inline int a3(const double* t)
{
  return a(t);
}
]])

AT_DATA(src/lib/a.cpp,
[[#include "a.hh"

int a2(char t)
{
  return a(t);
}
]])

AT_DATA(src/lib2/b.hh,
[[#include "a.hh"

template <class T>
unsigned int b(T& t)
{
  return a(t);
}
extern int b2(char* t);
struct bs { int bi; };
extern int b3(bs t);
]])

AT_DATA(src/lib2/b.cpp,
[[#include "b.hh"

int b2(char* t)
{
  return a2(t[0]);
}

int b3(bs t)
{
  return b(t);
}
]])

AT_DATA(src/sub/main.cpp,
[[#include "b.hh"

int main()
{
  double foo;
  const char s = ' ';
  char d;
  char *t = &d;
  return b(foo) + a3(&foo) + b2(t) - a(s)
         - (sizeof(double) + sizeof(double*));
}
]])

cd obj

# If the compiler supports -c -o, we want to use it:
# it may make a difference for templates
eval `$LIBTOOL --tag=CXX --config | grep ^compiler_c_o=`
case $compiler_c_o in
yes)
  main_o=sub/main.$OBJEXT
  AT_CHECK([$CXX $CPPFLAGS $CXXFLAGS -c -o $main_o ../src/sub/main.cpp],
  	   [0], [ignore], [ignore])
  ;;
*)
  main_o=main.$OBJEXT
  AT_CHECK([$CXX $CPPFLAGS $CXXFLAGS -c ../src/sub/main.cpp],
  	   [0], [ignore], [ignore])
  ;;
esac

AT_CHECK([$LIBTOOL --tag=CXX --mode=compile $CXX $CPPFLAGS $CXXFLAGS -c -o lib/a.lo ../src/lib/a.cpp],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=compile $CXX $CPPFLAGS $CXXFLAGS -c -o lib2/b.lo ../src/lib2/b.cpp],
	 [0], [ignore], [ignore])
AT_CHECK([$CXX $CPPFLAGS $CXXFLAGS -c ../src/sub/main.cpp],
	 [0], [ignore], [ignore])
# both convenience
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib/liba.la lib/a.lo],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main $main_o lib2/libb.la lib/liba.la],
	 [0], [ignore], [ignore])
LT_AT_EXEC_CHECK([./sub/main], [ignore])
# lib convenience
if $noskip; then
  AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo -rpath /foo],
	   [0], [ignore], [ignore])
  AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main $main_o lib2/libb.la lib/liba.la],
	   [0], [ignore], [ignore])
  LT_AT_EXEC_CHECK([./sub/main])
fi

# both installed
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib/liba.la lib/a.lo -rpath /foo],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo -rpath /bar],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main $main_o lib2/libb.la lib/liba.la],
	 [0], [ignore], [ignore])
LT_AT_EXEC_CHECK([./sub/main])
# both convenience, libb depending on liba
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib/liba.la lib/a.lo],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo lib/liba.la],
	 [0], [ignore], [ignore])
AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main $main_o lib2/libb.la],
	 [0], [ignore], [ignore])
LT_AT_EXEC_CHECK([./sub/main])
# lib convenience
if $noskip; then

  AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo lib/liba.la -rpath /foo],
  	 [0], [ignore], [ignore])
  AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main $main_o lib2/libb.la],
  	 [0], [ignore], [ignore])
  LT_AT_EXEC_CHECK([./sub/main])
fi
# both installed
if $noskip; then
  AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o lib2/libb.la lib2/b.lo lib/liba.la -rpath /bar],
  	 [0], [ignore], [ignore])
  AT_CHECK([$LIBTOOL --tag=CXX --mode=link $CXX $CXXFLAGS $LDFLAGS -o sub/main $main_o lib2/libb.la],
  	 [0], [ignore], [ignore])
  LT_AT_EXEC_CHECK([./sub/main])
fi

cd ..

AT_CHECK([$noskip || (exit 77)])

dnl with autoreconf use:
dnl
dnl AT_DATA(src/configure.ac,
dnl [[AC_INIT([template_2], ]]AT_PACKAGE_VERSION[[, ]]AT_PACKAGE_BUGREPORT[[)
dnl AC_CONFIG_HEADERS([config.h:config-h.in])
dnl AC_CONFIG_MACRO_DIR([m4])
dnl AC_CONFIG_AUX_DIR([config])
dnl AM_INIT_AUTOMAKE([foreign subdir-objects])
dnl AC_LANG([C++])
dnl AC_PROG_CXX
dnl AC_PROG_LIBTOOL
dnl AC_CONFIG_FILES([Makefile])
dnl AC_OUTPUT
dnl ]])
dnl
dnl AT_DATA(src/Makefile.am,
dnl [[ACLOCAL_AMFLAGS = -I m4
dnl INCLUDES = -I$(srcdir)/lib -I$(srcdir)/lib2
dnl bin_PROGRAMS = sub/main
dnl noinst_LTLIBRARIES = lib/liba.la lib2/libb.la
dnl lib_liba_la_SOURCES = lib/a.cpp lib/a.hh
dnl lib2_libb_la_SOURCES = lib2/b.cpp lib2/b.hh
dnl #lib2_libb_la_LIBADD = lib/liba.la
dnl sub_main_SOURCES = sub/main.cpp
dnl sub_main_LDADD = lib2/libb.la lib/liba.la
dnl ]])

AT_CLEANUP
