# ChangeLog for sci-biology/amap
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-biology/amap/ChangeLog,v 1.7 2011/03/26 10:56:00 xarthisius Exp $

*amap-2.2-r2 (26 Mar 2011)

  26 Mar 2011; Kacper Kowalik <xarthisius@gentoo.org> -amap-2.2-r1.ebuild,
  +amap-2.2-r2.ebuild, -files/amap-2.2-cxxflags.patch,
  -files/amap-2.2-gcc4.3.patch, +files/amap-2.2-includes.patch,
  +files/amap-2.2-makefile.patch:
  Clean java bits thanks to sera. General cleanup, fix linking order, fix
  building with gcc 4.6 wrt #360517. Drop old.

  10 Aug 2010; Kacper Kowalik <xarthisius@gentoo.org>
  -files/2.0-fix-cxxflags.patch, -amap-2.0.ebuild, -amap-2.2.ebuild,
  -files/2.1-fix-cxxflags.patch, -amap-2.1.ebuild, amap-2.2-r1.ebuild:
  Respect LDFLAGS wrt bug 332009. Thanks to Diego for report. Remove old.

*amap-2.2-r1 (27 Jul 2009)

  27 Jul 2009; Donnie Berkholz <dberkholz@gentoo.org>; +amap-2.2-r1.ebuild:
  Someone wasn't reading the upstream changelogs ... add an option to build
  the Java GUI.

*amap-2.2 (17 Apr 2008)

  17 Apr 2008; Markus Dittrich <markusle@gentoo.org>
  +files/amap-2.2-cxxflags.patch, +files/amap-2.2-gcc4.3.patch,
  +amap-2.2.ebuild:
  Version bump and gcc-4.3 compatibility patch (fixes bug #217921). Thanks
  much to Peter Alfredsen <peter.alfredsen@gmail.com> for his patches.

  15 Oct 2007; Jeff Gardner <je_fro@gentoo.org> amap-2.1.ebuild:
  Adding ~amd64

*amap-2.1 (13 Oct 2007)

  13 Oct 2007; Markus Dittrich <markusle@gentoo.org>
  +files/2.1-fix-cxxflags.patch, +amap-2.1.ebuild:
  Version bump (fixes bug #191861).

*amap-2.0 (11 Dec 2006)

  11 Dec 2006; Donnie Berkholz <dberkholz@gentoo.org>;
  +files/2.0-fix-cxxflags.patch, +metadata.xml, +amap-2.0.ebuild:
  New package: Protein multiple-alignment-based sequence annealing. It's based
  on ProbCons and adds sequence annealing. See the homepage for details.

