[med-svn] [opencfu] 01/02: Imported Upstream version 3.9.0

Andreas Tille tille at debian.org
Thu Oct 30 11:52:02 UTC 2014


This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository opencfu.

commit 738b6de365acf4b92ee251fae80f6828f188ea55
Author: Andreas Tille <tille at debian.org>
Date:   Thu Oct 30 12:50:55 2014 +0100

    Imported Upstream version 3.9.0
---
 AUTHORS                                        |    1 +
 COPYING                                        |  674 +++
 INSTALL                                        |   10 +
 Makefile.am                                    |  286 +
 Makefile.in                                    | 2327 ++++++++
 NEWS                                           |   60 +
 TODO                                           |   37 +
 aclocal.m4                                     | 1150 ++++
 build-aux/compile                              |  347 ++
 build-aux/depcomp                              |  791 +++
 build-aux/install-sh                           |  527 ++
 build-aux/missing                              |  215 +
 config.h.in                                    |  112 +
 configure                                      | 6810 ++++++++++++++++++++++++
 configure.ac                                   |  102 +
 data/banner.png                                |  Bin 0 -> 116867 bytes
 data/icons/128x128/opencfu.png                 |  Bin 0 -> 10447 bytes
 data/icons/48x48/opencfu.png                   |  Bin 0 -> 3839 bytes
 data/icons/scalable/opencfu.svg                |  504 ++
 data/logo.png                                  |  Bin 0 -> 10447 bytes
 data/noise-texture.png                         |  Bin 0 -> 72126 bytes
 data/trainedClassifier.xml                     | 1962 +++++++
 data/trainedClassifierPS.xml                   |  480 ++
 data/training-set1/Mult_B_0.png                |  Bin 0 -> 8148 bytes
 data/training-set1/Mult_C_0.png                |  Bin 0 -> 9228 bytes
 data/training-set1/Mult_D_0.png                |  Bin 0 -> 4334 bytes
 data/training-set1/Neg_B_0.png                 |  Bin 0 -> 282785 bytes
 data/training-set1/Sing_A_0.png                |  Bin 0 -> 5892 bytes
 data/training-set1/Sing_C_0.png                |  Bin 0 -> 28411 bytes
 data/training-set2/Neg_psB_1.png               |  Bin 0 -> 1054 bytes
 data/training-set2/Sing_psA_1.png              |  Bin 0 -> 2430 bytes
 data/training-set2/Sing_psc_1.png              |  Bin 0 -> 834 bytes
 m4/ax_cxx_compile_stdcxx_11.m4                 |  133 +
 m4/pkg.m4                                      |  155 +
 packagingScripts/opencfu.desktop               |   12 +
 src/classifier/headers/DataMaker.hpp           |   30 +
 src/classifier/main.cpp                        |   93 +
 src/classifier/src/DataMaker.cpp               |  169 +
 src/defines.hpp                                |   47 +
 src/gui/headers/Gui_ColourCluster.hpp          |   54 +
 src/gui/headers/Gui_ColourSelector.hpp         |   60 +
 src/gui/headers/Gui_ColourWheel.hpp            |   28 +
 src/gui/headers/Gui_ConfigIO.hpp               |   32 +
 src/gui/headers/Gui_ControlPanel.hpp           |   83 +
 src/gui/headers/Gui_Decorator.hpp              |   42 +
 src/gui/headers/Gui_Display.hpp                |  150 +
 src/gui/headers/Gui_DisplayBaseClass.hpp       |   64 +
 src/gui/headers/Gui_DisplayRoi.hpp             |   58 +
 src/gui/headers/Gui_HelloWindow.hpp            |   62 +
 src/gui/headers/Gui_ImgFileSetter.hpp          |  148 +
 src/gui/headers/Gui_LikFiltSelector.hpp        |   36 +
 src/gui/headers/Gui_MaskSetter.hpp             |  202 +
 src/gui/headers/Gui_MouseHandler.hpp           |   13 +
 src/gui/headers/Gui_MyApplication.hpp          |   32 +
 src/gui/headers/Gui_MyWindow.hpp               |   57 +
 src/gui/headers/Gui_OptionSetterBaseClass.hpp  |   42 +
 src/gui/headers/Gui_PixbufOpener.hpp           |   14 +
 src/gui/headers/Gui_ProcessorHandler.hpp       |   91 +
 src/gui/headers/Gui_RadiusSetter.hpp           |   38 +
 src/gui/headers/Gui_ResultDetails.hpp          |  107 +
 src/gui/headers/Gui_ResultDisplayBaseClass.hpp |   40 +
 src/gui/headers/Gui_ResultFileWriter.hpp       |   81 +
 src/gui/headers/Gui_ResultFrame.hpp            |   45 +
 src/gui/headers/Gui_ResultLabel.hpp            |   57 +
 src/gui/headers/Gui_ResultListDisplay.hpp      |   74 +
 src/gui/headers/Gui_ThresholdSetter.hpp        |   30 +
 src/gui/headers/Gui_UserFilterSetter.hpp       |   23 +
 src/gui/headers/ResultMap.hpp                  |   87 +
 src/gui/headers/text.hpp                       |  162 +
 src/gui/src/Gui_ColourCluster.cpp              |   53 +
 src/gui/src/Gui_ColourSelector.cpp             |   89 +
 src/gui/src/Gui_ColourWheel.cpp                |   88 +
 src/gui/src/Gui_ConfigIO.cpp                   |  136 +
 src/gui/src/Gui_ControlPanel.cpp               |   48 +
 src/gui/src/Gui_Decorator.cpp                  |  241 +
 src/gui/src/Gui_Display.cpp                    |   58 +
 src/gui/src/Gui_DisplayBaseClass.cpp           |  149 +
 src/gui/src/Gui_DisplayRoi.cpp                 |  175 +
 src/gui/src/Gui_HelloWindow.cpp                |   92 +
 src/gui/src/Gui_ImgFileSetter.cpp              |  256 +
 src/gui/src/Gui_LikFiltSelector.cpp            |   43 +
 src/gui/src/Gui_MaskSetter.cpp                 |  319 ++
 src/gui/src/Gui_MouseHandler.cpp               |    7 +
 src/gui/src/Gui_MyApplication.cpp              |   34 +
 src/gui/src/Gui_MyWindow.cpp                   |  102 +
 src/gui/src/Gui_OptionSetterBaseClass.cpp      |   38 +
 src/gui/src/Gui_PixbufOpener.cpp               |   29 +
 src/gui/src/Gui_ProcessorHandler.cpp           |   72 +
 src/gui/src/Gui_RadiusSetter.cpp               |   55 +
 src/gui/src/Gui_ResultDetails.cpp              |  208 +
 src/gui/src/Gui_ResultDisplayBaseClass.cpp     |   25 +
 src/gui/src/Gui_ResultFileWriter.cpp           |  153 +
 src/gui/src/Gui_ResultFrame.cpp                |   55 +
 src/gui/src/Gui_ResultLabel.cpp                |  134 +
 src/gui/src/Gui_ResultListDisplay.cpp          |  340 ++
 src/gui/src/Gui_ThresholdSetter.cpp            |   57 +
 src/gui/src/Gui_UserFilterSetter.cpp           |   49 +
 src/gui/src/ResultMap.cpp                      |   36 +
 src/main.cpp                                   |   55 +
 src/processor/headers/ArgumentParser.hpp       |   21 +
 src/processor/headers/ContourFamily.hpp        |   22 +
 src/processor/headers/ContourSpliter.hpp       |   18 +
 src/processor/headers/Features.hpp             |   26 +
 src/processor/headers/MaskROI.hpp              |   71 +
 src/processor/headers/Predictor.hpp            |   27 +
 src/processor/headers/ProcessingOptions.hpp    |  305 ++
 src/processor/headers/Processor.hpp            |   38 +
 src/processor/headers/Result.hpp               |  196 +
 src/processor/headers/Step_1.hpp               |   27 +
 src/processor/headers/Step_2.hpp               |   33 +
 src/processor/headers/Step_3.hpp               |   40 +
 src/processor/headers/Step_4.hpp               |   42 +
 src/processor/headers/Step_BaseClass.hpp       |   27 +
 src/processor/headers/Step_ColourCluster.hpp   |   73 +
 src/processor/headers/Step_FiltGUI.hpp         |   24 +
 src/processor/headers/Step_FiltHS.hpp          |   28 +
 src/processor/headers/Step_FiltIPosition2D.hpp |   32 +
 src/processor/headers/Step_FiltLik.hpp         |   32 +
 src/processor/src/ArgumentParser.cpp           |  171 +
 src/processor/src/ContourFamily.cpp            |   36 +
 src/processor/src/ContourSpliter.cpp           |  176 +
 src/processor/src/Features.cpp                 |  111 +
 src/processor/src/MaskROI.cpp                  |   93 +
 src/processor/src/Predictor.cpp                |   49 +
 src/processor/src/ProcessingOptions.cpp        |   46 +
 src/processor/src/Processor.cpp                |  106 +
 src/processor/src/Result.cpp                   |  335 ++
 src/processor/src/Step_1.cpp                   |   55 +
 src/processor/src/Step_2.cpp                   |   81 +
 src/processor/src/Step_3.cpp                   |  164 +
 src/processor/src/Step_4.cpp                   |  175 +
 src/processor/src/Step_BaseClass.cpp           |   55 +
 src/processor/src/Step_ColourCluster.cpp       |  153 +
 src/processor/src/Step_FiltGUI.cpp             |   31 +
 src/processor/src/Step_FiltHS.cpp              |   59 +
 src/processor/src/Step_FiltIPosition2D.cpp     |   92 +
 src/processor/src/Step_FiltLik.cpp             |  109 +
 137 files changed, 25421 insertions(+)

diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..58f07b4
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1 @@
+Quentin Geissmann <qgeissmann at gmail.com>
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..94a9ed0
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    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
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..6dccd9e
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,10 @@
+To compile and install OpenCFU, you will need the GNU development toolbox (
+i.e. autoconf, automake, make, gcc/g++). In most distribution, all these
+packages are in an installable group (e.g. "build-essensial").
+You also need OpenCV library and optionally, to have a GUI, Gtkmm.
+
+Then you can do the usual :
+
+./configure
+make
+make install
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..3c0542e
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,286 @@
+AUTOMAKE_OPTIONS = subdir-objects
+ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
+
+AM_CXXFLAGS = ${OPENCV_CFLAGS} ${OPENMP_CFLAGS} -Isrc/ -Wall
+#AM_LDFLAGS =    -fopenmp
+AM_LDFLAGS =   -Wall ${OPENMP_CFLAGS}
+
+
+if WIN32
+AM_CXXFLAGS += -mms-bitfields
+AM_LDFLAGS += -Wl,-subsystem,windows
+endif
+
+if DEV_MODE
+	AM_CXXFLAGS += -pg
+	AM_LDFLAGS += -pg
+	BETA = BETA
+endif
+
+noinst_PROGRAMS = trainer
+
+trainer_SOURCES = 	src/classifier/main.cpp \
+					src/classifier/src/DataMaker.cpp \
+					src/processor/src/Predictor.cpp \
+					src/processor/src/ContourFamily.cpp \
+					src/processor/src/Features.cpp
+
+trainer_SOURCES += src/classifier/headers/DataMaker.hpp src/defines.hpp
+
+trainer_CPPFLAGS = 	-Isrc/classifier/headers/ \
+					-Isrc/processor/headers/
+
+trainer_LDADD = ${OPENCV_LIBS}
+
+
+TRAINED_CLASSIF = data/trainedClassifier.xml
+TRAINED_CLASSIF_PS = data/trainedClassifierPS.xml
+
+$(TRAINED_CLASSIF): trainer
+	./trainer t $(TRAINED_CLASSIF)
+	./trainer w $(TRAINED_CLASSIF)
+
+
+$(TRAINED_CLASSIF_PS): trainer
+	./trainer t $(TRAINED_CLASSIF_PS) ps
+	./trainer w $(TRAINED_CLASSIF_PS) ps
+
+clean-local:
+	rm -f $(TRAINED_CLASSIF)
+	rm -f $(TRAINED_CLASSIF_PS)
+	rm -f *.tar.gz
+	rm -f *.exe
+
+
+DESKTOP_FILE = $(PKG_SCRIPT_DIR)/opencfu.desktop
+
+EXTRA_DIST = \
+data/training-set1/Mult_B_0.png\
+data/training-set1/Mult_C_0.png\
+data/training-set1/Mult_D_0.png\
+data/training-set1/Neg_B_0.png\
+data/training-set1/Sing_A_0.png\
+data/training-set1/Sing_C_0.png\
+data/training-set2/Neg_psB_1.png\
+data/training-set2/Sing_psA_1.png\
+data/training-set2/Sing_psc_1.png\
+$(DESKTOP_FILE)
+
+#######################################################
+bin_PROGRAMS = opencfu
+
+#NJL 13/AUG/2014
+#Step_ColourCluster.cpp/hpp added
+opencfu_SOURCES = 	src/main.cpp \
+					src/processor/src/ArgumentParser.cpp \
+					src/processor/src/ProcessingOptions.cpp\
+					src/processor/src/Step_BaseClass.cpp\
+					src/processor/src/Processor.cpp\
+					src/processor/src/Step_2.cpp\
+					src/processor/src/Step_3.cpp\
+					src/processor/src/Result.cpp\
+					src/processor/src/Features.cpp\
+					src/processor/src/Step_FiltGUI.cpp\
+					src/processor/src/Step_FiltHS.cpp\
+					src/processor/src/Step_FiltIPosition2D.cpp\
+					src/processor/src/Step_FiltLik.cpp\
+					src/processor/src/Step_1.cpp\
+					src/processor/src/Step_4.cpp\
+					src/processor/src/ContourFamily.cpp\
+					src/processor/src/Predictor.cpp\
+					src/processor/src/ContourSpliter.cpp\
+					src/processor/src/MaskROI.cpp\
+					src/processor/src/Step_ColourCluster.cpp
+
+
+
+opencfu_SOURCES +=  src/processor/headers/Features.hpp \
+                    src/processor/headers/Step_BaseClass.hpp\
+                    src/processor/headers/Predictor.hpp\
+                    src/processor/headers/ProcessingOptions.hpp\
+                    src/processor/headers/Step_4.hpp\
+                    src/processor/headers/Step_1.hpp\
+                    src/processor/headers/Processor.hpp\
+                    src/processor/headers/Result.hpp\
+                    src/processor/headers/ContourSpliter.hpp\
+                    src/processor/headers/Step_FiltLik.hpp\
+                    src/processor/headers/Step_3.hpp\
+                    src/processor/headers/Step_FiltHS.hpp\
+                    src/processor/headers/Step_FiltGUI.hpp\
+                    src/processor/headers/Step_FiltIPosition2D.hpp\
+                    src/processor/headers/Step_2.hpp\
+                    src/processor/headers/ArgumentParser.hpp\
+                    src/processor/headers/ContourFamily.hpp\
+                    src/processor/headers/MaskROI.hpp\
+		    src/processor/headers/Step_ColourCluster.hpp
+
+
+opencfu_CPPFLAGS = 	 -Isrc/processor/headers/
+opencfu_CPPFLAGS += -DINSTALLDIR='"$(pkgdatadir)"'
+opencfu_LDADD = ${OPENCV_LIBS}
+
+
+
+opencfudir = $(pkgdatadir)
+nobase_dist_opencfu_DATA = $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS)
+
+if USE_GUI
+nobase_dist_opencfu_DATA += data/banner.png data/logo.png data/noise-texture.png
+endif
+
+#\
+#data/icon_128px.png data/icon_64px.png data/icon_48px.png data/icon_24px.png
+
+###LINUX PACKAGING
+
+if USE_GUI
+applicationdir=$(datadir)/applications
+dist_application_DATA=packagingScripts/opencfu.desktop
+
+appiconSVGdir=$(datadir)/icons/hicolor/scalable/apps
+dist_appiconSVG_DATA=data/icons/scalable/opencfu.svg
+
+appicon128dir=$(datadir)/icons/hicolor/128x128/apps
+dist_appicon128_DATA=data/icons/128x128/opencfu.png
+
+appicon48dir=$(datadir)/icons/hicolor/48x48/apps
+dist_appicon48_DATA=data/icons/48x48/opencfu.png
+endif
+##
+
+if USE_GUI
+
+if WIN32
+AM_CXXFLAGS += -mwindows
+AM_LDFLAGS += -mwindows
+endif
+
+#NJL 13/AUG/2014
+#Gui_ColourCluster.cpp/hpp added
+opencfu_SOURCES += src/gui/src/Gui_ColourSelector.cpp\
+					src/gui/src/Gui_ColourWheel.cpp\
+					src/gui/src/Gui_ControlPanel.cpp\
+					src/gui/src/Gui_Decorator.cpp\
+					src/gui/src/Gui_DisplayBaseClass.cpp\
+					src/gui/src/Gui_Display.cpp\
+					src/gui/src/Gui_DisplayRoi.cpp\
+					src/gui/src/Gui_ImgFileSetter.cpp\
+					src/gui/src/Gui_LikFiltSelector.cpp\
+					src/gui/src/Gui_MouseHandler.cpp\
+					src/gui/src/Gui_MaskSetter.cpp\
+					src/gui/src/Gui_MyApplication.cpp\
+					src/gui/src/Gui_MyWindow.cpp\
+					src/gui/src/Gui_OptionSetterBaseClass.cpp\
+					src/gui/src/Gui_ProcessorHandler.cpp\
+					src/gui/src/Gui_RadiusSetter.cpp\
+					src/gui/src/Gui_ResultDetails.cpp\
+					src/gui/src/Gui_ResultDisplayBaseClass.cpp\
+					src/gui/src/Gui_ResultFileWriter.cpp\
+					src/gui/src/Gui_ResultFrame.cpp\
+					src/gui/src/Gui_ResultLabel.cpp\
+					src/gui/src/Gui_ResultListDisplay.cpp\
+					src/gui/src/Gui_ThresholdSetter.cpp\
+					src/gui/src/Gui_ConfigIO.cpp\
+					src/gui/src/Gui_HelloWindow.cpp\
+					src/gui/src/ResultMap.cpp\
+					src/gui/src/Gui_UserFilterSetter.cpp\
+					src/gui/src/Gui_PixbufOpener.cpp\
+					src/gui/src/Gui_ColourCluster.cpp
+
+
+
+opencfu_SOURCES +=  src/gui/headers/Gui_ColourSelector.hpp\
+                    src/gui/headers/Gui_ColourWheel.hpp\
+					src/gui/headers/Gui_ControlPanel.hpp\
+					src/gui/headers/Gui_Decorator.hpp\
+					src/gui/headers/Gui_DisplayBaseClass.hpp\
+					src/gui/headers/Gui_Display.hpp\
+					src/gui/headers/Gui_DisplayRoi.hpp\
+					src/gui/headers/Gui_ImgFileSetter.hpp\
+					src/gui/headers/Gui_LikFiltSelector.hpp\
+					src/gui/headers/Gui_MaskSetter.hpp\
+					src/gui/headers/Gui_MouseHandler.hpp\
+					src/gui/headers/Gui_MyApplication.hpp\
+					src/gui/headers/Gui_MyWindow.hpp\
+					src/gui/headers/Gui_OptionSetterBaseClass.hpp\
+					src/gui/headers/Gui_ProcessorHandler.hpp\
+					src/gui/headers/Gui_RadiusSetter.hpp\
+                    src/gui/headers/Gui_ResultDetails.hpp\
+					src/gui/headers/Gui_ResultDisplayBaseClass.hpp\
+					src/gui/headers/Gui_ResultFileWriter.hpp\
+					src/gui/headers/Gui_ResultFrame.hpp\
+					src/gui/headers/Gui_ResultLabel.hpp\
+					src/gui/headers/Gui_ResultListDisplay.hpp\
+					src/gui/headers/Gui_ThresholdSetter.hpp\
+					src/gui/headers/Gui_ConfigIO.hpp\
+					src/gui/headers/Gui_HelloWindow.hpp\
+					src/gui/headers/ResultMap.hpp\
+					src/gui/headers/Gui_UserFilterSetter.hpp\
+					src/gui/headers/Gui_PixbufOpener.hpp\
+					src/gui/headers/Gui_ColourCluster.hpp\
+					src/gui/headers/text.hpp
+
+opencfu_CPPFLAGS += ${GTKMM_CFLAGS}
+opencfu_CPPFLAGS += -Isrc/gui/headers/
+opencfu_LDADD += ${GTKMM_LIBS}
+
+endif
+
+PKG_SCRIPT_DIR=./packagingScripts
+
+
+MD5_FILE=$(PKG_SCRIPT_DIR)/md5.txt
+$(MD5_FILE): dist
+	md5sum  $(DIST_ARCHIVES) | cut -f 1 -d ' ' > $(MD5_FILE)
+
+MD5=`cat $(MD5_FILE)`
+
+publish_windows:$(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS) $(VERSION_FILE)
+	$(eval SETUP_NAME="OpenCFU-$(VERSION)$(BETA)_setup.exe")
+	sed s/^AppVerName=.*/AppVerName=$(VERSION)/ $(PKG_SCRIPT_DIR)/OpenCFU_noVersion.iss > $(PKG_SCRIPT_DIR)/OpenCFU.iss
+	ISCC.exe $(PKG_SCRIPT_DIR)/OpenCFU.iss
+	mv setup.exe $(SETUP_NAME)
+	rsync -avP -e ssh $(SETUP_NAME) quentelery,opencfu at frs.sourceforge.net:/home/frs/project/o/op/opencfu/windows
+
+
+
+PKGBUILD_FILE = $(PKG_SCRIPT_DIR)/PKGBUILD
+
+
+
+$(PKGBUILD_FILE): $(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS) $(MD5_FILE)
+	sed s/^pkgver=.*/pkgver=$(VERSION)/ $(PKGBUILD_FILE).template > $(PKGBUILD_FILE)
+	mv $(PKGBUILD_FILE) $(PKGBUILD_FILE).template
+	sed s/"^md5sums=('.*')"/"md5sums=($(MD5))"/ $(PKGBUILD_FILE).template > $(PKGBUILD_FILE)
+
+
+
+publish_linux: $(DESKTOP_FILE) $(PKGBUILD_FILE) $(DESKTOP_FILE)
+	rsync -avP -e ssh $(DIST_ARCHIVES) quentelery,opencfu at frs.sourceforge.net:/home/frs/project/o/op/opencfu/linux
+
+
+
+TMP_DEB:=$(shell mktemp --suffix='.opencfu' -u)
+#~ DEB_TAR:=$(TMP_DEB)$(DIST_ARCHIVES)
+DEB_TAR:= $(shell echo $(TMP_DEB)/$(DIST_ARCHIVES)| sed s/"-"/"_"/ |  sed s/".tar."/".orig.tar."/)
+DEB_DIR:=$(PKG_SCRIPT_DIR)/debian
+deb: dist
+	mkdir $(TMP_DEB)
+	cp $(DIST_ARCHIVES) $(DEB_TAR)
+	cp $(PKG_SCRIPT_DIR)/Makefile-deb $(TMP_DEB)/Makefile
+	cp $(DEB_DIR) $(TMP_DEB) -r
+	make -C  $(TMP_DEB) all
+	echo SUCCESS DEBIAN PACKAGE FILES ARE IN '$(TMP_DEB)'
+
+#	mv $(ls $(TMP_DEB))	$(ls $(TMP_DEB) | sed s/"-"/"_"/ |  sed s/".tar."/".orig.tar."/)
+#	rm -rf $(TMP_DEB)
+
+ref_results: $(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS)
+	./test/stressTest.sh make
+
+#check: $(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS)
+#	./test/stressTest.sh
+
+cleanall: clean-local
+	rm -f *.in *.m4 config.* configure *.log Makefile stamp-h1
+	rm -rf build-aux config *.cache
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..37ee383
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,2327 @@
+# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+ at WIN32_TRUE@am__append_1 = -mms-bitfields
+ at WIN32_TRUE@am__append_2 = -Wl,-subsystem,windows
+noinst_PROGRAMS = trainer$(EXEEXT)
+bin_PROGRAMS = opencfu$(EXEEXT)
+ at USE_GUI_TRUE@am__append_3 = data/banner.png data/logo.png data/noise-texture.png
+ at USE_GUI_TRUE@@WIN32_TRUE at am__append_4 = -mwindows
+ at USE_GUI_TRUE@@WIN32_TRUE at am__append_5 = -mwindows
+
+#NJL 13/AUG/2014
+#Gui_ColourCluster.cpp/hpp added
+ at USE_GUI_TRUE@am__append_6 = src/gui/src/Gui_ColourSelector.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ColourWheel.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ControlPanel.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_Decorator.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_DisplayBaseClass.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_Display.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_DisplayRoi.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ImgFileSetter.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_LikFiltSelector.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_MouseHandler.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_MaskSetter.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_MyApplication.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_MyWindow.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_OptionSetterBaseClass.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ProcessorHandler.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_RadiusSetter.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ResultDetails.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ResultDisplayBaseClass.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ResultFileWriter.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ResultFrame.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ResultLabel.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ResultListDisplay.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ThresholdSetter.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ConfigIO.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_HelloWindow.cpp \
+ at USE_GUI_TRUE@	src/gui/src/ResultMap.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_UserFilterSetter.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_PixbufOpener.cpp \
+ at USE_GUI_TRUE@	src/gui/src/Gui_ColourCluster.cpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ColourSelector.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ColourWheel.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ControlPanel.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_Decorator.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_DisplayBaseClass.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_Display.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_DisplayRoi.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ImgFileSetter.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_LikFiltSelector.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_MaskSetter.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_MouseHandler.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_MyApplication.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_MyWindow.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_OptionSetterBaseClass.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ProcessorHandler.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_RadiusSetter.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ResultDetails.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ResultDisplayBaseClass.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ResultFileWriter.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ResultFrame.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ResultLabel.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ResultListDisplay.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ThresholdSetter.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ConfigIO.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_HelloWindow.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/ResultMap.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_UserFilterSetter.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_PixbufOpener.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/Gui_ColourCluster.hpp \
+ at USE_GUI_TRUE@	src/gui/headers/text.hpp
+ at USE_GUI_TRUE@am__append_7 = ${GTKMM_CFLAGS} -Isrc/gui/headers/
+ at USE_GUI_TRUE@am__append_8 = ${GTKMM_LIBS}
+subdir = .
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(top_srcdir)/build-aux/depcomp \
+	$(am__dist_appicon128_DATA_DIST) \
+	$(am__dist_appicon48_DATA_DIST) \
+	$(am__dist_appiconSVG_DATA_DIST) \
+	$(am__dist_application_DATA_DIST) \
+	$(am__nobase_dist_opencfu_DATA_DIST) AUTHORS COPYING INSTALL \
+	NEWS TODO build-aux/compile build-aux/depcomp \
+	build-aux/install-sh build-aux/missing \
+	$(top_srcdir)/build-aux/compile \
+	$(top_srcdir)/build-aux/install-sh \
+	$(top_srcdir)/build-aux/missing
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/pkg.m4 \
+	$(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appicon128dir)" \
+	"$(DESTDIR)$(appicon48dir)" "$(DESTDIR)$(appiconSVGdir)" \
+	"$(DESTDIR)$(applicationdir)" "$(DESTDIR)$(opencfudir)"
+PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
+am__opencfu_SOURCES_DIST = src/main.cpp \
+	src/processor/src/ArgumentParser.cpp \
+	src/processor/src/ProcessingOptions.cpp \
+	src/processor/src/Step_BaseClass.cpp \
+	src/processor/src/Processor.cpp src/processor/src/Step_2.cpp \
+	src/processor/src/Step_3.cpp src/processor/src/Result.cpp \
+	src/processor/src/Features.cpp \
+	src/processor/src/Step_FiltGUI.cpp \
+	src/processor/src/Step_FiltHS.cpp \
+	src/processor/src/Step_FiltIPosition2D.cpp \
+	src/processor/src/Step_FiltLik.cpp \
+	src/processor/src/Step_1.cpp src/processor/src/Step_4.cpp \
+	src/processor/src/ContourFamily.cpp \
+	src/processor/src/Predictor.cpp \
+	src/processor/src/ContourSpliter.cpp \
+	src/processor/src/MaskROI.cpp \
+	src/processor/src/Step_ColourCluster.cpp \
+	src/processor/headers/Features.hpp \
+	src/processor/headers/Step_BaseClass.hpp \
+	src/processor/headers/Predictor.hpp \
+	src/processor/headers/ProcessingOptions.hpp \
+	src/processor/headers/Step_4.hpp \
+	src/processor/headers/Step_1.hpp \
+	src/processor/headers/Processor.hpp \
+	src/processor/headers/Result.hpp \
+	src/processor/headers/ContourSpliter.hpp \
+	src/processor/headers/Step_FiltLik.hpp \
+	src/processor/headers/Step_3.hpp \
+	src/processor/headers/Step_FiltHS.hpp \
+	src/processor/headers/Step_FiltGUI.hpp \
+	src/processor/headers/Step_FiltIPosition2D.hpp \
+	src/processor/headers/Step_2.hpp \
+	src/processor/headers/ArgumentParser.hpp \
+	src/processor/headers/ContourFamily.hpp \
+	src/processor/headers/MaskROI.hpp \
+	src/processor/headers/Step_ColourCluster.hpp \
+	src/gui/src/Gui_ColourSelector.cpp \
+	src/gui/src/Gui_ColourWheel.cpp \
+	src/gui/src/Gui_ControlPanel.cpp src/gui/src/Gui_Decorator.cpp \
+	src/gui/src/Gui_DisplayBaseClass.cpp \
+	src/gui/src/Gui_Display.cpp src/gui/src/Gui_DisplayRoi.cpp \
+	src/gui/src/Gui_ImgFileSetter.cpp \
+	src/gui/src/Gui_LikFiltSelector.cpp \
+	src/gui/src/Gui_MouseHandler.cpp \
+	src/gui/src/Gui_MaskSetter.cpp \
+	src/gui/src/Gui_MyApplication.cpp src/gui/src/Gui_MyWindow.cpp \
+	src/gui/src/Gui_OptionSetterBaseClass.cpp \
+	src/gui/src/Gui_ProcessorHandler.cpp \
+	src/gui/src/Gui_RadiusSetter.cpp \
+	src/gui/src/Gui_ResultDetails.cpp \
+	src/gui/src/Gui_ResultDisplayBaseClass.cpp \
+	src/gui/src/Gui_ResultFileWriter.cpp \
+	src/gui/src/Gui_ResultFrame.cpp \
+	src/gui/src/Gui_ResultLabel.cpp \
+	src/gui/src/Gui_ResultListDisplay.cpp \
+	src/gui/src/Gui_ThresholdSetter.cpp \
+	src/gui/src/Gui_ConfigIO.cpp src/gui/src/Gui_HelloWindow.cpp \
+	src/gui/src/ResultMap.cpp src/gui/src/Gui_UserFilterSetter.cpp \
+	src/gui/src/Gui_PixbufOpener.cpp \
+	src/gui/src/Gui_ColourCluster.cpp \
+	src/gui/headers/Gui_ColourSelector.hpp \
+	src/gui/headers/Gui_ColourWheel.hpp \
+	src/gui/headers/Gui_ControlPanel.hpp \
+	src/gui/headers/Gui_Decorator.hpp \
+	src/gui/headers/Gui_DisplayBaseClass.hpp \
+	src/gui/headers/Gui_Display.hpp \
+	src/gui/headers/Gui_DisplayRoi.hpp \
+	src/gui/headers/Gui_ImgFileSetter.hpp \
+	src/gui/headers/Gui_LikFiltSelector.hpp \
+	src/gui/headers/Gui_MaskSetter.hpp \
+	src/gui/headers/Gui_MouseHandler.hpp \
+	src/gui/headers/Gui_MyApplication.hpp \
+	src/gui/headers/Gui_MyWindow.hpp \
+	src/gui/headers/Gui_OptionSetterBaseClass.hpp \
+	src/gui/headers/Gui_ProcessorHandler.hpp \
+	src/gui/headers/Gui_RadiusSetter.hpp \
+	src/gui/headers/Gui_ResultDetails.hpp \
+	src/gui/headers/Gui_ResultDisplayBaseClass.hpp \
+	src/gui/headers/Gui_ResultFileWriter.hpp \
+	src/gui/headers/Gui_ResultFrame.hpp \
+	src/gui/headers/Gui_ResultLabel.hpp \
+	src/gui/headers/Gui_ResultListDisplay.hpp \
+	src/gui/headers/Gui_ThresholdSetter.hpp \
+	src/gui/headers/Gui_ConfigIO.hpp \
+	src/gui/headers/Gui_HelloWindow.hpp \
+	src/gui/headers/ResultMap.hpp \
+	src/gui/headers/Gui_UserFilterSetter.hpp \
+	src/gui/headers/Gui_PixbufOpener.hpp \
+	src/gui/headers/Gui_ColourCluster.hpp src/gui/headers/text.hpp
+am__dirstamp = $(am__leading_dot)dirstamp
+ at USE_GUI_TRUE@am__objects_1 = src/gui/src/opencfu-Gui_ColourSelector.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ColourWheel.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ControlPanel.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_Decorator.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_DisplayBaseClass.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_Display.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_DisplayRoi.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ImgFileSetter.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_LikFiltSelector.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_MouseHandler.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_MaskSetter.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_MyApplication.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_MyWindow.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_OptionSetterBaseClass.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ProcessorHandler.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_RadiusSetter.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ResultDetails.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ResultDisplayBaseClass.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ResultFileWriter.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ResultFrame.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ResultLabel.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ResultListDisplay.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ThresholdSetter.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ConfigIO.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_HelloWindow.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-ResultMap.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_UserFilterSetter.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_PixbufOpener.$(OBJEXT) \
+ at USE_GUI_TRUE@	src/gui/src/opencfu-Gui_ColourCluster.$(OBJEXT)
+am_opencfu_OBJECTS = src/opencfu-main.$(OBJEXT) \
+	src/processor/src/opencfu-ArgumentParser.$(OBJEXT) \
+	src/processor/src/opencfu-ProcessingOptions.$(OBJEXT) \
+	src/processor/src/opencfu-Step_BaseClass.$(OBJEXT) \
+	src/processor/src/opencfu-Processor.$(OBJEXT) \
+	src/processor/src/opencfu-Step_2.$(OBJEXT) \
+	src/processor/src/opencfu-Step_3.$(OBJEXT) \
+	src/processor/src/opencfu-Result.$(OBJEXT) \
+	src/processor/src/opencfu-Features.$(OBJEXT) \
+	src/processor/src/opencfu-Step_FiltGUI.$(OBJEXT) \
+	src/processor/src/opencfu-Step_FiltHS.$(OBJEXT) \
+	src/processor/src/opencfu-Step_FiltIPosition2D.$(OBJEXT) \
+	src/processor/src/opencfu-Step_FiltLik.$(OBJEXT) \
+	src/processor/src/opencfu-Step_1.$(OBJEXT) \
+	src/processor/src/opencfu-Step_4.$(OBJEXT) \
+	src/processor/src/opencfu-ContourFamily.$(OBJEXT) \
+	src/processor/src/opencfu-Predictor.$(OBJEXT) \
+	src/processor/src/opencfu-ContourSpliter.$(OBJEXT) \
+	src/processor/src/opencfu-MaskROI.$(OBJEXT) \
+	src/processor/src/opencfu-Step_ColourCluster.$(OBJEXT) \
+	$(am__objects_1)
+opencfu_OBJECTS = $(am_opencfu_OBJECTS)
+am__DEPENDENCIES_1 =
+ at USE_GUI_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+opencfu_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+am_trainer_OBJECTS = src/classifier/trainer-main.$(OBJEXT) \
+	src/classifier/src/trainer-DataMaker.$(OBJEXT) \
+	src/processor/src/trainer-Predictor.$(OBJEXT) \
+	src/processor/src/trainer-ContourFamily.$(OBJEXT) \
+	src/processor/src/trainer-Features.$(OBJEXT)
+trainer_OBJECTS = $(am_trainer_OBJECTS)
+trainer_DEPENDENCIES = $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_ at AM_V@)
+am__v_P_ = $(am__v_P_ at AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_ at AM_V@)
+am__v_GEN_ = $(am__v_GEN_ at AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_ at AM_V@)
+am__v_at_ = $(am__v_at_ at AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I. at am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+AM_V_lt = $(am__v_lt_ at AM_V@)
+am__v_lt_ = $(am__v_lt_ at AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+AM_V_CXX = $(am__v_CXX_ at AM_V@)
+am__v_CXX_ = $(am__v_CXX_ at AM_DEFAULT_V@)
+am__v_CXX_0 = @echo "  CXX     " $@;
+am__v_CXX_1 = 
+CXXLD = $(CXX)
+CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
+AM_V_CXXLD = $(am__v_CXXLD_ at AM_V@)
+am__v_CXXLD_ = $(am__v_CXXLD_ at AM_DEFAULT_V@)
+am__v_CXXLD_0 = @echo "  CXXLD   " $@;
+am__v_CXXLD_1 = 
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_ at AM_V@)
+am__v_CC_ = $(am__v_CC_ at AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_ at AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_ at AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = $(opencfu_SOURCES) $(trainer_SOURCES)
+DIST_SOURCES = $(am__opencfu_SOURCES_DIST) $(trainer_SOURCES)
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__dist_appicon128_DATA_DIST = data/icons/128x128/opencfu.png
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+  test -z "$$files" \
+    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+         $(am__cd) "$$dir" && rm -f $$files; }; \
+  }
+am__dist_appicon48_DATA_DIST = data/icons/48x48/opencfu.png
+am__dist_appiconSVG_DATA_DIST = data/icons/scalable/opencfu.svg
+am__dist_application_DATA_DIST = packagingScripts/opencfu.desktop
+am__nobase_dist_opencfu_DATA_DIST = data/trainedClassifier.xml \
+	data/trainedClassifierPS.xml data/banner.png data/logo.png \
+	data/noise-texture.png
+DATA = $(dist_appicon128_DATA) $(dist_appicon48_DATA) \
+	$(dist_appiconSVG_DATA) $(dist_application_DATA) \
+	$(nobase_dist_opencfu_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+CSCOPE = cscope
+AM_RECURSIVE_TARGETS = cscope
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+  if test -d "$(distdir)"; then \
+    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+      && rm -rf "$(distdir)" \
+      || { sleep 5 && rm -rf "$(distdir)"; }; \
+  else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+DIST_TARGETS = dist-gzip
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+  | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+GREP = @GREP@
+GTKMM_CFLAGS = @GTKMM_CFLAGS@
+GTKMM_LIBS = @GTKMM_LIBS@
+HAVE_CXX11 = @HAVE_CXX11@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
+OPENCV_CFLAGS = @OPENCV_CFLAGS@
+OPENCV_LIBS = @OPENCV_LIBS@
+OPENMP_CFLAGS = @OPENMP_CFLAGS@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build_alias = @build_alias@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host_alias = @host_alias@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = subdir-objects
+ACLOCAL_AMFLAGS = ${ACLOCAL_FLAGS}
+AM_CXXFLAGS = ${OPENCV_CFLAGS} ${OPENMP_CFLAGS} -Isrc/ -Wall \
+	$(am__append_1) $(am__append_4)
+#AM_LDFLAGS =    -fopenmp
+AM_LDFLAGS = -Wall ${OPENMP_CFLAGS} $(am__append_2) $(am__append_5)
+trainer_SOURCES = src/classifier/main.cpp \
+	src/classifier/src/DataMaker.cpp \
+	src/processor/src/Predictor.cpp \
+	src/processor/src/ContourFamily.cpp \
+	src/processor/src/Features.cpp \
+	src/classifier/headers/DataMaker.hpp src/defines.hpp
+trainer_CPPFLAGS = -Isrc/classifier/headers/ \
+					-Isrc/processor/headers/
+
+trainer_LDADD = ${OPENCV_LIBS}
+TRAINED_CLASSIF = data/trainedClassifier.xml
+TRAINED_CLASSIF_PS = data/trainedClassifierPS.xml
+DESKTOP_FILE = $(PKG_SCRIPT_DIR)/opencfu.desktop
+EXTRA_DIST = \
+data/training-set1/Mult_B_0.png\
+data/training-set1/Mult_C_0.png\
+data/training-set1/Mult_D_0.png\
+data/training-set1/Neg_B_0.png\
+data/training-set1/Sing_A_0.png\
+data/training-set1/Sing_C_0.png\
+data/training-set2/Neg_psB_1.png\
+data/training-set2/Sing_psA_1.png\
+data/training-set2/Sing_psc_1.png\
+$(DESKTOP_FILE)
+
+
+#NJL 13/AUG/2014
+#Step_ColourCluster.cpp/hpp added
+opencfu_SOURCES = src/main.cpp src/processor/src/ArgumentParser.cpp \
+	src/processor/src/ProcessingOptions.cpp \
+	src/processor/src/Step_BaseClass.cpp \
+	src/processor/src/Processor.cpp src/processor/src/Step_2.cpp \
+	src/processor/src/Step_3.cpp src/processor/src/Result.cpp \
+	src/processor/src/Features.cpp \
+	src/processor/src/Step_FiltGUI.cpp \
+	src/processor/src/Step_FiltHS.cpp \
+	src/processor/src/Step_FiltIPosition2D.cpp \
+	src/processor/src/Step_FiltLik.cpp \
+	src/processor/src/Step_1.cpp src/processor/src/Step_4.cpp \
+	src/processor/src/ContourFamily.cpp \
+	src/processor/src/Predictor.cpp \
+	src/processor/src/ContourSpliter.cpp \
+	src/processor/src/MaskROI.cpp \
+	src/processor/src/Step_ColourCluster.cpp \
+	src/processor/headers/Features.hpp \
+	src/processor/headers/Step_BaseClass.hpp \
+	src/processor/headers/Predictor.hpp \
+	src/processor/headers/ProcessingOptions.hpp \
+	src/processor/headers/Step_4.hpp \
+	src/processor/headers/Step_1.hpp \
+	src/processor/headers/Processor.hpp \
+	src/processor/headers/Result.hpp \
+	src/processor/headers/ContourSpliter.hpp \
+	src/processor/headers/Step_FiltLik.hpp \
+	src/processor/headers/Step_3.hpp \
+	src/processor/headers/Step_FiltHS.hpp \
+	src/processor/headers/Step_FiltGUI.hpp \
+	src/processor/headers/Step_FiltIPosition2D.hpp \
+	src/processor/headers/Step_2.hpp \
+	src/processor/headers/ArgumentParser.hpp \
+	src/processor/headers/ContourFamily.hpp \
+	src/processor/headers/MaskROI.hpp \
+	src/processor/headers/Step_ColourCluster.hpp $(am__append_6)
+opencfu_CPPFLAGS = -Isrc/processor/headers/ \
+	-DINSTALLDIR='"$(pkgdatadir)"' $(am__append_7)
+opencfu_LDADD = ${OPENCV_LIBS} $(am__append_8)
+opencfudir = $(pkgdatadir)
+nobase_dist_opencfu_DATA = $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS) \
+	$(am__append_3)
+
+#\
+#data/icon_128px.png data/icon_64px.png data/icon_48px.png data/icon_24px.png
+
+###LINUX PACKAGING
+ at USE_GUI_TRUE@applicationdir = $(datadir)/applications
+ at USE_GUI_TRUE@dist_application_DATA = packagingScripts/opencfu.desktop
+ at USE_GUI_TRUE@appiconSVGdir = $(datadir)/icons/hicolor/scalable/apps
+ at USE_GUI_TRUE@dist_appiconSVG_DATA = data/icons/scalable/opencfu.svg
+ at USE_GUI_TRUE@appicon128dir = $(datadir)/icons/hicolor/128x128/apps
+ at USE_GUI_TRUE@dist_appicon128_DATA = data/icons/128x128/opencfu.png
+ at USE_GUI_TRUE@appicon48dir = $(datadir)/icons/hicolor/48x48/apps
+ at USE_GUI_TRUE@dist_appicon48_DATA = data/icons/48x48/opencfu.png
+PKG_SCRIPT_DIR = ./packagingScripts
+MD5_FILE = $(PKG_SCRIPT_DIR)/md5.txt
+MD5 = `cat $(MD5_FILE)`
+PKGBUILD_FILE = $(PKG_SCRIPT_DIR)/PKGBUILD
+TMP_DEB := $(shell mktemp --suffix='.opencfu' -u)
+#~ DEB_TAR:=$(TMP_DEB)$(DIST_ARCHIVES)
+DEB_TAR := $(shell echo $(TMP_DEB)/$(DIST_ARCHIVES)| sed s/"-"/"_"/ |  sed s/".tar."/".orig.tar."/)
+DEB_DIR := $(PKG_SCRIPT_DIR)/debian
+all: config.h
+	$(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+.SUFFIXES: .cpp .o .obj
+am--refresh: Makefile
+	@:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    echo ' $(SHELL) ./config.status'; \
+	    $(SHELL) ./config.status;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	$(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+	@test -f $@ || rm -f stamp-h1
+	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+	@rm -f stamp-h1
+	cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in:  $(am__configure_deps) 
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	rm -f stamp-h1
+	touch $@
+
+distclean-hdr:
+	-rm -f config.h stamp-h1
+install-binPROGRAMS: $(bin_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+	fi; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	      echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	      $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
+
+uninstall-binPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+
+clean-noinstPROGRAMS:
+	-test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+src/$(am__dirstamp):
+	@$(MKDIR_P) src
+	@: > src/$(am__dirstamp)
+src/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/$(DEPDIR)
+	@: > src/$(DEPDIR)/$(am__dirstamp)
+src/opencfu-main.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/$(am__dirstamp):
+	@$(MKDIR_P) src/processor/src
+	@: > src/processor/src/$(am__dirstamp)
+src/processor/src/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/processor/src/$(DEPDIR)
+	@: > src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-ArgumentParser.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-ProcessingOptions.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_BaseClass.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Processor.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_2.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_3.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Result.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Features.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_FiltGUI.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_FiltHS.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_FiltIPosition2D.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_FiltLik.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_1.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_4.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-ContourFamily.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Predictor.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-ContourSpliter.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-MaskROI.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/opencfu-Step_ColourCluster.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/$(am__dirstamp):
+	@$(MKDIR_P) src/gui/src
+	@: > src/gui/src/$(am__dirstamp)
+src/gui/src/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/gui/src/$(DEPDIR)
+	@: > src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ColourSelector.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ColourWheel.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ControlPanel.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_Decorator.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_DisplayBaseClass.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_Display.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_DisplayRoi.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ImgFileSetter.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_LikFiltSelector.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_MouseHandler.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_MaskSetter.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_MyApplication.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_MyWindow.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_OptionSetterBaseClass.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ProcessorHandler.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_RadiusSetter.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ResultDetails.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ResultDisplayBaseClass.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ResultFileWriter.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ResultFrame.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ResultLabel.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ResultListDisplay.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ThresholdSetter.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ConfigIO.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_HelloWindow.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-ResultMap.$(OBJEXT): src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_UserFilterSetter.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_PixbufOpener.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+src/gui/src/opencfu-Gui_ColourCluster.$(OBJEXT):  \
+	src/gui/src/$(am__dirstamp) \
+	src/gui/src/$(DEPDIR)/$(am__dirstamp)
+
+opencfu$(EXEEXT): $(opencfu_OBJECTS) $(opencfu_DEPENDENCIES) $(EXTRA_opencfu_DEPENDENCIES) 
+	@rm -f opencfu$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(opencfu_OBJECTS) $(opencfu_LDADD) $(LIBS)
+src/classifier/$(am__dirstamp):
+	@$(MKDIR_P) src/classifier
+	@: > src/classifier/$(am__dirstamp)
+src/classifier/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/classifier/$(DEPDIR)
+	@: > src/classifier/$(DEPDIR)/$(am__dirstamp)
+src/classifier/trainer-main.$(OBJEXT): src/classifier/$(am__dirstamp) \
+	src/classifier/$(DEPDIR)/$(am__dirstamp)
+src/classifier/src/$(am__dirstamp):
+	@$(MKDIR_P) src/classifier/src
+	@: > src/classifier/src/$(am__dirstamp)
+src/classifier/src/$(DEPDIR)/$(am__dirstamp):
+	@$(MKDIR_P) src/classifier/src/$(DEPDIR)
+	@: > src/classifier/src/$(DEPDIR)/$(am__dirstamp)
+src/classifier/src/trainer-DataMaker.$(OBJEXT):  \
+	src/classifier/src/$(am__dirstamp) \
+	src/classifier/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/trainer-Predictor.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/trainer-ContourFamily.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+src/processor/src/trainer-Features.$(OBJEXT):  \
+	src/processor/src/$(am__dirstamp) \
+	src/processor/src/$(DEPDIR)/$(am__dirstamp)
+
+trainer$(EXEEXT): $(trainer_OBJECTS) $(trainer_DEPENDENCIES) $(EXTRA_trainer_DEPENDENCIES) 
+	@rm -f trainer$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(trainer_OBJECTS) $(trainer_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+	-rm -f src/*.$(OBJEXT)
+	-rm -f src/classifier/*.$(OBJEXT)
+	-rm -f src/classifier/src/*.$(OBJEXT)
+	-rm -f src/gui/src/*.$(OBJEXT)
+	-rm -f src/processor/src/*.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at src/$(DEPDIR)/opencfu-main.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/classifier/$(DEPDIR)/trainer-main.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/classifier/src/$(DEPDIR)/trainer-DataMaker.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ColourCluster.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ColourSelector.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ColourWheel.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ConfigIO.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ControlPanel.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_Decorator.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_Display.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayBaseClass.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayRoi.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_HelloWindow.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ImgFileSetter.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_LikFiltSelector.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_MaskSetter.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_MouseHandler.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_MyApplication.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_MyWindow.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_OptionSetterBaseClass.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_PixbufOpener.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ProcessorHandler.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_RadiusSetter.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDetails.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDisplayBaseClass.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFileWriter.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFrame.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ResultLabel.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ResultListDisplay.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_ThresholdSetter.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-Gui_UserFilterSetter.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/gui/src/$(DEPDIR)/opencfu-ResultMap.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-ArgumentParser.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-ContourFamily.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-ContourSpliter.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Features.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-MaskROI.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Predictor.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-ProcessingOptions.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Processor.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Result.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_1.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_2.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_3.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_4.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_BaseClass.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_ColourCluster.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_FiltGUI.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_FiltHS.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_FiltIPosition2D.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/opencfu-Step_FiltLik.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/trainer-ContourFamily.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/trainer-Features.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at src/processor/src/$(DEPDIR)/trainer-Predictor.Po at am__quote@
+
+.cpp.o:
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+ at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+ at am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ $<
+
+.cpp.obj:
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+ at am__fastdepCXX_TRUE@	$(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+ at am__fastdepCXX_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+src/opencfu-main.o: src/main.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/opencfu-main.o -MD -MP -MF src/$(DEPDIR)/opencfu-main.Tpo -c -o src/opencfu-main.o `test -f 'src/main.cpp' || echo '$(srcdir)/'`src/main.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/$(DEPDIR)/opencfu-main.Tpo src/$(DEPDIR)/opencfu-main.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/main.cpp' object='src/opencfu-main.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/opencfu-main.o `test -f 'src/main.cpp' || echo '$(srcdir)/'`src/main.cpp
+
+src/opencfu-main.obj: src/main.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/opencfu-main.obj -MD -MP -MF src/$(DEPDIR)/opencfu-main.Tpo -c -o src/opencfu-main.obj `if test -f 'src/main.cpp'; then $(CYGPATH_W) 'src/main.cpp'; else $(CYGPATH_W) '$(srcdir)/src/main.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/$(DEPDIR)/opencfu-main.Tpo src/$(DEPDIR)/opencfu-main.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/main.cpp' object='src/opencfu-main.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/opencfu-main.obj `if test -f 'src/main.cpp'; then $(CYGPATH_W) 'src/main.cpp'; else $(CYGPATH_W) '$(srcdir)/src/main.cpp'; fi`
+
+src/processor/src/opencfu-ArgumentParser.o: src/processor/src/ArgumentParser.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ArgumentParser.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ArgumentParser.Tpo -c -o src/processor/src/opencfu-ArgumentParser.o `test -f 'src/processor/src/ArgumentParser.cpp' || echo '$(srcdir)/'`src/processor/src/ArgumentParser.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ArgumentParser.Tpo src/processor/src/$(DEPDIR)/opencfu-ArgumentParser.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ArgumentParser.cpp' object='src/processor/src/opencfu-ArgumentParser.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ArgumentParser.o `test -f 'src/processor/src/ArgumentParser.cpp' || echo '$(srcdir)/'`src/processor/src/ArgumentParser.cpp
+
+src/processor/src/opencfu-ArgumentParser.obj: src/processor/src/ArgumentParser.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ArgumentParser.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ArgumentParser.Tpo -c -o src/processor/src/opencfu-ArgumentParser.obj `if test -f 'src/processor/src/ArgumentParser.cpp'; then $(CYGPATH_W) 'src/processor/src/ArgumentParser.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ArgumentParser.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ArgumentParser.Tpo src/processor/src/$(DEPDIR)/opencfu-ArgumentParser.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ArgumentParser.cpp' object='src/processor/src/opencfu-ArgumentParser.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ArgumentParser.obj `if test -f 'src/processor/src/ArgumentParser.cpp'; then $(CYGPATH_W) 'src/processor/src/ArgumentParser.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ArgumentParser.cpp'; fi`
+
+src/processor/src/opencfu-ProcessingOptions.o: src/processor/src/ProcessingOptions.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ProcessingOptions.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ProcessingOptions.Tpo -c -o src/processor/src/opencfu-ProcessingOptions.o `test -f 'src/processor/src/ProcessingOptions.cpp' || echo '$(srcdir)/'`src/processor/src/ProcessingOptions.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ProcessingOptions.Tpo src/processor/src/$(DEPDIR)/opencfu-ProcessingOptions.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ProcessingOptions.cpp' object='src/processor/src/opencfu-ProcessingOptions.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ProcessingOptions.o `test -f 'src/processor/src/ProcessingOptions.cpp' || echo '$(srcdir)/'`src/processor/src/ProcessingOptions.cpp
+
+src/processor/src/opencfu-ProcessingOptions.obj: src/processor/src/ProcessingOptions.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ProcessingOptions.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ProcessingOptions.Tpo -c -o src/processor/src/opencfu-ProcessingOptions.obj `if test -f 'src/processor/src/ProcessingOptions.cpp'; then $(CYGPATH_W) 'src/processor/src/ProcessingOptions.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ProcessingOpti [...]
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ProcessingOptions.Tpo src/processor/src/$(DEPDIR)/opencfu-ProcessingOptions.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ProcessingOptions.cpp' object='src/processor/src/opencfu-ProcessingOptions.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ProcessingOptions.obj `if test -f 'src/processor/src/ProcessingOptions.cpp'; then $(CYGPATH_W) 'src/processor/src/ProcessingOptions.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ProcessingOptions.cpp'; fi`
+
+src/processor/src/opencfu-Step_BaseClass.o: src/processor/src/Step_BaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_BaseClass.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_BaseClass.Tpo -c -o src/processor/src/opencfu-Step_BaseClass.o `test -f 'src/processor/src/Step_BaseClass.cpp' || echo '$(srcdir)/'`src/processor/src/Step_BaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_BaseClass.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_BaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_BaseClass.cpp' object='src/processor/src/opencfu-Step_BaseClass.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_BaseClass.o `test -f 'src/processor/src/Step_BaseClass.cpp' || echo '$(srcdir)/'`src/processor/src/Step_BaseClass.cpp
+
+src/processor/src/opencfu-Step_BaseClass.obj: src/processor/src/Step_BaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_BaseClass.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_BaseClass.Tpo -c -o src/processor/src/opencfu-Step_BaseClass.obj `if test -f 'src/processor/src/Step_BaseClass.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_BaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_BaseClass.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_BaseClass.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_BaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_BaseClass.cpp' object='src/processor/src/opencfu-Step_BaseClass.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_BaseClass.obj `if test -f 'src/processor/src/Step_BaseClass.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_BaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_BaseClass.cpp'; fi`
+
+src/processor/src/opencfu-Processor.o: src/processor/src/Processor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Processor.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Processor.Tpo -c -o src/processor/src/opencfu-Processor.o `test -f 'src/processor/src/Processor.cpp' || echo '$(srcdir)/'`src/processor/src/Processor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Processor.Tpo src/processor/src/$(DEPDIR)/opencfu-Processor.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Processor.cpp' object='src/processor/src/opencfu-Processor.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Processor.o `test -f 'src/processor/src/Processor.cpp' || echo '$(srcdir)/'`src/processor/src/Processor.cpp
+
+src/processor/src/opencfu-Processor.obj: src/processor/src/Processor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Processor.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Processor.Tpo -c -o src/processor/src/opencfu-Processor.obj `if test -f 'src/processor/src/Processor.cpp'; then $(CYGPATH_W) 'src/processor/src/Processor.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Processor.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Processor.Tpo src/processor/src/$(DEPDIR)/opencfu-Processor.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Processor.cpp' object='src/processor/src/opencfu-Processor.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Processor.obj `if test -f 'src/processor/src/Processor.cpp'; then $(CYGPATH_W) 'src/processor/src/Processor.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Processor.cpp'; fi`
+
+src/processor/src/opencfu-Step_2.o: src/processor/src/Step_2.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_2.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_2.Tpo -c -o src/processor/src/opencfu-Step_2.o `test -f 'src/processor/src/Step_2.cpp' || echo '$(srcdir)/'`src/processor/src/Step_2.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_2.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_2.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_2.cpp' object='src/processor/src/opencfu-Step_2.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_2.o `test -f 'src/processor/src/Step_2.cpp' || echo '$(srcdir)/'`src/processor/src/Step_2.cpp
+
+src/processor/src/opencfu-Step_2.obj: src/processor/src/Step_2.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_2.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_2.Tpo -c -o src/processor/src/opencfu-Step_2.obj `if test -f 'src/processor/src/Step_2.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_2.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_2.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_2.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_2.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_2.cpp' object='src/processor/src/opencfu-Step_2.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_2.obj `if test -f 'src/processor/src/Step_2.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_2.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_2.cpp'; fi`
+
+src/processor/src/opencfu-Step_3.o: src/processor/src/Step_3.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_3.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_3.Tpo -c -o src/processor/src/opencfu-Step_3.o `test -f 'src/processor/src/Step_3.cpp' || echo '$(srcdir)/'`src/processor/src/Step_3.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_3.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_3.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_3.cpp' object='src/processor/src/opencfu-Step_3.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_3.o `test -f 'src/processor/src/Step_3.cpp' || echo '$(srcdir)/'`src/processor/src/Step_3.cpp
+
+src/processor/src/opencfu-Step_3.obj: src/processor/src/Step_3.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_3.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_3.Tpo -c -o src/processor/src/opencfu-Step_3.obj `if test -f 'src/processor/src/Step_3.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_3.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_3.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_3.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_3.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_3.cpp' object='src/processor/src/opencfu-Step_3.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_3.obj `if test -f 'src/processor/src/Step_3.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_3.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_3.cpp'; fi`
+
+src/processor/src/opencfu-Result.o: src/processor/src/Result.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Result.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Result.Tpo -c -o src/processor/src/opencfu-Result.o `test -f 'src/processor/src/Result.cpp' || echo '$(srcdir)/'`src/processor/src/Result.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Result.Tpo src/processor/src/$(DEPDIR)/opencfu-Result.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Result.cpp' object='src/processor/src/opencfu-Result.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Result.o `test -f 'src/processor/src/Result.cpp' || echo '$(srcdir)/'`src/processor/src/Result.cpp
+
+src/processor/src/opencfu-Result.obj: src/processor/src/Result.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Result.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Result.Tpo -c -o src/processor/src/opencfu-Result.obj `if test -f 'src/processor/src/Result.cpp'; then $(CYGPATH_W) 'src/processor/src/Result.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Result.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Result.Tpo src/processor/src/$(DEPDIR)/opencfu-Result.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Result.cpp' object='src/processor/src/opencfu-Result.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Result.obj `if test -f 'src/processor/src/Result.cpp'; then $(CYGPATH_W) 'src/processor/src/Result.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Result.cpp'; fi`
+
+src/processor/src/opencfu-Features.o: src/processor/src/Features.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Features.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Features.Tpo -c -o src/processor/src/opencfu-Features.o `test -f 'src/processor/src/Features.cpp' || echo '$(srcdir)/'`src/processor/src/Features.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Features.Tpo src/processor/src/$(DEPDIR)/opencfu-Features.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Features.cpp' object='src/processor/src/opencfu-Features.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Features.o `test -f 'src/processor/src/Features.cpp' || echo '$(srcdir)/'`src/processor/src/Features.cpp
+
+src/processor/src/opencfu-Features.obj: src/processor/src/Features.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Features.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Features.Tpo -c -o src/processor/src/opencfu-Features.obj `if test -f 'src/processor/src/Features.cpp'; then $(CYGPATH_W) 'src/processor/src/Features.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Features.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Features.Tpo src/processor/src/$(DEPDIR)/opencfu-Features.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Features.cpp' object='src/processor/src/opencfu-Features.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Features.obj `if test -f 'src/processor/src/Features.cpp'; then $(CYGPATH_W) 'src/processor/src/Features.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Features.cpp'; fi`
+
+src/processor/src/opencfu-Step_FiltGUI.o: src/processor/src/Step_FiltGUI.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltGUI.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltGUI.Tpo -c -o src/processor/src/opencfu-Step_FiltGUI.o `test -f 'src/processor/src/Step_FiltGUI.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltGUI.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltGUI.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltGUI.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltGUI.cpp' object='src/processor/src/opencfu-Step_FiltGUI.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltGUI.o `test -f 'src/processor/src/Step_FiltGUI.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltGUI.cpp
+
+src/processor/src/opencfu-Step_FiltGUI.obj: src/processor/src/Step_FiltGUI.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltGUI.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltGUI.Tpo -c -o src/processor/src/opencfu-Step_FiltGUI.obj `if test -f 'src/processor/src/Step_FiltGUI.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltGUI.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_FiltGUI.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltGUI.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltGUI.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltGUI.cpp' object='src/processor/src/opencfu-Step_FiltGUI.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltGUI.obj `if test -f 'src/processor/src/Step_FiltGUI.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltGUI.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_FiltGUI.cpp'; fi`
+
+src/processor/src/opencfu-Step_FiltHS.o: src/processor/src/Step_FiltHS.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltHS.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltHS.Tpo -c -o src/processor/src/opencfu-Step_FiltHS.o `test -f 'src/processor/src/Step_FiltHS.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltHS.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltHS.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltHS.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltHS.cpp' object='src/processor/src/opencfu-Step_FiltHS.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltHS.o `test -f 'src/processor/src/Step_FiltHS.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltHS.cpp
+
+src/processor/src/opencfu-Step_FiltHS.obj: src/processor/src/Step_FiltHS.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltHS.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltHS.Tpo -c -o src/processor/src/opencfu-Step_FiltHS.obj `if test -f 'src/processor/src/Step_FiltHS.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltHS.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_FiltHS.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltHS.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltHS.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltHS.cpp' object='src/processor/src/opencfu-Step_FiltHS.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltHS.obj `if test -f 'src/processor/src/Step_FiltHS.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltHS.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_FiltHS.cpp'; fi`
+
+src/processor/src/opencfu-Step_FiltIPosition2D.o: src/processor/src/Step_FiltIPosition2D.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltIPosition2D.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltIPosition2D.Tpo -c -o src/processor/src/opencfu-Step_FiltIPosition2D.o `test -f 'src/processor/src/Step_FiltIPosition2D.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltIPosition2D.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltIPosition2D.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltIPosition2D.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltIPosition2D.cpp' object='src/processor/src/opencfu-Step_FiltIPosition2D.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltIPosition2D.o `test -f 'src/processor/src/Step_FiltIPosition2D.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltIPosition2D.cpp
+
+src/processor/src/opencfu-Step_FiltIPosition2D.obj: src/processor/src/Step_FiltIPosition2D.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltIPosition2D.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltIPosition2D.Tpo -c -o src/processor/src/opencfu-Step_FiltIPosition2D.obj `if test -f 'src/processor/src/Step_FiltIPosition2D.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltIPosition2D.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src [...]
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltIPosition2D.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltIPosition2D.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltIPosition2D.cpp' object='src/processor/src/opencfu-Step_FiltIPosition2D.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltIPosition2D.obj `if test -f 'src/processor/src/Step_FiltIPosition2D.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltIPosition2D.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_FiltIPosition2D.cpp'; fi`
+
+src/processor/src/opencfu-Step_FiltLik.o: src/processor/src/Step_FiltLik.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltLik.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltLik.Tpo -c -o src/processor/src/opencfu-Step_FiltLik.o `test -f 'src/processor/src/Step_FiltLik.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltLik.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltLik.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltLik.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltLik.cpp' object='src/processor/src/opencfu-Step_FiltLik.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltLik.o `test -f 'src/processor/src/Step_FiltLik.cpp' || echo '$(srcdir)/'`src/processor/src/Step_FiltLik.cpp
+
+src/processor/src/opencfu-Step_FiltLik.obj: src/processor/src/Step_FiltLik.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_FiltLik.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_FiltLik.Tpo -c -o src/processor/src/opencfu-Step_FiltLik.obj `if test -f 'src/processor/src/Step_FiltLik.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltLik.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_FiltLik.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_FiltLik.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_FiltLik.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_FiltLik.cpp' object='src/processor/src/opencfu-Step_FiltLik.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_FiltLik.obj `if test -f 'src/processor/src/Step_FiltLik.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_FiltLik.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_FiltLik.cpp'; fi`
+
+src/processor/src/opencfu-Step_1.o: src/processor/src/Step_1.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_1.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_1.Tpo -c -o src/processor/src/opencfu-Step_1.o `test -f 'src/processor/src/Step_1.cpp' || echo '$(srcdir)/'`src/processor/src/Step_1.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_1.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_1.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_1.cpp' object='src/processor/src/opencfu-Step_1.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_1.o `test -f 'src/processor/src/Step_1.cpp' || echo '$(srcdir)/'`src/processor/src/Step_1.cpp
+
+src/processor/src/opencfu-Step_1.obj: src/processor/src/Step_1.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_1.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_1.Tpo -c -o src/processor/src/opencfu-Step_1.obj `if test -f 'src/processor/src/Step_1.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_1.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_1.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_1.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_1.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_1.cpp' object='src/processor/src/opencfu-Step_1.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_1.obj `if test -f 'src/processor/src/Step_1.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_1.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_1.cpp'; fi`
+
+src/processor/src/opencfu-Step_4.o: src/processor/src/Step_4.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_4.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_4.Tpo -c -o src/processor/src/opencfu-Step_4.o `test -f 'src/processor/src/Step_4.cpp' || echo '$(srcdir)/'`src/processor/src/Step_4.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_4.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_4.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_4.cpp' object='src/processor/src/opencfu-Step_4.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_4.o `test -f 'src/processor/src/Step_4.cpp' || echo '$(srcdir)/'`src/processor/src/Step_4.cpp
+
+src/processor/src/opencfu-Step_4.obj: src/processor/src/Step_4.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_4.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_4.Tpo -c -o src/processor/src/opencfu-Step_4.obj `if test -f 'src/processor/src/Step_4.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_4.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_4.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_4.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_4.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_4.cpp' object='src/processor/src/opencfu-Step_4.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_4.obj `if test -f 'src/processor/src/Step_4.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_4.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_4.cpp'; fi`
+
+src/processor/src/opencfu-ContourFamily.o: src/processor/src/ContourFamily.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ContourFamily.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ContourFamily.Tpo -c -o src/processor/src/opencfu-ContourFamily.o `test -f 'src/processor/src/ContourFamily.cpp' || echo '$(srcdir)/'`src/processor/src/ContourFamily.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ContourFamily.Tpo src/processor/src/$(DEPDIR)/opencfu-ContourFamily.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ContourFamily.cpp' object='src/processor/src/opencfu-ContourFamily.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ContourFamily.o `test -f 'src/processor/src/ContourFamily.cpp' || echo '$(srcdir)/'`src/processor/src/ContourFamily.cpp
+
+src/processor/src/opencfu-ContourFamily.obj: src/processor/src/ContourFamily.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ContourFamily.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ContourFamily.Tpo -c -o src/processor/src/opencfu-ContourFamily.obj `if test -f 'src/processor/src/ContourFamily.cpp'; then $(CYGPATH_W) 'src/processor/src/ContourFamily.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ContourFamily.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ContourFamily.Tpo src/processor/src/$(DEPDIR)/opencfu-ContourFamily.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ContourFamily.cpp' object='src/processor/src/opencfu-ContourFamily.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ContourFamily.obj `if test -f 'src/processor/src/ContourFamily.cpp'; then $(CYGPATH_W) 'src/processor/src/ContourFamily.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ContourFamily.cpp'; fi`
+
+src/processor/src/opencfu-Predictor.o: src/processor/src/Predictor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Predictor.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Predictor.Tpo -c -o src/processor/src/opencfu-Predictor.o `test -f 'src/processor/src/Predictor.cpp' || echo '$(srcdir)/'`src/processor/src/Predictor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Predictor.Tpo src/processor/src/$(DEPDIR)/opencfu-Predictor.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Predictor.cpp' object='src/processor/src/opencfu-Predictor.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Predictor.o `test -f 'src/processor/src/Predictor.cpp' || echo '$(srcdir)/'`src/processor/src/Predictor.cpp
+
+src/processor/src/opencfu-Predictor.obj: src/processor/src/Predictor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Predictor.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Predictor.Tpo -c -o src/processor/src/opencfu-Predictor.obj `if test -f 'src/processor/src/Predictor.cpp'; then $(CYGPATH_W) 'src/processor/src/Predictor.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Predictor.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Predictor.Tpo src/processor/src/$(DEPDIR)/opencfu-Predictor.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Predictor.cpp' object='src/processor/src/opencfu-Predictor.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Predictor.obj `if test -f 'src/processor/src/Predictor.cpp'; then $(CYGPATH_W) 'src/processor/src/Predictor.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Predictor.cpp'; fi`
+
+src/processor/src/opencfu-ContourSpliter.o: src/processor/src/ContourSpliter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ContourSpliter.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ContourSpliter.Tpo -c -o src/processor/src/opencfu-ContourSpliter.o `test -f 'src/processor/src/ContourSpliter.cpp' || echo '$(srcdir)/'`src/processor/src/ContourSpliter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ContourSpliter.Tpo src/processor/src/$(DEPDIR)/opencfu-ContourSpliter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ContourSpliter.cpp' object='src/processor/src/opencfu-ContourSpliter.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ContourSpliter.o `test -f 'src/processor/src/ContourSpliter.cpp' || echo '$(srcdir)/'`src/processor/src/ContourSpliter.cpp
+
+src/processor/src/opencfu-ContourSpliter.obj: src/processor/src/ContourSpliter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-ContourSpliter.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-ContourSpliter.Tpo -c -o src/processor/src/opencfu-ContourSpliter.obj `if test -f 'src/processor/src/ContourSpliter.cpp'; then $(CYGPATH_W) 'src/processor/src/ContourSpliter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ContourSpliter.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-ContourSpliter.Tpo src/processor/src/$(DEPDIR)/opencfu-ContourSpliter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ContourSpliter.cpp' object='src/processor/src/opencfu-ContourSpliter.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-ContourSpliter.obj `if test -f 'src/processor/src/ContourSpliter.cpp'; then $(CYGPATH_W) 'src/processor/src/ContourSpliter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ContourSpliter.cpp'; fi`
+
+src/processor/src/opencfu-MaskROI.o: src/processor/src/MaskROI.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-MaskROI.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-MaskROI.Tpo -c -o src/processor/src/opencfu-MaskROI.o `test -f 'src/processor/src/MaskROI.cpp' || echo '$(srcdir)/'`src/processor/src/MaskROI.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-MaskROI.Tpo src/processor/src/$(DEPDIR)/opencfu-MaskROI.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/MaskROI.cpp' object='src/processor/src/opencfu-MaskROI.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-MaskROI.o `test -f 'src/processor/src/MaskROI.cpp' || echo '$(srcdir)/'`src/processor/src/MaskROI.cpp
+
+src/processor/src/opencfu-MaskROI.obj: src/processor/src/MaskROI.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-MaskROI.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-MaskROI.Tpo -c -o src/processor/src/opencfu-MaskROI.obj `if test -f 'src/processor/src/MaskROI.cpp'; then $(CYGPATH_W) 'src/processor/src/MaskROI.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/MaskROI.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-MaskROI.Tpo src/processor/src/$(DEPDIR)/opencfu-MaskROI.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/MaskROI.cpp' object='src/processor/src/opencfu-MaskROI.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-MaskROI.obj `if test -f 'src/processor/src/MaskROI.cpp'; then $(CYGPATH_W) 'src/processor/src/MaskROI.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/MaskROI.cpp'; fi`
+
+src/processor/src/opencfu-Step_ColourCluster.o: src/processor/src/Step_ColourCluster.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_ColourCluster.o -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_ColourCluster.Tpo -c -o src/processor/src/opencfu-Step_ColourCluster.o `test -f 'src/processor/src/Step_ColourCluster.cpp' || echo '$(srcdir)/'`src/processor/src/Step_ColourCluster.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_ColourCluster.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_ColourCluster.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_ColourCluster.cpp' object='src/processor/src/opencfu-Step_ColourCluster.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_ColourCluster.o `test -f 'src/processor/src/Step_ColourCluster.cpp' || echo '$(srcdir)/'`src/processor/src/Step_ColourCluster.cpp
+
+src/processor/src/opencfu-Step_ColourCluster.obj: src/processor/src/Step_ColourCluster.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/opencfu-Step_ColourCluster.obj -MD -MP -MF src/processor/src/$(DEPDIR)/opencfu-Step_ColourCluster.Tpo -c -o src/processor/src/opencfu-Step_ColourCluster.obj `if test -f 'src/processor/src/Step_ColourCluster.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_ColourCluster.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_Colo [...]
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/opencfu-Step_ColourCluster.Tpo src/processor/src/$(DEPDIR)/opencfu-Step_ColourCluster.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Step_ColourCluster.cpp' object='src/processor/src/opencfu-Step_ColourCluster.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/opencfu-Step_ColourCluster.obj `if test -f 'src/processor/src/Step_ColourCluster.cpp'; then $(CYGPATH_W) 'src/processor/src/Step_ColourCluster.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Step_ColourCluster.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ColourSelector.o: src/gui/src/Gui_ColourSelector.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ColourSelector.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ColourSelector.Tpo -c -o src/gui/src/opencfu-Gui_ColourSelector.o `test -f 'src/gui/src/Gui_ColourSelector.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ColourSelector.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ColourSelector.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ColourSelector.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ColourSelector.cpp' object='src/gui/src/opencfu-Gui_ColourSelector.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ColourSelector.o `test -f 'src/gui/src/Gui_ColourSelector.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ColourSelector.cpp
+
+src/gui/src/opencfu-Gui_ColourSelector.obj: src/gui/src/Gui_ColourSelector.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ColourSelector.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ColourSelector.Tpo -c -o src/gui/src/opencfu-Gui_ColourSelector.obj `if test -f 'src/gui/src/Gui_ColourSelector.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ColourSelector.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ColourSelector.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ColourSelector.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ColourSelector.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ColourSelector.cpp' object='src/gui/src/opencfu-Gui_ColourSelector.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ColourSelector.obj `if test -f 'src/gui/src/Gui_ColourSelector.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ColourSelector.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ColourSelector.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ColourWheel.o: src/gui/src/Gui_ColourWheel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ColourWheel.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ColourWheel.Tpo -c -o src/gui/src/opencfu-Gui_ColourWheel.o `test -f 'src/gui/src/Gui_ColourWheel.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ColourWheel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ColourWheel.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ColourWheel.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ColourWheel.cpp' object='src/gui/src/opencfu-Gui_ColourWheel.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ColourWheel.o `test -f 'src/gui/src/Gui_ColourWheel.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ColourWheel.cpp
+
+src/gui/src/opencfu-Gui_ColourWheel.obj: src/gui/src/Gui_ColourWheel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ColourWheel.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ColourWheel.Tpo -c -o src/gui/src/opencfu-Gui_ColourWheel.obj `if test -f 'src/gui/src/Gui_ColourWheel.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ColourWheel.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ColourWheel.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ColourWheel.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ColourWheel.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ColourWheel.cpp' object='src/gui/src/opencfu-Gui_ColourWheel.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ColourWheel.obj `if test -f 'src/gui/src/Gui_ColourWheel.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ColourWheel.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ColourWheel.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ControlPanel.o: src/gui/src/Gui_ControlPanel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ControlPanel.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ControlPanel.Tpo -c -o src/gui/src/opencfu-Gui_ControlPanel.o `test -f 'src/gui/src/Gui_ControlPanel.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ControlPanel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ControlPanel.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ControlPanel.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ControlPanel.cpp' object='src/gui/src/opencfu-Gui_ControlPanel.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ControlPanel.o `test -f 'src/gui/src/Gui_ControlPanel.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ControlPanel.cpp
+
+src/gui/src/opencfu-Gui_ControlPanel.obj: src/gui/src/Gui_ControlPanel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ControlPanel.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ControlPanel.Tpo -c -o src/gui/src/opencfu-Gui_ControlPanel.obj `if test -f 'src/gui/src/Gui_ControlPanel.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ControlPanel.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ControlPanel.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ControlPanel.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ControlPanel.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ControlPanel.cpp' object='src/gui/src/opencfu-Gui_ControlPanel.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ControlPanel.obj `if test -f 'src/gui/src/Gui_ControlPanel.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ControlPanel.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ControlPanel.cpp'; fi`
+
+src/gui/src/opencfu-Gui_Decorator.o: src/gui/src/Gui_Decorator.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_Decorator.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_Decorator.Tpo -c -o src/gui/src/opencfu-Gui_Decorator.o `test -f 'src/gui/src/Gui_Decorator.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_Decorator.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_Decorator.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_Decorator.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_Decorator.cpp' object='src/gui/src/opencfu-Gui_Decorator.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_Decorator.o `test -f 'src/gui/src/Gui_Decorator.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_Decorator.cpp
+
+src/gui/src/opencfu-Gui_Decorator.obj: src/gui/src/Gui_Decorator.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_Decorator.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_Decorator.Tpo -c -o src/gui/src/opencfu-Gui_Decorator.obj `if test -f 'src/gui/src/Gui_Decorator.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_Decorator.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_Decorator.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_Decorator.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_Decorator.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_Decorator.cpp' object='src/gui/src/opencfu-Gui_Decorator.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_Decorator.obj `if test -f 'src/gui/src/Gui_Decorator.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_Decorator.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_Decorator.cpp'; fi`
+
+src/gui/src/opencfu-Gui_DisplayBaseClass.o: src/gui/src/Gui_DisplayBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_DisplayBaseClass.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayBaseClass.Tpo -c -o src/gui/src/opencfu-Gui_DisplayBaseClass.o `test -f 'src/gui/src/Gui_DisplayBaseClass.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_DisplayBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayBaseClass.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayBaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_DisplayBaseClass.cpp' object='src/gui/src/opencfu-Gui_DisplayBaseClass.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_DisplayBaseClass.o `test -f 'src/gui/src/Gui_DisplayBaseClass.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_DisplayBaseClass.cpp
+
+src/gui/src/opencfu-Gui_DisplayBaseClass.obj: src/gui/src/Gui_DisplayBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_DisplayBaseClass.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayBaseClass.Tpo -c -o src/gui/src/opencfu-Gui_DisplayBaseClass.obj `if test -f 'src/gui/src/Gui_DisplayBaseClass.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_DisplayBaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_DisplayBaseClass.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayBaseClass.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayBaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_DisplayBaseClass.cpp' object='src/gui/src/opencfu-Gui_DisplayBaseClass.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_DisplayBaseClass.obj `if test -f 'src/gui/src/Gui_DisplayBaseClass.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_DisplayBaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_DisplayBaseClass.cpp'; fi`
+
+src/gui/src/opencfu-Gui_Display.o: src/gui/src/Gui_Display.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_Display.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_Display.Tpo -c -o src/gui/src/opencfu-Gui_Display.o `test -f 'src/gui/src/Gui_Display.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_Display.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_Display.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_Display.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_Display.cpp' object='src/gui/src/opencfu-Gui_Display.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_Display.o `test -f 'src/gui/src/Gui_Display.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_Display.cpp
+
+src/gui/src/opencfu-Gui_Display.obj: src/gui/src/Gui_Display.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_Display.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_Display.Tpo -c -o src/gui/src/opencfu-Gui_Display.obj `if test -f 'src/gui/src/Gui_Display.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_Display.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_Display.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_Display.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_Display.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_Display.cpp' object='src/gui/src/opencfu-Gui_Display.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_Display.obj `if test -f 'src/gui/src/Gui_Display.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_Display.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_Display.cpp'; fi`
+
+src/gui/src/opencfu-Gui_DisplayRoi.o: src/gui/src/Gui_DisplayRoi.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_DisplayRoi.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayRoi.Tpo -c -o src/gui/src/opencfu-Gui_DisplayRoi.o `test -f 'src/gui/src/Gui_DisplayRoi.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_DisplayRoi.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayRoi.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayRoi.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_DisplayRoi.cpp' object='src/gui/src/opencfu-Gui_DisplayRoi.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_DisplayRoi.o `test -f 'src/gui/src/Gui_DisplayRoi.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_DisplayRoi.cpp
+
+src/gui/src/opencfu-Gui_DisplayRoi.obj: src/gui/src/Gui_DisplayRoi.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_DisplayRoi.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayRoi.Tpo -c -o src/gui/src/opencfu-Gui_DisplayRoi.obj `if test -f 'src/gui/src/Gui_DisplayRoi.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_DisplayRoi.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_DisplayRoi.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayRoi.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_DisplayRoi.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_DisplayRoi.cpp' object='src/gui/src/opencfu-Gui_DisplayRoi.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_DisplayRoi.obj `if test -f 'src/gui/src/Gui_DisplayRoi.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_DisplayRoi.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_DisplayRoi.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ImgFileSetter.o: src/gui/src/Gui_ImgFileSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ImgFileSetter.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ImgFileSetter.Tpo -c -o src/gui/src/opencfu-Gui_ImgFileSetter.o `test -f 'src/gui/src/Gui_ImgFileSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ImgFileSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ImgFileSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ImgFileSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ImgFileSetter.cpp' object='src/gui/src/opencfu-Gui_ImgFileSetter.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ImgFileSetter.o `test -f 'src/gui/src/Gui_ImgFileSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ImgFileSetter.cpp
+
+src/gui/src/opencfu-Gui_ImgFileSetter.obj: src/gui/src/Gui_ImgFileSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ImgFileSetter.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ImgFileSetter.Tpo -c -o src/gui/src/opencfu-Gui_ImgFileSetter.obj `if test -f 'src/gui/src/Gui_ImgFileSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ImgFileSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ImgFileSetter.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ImgFileSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ImgFileSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ImgFileSetter.cpp' object='src/gui/src/opencfu-Gui_ImgFileSetter.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ImgFileSetter.obj `if test -f 'src/gui/src/Gui_ImgFileSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ImgFileSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ImgFileSetter.cpp'; fi`
+
+src/gui/src/opencfu-Gui_LikFiltSelector.o: src/gui/src/Gui_LikFiltSelector.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_LikFiltSelector.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_LikFiltSelector.Tpo -c -o src/gui/src/opencfu-Gui_LikFiltSelector.o `test -f 'src/gui/src/Gui_LikFiltSelector.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_LikFiltSelector.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_LikFiltSelector.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_LikFiltSelector.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_LikFiltSelector.cpp' object='src/gui/src/opencfu-Gui_LikFiltSelector.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_LikFiltSelector.o `test -f 'src/gui/src/Gui_LikFiltSelector.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_LikFiltSelector.cpp
+
+src/gui/src/opencfu-Gui_LikFiltSelector.obj: src/gui/src/Gui_LikFiltSelector.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_LikFiltSelector.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_LikFiltSelector.Tpo -c -o src/gui/src/opencfu-Gui_LikFiltSelector.obj `if test -f 'src/gui/src/Gui_LikFiltSelector.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_LikFiltSelector.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_LikFiltSelector.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_LikFiltSelector.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_LikFiltSelector.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_LikFiltSelector.cpp' object='src/gui/src/opencfu-Gui_LikFiltSelector.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_LikFiltSelector.obj `if test -f 'src/gui/src/Gui_LikFiltSelector.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_LikFiltSelector.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_LikFiltSelector.cpp'; fi`
+
+src/gui/src/opencfu-Gui_MouseHandler.o: src/gui/src/Gui_MouseHandler.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MouseHandler.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MouseHandler.Tpo -c -o src/gui/src/opencfu-Gui_MouseHandler.o `test -f 'src/gui/src/Gui_MouseHandler.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MouseHandler.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MouseHandler.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MouseHandler.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MouseHandler.cpp' object='src/gui/src/opencfu-Gui_MouseHandler.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MouseHandler.o `test -f 'src/gui/src/Gui_MouseHandler.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MouseHandler.cpp
+
+src/gui/src/opencfu-Gui_MouseHandler.obj: src/gui/src/Gui_MouseHandler.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MouseHandler.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MouseHandler.Tpo -c -o src/gui/src/opencfu-Gui_MouseHandler.obj `if test -f 'src/gui/src/Gui_MouseHandler.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MouseHandler.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MouseHandler.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MouseHandler.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MouseHandler.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MouseHandler.cpp' object='src/gui/src/opencfu-Gui_MouseHandler.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MouseHandler.obj `if test -f 'src/gui/src/Gui_MouseHandler.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MouseHandler.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MouseHandler.cpp'; fi`
+
+src/gui/src/opencfu-Gui_MaskSetter.o: src/gui/src/Gui_MaskSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MaskSetter.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MaskSetter.Tpo -c -o src/gui/src/opencfu-Gui_MaskSetter.o `test -f 'src/gui/src/Gui_MaskSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MaskSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MaskSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MaskSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MaskSetter.cpp' object='src/gui/src/opencfu-Gui_MaskSetter.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MaskSetter.o `test -f 'src/gui/src/Gui_MaskSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MaskSetter.cpp
+
+src/gui/src/opencfu-Gui_MaskSetter.obj: src/gui/src/Gui_MaskSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MaskSetter.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MaskSetter.Tpo -c -o src/gui/src/opencfu-Gui_MaskSetter.obj `if test -f 'src/gui/src/Gui_MaskSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MaskSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MaskSetter.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MaskSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MaskSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MaskSetter.cpp' object='src/gui/src/opencfu-Gui_MaskSetter.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MaskSetter.obj `if test -f 'src/gui/src/Gui_MaskSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MaskSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MaskSetter.cpp'; fi`
+
+src/gui/src/opencfu-Gui_MyApplication.o: src/gui/src/Gui_MyApplication.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MyApplication.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MyApplication.Tpo -c -o src/gui/src/opencfu-Gui_MyApplication.o `test -f 'src/gui/src/Gui_MyApplication.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MyApplication.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MyApplication.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MyApplication.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MyApplication.cpp' object='src/gui/src/opencfu-Gui_MyApplication.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MyApplication.o `test -f 'src/gui/src/Gui_MyApplication.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MyApplication.cpp
+
+src/gui/src/opencfu-Gui_MyApplication.obj: src/gui/src/Gui_MyApplication.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MyApplication.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MyApplication.Tpo -c -o src/gui/src/opencfu-Gui_MyApplication.obj `if test -f 'src/gui/src/Gui_MyApplication.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MyApplication.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MyApplication.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MyApplication.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MyApplication.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MyApplication.cpp' object='src/gui/src/opencfu-Gui_MyApplication.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MyApplication.obj `if test -f 'src/gui/src/Gui_MyApplication.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MyApplication.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MyApplication.cpp'; fi`
+
+src/gui/src/opencfu-Gui_MyWindow.o: src/gui/src/Gui_MyWindow.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MyWindow.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MyWindow.Tpo -c -o src/gui/src/opencfu-Gui_MyWindow.o `test -f 'src/gui/src/Gui_MyWindow.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MyWindow.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MyWindow.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MyWindow.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MyWindow.cpp' object='src/gui/src/opencfu-Gui_MyWindow.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MyWindow.o `test -f 'src/gui/src/Gui_MyWindow.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_MyWindow.cpp
+
+src/gui/src/opencfu-Gui_MyWindow.obj: src/gui/src/Gui_MyWindow.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_MyWindow.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_MyWindow.Tpo -c -o src/gui/src/opencfu-Gui_MyWindow.obj `if test -f 'src/gui/src/Gui_MyWindow.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MyWindow.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MyWindow.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_MyWindow.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_MyWindow.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_MyWindow.cpp' object='src/gui/src/opencfu-Gui_MyWindow.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_MyWindow.obj `if test -f 'src/gui/src/Gui_MyWindow.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_MyWindow.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_MyWindow.cpp'; fi`
+
+src/gui/src/opencfu-Gui_OptionSetterBaseClass.o: src/gui/src/Gui_OptionSetterBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_OptionSetterBaseClass.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_OptionSetterBaseClass.Tpo -c -o src/gui/src/opencfu-Gui_OptionSetterBaseClass.o `test -f 'src/gui/src/Gui_OptionSetterBaseClass.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_OptionSetterBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_OptionSetterBaseClass.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_OptionSetterBaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_OptionSetterBaseClass.cpp' object='src/gui/src/opencfu-Gui_OptionSetterBaseClass.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_OptionSetterBaseClass.o `test -f 'src/gui/src/Gui_OptionSetterBaseClass.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_OptionSetterBaseClass.cpp
+
+src/gui/src/opencfu-Gui_OptionSetterBaseClass.obj: src/gui/src/Gui_OptionSetterBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_OptionSetterBaseClass.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_OptionSetterBaseClass.Tpo -c -o src/gui/src/opencfu-Gui_OptionSetterBaseClass.obj `if test -f 'src/gui/src/Gui_OptionSetterBaseClass.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_OptionSetterBaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_Option [...]
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_OptionSetterBaseClass.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_OptionSetterBaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_OptionSetterBaseClass.cpp' object='src/gui/src/opencfu-Gui_OptionSetterBaseClass.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_OptionSetterBaseClass.obj `if test -f 'src/gui/src/Gui_OptionSetterBaseClass.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_OptionSetterBaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_OptionSetterBaseClass.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ProcessorHandler.o: src/gui/src/Gui_ProcessorHandler.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ProcessorHandler.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ProcessorHandler.Tpo -c -o src/gui/src/opencfu-Gui_ProcessorHandler.o `test -f 'src/gui/src/Gui_ProcessorHandler.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ProcessorHandler.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ProcessorHandler.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ProcessorHandler.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ProcessorHandler.cpp' object='src/gui/src/opencfu-Gui_ProcessorHandler.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ProcessorHandler.o `test -f 'src/gui/src/Gui_ProcessorHandler.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ProcessorHandler.cpp
+
+src/gui/src/opencfu-Gui_ProcessorHandler.obj: src/gui/src/Gui_ProcessorHandler.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ProcessorHandler.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ProcessorHandler.Tpo -c -o src/gui/src/opencfu-Gui_ProcessorHandler.obj `if test -f 'src/gui/src/Gui_ProcessorHandler.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ProcessorHandler.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ProcessorHandler.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ProcessorHandler.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ProcessorHandler.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ProcessorHandler.cpp' object='src/gui/src/opencfu-Gui_ProcessorHandler.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ProcessorHandler.obj `if test -f 'src/gui/src/Gui_ProcessorHandler.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ProcessorHandler.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ProcessorHandler.cpp'; fi`
+
+src/gui/src/opencfu-Gui_RadiusSetter.o: src/gui/src/Gui_RadiusSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_RadiusSetter.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_RadiusSetter.Tpo -c -o src/gui/src/opencfu-Gui_RadiusSetter.o `test -f 'src/gui/src/Gui_RadiusSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_RadiusSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_RadiusSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_RadiusSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_RadiusSetter.cpp' object='src/gui/src/opencfu-Gui_RadiusSetter.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_RadiusSetter.o `test -f 'src/gui/src/Gui_RadiusSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_RadiusSetter.cpp
+
+src/gui/src/opencfu-Gui_RadiusSetter.obj: src/gui/src/Gui_RadiusSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_RadiusSetter.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_RadiusSetter.Tpo -c -o src/gui/src/opencfu-Gui_RadiusSetter.obj `if test -f 'src/gui/src/Gui_RadiusSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_RadiusSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_RadiusSetter.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_RadiusSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_RadiusSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_RadiusSetter.cpp' object='src/gui/src/opencfu-Gui_RadiusSetter.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_RadiusSetter.obj `if test -f 'src/gui/src/Gui_RadiusSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_RadiusSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_RadiusSetter.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ResultDetails.o: src/gui/src/Gui_ResultDetails.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultDetails.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDetails.Tpo -c -o src/gui/src/opencfu-Gui_ResultDetails.o `test -f 'src/gui/src/Gui_ResultDetails.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultDetails.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDetails.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDetails.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultDetails.cpp' object='src/gui/src/opencfu-Gui_ResultDetails.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultDetails.o `test -f 'src/gui/src/Gui_ResultDetails.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultDetails.cpp
+
+src/gui/src/opencfu-Gui_ResultDetails.obj: src/gui/src/Gui_ResultDetails.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultDetails.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDetails.Tpo -c -o src/gui/src/opencfu-Gui_ResultDetails.obj `if test -f 'src/gui/src/Gui_ResultDetails.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultDetails.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultDetails.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDetails.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDetails.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultDetails.cpp' object='src/gui/src/opencfu-Gui_ResultDetails.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultDetails.obj `if test -f 'src/gui/src/Gui_ResultDetails.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultDetails.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultDetails.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ResultDisplayBaseClass.o: src/gui/src/Gui_ResultDisplayBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultDisplayBaseClass.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDisplayBaseClass.Tpo -c -o src/gui/src/opencfu-Gui_ResultDisplayBaseClass.o `test -f 'src/gui/src/Gui_ResultDisplayBaseClass.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultDisplayBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDisplayBaseClass.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDisplayBaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultDisplayBaseClass.cpp' object='src/gui/src/opencfu-Gui_ResultDisplayBaseClass.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultDisplayBaseClass.o `test -f 'src/gui/src/Gui_ResultDisplayBaseClass.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultDisplayBaseClass.cpp
+
+src/gui/src/opencfu-Gui_ResultDisplayBaseClass.obj: src/gui/src/Gui_ResultDisplayBaseClass.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultDisplayBaseClass.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDisplayBaseClass.Tpo -c -o src/gui/src/opencfu-Gui_ResultDisplayBaseClass.obj `if test -f 'src/gui/src/Gui_ResultDisplayBaseClass.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultDisplayBaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_R [...]
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDisplayBaseClass.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultDisplayBaseClass.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultDisplayBaseClass.cpp' object='src/gui/src/opencfu-Gui_ResultDisplayBaseClass.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultDisplayBaseClass.obj `if test -f 'src/gui/src/Gui_ResultDisplayBaseClass.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultDisplayBaseClass.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultDisplayBaseClass.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ResultFileWriter.o: src/gui/src/Gui_ResultFileWriter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultFileWriter.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFileWriter.Tpo -c -o src/gui/src/opencfu-Gui_ResultFileWriter.o `test -f 'src/gui/src/Gui_ResultFileWriter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultFileWriter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFileWriter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFileWriter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultFileWriter.cpp' object='src/gui/src/opencfu-Gui_ResultFileWriter.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultFileWriter.o `test -f 'src/gui/src/Gui_ResultFileWriter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultFileWriter.cpp
+
+src/gui/src/opencfu-Gui_ResultFileWriter.obj: src/gui/src/Gui_ResultFileWriter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultFileWriter.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFileWriter.Tpo -c -o src/gui/src/opencfu-Gui_ResultFileWriter.obj `if test -f 'src/gui/src/Gui_ResultFileWriter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultFileWriter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultFileWriter.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFileWriter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFileWriter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultFileWriter.cpp' object='src/gui/src/opencfu-Gui_ResultFileWriter.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultFileWriter.obj `if test -f 'src/gui/src/Gui_ResultFileWriter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultFileWriter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultFileWriter.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ResultFrame.o: src/gui/src/Gui_ResultFrame.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultFrame.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFrame.Tpo -c -o src/gui/src/opencfu-Gui_ResultFrame.o `test -f 'src/gui/src/Gui_ResultFrame.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultFrame.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFrame.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFrame.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultFrame.cpp' object='src/gui/src/opencfu-Gui_ResultFrame.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultFrame.o `test -f 'src/gui/src/Gui_ResultFrame.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultFrame.cpp
+
+src/gui/src/opencfu-Gui_ResultFrame.obj: src/gui/src/Gui_ResultFrame.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultFrame.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFrame.Tpo -c -o src/gui/src/opencfu-Gui_ResultFrame.obj `if test -f 'src/gui/src/Gui_ResultFrame.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultFrame.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultFrame.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFrame.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultFrame.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultFrame.cpp' object='src/gui/src/opencfu-Gui_ResultFrame.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultFrame.obj `if test -f 'src/gui/src/Gui_ResultFrame.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultFrame.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultFrame.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ResultLabel.o: src/gui/src/Gui_ResultLabel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultLabel.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultLabel.Tpo -c -o src/gui/src/opencfu-Gui_ResultLabel.o `test -f 'src/gui/src/Gui_ResultLabel.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultLabel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultLabel.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultLabel.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultLabel.cpp' object='src/gui/src/opencfu-Gui_ResultLabel.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultLabel.o `test -f 'src/gui/src/Gui_ResultLabel.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultLabel.cpp
+
+src/gui/src/opencfu-Gui_ResultLabel.obj: src/gui/src/Gui_ResultLabel.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultLabel.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultLabel.Tpo -c -o src/gui/src/opencfu-Gui_ResultLabel.obj `if test -f 'src/gui/src/Gui_ResultLabel.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultLabel.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultLabel.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultLabel.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultLabel.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultLabel.cpp' object='src/gui/src/opencfu-Gui_ResultLabel.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultLabel.obj `if test -f 'src/gui/src/Gui_ResultLabel.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultLabel.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultLabel.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ResultListDisplay.o: src/gui/src/Gui_ResultListDisplay.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultListDisplay.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultListDisplay.Tpo -c -o src/gui/src/opencfu-Gui_ResultListDisplay.o `test -f 'src/gui/src/Gui_ResultListDisplay.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultListDisplay.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultListDisplay.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultListDisplay.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultListDisplay.cpp' object='src/gui/src/opencfu-Gui_ResultListDisplay.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultListDisplay.o `test -f 'src/gui/src/Gui_ResultListDisplay.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ResultListDisplay.cpp
+
+src/gui/src/opencfu-Gui_ResultListDisplay.obj: src/gui/src/Gui_ResultListDisplay.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ResultListDisplay.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ResultListDisplay.Tpo -c -o src/gui/src/opencfu-Gui_ResultListDisplay.obj `if test -f 'src/gui/src/Gui_ResultListDisplay.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultListDisplay.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultListDisplay.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ResultListDisplay.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ResultListDisplay.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ResultListDisplay.cpp' object='src/gui/src/opencfu-Gui_ResultListDisplay.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ResultListDisplay.obj `if test -f 'src/gui/src/Gui_ResultListDisplay.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ResultListDisplay.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ResultListDisplay.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ThresholdSetter.o: src/gui/src/Gui_ThresholdSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ThresholdSetter.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ThresholdSetter.Tpo -c -o src/gui/src/opencfu-Gui_ThresholdSetter.o `test -f 'src/gui/src/Gui_ThresholdSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ThresholdSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ThresholdSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ThresholdSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ThresholdSetter.cpp' object='src/gui/src/opencfu-Gui_ThresholdSetter.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ThresholdSetter.o `test -f 'src/gui/src/Gui_ThresholdSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ThresholdSetter.cpp
+
+src/gui/src/opencfu-Gui_ThresholdSetter.obj: src/gui/src/Gui_ThresholdSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ThresholdSetter.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ThresholdSetter.Tpo -c -o src/gui/src/opencfu-Gui_ThresholdSetter.obj `if test -f 'src/gui/src/Gui_ThresholdSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ThresholdSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ThresholdSetter.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ThresholdSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ThresholdSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ThresholdSetter.cpp' object='src/gui/src/opencfu-Gui_ThresholdSetter.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ThresholdSetter.obj `if test -f 'src/gui/src/Gui_ThresholdSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ThresholdSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ThresholdSetter.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ConfigIO.o: src/gui/src/Gui_ConfigIO.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ConfigIO.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ConfigIO.Tpo -c -o src/gui/src/opencfu-Gui_ConfigIO.o `test -f 'src/gui/src/Gui_ConfigIO.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ConfigIO.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ConfigIO.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ConfigIO.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ConfigIO.cpp' object='src/gui/src/opencfu-Gui_ConfigIO.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ConfigIO.o `test -f 'src/gui/src/Gui_ConfigIO.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ConfigIO.cpp
+
+src/gui/src/opencfu-Gui_ConfigIO.obj: src/gui/src/Gui_ConfigIO.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ConfigIO.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ConfigIO.Tpo -c -o src/gui/src/opencfu-Gui_ConfigIO.obj `if test -f 'src/gui/src/Gui_ConfigIO.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ConfigIO.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ConfigIO.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ConfigIO.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ConfigIO.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ConfigIO.cpp' object='src/gui/src/opencfu-Gui_ConfigIO.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ConfigIO.obj `if test -f 'src/gui/src/Gui_ConfigIO.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ConfigIO.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ConfigIO.cpp'; fi`
+
+src/gui/src/opencfu-Gui_HelloWindow.o: src/gui/src/Gui_HelloWindow.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_HelloWindow.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_HelloWindow.Tpo -c -o src/gui/src/opencfu-Gui_HelloWindow.o `test -f 'src/gui/src/Gui_HelloWindow.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_HelloWindow.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_HelloWindow.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_HelloWindow.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_HelloWindow.cpp' object='src/gui/src/opencfu-Gui_HelloWindow.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_HelloWindow.o `test -f 'src/gui/src/Gui_HelloWindow.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_HelloWindow.cpp
+
+src/gui/src/opencfu-Gui_HelloWindow.obj: src/gui/src/Gui_HelloWindow.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_HelloWindow.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_HelloWindow.Tpo -c -o src/gui/src/opencfu-Gui_HelloWindow.obj `if test -f 'src/gui/src/Gui_HelloWindow.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_HelloWindow.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_HelloWindow.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_HelloWindow.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_HelloWindow.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_HelloWindow.cpp' object='src/gui/src/opencfu-Gui_HelloWindow.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_HelloWindow.obj `if test -f 'src/gui/src/Gui_HelloWindow.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_HelloWindow.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_HelloWindow.cpp'; fi`
+
+src/gui/src/opencfu-ResultMap.o: src/gui/src/ResultMap.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-ResultMap.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-ResultMap.Tpo -c -o src/gui/src/opencfu-ResultMap.o `test -f 'src/gui/src/ResultMap.cpp' || echo '$(srcdir)/'`src/gui/src/ResultMap.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-ResultMap.Tpo src/gui/src/$(DEPDIR)/opencfu-ResultMap.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/ResultMap.cpp' object='src/gui/src/opencfu-ResultMap.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-ResultMap.o `test -f 'src/gui/src/ResultMap.cpp' || echo '$(srcdir)/'`src/gui/src/ResultMap.cpp
+
+src/gui/src/opencfu-ResultMap.obj: src/gui/src/ResultMap.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-ResultMap.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-ResultMap.Tpo -c -o src/gui/src/opencfu-ResultMap.obj `if test -f 'src/gui/src/ResultMap.cpp'; then $(CYGPATH_W) 'src/gui/src/ResultMap.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/ResultMap.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-ResultMap.Tpo src/gui/src/$(DEPDIR)/opencfu-ResultMap.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/ResultMap.cpp' object='src/gui/src/opencfu-ResultMap.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-ResultMap.obj `if test -f 'src/gui/src/ResultMap.cpp'; then $(CYGPATH_W) 'src/gui/src/ResultMap.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/ResultMap.cpp'; fi`
+
+src/gui/src/opencfu-Gui_UserFilterSetter.o: src/gui/src/Gui_UserFilterSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_UserFilterSetter.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_UserFilterSetter.Tpo -c -o src/gui/src/opencfu-Gui_UserFilterSetter.o `test -f 'src/gui/src/Gui_UserFilterSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_UserFilterSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_UserFilterSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_UserFilterSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_UserFilterSetter.cpp' object='src/gui/src/opencfu-Gui_UserFilterSetter.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_UserFilterSetter.o `test -f 'src/gui/src/Gui_UserFilterSetter.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_UserFilterSetter.cpp
+
+src/gui/src/opencfu-Gui_UserFilterSetter.obj: src/gui/src/Gui_UserFilterSetter.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_UserFilterSetter.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_UserFilterSetter.Tpo -c -o src/gui/src/opencfu-Gui_UserFilterSetter.obj `if test -f 'src/gui/src/Gui_UserFilterSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_UserFilterSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_UserFilterSetter.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_UserFilterSetter.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_UserFilterSetter.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_UserFilterSetter.cpp' object='src/gui/src/opencfu-Gui_UserFilterSetter.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_UserFilterSetter.obj `if test -f 'src/gui/src/Gui_UserFilterSetter.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_UserFilterSetter.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_UserFilterSetter.cpp'; fi`
+
+src/gui/src/opencfu-Gui_PixbufOpener.o: src/gui/src/Gui_PixbufOpener.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_PixbufOpener.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_PixbufOpener.Tpo -c -o src/gui/src/opencfu-Gui_PixbufOpener.o `test -f 'src/gui/src/Gui_PixbufOpener.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_PixbufOpener.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_PixbufOpener.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_PixbufOpener.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_PixbufOpener.cpp' object='src/gui/src/opencfu-Gui_PixbufOpener.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_PixbufOpener.o `test -f 'src/gui/src/Gui_PixbufOpener.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_PixbufOpener.cpp
+
+src/gui/src/opencfu-Gui_PixbufOpener.obj: src/gui/src/Gui_PixbufOpener.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_PixbufOpener.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_PixbufOpener.Tpo -c -o src/gui/src/opencfu-Gui_PixbufOpener.obj `if test -f 'src/gui/src/Gui_PixbufOpener.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_PixbufOpener.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_PixbufOpener.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_PixbufOpener.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_PixbufOpener.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_PixbufOpener.cpp' object='src/gui/src/opencfu-Gui_PixbufOpener.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_PixbufOpener.obj `if test -f 'src/gui/src/Gui_PixbufOpener.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_PixbufOpener.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_PixbufOpener.cpp'; fi`
+
+src/gui/src/opencfu-Gui_ColourCluster.o: src/gui/src/Gui_ColourCluster.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ColourCluster.o -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ColourCluster.Tpo -c -o src/gui/src/opencfu-Gui_ColourCluster.o `test -f 'src/gui/src/Gui_ColourCluster.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ColourCluster.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ColourCluster.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ColourCluster.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ColourCluster.cpp' object='src/gui/src/opencfu-Gui_ColourCluster.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ColourCluster.o `test -f 'src/gui/src/Gui_ColourCluster.cpp' || echo '$(srcdir)/'`src/gui/src/Gui_ColourCluster.cpp
+
+src/gui/src/opencfu-Gui_ColourCluster.obj: src/gui/src/Gui_ColourCluster.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/gui/src/opencfu-Gui_ColourCluster.obj -MD -MP -MF src/gui/src/$(DEPDIR)/opencfu-Gui_ColourCluster.Tpo -c -o src/gui/src/opencfu-Gui_ColourCluster.obj `if test -f 'src/gui/src/Gui_ColourCluster.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ColourCluster.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ColourCluster.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/gui/src/$(DEPDIR)/opencfu-Gui_ColourCluster.Tpo src/gui/src/$(DEPDIR)/opencfu-Gui_ColourCluster.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/gui/src/Gui_ColourCluster.cpp' object='src/gui/src/opencfu-Gui_ColourCluster.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(opencfu_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/gui/src/opencfu-Gui_ColourCluster.obj `if test -f 'src/gui/src/Gui_ColourCluster.cpp'; then $(CYGPATH_W) 'src/gui/src/Gui_ColourCluster.cpp'; else $(CYGPATH_W) '$(srcdir)/src/gui/src/Gui_ColourCluster.cpp'; fi`
+
+src/classifier/trainer-main.o: src/classifier/main.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/classifier/trainer-main.o -MD -MP -MF src/classifier/$(DEPDIR)/trainer-main.Tpo -c -o src/classifier/trainer-main.o `test -f 'src/classifier/main.cpp' || echo '$(srcdir)/'`src/classifier/main.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/classifier/$(DEPDIR)/trainer-main.Tpo src/classifier/$(DEPDIR)/trainer-main.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/classifier/main.cpp' object='src/classifier/trainer-main.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/classifier/trainer-main.o `test -f 'src/classifier/main.cpp' || echo '$(srcdir)/'`src/classifier/main.cpp
+
+src/classifier/trainer-main.obj: src/classifier/main.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/classifier/trainer-main.obj -MD -MP -MF src/classifier/$(DEPDIR)/trainer-main.Tpo -c -o src/classifier/trainer-main.obj `if test -f 'src/classifier/main.cpp'; then $(CYGPATH_W) 'src/classifier/main.cpp'; else $(CYGPATH_W) '$(srcdir)/src/classifier/main.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/classifier/$(DEPDIR)/trainer-main.Tpo src/classifier/$(DEPDIR)/trainer-main.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/classifier/main.cpp' object='src/classifier/trainer-main.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/classifier/trainer-main.obj `if test -f 'src/classifier/main.cpp'; then $(CYGPATH_W) 'src/classifier/main.cpp'; else $(CYGPATH_W) '$(srcdir)/src/classifier/main.cpp'; fi`
+
+src/classifier/src/trainer-DataMaker.o: src/classifier/src/DataMaker.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/classifier/src/trainer-DataMaker.o -MD -MP -MF src/classifier/src/$(DEPDIR)/trainer-DataMaker.Tpo -c -o src/classifier/src/trainer-DataMaker.o `test -f 'src/classifier/src/DataMaker.cpp' || echo '$(srcdir)/'`src/classifier/src/DataMaker.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/classifier/src/$(DEPDIR)/trainer-DataMaker.Tpo src/classifier/src/$(DEPDIR)/trainer-DataMaker.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/classifier/src/DataMaker.cpp' object='src/classifier/src/trainer-DataMaker.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/classifier/src/trainer-DataMaker.o `test -f 'src/classifier/src/DataMaker.cpp' || echo '$(srcdir)/'`src/classifier/src/DataMaker.cpp
+
+src/classifier/src/trainer-DataMaker.obj: src/classifier/src/DataMaker.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/classifier/src/trainer-DataMaker.obj -MD -MP -MF src/classifier/src/$(DEPDIR)/trainer-DataMaker.Tpo -c -o src/classifier/src/trainer-DataMaker.obj `if test -f 'src/classifier/src/DataMaker.cpp'; then $(CYGPATH_W) 'src/classifier/src/DataMaker.cpp'; else $(CYGPATH_W) '$(srcdir)/src/classifier/src/DataMaker.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/classifier/src/$(DEPDIR)/trainer-DataMaker.Tpo src/classifier/src/$(DEPDIR)/trainer-DataMaker.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/classifier/src/DataMaker.cpp' object='src/classifier/src/trainer-DataMaker.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/classifier/src/trainer-DataMaker.obj `if test -f 'src/classifier/src/DataMaker.cpp'; then $(CYGPATH_W) 'src/classifier/src/DataMaker.cpp'; else $(CYGPATH_W) '$(srcdir)/src/classifier/src/DataMaker.cpp'; fi`
+
+src/processor/src/trainer-Predictor.o: src/processor/src/Predictor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/trainer-Predictor.o -MD -MP -MF src/processor/src/$(DEPDIR)/trainer-Predictor.Tpo -c -o src/processor/src/trainer-Predictor.o `test -f 'src/processor/src/Predictor.cpp' || echo '$(srcdir)/'`src/processor/src/Predictor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/trainer-Predictor.Tpo src/processor/src/$(DEPDIR)/trainer-Predictor.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Predictor.cpp' object='src/processor/src/trainer-Predictor.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/trainer-Predictor.o `test -f 'src/processor/src/Predictor.cpp' || echo '$(srcdir)/'`src/processor/src/Predictor.cpp
+
+src/processor/src/trainer-Predictor.obj: src/processor/src/Predictor.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/trainer-Predictor.obj -MD -MP -MF src/processor/src/$(DEPDIR)/trainer-Predictor.Tpo -c -o src/processor/src/trainer-Predictor.obj `if test -f 'src/processor/src/Predictor.cpp'; then $(CYGPATH_W) 'src/processor/src/Predictor.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Predictor.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/trainer-Predictor.Tpo src/processor/src/$(DEPDIR)/trainer-Predictor.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Predictor.cpp' object='src/processor/src/trainer-Predictor.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/trainer-Predictor.obj `if test -f 'src/processor/src/Predictor.cpp'; then $(CYGPATH_W) 'src/processor/src/Predictor.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Predictor.cpp'; fi`
+
+src/processor/src/trainer-ContourFamily.o: src/processor/src/ContourFamily.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/trainer-ContourFamily.o -MD -MP -MF src/processor/src/$(DEPDIR)/trainer-ContourFamily.Tpo -c -o src/processor/src/trainer-ContourFamily.o `test -f 'src/processor/src/ContourFamily.cpp' || echo '$(srcdir)/'`src/processor/src/ContourFamily.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/trainer-ContourFamily.Tpo src/processor/src/$(DEPDIR)/trainer-ContourFamily.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ContourFamily.cpp' object='src/processor/src/trainer-ContourFamily.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/trainer-ContourFamily.o `test -f 'src/processor/src/ContourFamily.cpp' || echo '$(srcdir)/'`src/processor/src/ContourFamily.cpp
+
+src/processor/src/trainer-ContourFamily.obj: src/processor/src/ContourFamily.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/trainer-ContourFamily.obj -MD -MP -MF src/processor/src/$(DEPDIR)/trainer-ContourFamily.Tpo -c -o src/processor/src/trainer-ContourFamily.obj `if test -f 'src/processor/src/ContourFamily.cpp'; then $(CYGPATH_W) 'src/processor/src/ContourFamily.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ContourFamily.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/trainer-ContourFamily.Tpo src/processor/src/$(DEPDIR)/trainer-ContourFamily.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/ContourFamily.cpp' object='src/processor/src/trainer-ContourFamily.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/trainer-ContourFamily.obj `if test -f 'src/processor/src/ContourFamily.cpp'; then $(CYGPATH_W) 'src/processor/src/ContourFamily.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/ContourFamily.cpp'; fi`
+
+src/processor/src/trainer-Features.o: src/processor/src/Features.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/trainer-Features.o -MD -MP -MF src/processor/src/$(DEPDIR)/trainer-Features.Tpo -c -o src/processor/src/trainer-Features.o `test -f 'src/processor/src/Features.cpp' || echo '$(srcdir)/'`src/processor/src/Features.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/trainer-Features.Tpo src/processor/src/$(DEPDIR)/trainer-Features.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Features.cpp' object='src/processor/src/trainer-Features.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/trainer-Features.o `test -f 'src/processor/src/Features.cpp' || echo '$(srcdir)/'`src/processor/src/Features.cpp
+
+src/processor/src/trainer-Features.obj: src/processor/src/Features.cpp
+ at am__fastdepCXX_TRUE@	$(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/processor/src/trainer-Features.obj -MD -MP -MF src/processor/src/$(DEPDIR)/trainer-Features.Tpo -c -o src/processor/src/trainer-Features.obj `if test -f 'src/processor/src/Features.cpp'; then $(CYGPATH_W) 'src/processor/src/Features.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Features.cpp'; fi`
+ at am__fastdepCXX_TRUE@	$(AM_V_at)$(am__mv) src/processor/src/$(DEPDIR)/trainer-Features.Tpo src/processor/src/$(DEPDIR)/trainer-Features.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	$(AM_V_CXX)source='src/processor/src/Features.cpp' object='src/processor/src/trainer-Features.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@	DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@	$(AM_V_CXX at am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(trainer_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/processor/src/trainer-Features.obj `if test -f 'src/processor/src/Features.cpp'; then $(CYGPATH_W) 'src/processor/src/Features.cpp'; else $(CYGPATH_W) '$(srcdir)/src/processor/src/Features.cpp'; fi`
+install-dist_appicon128DATA: $(dist_appicon128_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(dist_appicon128_DATA)'; test -n "$(appicon128dir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(appicon128dir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(appicon128dir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appicon128dir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(appicon128dir)" || exit $$?; \
+	done
+
+uninstall-dist_appicon128DATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(dist_appicon128_DATA)'; test -n "$(appicon128dir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(appicon128dir)'; $(am__uninstall_files_from_dir)
+install-dist_appicon48DATA: $(dist_appicon48_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(dist_appicon48_DATA)'; test -n "$(appicon48dir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(appicon48dir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(appicon48dir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appicon48dir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(appicon48dir)" || exit $$?; \
+	done
+
+uninstall-dist_appicon48DATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(dist_appicon48_DATA)'; test -n "$(appicon48dir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(appicon48dir)'; $(am__uninstall_files_from_dir)
+install-dist_appiconSVGDATA: $(dist_appiconSVG_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(dist_appiconSVG_DATA)'; test -n "$(appiconSVGdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(appiconSVGdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(appiconSVGdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(appiconSVGdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(appiconSVGdir)" || exit $$?; \
+	done
+
+uninstall-dist_appiconSVGDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(dist_appiconSVG_DATA)'; test -n "$(appiconSVGdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(appiconSVGdir)'; $(am__uninstall_files_from_dir)
+install-dist_applicationDATA: $(dist_application_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(dist_application_DATA)'; test -n "$(applicationdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(applicationdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(applicationdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(applicationdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(applicationdir)" || exit $$?; \
+	done
+
+uninstall-dist_applicationDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(dist_application_DATA)'; test -n "$(applicationdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(applicationdir)'; $(am__uninstall_files_from_dir)
+install-nobase_dist_opencfuDATA: $(nobase_dist_opencfu_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(nobase_dist_opencfu_DATA)'; test -n "$(opencfudir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(opencfudir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(opencfudir)" || exit 1; \
+	fi; \
+	$(am__nobase_list) | while read dir files; do \
+	  xfiles=; for file in $$files; do \
+	    if test -f "$$file"; then xfiles="$$xfiles $$file"; \
+	    else xfiles="$$xfiles $(srcdir)/$$file"; fi; done; \
+	  test -z "$$xfiles" || { \
+	    test "x$$dir" = x. || { \
+	      echo " $(MKDIR_P) '$(DESTDIR)$(opencfudir)/$$dir'"; \
+	      $(MKDIR_P) "$(DESTDIR)$(opencfudir)/$$dir"; }; \
+	    echo " $(INSTALL_DATA) $$xfiles '$(DESTDIR)$(opencfudir)/$$dir'"; \
+	    $(INSTALL_DATA) $$xfiles "$(DESTDIR)$(opencfudir)/$$dir" || exit $$?; }; \
+	done
+
+uninstall-nobase_dist_opencfuDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(nobase_dist_opencfu_DATA)'; test -n "$(opencfudir)" || list=; \
+	$(am__nobase_strip_setup); files=`$(am__nobase_strip)`; \
+	dir='$(DESTDIR)$(opencfudir)'; $(am__uninstall_files_from_dir)
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+	test ! -s cscope.files \
+	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+	-rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+distdir: $(DISTFILES)
+	$(am__remove_distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -755 \
+		-exec chmod u+rwx,go+rx {} \; -o \
+	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+	|| chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+	$(am__post_remove_distdir)
+
+dist-bzip2: distdir
+	tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+	$(am__post_remove_distdir)
+
+dist-lzip: distdir
+	tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+	$(am__post_remove_distdir)
+
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+	$(am__post_remove_distdir)
+
+dist-tarZ: distdir
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+	$(am__post_remove_distdir)
+
+dist-shar: distdir
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+	$(am__post_remove_distdir)
+
+dist-zip: distdir
+	-rm -f $(distdir).zip
+	zip -rq $(distdir).zip $(distdir)
+	$(am__post_remove_distdir)
+
+dist dist-all:
+	$(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+	$(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+	case '$(DIST_ARCHIVES)' in \
+	*.tar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+	*.tar.bz2*) \
+	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+	*.tar.lz*) \
+	  lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+	*.tar.Z*) \
+	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+	*.shar.gz*) \
+	  GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
+	*.zip*) \
+	  unzip $(distdir).zip ;;\
+	esac
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
+	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
+	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build \
+	  && ../configure \
+	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+	    $(DISTCHECK_CONFIGURE_FLAGS) \
+	    --srcdir=.. --prefix="$$dc_install_base" \
+	  && $(MAKE) $(AM_MAKEFLAGS) \
+	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
+	  && $(MAKE) $(AM_MAKEFLAGS) check \
+	  && $(MAKE) $(AM_MAKEFLAGS) install \
+	  && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+	  && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+	  && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+	        distuninstallcheck \
+	  && chmod -R a-w "$$dc_install_base" \
+	  && ({ \
+	       (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+	       && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+	            distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+	      } || { rm -rf "$$dc_destdir"; exit 1; }) \
+	  && rm -rf "$$dc_destdir" \
+	  && $(MAKE) $(AM_MAKEFLAGS) dist \
+	  && rm -rf $(DIST_ARCHIVES) \
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
+	$(am__post_remove_distdir)
+	@(echo "$(distdir) archives ready for distribution: "; \
+	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+	@test -n '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: trying to run $@ with an empty' \
+	       '$$(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	$(am__cd) '$(distuninstallcheck_dir)' || { \
+	  echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+	  exit 1; \
+	}; \
+	test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+	   || { echo "ERROR: files left after uninstall:" ; \
+	        if test -n "$(DESTDIR)"; then \
+	          echo "  (check DESTDIR support)"; \
+	        fi ; \
+	        $(distuninstallcheck_listfiles) ; \
+	        exit 1; } >&2
+distcleancheck: distclean
+	@if test '$(srcdir)' = . ; then \
+	  echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+	  exit 1 ; \
+	fi
+	@test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+	  || { echo "ERROR: files left in build directory after distclean:" ; \
+	       $(distcleancheck_listfiles) ; \
+	       exit 1; } >&2
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(DATA) config.h
+installdirs:
+	for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(appicon128dir)" "$(DESTDIR)$(appicon48dir)" "$(DESTDIR)$(appiconSVGdir)" "$(DESTDIR)$(applicationdir)" "$(DESTDIR)$(opencfudir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+	-rm -f src/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/$(am__dirstamp)
+	-rm -f src/classifier/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/classifier/$(am__dirstamp)
+	-rm -f src/classifier/src/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/classifier/src/$(am__dirstamp)
+	-rm -f src/gui/src/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/gui/src/$(am__dirstamp)
+	-rm -f src/processor/src/$(DEPDIR)/$(am__dirstamp)
+	-rm -f src/processor/src/$(am__dirstamp)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-binPROGRAMS clean-generic clean-local \
+	clean-noinstPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf src/$(DEPDIR) src/classifier/$(DEPDIR) src/classifier/src/$(DEPDIR) src/gui/src/$(DEPDIR) src/processor/src/$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-dist_appicon128DATA \
+	install-dist_appicon48DATA install-dist_appiconSVGDATA \
+	install-dist_applicationDATA install-nobase_dist_opencfuDATA
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
+	-rm -rf $(top_srcdir)/autom4te.cache
+	-rm -rf src/$(DEPDIR) src/classifier/$(DEPDIR) src/classifier/src/$(DEPDIR) src/gui/src/$(DEPDIR) src/processor/src/$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-dist_appicon128DATA \
+	uninstall-dist_appicon48DATA uninstall-dist_appiconSVGDATA \
+	uninstall-dist_applicationDATA \
+	uninstall-nobase_dist_opencfuDATA
+
+.MAKE: all install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \
+	clean-binPROGRAMS clean-cscope clean-generic clean-local \
+	clean-noinstPROGRAMS cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
+	dist-xz dist-zip distcheck distclean distclean-compile \
+	distclean-generic distclean-hdr distclean-tags distcleancheck \
+	distdir distuninstallcheck dvi dvi-am html html-am info \
+	info-am install install-am install-binPROGRAMS install-data \
+	install-data-am install-dist_appicon128DATA \
+	install-dist_appicon48DATA install-dist_appiconSVGDATA \
+	install-dist_applicationDATA install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man \
+	install-nobase_dist_opencfuDATA install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am uninstall-binPROGRAMS \
+	uninstall-dist_appicon128DATA uninstall-dist_appicon48DATA \
+	uninstall-dist_appiconSVGDATA uninstall-dist_applicationDATA \
+	uninstall-nobase_dist_opencfuDATA
+
+
+ at DEV_MODE_TRUE@	AM_CXXFLAGS += -pg
+ at DEV_MODE_TRUE@	AM_LDFLAGS += -pg
+ at DEV_MODE_TRUE@	BETA = BETA
+
+$(TRAINED_CLASSIF): trainer
+	./trainer t $(TRAINED_CLASSIF)
+	./trainer w $(TRAINED_CLASSIF)
+
+$(TRAINED_CLASSIF_PS): trainer
+	./trainer t $(TRAINED_CLASSIF_PS) ps
+	./trainer w $(TRAINED_CLASSIF_PS) ps
+
+clean-local:
+	rm -f $(TRAINED_CLASSIF)
+	rm -f $(TRAINED_CLASSIF_PS)
+	rm -f *.tar.gz
+	rm -f *.exe
+$(MD5_FILE): dist
+	md5sum  $(DIST_ARCHIVES) | cut -f 1 -d ' ' > $(MD5_FILE)
+
+publish_windows:$(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS) $(VERSION_FILE)
+	$(eval SETUP_NAME="OpenCFU-$(VERSION)$(BETA)_setup.exe")
+	sed s/^AppVerName=.*/AppVerName=$(VERSION)/ $(PKG_SCRIPT_DIR)/OpenCFU_noVersion.iss > $(PKG_SCRIPT_DIR)/OpenCFU.iss
+	ISCC.exe $(PKG_SCRIPT_DIR)/OpenCFU.iss
+	mv setup.exe $(SETUP_NAME)
+	rsync -avP -e ssh $(SETUP_NAME) quentelery,opencfu at frs.sourceforge.net:/home/frs/project/o/op/opencfu/windows
+
+$(PKGBUILD_FILE): $(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS) $(MD5_FILE)
+	sed s/^pkgver=.*/pkgver=$(VERSION)/ $(PKGBUILD_FILE).template > $(PKGBUILD_FILE)
+	mv $(PKGBUILD_FILE) $(PKGBUILD_FILE).template
+	sed s/"^md5sums=('.*')"/"md5sums=($(MD5))"/ $(PKGBUILD_FILE).template > $(PKGBUILD_FILE)
+
+publish_linux: $(DESKTOP_FILE) $(PKGBUILD_FILE) $(DESKTOP_FILE)
+	rsync -avP -e ssh $(DIST_ARCHIVES) quentelery,opencfu at frs.sourceforge.net:/home/frs/project/o/op/opencfu/linux
+deb: dist
+	mkdir $(TMP_DEB)
+	cp $(DIST_ARCHIVES) $(DEB_TAR)
+	cp $(PKG_SCRIPT_DIR)/Makefile-deb $(TMP_DEB)/Makefile
+	cp $(DEB_DIR) $(TMP_DEB) -r
+	make -C  $(TMP_DEB) all
+	echo SUCCESS DEBIAN PACKAGE FILES ARE IN '$(TMP_DEB)'
+
+#	mv $(ls $(TMP_DEB))	$(ls $(TMP_DEB) | sed s/"-"/"_"/ |  sed s/".tar."/".orig.tar."/)
+#	rm -rf $(TMP_DEB)
+
+ref_results: $(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS)
+	./test/stressTest.sh make
+
+#check: $(bin_PROGRAMS) $(TRAINED_CLASSIF) $(TRAINED_CLASSIF_PS)
+#	./test/stressTest.sh
+
+cleanall: clean-local
+	rm -f *.in *.m4 config.* configure *.log Makefile stamp-h1
+	rm -rf build-aux config *.cache
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..9d6d853
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,60 @@
+2013-08-27: 3.8.11
+    Cleanup makefile and code
+
+2013-08-13: 3.8.10
+        Fix eroneous detailled output
+
+2013-08-04: 3.8.9
+	BUILD:
+		fix some configure issues and warnings.
+2013-07-26: 3.8.8
+    GUI:
+        Typos
+        Fix bug when overwritting files with files already presents
+        Add transparency layer to colour wheel
+        Now uses two different classifiers
+2013-07-15: 3.8.7
+	GUI:
+		Implementation of Masks and ROIs
+    PROCESSING:
+        FIX the bug that gave wrong result on platorms such as ARM (e.g. raspberry pi).
+    COMMAND LINE INTERFACE:
+		Results are printed in stdout
+
+2013-06-19: 3.8.6
+    GUI:
+        Writing of tooltips to help users :D
+        A few critical bugs have been found and fixed -> more stability
+    CLI:
+        add threshold mode/type as an argument
+
+2013-06-13: 3.8.5
+
+    THIS IS A BETA VERSION. DO NOT USE FOR PRODUCTION PURPOSES.
+    Many important changes have taken place since version 3.3 (the originally published version).
+    The modifications are summarised bellow.
+
+    PROCESSING:
+        The feature classifier is not a human defined arbitrary decision tree (as described in the paper) any more.
+        Instead, OpenCFU now uses a trained Random Forest[Breiman, 2001] as particle filter (~15 morphological features are used).
+        It is therefore more efficient, but also more flexible because it is easy to re-train the classifier with a different sample set.
+    CODE:
+        Although it is still C++, the code has been rewritten from scratch with a much more object oriented programming approach in mind.
+        The code should then be more modular and easier to maintain in the future. The software should also be more stable.
+        In addition, OpenCFU now uses autoconf/automake (./configure && make) wich should make the code more portable.
+        Finally, OpenCFU is now on a git repository(on sourceforge). This also helps to maintain and reuse the program.
+
+    GRAPHICAL USER INTERFACE:
+        The user interface has undergone deep modifications. The main changes are:
+            1) A new area dedicated to see the result as a table/list
+            2) A image displayer that is scalable and can be progressively zoomed in (using mouse scroll)
+            3) The ability to right click on colonies to exclude/include them
+            4) The interface tells the user when the processing is taking place (progress bar)
+            5) Possibility to drag and drop images to load them
+            6) The interface should be more aesthetically pleasing and work small screens
+
+        The use of webcam, masks/ROI and a few other features have not been reimplemented yet. This will come back in the future.
+
+    COMMAND LINE INTERFACE:
+        OpenCFU can now be properly used from terminal (see the manual using `opencfu -h') and the program can event be compiled without Glib/Gtkmm support (i.e. without a GUI).
+        This is useful to run the program on a workstation or a server and to quickly compare/test the result on image sets.
diff --git a/TODO b/TODO
new file mode 100644
index 0000000..e6d0e6b
--- /dev/null
+++ b/TODO
@@ -0,0 +1,37 @@
+STABILITY:
+    16B IMG TILING !!
+FEATURES:
+    Video
+    save current image
+TOFINISH:
+        add new options (save result, paint img)
+FIX:
+    bug Nincluster: unchanged in colony invalid
+    #N in cluster instead of N neighbours
+    
+MAKEFILE:
+    test result during stresstest
+
+TOFIX:
+    MINOR:
+        OVERWRITE file when part of the files are present in the current list (Thanks to Rob Egbert)
+    improve colony spliter -> a lot of colonies are excluded afer spliting
+
+        TRANSPARENCE ON COLOUR WEEL
+
+        PERFOMANCE:
+            DISPLAY:
+                do not query and scale image systematically!!
+                -> nstead, cache  the scaled image !(espetialy when redecorating!)
+                use threading for display scaling!
+        RESULTLIST:
+            click on path to open file.
+
+Suggested Features:
+    Click and drag on display (Rob Egbert)
+
+ROADMAP:
+    TRAININGSET:
+        make more
+    GUI:
+        add images thumbnails to list
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..f5cb818
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,1150 @@
+# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
+[m4_warning([this file was generated for autoconf 2.69.
+You have another version of autoconf.  It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.14'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version.  Point them to the right macro.
+m4_if([$1], [1.14.1], [],
+      [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too.  Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.14.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory.  The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run.  This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+#    fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+#    fails if $ac_aux_dir is absolute,
+#    fails when called from a subdirectory in a VPATH build with
+#          a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir.  In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+#   MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH.  The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL                                            -*- Autoconf -*-
+
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+       [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+  $1_TRUE=
+  $1_FALSE='#'
+else
+  $1_TRUE='#'
+  $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+  AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery.  Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC],   [depcc="$CC"   am_compiler_list=],
+      [$1], [CXX],  [depcc="$CXX"  am_compiler_list=],
+      [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+      [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+      [$1], [UPC],  [depcc="$UPC"  am_compiler_list=],
+      [$1], [GCJ],  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+                    [depcc="$$1"   am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+               [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_$1_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+  fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_$1_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+  [--enable-dependency-tracking],
+  [do not reject slow dependency extractors])
+AS_HELP_STRING(
+  [--disable-dependency-tracking],
+  [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking.              -*- Autoconf -*-
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled.  FIXME.  This creates each '.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake.                             -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much.  Some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition.  After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+             [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+  m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+  [ok:ok],,
+  [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+		  [_AM_DEPENDENCIES([CC])],
+		  [m4_define([AC_PROG_CC],
+			     m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+		  [_AM_DEPENDENCIES([CXX])],
+		  [m4_define([AC_PROG_CXX],
+			     m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+		  [_AM_DEPENDENCIES([OBJC])],
+		  [m4_define([AC_PROG_OBJC],
+			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+		  [_AM_DEPENDENCIES([OBJCXX])],
+		  [m4_define([AC_PROG_OBJCXX],
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+  fi
+fi])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated.  The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot.  For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+AC_SUBST([am__include])
+AC_SUBST([am__quote])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling.                     -*- Autoconf -*-
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME.  Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake.  We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+  [whether $CC understands -c and -o together],
+  [am_cv_prog_cc_c_o],
+  [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+   ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+   (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane.    -*- Autoconf -*-
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$[*]" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$[*]" != "X $srcdir/configure conftest.file" \
+	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment])
+     fi
+     if test "$[2]" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$[2]" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+  [AC_MSG_CHECKING([that generated files are newer than configure])
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+  [--enable-silent-rules],
+  [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+  [--disable-silent-rules],
+  [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+   [am_cv_make_support_nested_variables],
+   [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries.  This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+  AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball.                            -*- Autoconf -*-
+
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+#     tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+#     $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
+
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
+  rm -rf conftest.dir
+
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/pkg.m4])
diff --git a/build-aux/compile b/build-aux/compile
new file mode 100755
index 0000000..531136b
--- /dev/null
+++ b/build-aux/compile
@@ -0,0 +1,347 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2012-10-14.11; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey at cygnus.com>.
+#
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake at gnu.org> or send patches to
+# <automake-patches at gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" ""	$nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+  file=$1
+  case $file in
+    / | /[!/]*) # absolute file, and not a UNC file
+      if test -z "$file_conv"; then
+	# lazily determine how to convert abs files
+	case `uname -s` in
+	  MINGW*)
+	    file_conv=mingw
+	    ;;
+	  CYGWIN*)
+	    file_conv=cygwin
+	    ;;
+	  *)
+	    file_conv=wine
+	    ;;
+	esac
+      fi
+      case $file_conv/,$2, in
+	*,$file_conv,*)
+	  ;;
+	mingw/*)
+	  file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+	  ;;
+	cygwin/*)
+	  file=`cygpath -m "$file" || echo "$file"`
+	  ;;
+	wine/*)
+	  file=`winepath -w "$file" || echo "$file"`
+	  ;;
+      esac
+      ;;
+  esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+  # Assume a capable shell
+  lib_path=
+  shared=:
+  linker_opts=
+  for arg
+  do
+    if test -n "$eat"; then
+      eat=
+    else
+      case $1 in
+	-o)
+	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
+	  eat=1
+	  case $2 in
+	    *.o | *.[oO][bB][jJ])
+	      func_file_conv "$2"
+	      set x "$@" -Fo"$file"
+	      shift
+	      ;;
+	    *)
+	      func_file_conv "$2"
+	      set x "$@" -Fe"$file"
+	      shift
+	      ;;
+	  esac
+	  ;;
+	-I)
+	  eat=1
+	  func_file_conv "$2" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-I*)
+	  func_file_conv "${1#-I}" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
+	-l)
+	  eat=1
+	  func_cl_dashl "$2"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-l*)
+	  func_cl_dashl "${1#-l}"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
+	-L)
+	  eat=1
+	  func_cl_dashL "$2"
+	  ;;
+	-L*)
+	  func_cl_dashL "${1#-L}"
+	  ;;
+	-static)
+	  shared=false
+	  ;;
+	-Wl,*)
+	  arg=${1#-Wl,}
+	  save_ifs="$IFS"; IFS=','
+	  for flag in $arg; do
+	    IFS="$save_ifs"
+	    linker_opts="$linker_opts $flag"
+	  done
+	  IFS="$save_ifs"
+	  ;;
+	-Xlinker)
+	  eat=1
+	  linker_opts="$linker_opts $2"
+	  ;;
+	-*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+	*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+	  func_file_conv "$1"
+	  set x "$@" -Tp"$file"
+	  shift
+	  ;;
+	*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+	  func_file_conv "$1" mingw
+	  set x "$@" "$file"
+	  shift
+	  ;;
+	*)
+	  set x "$@" "$1"
+	  shift
+	  ;;
+      esac
+    fi
+    shift
+  done
+  if test -n "$linker_opts"; then
+    linker_opts="-link$linker_opts"
+  fi
+  exec "$@" $linker_opts
+  exit 1
+}
+
+eat=
+
+case $1 in
+  '')
+     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "compile $scriptversion"
+    exit $?
+    ;;
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+    func_cl_wrapper "$@"      # Doesn't return...
+    ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+  if test -n "$eat"; then
+    eat=
+  else
+    case $1 in
+      -o)
+	# configure might choose to run compile as 'compile cc -o foo foo.c'.
+	# So we strip '-o arg' only if arg is an object.
+	eat=1
+	case $2 in
+	  *.o | *.obj)
+	    ofile=$2
+	    ;;
+	  *)
+	    set x "$@" -o "$2"
+	    shift
+	    ;;
+	esac
+	;;
+      *.c)
+	cfile=$1
+	set x "$@" "$1"
+	shift
+	;;
+      *)
+	set x "$@" "$1"
+	shift
+	;;
+    esac
+  fi
+  shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+  # If no '-o' option was seen then we might have been invoked from a
+  # pattern rule where we don't need one.  That is ok -- this is a
+  # normal compilation that the losing compiler can handle.  If no
+  # '.c' file was seen then we are probably linking.  That is also
+  # ok.
+  exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file.  Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+  if mkdir "$lockdir" >/dev/null 2>&1; then
+    break
+  fi
+  sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+  test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+  test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/depcomp b/build-aux/depcomp
new file mode 100755
index 0000000..4ebd5b3
--- /dev/null
+++ b/build-aux/depcomp
@@ -0,0 +1,791 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2013-05-30.07; # UTC
+
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
+
+case $1 in
+  '')
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputting dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+    exit $?
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit $?
+    ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='	'
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'.  On the theory
+## that the space means something, we add a space to the output as
+## well.  hp depmode also adds that space, but also prefixes the VPATH
+## to the object.  Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like '#:fec' to the end of the
+    # dependency line.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
+    echo >> "$depfile"
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  set_dir_from "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
+    "$@" -Wc,-M
+  else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
+    "$@" -M
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using '\' :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  set_dir_from  "$object"
+  set_base_from "$object"
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -ne 0; then
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
+    sed -ne '2,${
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
+  else
+    make_dummy_depfile
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
+tru64)
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
+
+msvc7)
+  if test "$libtool" = yes; then
+    showIncludes=-Wc,-showIncludes
+  else
+    showIncludes=-showIncludes
+  fi
+  "$@" $showIncludes > "$tmpdepfile"
+  stat=$?
+  grep -v '^Note: including file: ' "$tmpdepfile"
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  # The first sed program below extracts the file names and escapes
+  # backslashes for cygpath.  The second sed program outputs the file
+  # name when reading, but also accumulates all include files in the
+  # hold buffer in order to output them again at the end.  This only
+  # works with sed implementations that can handle large buffers.
+  sed < "$tmpdepfile" -n '
+/^Note: including file:  *\(.*\)/ {
+  s//\1/
+  s/\\/\\\\/g
+  p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+  s/.*/'"$tab"'/
+  G
+  p
+}' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+  rm -f "$tmpdepfile"
+  ;;
+
+msvc7msys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for ':'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+  "$@" $dashmflag |
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no eat=no
+  for arg
+  do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  # makedepend may prepend the VPATH from the source file name to the object.
+  # No need to regex-escape $object, excess matching of '.' is harmless.
+  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove '-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+        set fnord "$@"
+        shift
+        shift
+        ;;
+    *)
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
+    esac
+  done
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/install-sh b/build-aux/install-sh
new file mode 100755
index 0000000..377bb86
--- /dev/null
+++ b/build-aux/install-sh
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-11-20.07; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+   or: $0 [OPTION]... SRCFILES... DIRECTORY
+   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+   or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+  case $1 in
+    -c) ;;
+
+    -C) copy_on_change=true;;
+
+    -d) dir_arg=true;;
+
+    -g) chgrpcmd="$chgrpprog $2"
+	shift;;
+
+    --help) echo "$usage"; exit $?;;
+
+    -m) mode=$2
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
+	shift;;
+
+    -o) chowncmd="$chownprog $2"
+	shift;;
+
+    -s) stripcmd=$stripprog;;
+
+    -t) dst_arg=$2
+	# Protect names problematic for 'test' and other utilities.
+	case $dst_arg in
+	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
+	esac
+	shift;;
+
+    -T) no_target_directory=true;;
+
+    --version) echo "$0 $scriptversion"; exit $?;;
+
+    --)	shift
+	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
+  esac
+  shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+    # Protect names problematic for 'test' and other utilities.
+    case $dst_arg in
+      -* | [=\(\)!]) dst_arg=./$dst_arg;;
+    esac
+  done
+fi
+
+if test $# -eq 0; then
+  if test -z "$dir_arg"; then
+    echo "$0: no input file specified." >&2
+    exit 1
+  fi
+  # It's OK to call 'install-sh -d' without argument.
+  # This can happen when creating conditional directories.
+  exit 0
+fi
+
+if test -z "$dir_arg"; then
+  do_exit='(exit $ret); exit $ret'
+  trap "ret=129; $do_exit" 1
+  trap "ret=130; $do_exit" 2
+  trap "ret=141; $do_exit" 13
+  trap "ret=143; $do_exit" 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
+for src
+do
+  # Protect names problematic for 'test' and other utilities.
+  case $src in
+    -* | [=\(\)!]) src=./$src;;
+  esac
+
+  if test -n "$dir_arg"; then
+    dst=$src
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
+  else
+
+    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+    # might cause directories to be created, which would be especially bad
+    # if $src (and thus $dsttmp) contains '*'.
+    if test ! -f "$src" && test ! -d "$src"; then
+      echo "$0: $src does not exist." >&2
+      exit 1
+    fi
+
+    if test -z "$dst_arg"; then
+      echo "$0: no destination specified." >&2
+      exit 1
+    fi
+    dst=$dst_arg
+
+    # If destination is a directory, append the input filename; won't work
+    # if double slashes aren't ignored.
+    if test -d "$dst"; then
+      if test -n "$no_target_directory"; then
+	echo "$0: $dst_arg: Is a directory" >&2
+	exit 1
+      fi
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
+    fi
+  fi
+
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
+
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
+
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
+
+      case $dstdir in
+	/*) prefix='/';;
+	[-=\(\)!]*) prefix='./';;
+	*)  prefix='';;
+      esac
+
+      eval "$initialize_posix_glob"
+
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
+      shift
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test X"$d" = X && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
+      fi
+    fi
+  fi
+
+  if test -n "$dir_arg"; then
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+  else
+
+    # Make a couple of temp file names in the proper directory.
+    dsttmp=$dstdir/_inst.$$_
+    rmtmp=$dstdir/_rm.$$_
+
+    # Trap to clean up those temp files at exit.
+    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+    # Copy the file name to the temp name.
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+    # and set any options; do chmod last to preserve setuid bits.
+    #
+    # If any of these fail, we abort the whole thing.  If we want to
+    # ignore errors from any of these, just make sure not to ignore
+    # errors from the above "$doit $cpprog $src $dsttmp" command.
+    #
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+	# Now remove or move aside any old file at destination location.
+	# We try this two ways since rm can't unlink itself on some
+	# systems and the destination file might be busy for other
+	# reasons.  In this case, the final cleanup might fail but the new
+	# file should still install successfully.
+	{
+	  test ! -f "$dst" ||
+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+	  } ||
+	  { echo "$0: cannot unlink or rename $dst" >&2
+	    (exit 1); exit 1
+	  }
+	} &&
+
+	# Now rename the file to the real destination.
+	$doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/missing b/build-aux/missing
new file mode 100755
index 0000000..db98974
--- /dev/null
+++ b/build-aux/missing
@@ -0,0 +1,215 @@
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2013-10-28.13; # UTC
+
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+
+# 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
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+  echo 1>&2 "Try '$0 --help' for more information"
+  exit 1
+fi
+
+case $1 in
+
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
+
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
+
+  -h|--h|--he|--hel|--help)
+    echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+  -h, --help      display this help and exit
+  -v, --version   output version information and exit
+
+Supported PROGRAM values:
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake at gnu.org>."
+    exit $?
+    ;;
+
+  -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+    echo "missing $scriptversion (GNU Automake)"
+    exit $?
+    ;;
+
+  -*)
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
+    exit 1
+    ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
+
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'autom4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
+    ;;
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..a784a6c
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,112 @@
+/* config.h.in.  Generated from configure.ac by autoheader.  */
+
+/* Location of the banner */
+#undef BACKGROUND_NOISE
+
+/* Location of the banner */
+#undef BANNER_IMG
+
+/* Print debug info in stdout */
+#undef DBG_MESSAGE
+
+/* define if the compiler supports basic C++11 syntax */
+#undef HAVE_CXX11
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Location of the 128px icon */
+#undef ICON128_IMG
+
+/* Location of the 24px icon */
+#undef ICON24_IMG
+
+/* Location of the 48px icon */
+#undef ICON48_IMG
+
+/* Location of the 64px icon */
+#undef ICON64_IMG
+
+/* Location of the logo */
+#undef LOGO_IMG
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* The actual name (Capitals) */
+#undef PROGRAM_NAME
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Location of the test set */
+#undef TEST_SET_IMG
+
+/* Location of the classifier post-splitting */
+#undef TRAINED_CLASSIF_PS_XML_FILE
+
+/* Location of the classifier */
+#undef TRAINED_CLASSIF_XML_FILE
+
+/* Location of the training set */
+#undef TRAINING_SET_IMG
+
+/* Location of the training set post-splitting */
+#undef TRAINING_SET_IMG_PS
+
+/* We build opencv witha GUI */
+#undef WITH_GUI
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+   calls it, or to nothing if 'inline' is not supported under any name.  */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
diff --git a/configure b/configure
new file mode 100755
index 0000000..1e396ad
--- /dev/null
+++ b/configure
@@ -0,0 +1,6810 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.69 for opencfu 3.9.0.
+#
+# Report bugs to <opencfu at gmail.com>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+# Use a proper internal environment variable to ensure we don't fall
+  # into an infinite loop, continuously re-executing ourselves.
+  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+    _as_can_reexec=no; export _as_can_reexec;
+    # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+as_fn_exit 255
+  fi
+  # We don't want this to propagate to other subprocesses.
+          { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+test -x / || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+	 /*)
+	   for as_base in sh bash ksh sh5; do
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+	   done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  export CONFIG_SHELL
+             # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+  *v*x* | *x*v* ) as_opts=-vx ;;
+  *v* ) as_opts=-v ;;
+  *x* ) as_opts=-x ;;
+  * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf at gnu.org and opencfu at gmail.com
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+  # already done that, so ensure we don't try to do so again and fall
+  # in an infinite loop.  This has already happened in practice.
+  _as_can_reexec=no; export _as_can_reexec
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='opencfu'
+PACKAGE_TARNAME='opencfu'
+PACKAGE_VERSION='3.9.0'
+PACKAGE_STRING='opencfu 3.9.0'
+PACKAGE_BUGREPORT='opencfu at gmail.com'
+PACKAGE_URL='http://www.opencfu.sourceforge.net/'
+
+ac_unique_file="src"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_subst_vars='EGREP
+GREP
+CPP
+am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+LIBOBJS
+WIN32_FALSE
+WIN32_TRUE
+DEV_MODE_FALSE
+DEV_MODE_TRUE
+USE_GUI_FALSE
+USE_GUI_TRUE
+GTKMM_LIBS
+GTKMM_CFLAGS
+OPENCV_LIBS
+OPENCV_CFLAGS
+PKG_CONFIG
+OPENMP_CFLAGS
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+ac_ct_CC
+CFLAGS
+CC
+HAVE_CXX11
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CXX
+CPPFLAGS
+LDFLAGS
+CXXFLAGS
+CXX
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_dependency_tracking
+enable_openmp
+with_gui
+with_dbgmes
+'
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CXX
+CXXFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CCC
+CC
+CFLAGS
+PKG_CONFIG
+OPENCV_CFLAGS
+OPENCV_LIBS
+GTKMM_CFLAGS
+GTKMM_LIBS
+CPP'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval $ac_prev=\$ac_option
+    ac_prev=
+    continue
+  fi
+
+  case $ac_option in
+  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *=)   ac_optarg= ;;
+  *)    ac_optarg=yes ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir=$ac_optarg ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build_alias ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build_alias=$ac_optarg ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file=$ac_optarg ;;
+
+  --config-cache | -C)
+    cache_file=config.cache ;;
+
+  -datadir | --datadir | --datadi | --datad)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
+    datadir=$ac_optarg ;;
+
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
+  -disable-* | --disable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
+
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
+  -enable-* | --enable-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid feature name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix=$ac_optarg ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he | -h)
+    ac_init_help=long ;;
+  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+    ac_init_help=recursive ;;
+  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+    ac_init_help=short ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host_alias ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host_alias=$ac_optarg ;;
+
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir=$ac_optarg ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir=$ac_optarg ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir=$ac_optarg ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir=$ac_optarg ;;
+
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst | --locals)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+    localstatedir=$ac_optarg ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir=$ac_optarg ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c | -n)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir=$ac_optarg ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix=$ac_optarg ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix=$ac_optarg ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix=$ac_optarg ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name=$ac_optarg ;;
+
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir=$ac_optarg ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir=$ac_optarg ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site=$ac_optarg ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir=$ac_optarg ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir=$ac_optarg ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target_alias ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target_alias=$ac_optarg ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers | -V)
+    ac_init_version=: ;;
+
+  -with-* | --with-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
+
+  -without-* | --without-*)
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    # Reject names that are not valid shell variable names.
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      as_fn_error $? "invalid package name: $ac_useropt"
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes=$ac_optarg ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries=$ac_optarg ;;
+
+  -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+    ;;
+
+  *=*)
+    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+    # Reject names that are not valid shell variable names.
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+    esac
+    eval $ac_envvar=\$ac_optarg
+    export $ac_envvar ;;
+
+  *)
+    # FIXME: should be removed in autoconf 3.0.
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+  as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
+do
+  eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
+  case $ac_val in
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+  esac
+  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+  if test "x$build_alias" = x; then
+    cross_compiling=maybe
+  elif test "x$build_alias" != "x$host_alias"; then
+    cross_compiling=yes
+  fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  srcdir=$ac_confdir
+  if test ! -r "$srcdir/$ac_unique_file"; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+  # Omit some internal or obsolete options to make the list less imposing.
+  # This message is too long to be a string in the A/UX 3.1 sh.
+  cat <<_ACEOF
+\`configure' configures opencfu 3.9.0 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE.  See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+  -h, --help              display this help and exit
+      --help=short        display options specific to this package
+      --help=recursive    display the short help of all the included packages
+  -V, --version           display version information and exit
+  -q, --quiet, --silent   do not print \`checking ...' messages
+      --cache-file=FILE   cache test results in FILE [disabled]
+  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -n, --no-create         do not create output files
+      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/opencfu]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
+_ACEOF
+
+  cat <<\_ACEOF
+
+Program names:
+  --program-prefix=PREFIX            prepend PREFIX to installed program names
+  --program-suffix=SUFFIX            append SUFFIX to installed program names
+  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+  case $ac_init_help in
+     short | recursive ) echo "Configuration of opencfu 3.9.0:";;
+   esac
+  cat <<\_ACEOF
+
+Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
+  --enable-dependency-tracking
+                          do not reject slow dependency extractors
+  --disable-dependency-tracking
+                          speeds up one-time build
+  --disable-openmp        do not use OpenMP
+
+Optional Packages:
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --without-gui           Build without a Gtkmm GUI
+  --with-dbgmes           Print debug info in stdout
+
+Some influential environment variables:
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+              nonstandard directory <lib dir>
+  LIBS        libraries to pass to the linker, e.g. -l<library>
+  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
+  CC          C compiler command
+  CFLAGS      C compiler flags
+  PKG_CONFIG  path to pkg-config utility
+  OPENCV_CFLAGS
+              C compiler flags for OPENCV, overriding pkg-config
+  OPENCV_LIBS linker flags for OPENCV, overriding pkg-config
+  GTKMM_CFLAGS
+              C compiler flags for GTKMM, overriding pkg-config
+  GTKMM_LIBS  linker flags for GTKMM, overriding pkg-config
+  CPP         C preprocessor
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <opencfu at gmail.com>.
+opencfu home page: <http://www.opencfu.sourceforge.net/>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+  # If there are subdirs, report their specific --help.
+  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
+    ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
+    else
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
+  done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+  cat <<\_ACEOF
+opencfu configure 3.9.0
+generated by GNU Autoconf 2.69
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+  exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 test -x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+	 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } > conftest.i && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by opencfu $as_me 3.9.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    $as_echo "PATH: $as_dir"
+  done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+	ac_must_keep_next=false # Got value, back to normal.
+      else
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
+
+    $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
+
+    $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
+
+    if test -n "$ac_subst_files"; then
+      $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+      echo
+      for ac_var in $ac_subst_files
+      do
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	$as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
+
+    if test -s confdefs.h; then
+      $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  # We do not want a PATH search for config.site.
+  case $CONFIG_SITE in #((
+    -*)  ac_site_file1=./$CONFIG_SITE;;
+    */*) ac_site_file1=$CONFIG_SITE;;
+    *)   ac_site_file1=./$CONFIG_SITE;;
+  esac
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+  test "x$ac_site_file" = xNONE && continue
+  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file" \
+      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+  fi
+done
+
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special files
+  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
+  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ac_aux_dir=
+for ac_dir in build-aux "$srcdir"/build-aux; do
+  if test -f "$ac_dir/install-sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install-sh -c"
+    break
+  elif test -f "$ac_dir/install.sh"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/install.sh -c"
+    break
+  elif test -f "$ac_dir/shtool"; then
+    ac_aux_dir=$ac_dir
+    ac_install_sh="$ac_aux_dir/shtool install -c"
+    break
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
+
+
+
+# ============================================================================
+#  http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
+# ============================================================================
+#
+# SYNOPSIS
+#
+#   AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
+#
+# DESCRIPTION
+#
+#   Check for baseline language coverage in the compiler for the C++11
+#   standard; if necessary, add switches to CXXFLAGS to enable support.
+#
+#   The first argument, if specified, indicates whether you insist on an
+#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
+#   -std=c++11).  If neither is specified, you get whatever works, with
+#   preference for an extended mode.
+#
+#   The second argument, if specified 'mandatory' or if left unspecified,
+#   indicates that baseline C++11 support is required and that the macro
+#   should error out if no mode with that support is found.  If specified
+#   'optional', then configuration proceeds regardless, after defining
+#   HAVE_CXX11 if and only if a supporting mode is found.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Benjamin Kosnik <bkoz at redhat.com>
+#   Copyright (c) 2012 Zack Weinberg <zackw at panix.com>
+#   Copyright (c) 2013 Roy Stogner <roystgnr at ices.utexas.edu>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 3
+
+
+
+
+
+am__api_version='1.14'
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
+
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments.  Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+   am_has_slept=no
+   for am_try in 1 2; do
+     echo "timestamp, slept: $am_has_slept" > conftest.file
+     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+     if test "$*" = "X"; then
+	# -L didn't work.
+	set X `ls -t "$srcdir/configure" conftest.file`
+     fi
+     if test "$*" != "X $srcdir/configure conftest.file" \
+	&& test "$*" != "X conftest.file $srcdir/configure"; then
+
+	# If neither matched, then we have a broken ls.  This can happen
+	# if, for instance, CONFIG_SHELL is bash and it inherits a
+	# broken ls alias from the environment.  This has actually
+	# happened.  Such a system could not be considered "sane".
+	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
+  alias in your environment" "$LINENO" 5
+     fi
+     if test "$2" = conftest.file || test $am_try -eq 2; then
+       break
+     fi
+     # Just in case.
+     sleep 1
+     am_has_slept=yes
+   done
+   test "$2" = conftest.file
+   )
+then
+   # Ok.
+   :
+else
+   as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+  ( sleep 1 ) &
+  am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
+
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
+else
+  am_missing_run=
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip".  However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if ${ac_cv_path_mkdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
+  done
+IFS=$as_save_IFS
+
+fi
+
+  test -d ./--version && rmdir ./--version
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    MKDIR_P="$ac_install_sh -d"
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AWK"; then
+  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AWK="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+  # is not polluted with repeated "-I."
+  am__isrc=' -I$(srcdir)'
+  # test to see if srcdir already configured
+  if test -f $srcdir/config.status; then
+    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+  fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+  if (cygpath --version) >/dev/null 2>/dev/null; then
+    CYGPATH_W='cygpath -w'
+  else
+    CYGPATH_W=echo
+  fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='opencfu'
+ VERSION='3.9.0'
+
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility.  To be removed once Automake 1.9.x
+# dies out for good.  For more background, see:
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target.  The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.  Yes, it's still used
+# in the wild :-(  We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
+am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
+
+
+
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes.  So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+  cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present.  This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake at gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message.  This
+can help us improve future automake versions.
+
+END
+  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+    echo 'Configuration will proceed anyway, since you have set the' >&2
+    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+    echo >&2
+  else
+    cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <http://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+  fi
+fi
+
+#ACLOCAL_AMFLAGS = -I m4
+
+ac_config_headers="$ac_config_headers config.h"
+
+
+
+# Checks for programs.
+
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CXX" && break
+  done
+fi
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CXX" && break
+done
+
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CXX=$ac_ct_CXX
+  fi
+fi
+
+  fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
+$as_echo_n "checking whether the C++ compiler works... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+	;;
+    [ab].out )
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
+    *.* )
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
+	break;;
+    * )
+	break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+  ac_file=''
+fi
+if test -z "$ac_file"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C++ compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5
+$as_echo_n "checking for C++ compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	  break;;
+    * ) break;;
+  esac
+done
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+  { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+  if { ac_try='./conftest$ac_cv_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+	cross_compiling=yes
+    else
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C++ compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+    fi
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+else
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from 'make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+  enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
+
+
+
+depcc="$CXX"  am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CXX_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CXX_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CXX_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+  am__fastdepCXX_TRUE=
+  am__fastdepCXX_FALSE='#'
+else
+  am__fastdepCXX_TRUE='#'
+  am__fastdepCXX_FALSE=
+fi
+
+gcc-mp-4.8  g++
+
+
+    ax_cxx_compile_cxx11_required=truednl
+  ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+  ac_success=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5
+$as_echo_n "checking whether $CXX supports C++11 features by default... " >&6; }
+if ${ax_cv_cxx_compile_cxx11+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+  template <typename T>
+    struct check
+    {
+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
+    };
+
+    typedef check<check<bool>> right_angle_brackets;
+
+    int a;
+    decltype(a) b;
+
+    typedef check<int> check_type;
+    check_type c;
+    check_type&& cr = static_cast<check_type&&>(c);
+
+    auto d = a;
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ax_cv_cxx_compile_cxx11=yes
+else
+  ax_cv_cxx_compile_cxx11=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11" >&5
+$as_echo "$ax_cv_cxx_compile_cxx11" >&6; }
+  if test x$ax_cv_cxx_compile_cxx11 = xyes; then
+    ac_success=yes
+  fi
+
+
+
+    if test x$ac_success = xno; then
+    for switch in -std=c++11 -std=c++0x; do
+      cachevar=`$as_echo "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
+$as_echo_n "checking whether $CXX supports C++11 features with $switch... " >&6; }
+if eval \${$cachevar+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+  template <typename T>
+    struct check
+    {
+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
+    };
+
+    typedef check<check<bool>> right_angle_brackets;
+
+    int a;
+    decltype(a) b;
+
+    typedef check<int> check_type;
+    check_type c;
+    check_type&& cr = static_cast<check_type&&>(c);
+
+    auto d = a;
+
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  eval $cachevar=yes
+else
+  eval $cachevar=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+         CXXFLAGS="$ac_save_CXXFLAGS"
+fi
+eval ac_res=\$$cachevar
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi
+  ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+  if test x$ax_cxx_compile_cxx11_required = xtrue; then
+    if test x$ac_success = xno; then
+      as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5
+    fi
+  else
+    if test x$ac_success = xno; then
+      HAVE_CXX11=0
+      { $as_echo "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
+$as_echo "$as_me: No compiler with C++11 support was found" >&6;}
+    else
+      HAVE_CXX11=1
+
+$as_echo "#define HAVE_CXX11 1" >>confdefs.h
+
+    fi
+
+
+  fi
+
+
+# We check for openmp)])
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+else
+  CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  fi
+fi
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$ac_ct_CC" && break
+done
+
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
+else
+  ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
+
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }
+if ${am_cv_prog_cc_c_o+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+  # Make sure it works both with $CC and with simple cc.
+  # Following AC_PROG_CC_C_O, we do the test twice because some
+  # compilers refuse to overwrite an existing .o file with -o,
+  # though they will create one.
+  am_cv_prog_cc_c_o=yes
+  for am_i in 1 2; do
+    if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+   ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+   ac_status=$?
+   echo "$as_me:$LINENO: \$? = $ac_status" >&5
+   (exit $ac_status); } \
+         && test -f conftest2.$ac_objext; then
+      : OK
+    else
+      am_cv_prog_cc_c_o=no
+      break
+    fi
+  done
+  rm -f core conftest*
+  unset am_i
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+$as_echo "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+   # Losing compiler, so override with the script.
+   # FIXME: It is wrong to rewrite CC.
+   # But if we don't then we get into trouble of one sort or another.
+   # A longer-term fix would be to have automake use am__CC in this case,
+   # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+   CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC"   am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named 'D' -- because '-MD' means "put the output
+  # in D".
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
+
+  am_cv_CC_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+      # Solaris 10 /bin/sh.
+      echo '/* dummy */' > sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with '-c' and '-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle '-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs.
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # After this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested.
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok '-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CC_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
+else
+  am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+  am__fastdepCC_TRUE=
+  am__fastdepCC_FALSE='#'
+else
+  am__fastdepCC_TRUE='#'
+  am__fastdepCC_FALSE=
+fi
+
+
+
+
+  OPENMP_CFLAGS=
+  # Check whether --enable-openmp was given.
+if test "${enable_openmp+set}" = set; then :
+  enableval=$enable_openmp;
+fi
+
+  if test "$enable_openmp" != no; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to support OpenMP" >&5
+$as_echo_n "checking for $CC option to support OpenMP... " >&6; }
+if ${ac_cv_prog_c_openmp+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifndef _OPENMP
+ choke me
+#endif
+#include <omp.h>
+int main () { return omp_get_num_threads (); }
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_prog_c_openmp='none needed'
+else
+  ac_cv_prog_c_openmp='unsupported'
+	  	  	  	  	  	  	                                	  	  	  	  	  	  for ac_option in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp -homp \
+                           -Popenmp --openmp; do
+	    ac_save_CFLAGS=$CFLAGS
+	    CFLAGS="$CFLAGS $ac_option"
+	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#ifndef _OPENMP
+ choke me
+#endif
+#include <omp.h>
+int main () { return omp_get_num_threads (); }
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_prog_c_openmp=$ac_option
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+	    CFLAGS=$ac_save_CFLAGS
+	    if test "$ac_cv_prog_c_openmp" != unsupported; then
+	      break
+	    fi
+	  done
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_c_openmp" >&5
+$as_echo "$ac_cv_prog_c_openmp" >&6; }
+    case $ac_cv_prog_c_openmp in #(
+      "none needed" | unsupported)
+	;; #(
+      *)
+	OPENMP_CFLAGS=$ac_cv_prog_c_openmp ;;
+    esac
+  fi
+
+
+
+
+
+# We check for opencv 2.4. if absent, stop!!
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $ac_pt_PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
+else
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	else
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+		PKG_CONFIG=""
+	fi
+
+fi
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENCV" >&5
+$as_echo_n "checking for OPENCV... " >&6; }
+
+if test -n "$OPENCV_CFLAGS"; then
+    pkg_cv_OPENCV_CFLAGS="$OPENCV_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.4.2\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "opencv >= 2.4.2") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_OPENCV_CFLAGS=`$PKG_CONFIG --cflags "opencv >= 2.4.2" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$OPENCV_LIBS"; then
+    pkg_cv_OPENCV_LIBS="$OPENCV_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.4.2\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "opencv >= 2.4.2") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_OPENCV_LIBS=`$PKG_CONFIG --libs "opencv >= 2.4.2" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        OPENCV_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "opencv >= 2.4.2" 2>&1`
+        else
+	        OPENCV_PKG_ERRORS=`$PKG_CONFIG --print-errors "opencv >= 2.4.2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$OPENCV_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                as_fn_error $? "OpenCV not found. Have you installed the library (devel version)" "$LINENO" 5. OpenCFU cannot be built without OpenCV!
+elif test $pkg_failed = untried; then
+	as_fn_error $? "OpenCV not found. Have you installed the library (devel version)" "$LINENO" 5. OpenCFU cannot be built without OpenCV!
+else
+	OPENCV_CFLAGS=$pkg_cv_OPENCV_CFLAGS
+	OPENCV_LIBS=$pkg_cv_OPENCV_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	:
+fi
+
+### We add opencv to global AM flags.
+
+
+
+
+
+# Check whether --with-gui was given.
+if test "${with_gui+set}" = set; then :
+  withval=$with_gui;
+fi
+
+if test "x$with_gui" != "xno"; then :
+
+
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTKMM" >&5
+$as_echo_n "checking for GTKMM... " >&6; }
+
+if test -n "$GTKMM_CFLAGS"; then
+    pkg_cv_GTKMM_CFLAGS="$GTKMM_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-2.4 glibmm-2.4 gthread-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtkmm-2.4 glibmm-2.4 gthread-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTKMM_CFLAGS=`$PKG_CONFIG --cflags "gtkmm-2.4 glibmm-2.4 gthread-2.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTKMM_LIBS"; then
+    pkg_cv_GTKMM_LIBS="$GTKMM_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtkmm-2.4 glibmm-2.4 gthread-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtkmm-2.4 glibmm-2.4 gthread-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTKMM_LIBS=`$PKG_CONFIG --libs "gtkmm-2.4 glibmm-2.4 gthread-2.0" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        GTKMM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtkmm-2.4 glibmm-2.4 gthread-2.0" 2>&1`
+        else
+	        GTKMM_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtkmm-2.4 glibmm-2.4 gthread-2.0" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GTKMM_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                HAVE_GUI=0
+elif test $pkg_failed = untried; then
+	HAVE_GUI=0
+else
+	GTKMM_CFLAGS=$pkg_cv_GTKMM_CFLAGS
+	GTKMM_LIBS=$pkg_cv_GTKMM_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	HAVE_GUI=1
+fi
+
+
+$as_echo "#define WITH_GUI 1" >>confdefs.h
+
+
+   if test "$HAVE_GUI" -eq 1; then :
+
+else
+  as_fn_error $? "Gtkmm not found. Have you installed the library (devel version). You can build without a GUI with \"./configure --without-gui\"" "$LINENO" 5
+fi
+
+fi
+ if test "$HAVE_GUI" -eq 1; then
+  USE_GUI_TRUE=
+  USE_GUI_FALSE='#'
+else
+  USE_GUI_TRUE='#'
+  USE_GUI_FALSE=
+fi
+
+
+
+
+
+# Check whether --with-dbgmes was given.
+if test "${with_dbgmes+set}" = set; then :
+  withval=$with_dbgmes;
+fi
+
+
+if test "x$with_dbgmes" = "xyes"; then :
+
+$as_echo "#define DBG_MESSAGE 1" >>confdefs.h
+
+fi
+ if test "x$with_dbgmes" = "xyes"; then
+  DEV_MODE_TRUE=
+  DEV_MODE_FALSE='#'
+else
+  DEV_MODE_TRUE='#'
+  DEV_MODE_FALSE=
+fi
+
+
+#######################################################
+
+
+
+
+case `eval uname -o` in
+  *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows* |*Msys*)
+     if true; then
+  WIN32_TRUE=
+  WIN32_FALSE='#'
+else
+  WIN32_TRUE='#'
+  WIN32_FALSE=
+fi
+
+    ;;
+  *)
+     if false; then
+  WIN32_TRUE=
+  WIN32_FALSE='#'
+else
+  WIN32_TRUE='#'
+  WIN32_FALSE=
+fi
+
+    ;;
+esac
+
+
+# Defines here:
+
+$as_echo "#define TRAINING_SET_IMG \"data/training-set1/\"" >>confdefs.h
+
+
+$as_echo "#define TRAINING_SET_IMG_PS \"data/training-set2/\"" >>confdefs.h
+
+
+$as_echo "#define TEST_SET_IMG \"data/training-set1/\"" >>confdefs.h
+
+#~ AC_DEFINE(PREFIX, "data/trainnedClassifier.xml", [Location of the test set])
+
+$as_echo "#define TRAINED_CLASSIF_XML_FILE \"data/trainedClassifier.xml\"" >>confdefs.h
+
+
+$as_echo "#define TRAINED_CLASSIF_PS_XML_FILE \"data/trainedClassifierPS.xml\"" >>confdefs.h
+
+
+
+$as_echo "#define BANNER_IMG \"data/banner.png\"" >>confdefs.h
+
+
+$as_echo "#define BACKGROUND_NOISE \"data/noise-texture.png\"" >>confdefs.h
+
+
+$as_echo "#define LOGO_IMG \"data/logo.png\"" >>confdefs.h
+
+
+
+$as_echo "#define ICON128_IMG \"data/icons/128x128/apps/opencfu.png\"" >>confdefs.h
+
+
+$as_echo "#define ICON64_IMG \"data/icons/64x64/apps/opencfu.png\"" >>confdefs.h
+
+
+$as_echo "#define ICON48_IMG \"data/icons/48x48/apps/opencfu.png\"" >>confdefs.h
+
+
+$as_echo "#define ICON24_IMG \"data/icons/24x24/apps/opencfu.png\"" >>confdefs.h
+
+
+
+
+$as_echo "#define PROGRAM_NAME \"OpenCFU\"" >>confdefs.h
+
+
+
+ac_config_files="$ac_config_files Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems.  If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+
+  (set) 2>&1 |
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
+      sed -n \
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+      ;; #(
+    *)
+      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+) |
+  sed '
+     /^ac_cv_env_/b end
+     t clear
+     :clear
+     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+     t end
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    if test "x$cache_file" != "x/dev/null"; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+  fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+  # 1. Remove the extension, and $U if already installed.
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+$as_echo_n "checking that generated files are newer than configure... " >&6; }
+   if test -n "$am_sleep_pid"; then
+     # Hide warnings about reused PIDs.
+     wait $am_sleep_pid 2>/dev/null
+   fi
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
+$as_echo "done" >&6; }
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+  as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${USE_GUI_TRUE}" && test -z "${USE_GUI_FALSE}"; then
+  as_fn_error $? "conditional \"USE_GUI\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${DEV_MODE_TRUE}" && test -z "${DEV_MODE_FALSE}"; then
+  as_fn_error $? "conditional \"DEV_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WIN32_TRUE}" && test -z "${WIN32_FALSE}"; then
+  as_fn_error $? "conditional \"WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WIN32_TRUE}" && test -z "${WIN32_FALSE}"; then
+  as_fn_error $? "conditional \"WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
+  else
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in #(
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
+  fi
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
+fi
+
+
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$1; test $as_status -eq 0 && as_status=1
+  if test "$4"; then
+    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+  fi
+  $as_echo "$as_me: error: $2" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
+else
+  as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -pR'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -pR'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -pR'
+  fi
+else
+  as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+  test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by opencfu $as_me 3.9.0, which was
+generated by GNU Autoconf 2.69.  Invocation command line was
+
+  CONFIG_FILES    = $CONFIG_FILES
+  CONFIG_HEADERS  = $CONFIG_HEADERS
+  CONFIG_LINKS    = $CONFIG_LINKS
+  CONFIG_COMMANDS = $CONFIG_COMMANDS
+  $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+  -h, --help       print this help, then exit
+  -V, --version    print version number and configuration settings, then exit
+      --config     print configuration, then exit
+  -q, --quiet, --silent
+                   do not print progress messages
+  -d, --debug      don't remove temporary files
+      --recheck    update $as_me by reconfiguring in the same conditions
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <opencfu at gmail.com>.
+opencfu home page: <http://www.opencfu.sourceforge.net/>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+opencfu config.status 3.9.0
+configured by $0, generated by GNU Autoconf 2.69,
+  with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2012 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+  case $1 in
+  --*=?*)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+    ac_shift=:
+    ;;
+  --*=)
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=
+    ac_shift=:
+    ;;
+  *)
+    ac_option=$1
+    ac_optarg=$2
+    ac_shift=shift
+    ;;
+  esac
+
+  case $ac_option in
+  # Handling of the options.
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    ac_cs_recheck=: ;;
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    $as_echo "$ac_cs_version"; exit ;;
+  --config | --confi | --conf | --con | --co | --c )
+    $as_echo "$ac_cs_config"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
+    debug=: ;;
+  --file | --fil | --fi | --f )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    '') as_fn_error $? "missing file argument" ;;
+    esac
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --header | --heade | --head | --hea )
+    $ac_shift
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+    ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+  --help | --hel | -h )
+    $as_echo "$ac_cs_usage"; exit ;;
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+    ac_cs_silent=: ;;
+
+  # This is an error.
+  -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+  *) as_fn_append ac_config_targets " $1"
+     ac_need_defaults=false ;;
+
+  esac
+  shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+  exec 6>/dev/null
+  ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
+  export CONFIG_SHELL
+  exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used.  Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience.  Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+  tmp= ac_tmp=
+  trap 'exit_status=$?
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+  trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+  test -d "$tmp"
+}  ||
+{
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  . ./conf$$subs.sh ||
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
+h
+s///
+s/^/:/
+s/[	 ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[	 ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
+    break
+  elif $ac_last_try; then
+    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
+  esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
+
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$ac_tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+      esac
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      as_fn_append ac_file_inputs " '$ac_f'"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
+    fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  as_dir="$ac_dir"; as_fn_mkdir_p
+  ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+  .)  # We are building in place.
+    ac_srcdir=.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
+    ac_srcdir=$srcdir$ac_dir_suffix;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
+
+  case $INSTALL in
+  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+  esac
+  ac_MKDIR_P=$MKDIR_P
+  case $MKDIR_P in
+  [\\/$]* | ?:[\\/]* ) ;;
+  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+  esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+  s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&5
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined" >&2;}
+
+  rm -f "$ac_tmp/stdin"
+  case $ac_file in
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+  esac \
+  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+  if test x"$ac_file" != x-; then
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+    else
+      rm -f "$ac_file"
+      mv "$ac_tmp/config.h" "$ac_file" \
+	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
+    fi
+  else
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+      || as_fn_error $? "could not create -" "$LINENO" 5
+  fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+    $_am_arg | $_am_arg:* )
+      break ;;
+    * )
+      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$_am_arg" : 'X\(//\)[^/]' \| \
+	 X"$_am_arg" : 'X\(//\)$' \| \
+	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
+
+
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Older Autoconf quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named 'Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$mf" : 'X\(//\)[^/]' \| \
+	 X"$mf" : 'X\(//\)$' \| \
+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running 'make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "$am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$file" : 'X\(//\)[^/]' \| \
+	 X"$file" : 'X\(//\)$' \| \
+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+ ;;
+
+  esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded.  So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status.  When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+  ac_cs_success=:
+  ac_config_status_args=
+  test "$silent" = yes &&
+    ac_config_status_args="$ac_config_status_args --quiet"
+  exec 5>/dev/null
+  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+  exec 5>>config.log
+  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+  # would make configure fail if this is the last instruction.
+  $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
+
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
+
+    done
+    ac_cv_prog_CPP=$CPP
+
+fi
+  CPP=$ac_cv_prog_CPP
+else
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+if ${ac_cv_header_stdbool_h+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+             #include <stdbool.h>
+             #ifndef bool
+              "error: bool is not defined"
+             #endif
+             #ifndef false
+              "error: false is not defined"
+             #endif
+             #if false
+              "error: false is not 0"
+             #endif
+             #ifndef true
+              "error: true is not defined"
+             #endif
+             #if true != 1
+              "error: true is not 1"
+             #endif
+             #ifndef __bool_true_false_are_defined
+              "error: __bool_true_false_are_defined is not defined"
+             #endif
+
+             struct s { _Bool s: 1; _Bool t; } s;
+
+             char a[true == 1 ? 1 : -1];
+             char b[false == 0 ? 1 : -1];
+             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
+             char d[(bool) 0.5 == true ? 1 : -1];
+             /* See body of main program for 'e'.  */
+             char f[(_Bool) 0.0 == false ? 1 : -1];
+             char g[true];
+             char h[sizeof (_Bool)];
+             char i[sizeof s.t];
+             enum { j = false, k = true, l = false * true, m = true * 256 };
+             /* The following fails for
+                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+             _Bool n[m];
+             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
+             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
+             /* Catch a bug in an HP-UX C compiler.  See
+                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+              */
+             _Bool q = true;
+             _Bool *pq = &q;
+
+int
+main ()
+{
+
+             bool e = &s;
+             *pq |= q;
+             *pq |= ! q;
+             /* Refer to every declared value, to avoid compiler optimizations.  */
+             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
+                     + !m + !n + !o + !p + !q + !pq);
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdbool_h=yes
+else
+  ac_cv_header_stdbool_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+$as_echo "$ac_cv_header_stdbool_h" >&6; }
+   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 1
+_ACEOF
+
+
+fi
+
+
+if test $ac_cv_header_stdbool_h = yes; then
+
+$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if ${ac_cv_c_inline+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+# We cheack for compiler compatibility with std+11
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..cb25c68
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,102 @@
+AC_PREREQ([2.68])
+AC_INIT([opencfu],[3.9.0],[opencfu at gmail.com],[opencfu],[http://www.opencfu.sourceforge.net/])
+AC_CONFIG_AUX_DIR([build-aux])
+AC_CONFIG_MACRO_DIR([m4])
+AC_CONFIG_SRCDIR([src])
+
+m4_include([m4/ax_cxx_compile_stdcxx_11.m4])
+AM_INIT_AUTOMAKE([1.10 -Wall no-define foreign])
+
+#ACLOCAL_AMFLAGS = -I m4
+
+AC_CONFIG_HEADERS([config.h])
+
+
+# Checks for programs.
+
+
+AC_PROG_CXX[gcc-mp-4.8  g++]
+
+AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
+
+# We check for openmp)])
+
+
+AC_OPENMP
+
+AC_SUBST(OPENMP_CFLAGS)
+
+# We check for opencv 2.4. if absent, stop!!
+PKG_CHECK_MODULES([OPENCV],[opencv >= 2.4.2],[],[AC_MSG_ERROR(OpenCV not found. Have you installed the library (devel version)). OpenCFU cannot be built without OpenCV!])
+
+### We add opencv to global AM flags.
+
+
+
+
+AC_ARG_WITH([gui], AS_HELP_STRING([--without-gui], [Build without a Gtkmm GUI]))
+AS_IF([test "x$with_gui" != "xno"], [
+
+   PKG_CHECK_MODULES([GTKMM], [gtkmm-2.4 glibmm-2.4 gthread-2.0], [HAVE_GUI=1], [HAVE_GUI=0])
+
+   AC_DEFINE(WITH_GUI, 1, [We build opencv witha GUI])
+
+   AS_IF([test "$HAVE_GUI" -eq 1],[],[AC_MSG_ERROR(Gtkmm not found. Have you installed the library (devel version). You can build without a GUI with "./configure --without-gui")])
+])
+AM_CONDITIONAL([USE_GUI], [test "$HAVE_GUI" -eq 1])
+
+
+
+AC_ARG_WITH([dbgmes], AS_HELP_STRING([--with-dbgmes], [Print debug info in stdout]))
+
+AS_IF([test "x$with_dbgmes" = "xyes"],[AC_DEFINE(DBG_MESSAGE, 1, [Print debug info in stdout])])
+AM_CONDITIONAL([DEV_MODE], [test "x$with_dbgmes" = "xyes"])
+
+#######################################################
+
+
+
+
+case `eval uname -o` in
+  *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows* |*Msys*)
+    AM_CONDITIONAL([WIN32], true)
+    ;;
+  *)
+    AM_CONDITIONAL([WIN32], false)
+    ;;
+esac
+
+
+# Defines here:
+AC_DEFINE(TRAINING_SET_IMG, "data/training-set1/", [Location of the training set])
+AC_DEFINE(TRAINING_SET_IMG_PS, "data/training-set2/", [Location of the training set post-splitting])
+AC_DEFINE(TEST_SET_IMG, "data/training-set1/", [Location of the test set])
+#~ AC_DEFINE(PREFIX, "data/trainnedClassifier.xml", [Location of the test set])
+AC_DEFINE(TRAINED_CLASSIF_XML_FILE, "data/trainedClassifier.xml", [Location of the classifier])
+AC_DEFINE(TRAINED_CLASSIF_PS_XML_FILE, "data/trainedClassifierPS.xml", [Location of the classifier post-splitting])
+
+AC_DEFINE(BANNER_IMG, "data/banner.png", [Location of the banner])
+AC_DEFINE(BACKGROUND_NOISE, "data/noise-texture.png", [Location of the banner])
+AC_DEFINE(LOGO_IMG, "data/logo.png", [Location of the logo])
+
+AC_DEFINE(ICON128_IMG, "data/icons/128x128/apps/opencfu.png", [Location of the 128px icon])
+AC_DEFINE(ICON64_IMG, "data/icons/64x64/apps/opencfu.png", [Location of the 64px icon])
+AC_DEFINE(ICON48_IMG, "data/icons/48x48/apps/opencfu.png", [Location of the 48px icon])
+AC_DEFINE(ICON24_IMG, "data/icons/24x24/apps/opencfu.png", [Location of the 24px icon])
+
+
+AC_DEFINE(PROGRAM_NAME,"OpenCFU",[The actual name (Capitals)])
+
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
+
+
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_HEADER_STDBOOL
+AC_C_INLINE
+AC_TYPE_SIZE_T
+# We cheack for compiler compatibility with std+11
+
diff --git a/data/banner.png b/data/banner.png
new file mode 100644
index 0000000..a7a9db2
Binary files /dev/null and b/data/banner.png differ
diff --git a/data/icons/128x128/opencfu.png b/data/icons/128x128/opencfu.png
new file mode 100644
index 0000000..7b8c863
Binary files /dev/null and b/data/icons/128x128/opencfu.png differ
diff --git a/data/icons/48x48/opencfu.png b/data/icons/48x48/opencfu.png
new file mode 100644
index 0000000..f4c6856
Binary files /dev/null and b/data/icons/48x48/opencfu.png differ
diff --git a/data/icons/scalable/opencfu.svg b/data/icons/scalable/opencfu.svg
new file mode 100644
index 0000000..82cfe68
--- /dev/null
+++ b/data/icons/scalable/opencfu.svg
@@ -0,0 +1,504 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="64px"
+   height="64px"
+   id="svg3942"
+   version="1.1"
+   inkscape:version="0.48.4 r9939"
+   sodipodi:docname="drawing.svg"
+   inkscape:export-filename="/home/quentin/comput/Cpp/opencfu-git/artwork/icon_128px.png"
+   inkscape:export-xdpi="180"
+   inkscape:export-ydpi="180">
+  <defs
+     id="defs3944">
+    <linearGradient
+       id="linearGradient3067">
+      <stop
+         id="stop3069"
+         offset="0"
+         style="stop-color:#649632;stop-opacity:1;" />
+      <stop
+         style="stop-color:#64a028;stop-opacity:0.58823532;"
+         offset="0.7485165"
+         id="stop3071" />
+      <stop
+         id="stop3073"
+         offset="1"
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3057">
+      <stop
+         style="stop-color:#649632;stop-opacity:1;"
+         offset="0"
+         id="stop3059" />
+      <stop
+         id="stop3061"
+         offset="0.72151917"
+         style="stop-color:#64a028;stop-opacity:0.58823532;" />
+      <stop
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;"
+         offset="1"
+         id="stop3063" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3049">
+      <stop
+         style="stop-color:#649632;stop-opacity:1;"
+         offset="0"
+         id="stop3051" />
+      <stop
+         id="stop3053"
+         offset="0.80713546"
+         style="stop-color:#64a028;stop-opacity:0.58823532;" />
+      <stop
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;"
+         offset="1"
+         id="stop3055" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3041">
+      <stop
+         style="stop-color:#649632;stop-opacity:1;"
+         offset="0"
+         id="stop3043" />
+      <stop
+         id="stop3045"
+         offset="0.70509899"
+         style="stop-color:#64a028;stop-opacity:0.58823532;" />
+      <stop
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;"
+         offset="1"
+         id="stop3047" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6829"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#0000ff;stop-opacity:1;"
+         offset="0"
+         id="stop6831" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6753">
+      <stop
+         id="stop6755"
+         offset="0"
+         style="stop-color:#649632;stop-opacity:1;" />
+      <stop
+         style="stop-color:#64a028;stop-opacity:0.58823532;"
+         offset="0.50061297"
+         id="stop6757" />
+      <stop
+         id="stop6759"
+         offset="1"
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6585"
+       osb:paint="solid">
+      <stop
+         style="stop-color:#000000;stop-opacity:1;"
+         offset="0"
+         id="stop6587" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6577"
+       osb:paint="gradient">
+      <stop
+         style="stop-color:#0000ff;stop-opacity:1;"
+         offset="0"
+         id="stop6579" />
+      <stop
+         style="stop-color:#0000ff;stop-opacity:0;"
+         offset="1"
+         id="stop6581" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6567"
+       osb:paint="gradient">
+      <stop
+         style="stop-color:#0000ff;stop-opacity:1;"
+         offset="0"
+         id="stop6569" />
+      <stop
+         style="stop-color:#0000ff;stop-opacity:0;"
+         offset="1"
+         id="stop6571" />
+    </linearGradient>
+    <pattern
+       inkscape:stockid="Sand (bitmap)"
+       id="pattern6126"
+       height="256"
+       width="256"
+       patternUnits="userSpaceOnUse">
+      <!-- Seamless texture provided by FreeSeamlessTextures.com -->
+      <!-- License: creative commons attribution -->
+      <image
+         xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAIwAjAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAEEAQQDASIA AhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAABgcFCAADBAkBAv/EAEIQAAICAAUDBAECBAQFAwEI AwUGBAcBAwgVFgAXJQIRFCYnITUYJDZFEzE3RgkSQVVWKFF1ZTQ4R1dhZmd2hYaV/8QAGQEAAgMB AAAAAAAAAAAAAAAAAgMAAQQF/8QAOxEAAgIBAwMDBAEBBgUDBQEAAQIDERIEEyE [...]
+         y="0"
+         x="0"
+         id="image6128"
+         height="260"
+         width="260" />
+    </pattern>
+    <pattern
+       inkscape:stockid="Sand (bitmap)"
+       id="sand_bitmap"
+       height="256"
+       width="256"
+       patternUnits="userSpaceOnUse">
+      <!-- Seamless texture provided by FreeSeamlessTextures.com -->
+      <!-- License: creative commons attribution -->
+      <image
+         xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAIwAjAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAEEAQQDASIA AhEBAxEB/8QAHQAAAgIDAQEBAAAAAAAAAAAABgcFCAADBAkBAv/EAEIQAAICAAUDBAECBAQFAwEI AwUGBAcBAwgVFgAXJQIRFCYnITUYJDZFEzE3RgkSQVVWKFF1ZTQ4R1dhZmd2hYaV/8QAGQEAAgMB AAAAAAAAAAAAAAAAAgMAAQQF/8QAOxEAAgIBAwMDBAEBBgUDBQEAAQIDERIEEyE [...]
+         y="0"
+         x="0"
+         id="image9"
+         height="260"
+         width="260" />
+    </pattern>
+    <linearGradient
+       id="linearGradient4502">
+      <stop
+         style="stop-color:#649632;stop-opacity:1;"
+         offset="0"
+         id="stop4504" />
+      <stop
+         id="stop4510"
+         offset="0.5"
+         style="stop-color:#64a028;stop-opacity:0.58823532;" />
+      <stop
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;"
+         offset="1"
+         id="stop4506" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4502-1"
+       id="radialGradient4526-2"
+       cx="17.356256"
+       cy="22.730677"
+       fx="17.356256"
+       fy="22.730677"
+       r="9.6281061"
+       gradientTransform="matrix(1,0,0,0.9465876,0,1.2141001)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4502-1">
+      <stop
+         style="stop-color:#889f30;stop-opacity:1;"
+         offset="0"
+         id="stop4504-3" />
+      <stop
+         id="stop4510-2"
+         offset="0.5"
+         style="stop-color:#677e00;stop-opacity:0.6554054;" />
+      <stop
+         style="stop-color:#8f8c00;stop-opacity:0.25;"
+         offset="1"
+         id="stop4506-7" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4502-2"
+       id="radialGradient4526-6"
+       cx="17.356256"
+       cy="22.730677"
+       fx="17.356256"
+       fy="22.730677"
+       r="9.6281061"
+       gradientTransform="matrix(1,0,0,0.9465876,0,1.2141001)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4502-2">
+      <stop
+         style="stop-color:#889f30;stop-opacity:1;"
+         offset="0"
+         id="stop4504-0" />
+      <stop
+         id="stop4510-5"
+         offset="0.5"
+         style="stop-color:#677e00;stop-opacity:0.6554054;" />
+      <stop
+         style="stop-color:#8f8c00;stop-opacity:0.25;"
+         offset="1"
+         id="stop4506-0" />
+    </linearGradient>
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient4502-25"
+       id="radialGradient6714-0"
+       cx="17.356256"
+       cy="22.730677"
+       fx="17.356256"
+       fy="22.730677"
+       r="9.6281061"
+       gradientTransform="matrix(1,0,0,0.9465876,0,1.2141001)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       id="linearGradient4502-25">
+      <stop
+         style="stop-color:#649632;stop-opacity:1;"
+         offset="0"
+         id="stop4504-7" />
+      <stop
+         id="stop4510-7"
+         offset="0.5"
+         style="stop-color:#64a028;stop-opacity:0.58823532;" />
+      <stop
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;"
+         offset="1"
+         id="stop4506-2" />
+    </linearGradient>
+    <radialGradient
+       r="9.6281061"
+       fy="22.730677"
+       fx="17.356256"
+       cy="22.730677"
+       cx="17.356256"
+       gradientTransform="matrix(0.29853471,1.4283865,-1.5418771,0.28696683,47.222721,-8.5837159)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6732-8"
+       xlink:href="#linearGradient6753-9"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6753-9">
+      <stop
+         id="stop6755-5"
+         offset="0"
+         style="stop-color:#649632;stop-opacity:1;" />
+      <stop
+         style="stop-color:#64a028;stop-opacity:0.58823532;"
+         offset="0.50061297"
+         id="stop6757-6" />
+      <stop
+         id="stop6759-0"
+         offset="1"
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;" />
+    </linearGradient>
+    <radialGradient
+       r="9.6281061"
+       fy="22.730677"
+       fx="17.356255"
+       cy="22.730677"
+       cx="17.356255"
+       gradientTransform="matrix(0.77405272,-0.42125718,0.44540887,0.72881092,-6.2028453,13.475758)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6777"
+       xlink:href="#linearGradient3049"
+       inkscape:collect="always" />
+    <radialGradient
+       r="9.6281061"
+       fy="22.730677"
+       fx="17.356256"
+       cy="22.730677"
+       cx="17.356256"
+       gradientTransform="matrix(0.29853471,1.4283865,-1.5418771,0.28696683,47.222721,-8.5837159)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6732-81"
+       xlink:href="#linearGradient6753-5"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6753-5">
+      <stop
+         id="stop6755-8"
+         offset="0"
+         style="stop-color:#649632;stop-opacity:1;" />
+      <stop
+         style="stop-color:#64a028;stop-opacity:0.58823532;"
+         offset="0.50061297"
+         id="stop6757-8" />
+      <stop
+         id="stop6759-5"
+         offset="1"
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6829"
+       id="linearGradient6833"
+       x1="17.356256"
+       y1="22.730677"
+       x2="24.77216"
+       y2="18.651131"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       r="9.6281061"
+       fy="22.730677"
+       fx="17.356256"
+       cy="22.730677"
+       cx="17.356256"
+       gradientTransform="matrix(0.29853471,1.4283865,-1.5418771,0.28696683,47.222721,-8.5837159)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6777-2-3"
+       xlink:href="#linearGradient6753-5-9"
+       inkscape:collect="always" />
+    <linearGradient
+       id="linearGradient6753-5-9">
+      <stop
+         id="stop6755-8-3"
+         offset="0"
+         style="stop-color:#649632;stop-opacity:1;" />
+      <stop
+         style="stop-color:#64a028;stop-opacity:0.58823532;"
+         offset="0.50061297"
+         id="stop6757-8-0" />
+      <stop
+         id="stop6759-5-4"
+         offset="1"
+         style="stop-color:#6ea01e;stop-opacity:0.39215687;" />
+    </linearGradient>
+    <radialGradient
+       r="9.6281061"
+       fy="22.730677"
+       fx="17.356256"
+       cy="22.730677"
+       cx="17.356256"
+       gradientTransform="matrix(0.12222694,0.89180942,-0.94148454,0.11490866,36.635435,4.640252)"
+       gradientUnits="userSpaceOnUse"
+       id="radialGradient6851"
+       xlink:href="#linearGradient3057"
+       inkscape:collect="always" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3067"
+       id="radialGradient3065"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.40915628,0.7232832,-0.76305488,0.38438934,27.599588,1.4397621)"
+       cx="17.356256"
+       cy="22.730677"
+       fx="17.356256"
+       fy="22.730677"
+       r="9.6281061" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3049"
+       id="radialGradient3852"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.77405272,-0.42125718,0.44540887,0.72881092,-6.2028453,13.475758)"
+       cx="17.356255"
+       cy="22.730677"
+       fx="17.356255"
+       fy="22.730677"
+       r="9.6281061" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6829"
+       id="linearGradient3854"
+       gradientUnits="userSpaceOnUse"
+       x1="17.356256"
+       y1="22.730677"
+       x2="24.77216"
+       y2="18.651131" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3067"
+       id="radialGradient3856"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.40915628,0.7232832,-0.76305488,0.38438934,27.599588,1.4397621)"
+       cx="17.356256"
+       cy="22.730677"
+       fx="17.356256"
+       fy="22.730677"
+       r="9.6281061" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient3057"
+       id="radialGradient3858"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.12222694,0.89180942,-0.94148454,0.11490866,36.635435,4.640252)"
+       cx="17.356256"
+       cy="22.730677"
+       fx="17.356256"
+       fy="22.730677"
+       r="9.6281061" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="38.96904"
+     inkscape:cy="42.860269"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:document-units="px"
+     inkscape:grid-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1021"
+     inkscape:window-x="0"
+     inkscape:window-y="27"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata3947">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <g
+       id="g3847"
+       transform="translate(-1.5668449,1.2141337)">
+      <path
+         sodipodi:open="true"
+         sodipodi:end="11.724107"
+         sodipodi:start="6.0970765"
+         transform="matrix(0.8304612,1.4331553,-1.518717,0.88004106,45.540116,-28.202195)"
+         d="m 26.326736,21.136802 c 0.932826,4.675146 -2.32719,9.178701 -7.281448,10.058974 -4.954259,0.880272 -9.7266845,-2.19608 -10.6595106,-6.871225 -0.9328261,-4.675145 2.3271896,-9.178701 7.2814476,-10.058974 2.783609,-0.494591 5.65281,0.258281 7.766301,2.037861"
+         sodipodi:ry="8.6138458"
+         sodipodi:rx="9.1281061"
+         sodipodi:cy="22.730677"
+         sodipodi:cx="17.356256"
+         id="path3950-0-1-2-7"
+         style="fill:url(#radialGradient3852);fill-opacity:1;stroke:url(#linearGradient3854);stroke-width:0.28809369;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         sodipodi:end="5.3691572"
+         sodipodi:start="0.016712371"
+         sodipodi:open="true"
+         transform="matrix(-0.65674413,-0.97894389,1.0373848,-0.6959552,33.877629,61.61102)"
+         d="m 26.483088,22.874628 c -0.08425,4.756631 -4.238767,8.548194 -9.279377,8.468692 -5.04061,-0.0795 -9.0585343,-3.999963 -8.9742859,-8.756594 0.084248,-4.756632 4.2387669,-8.548194 9.2793769,-8.468692 1.964018,0.03098 3.865056,0.658987 5.420716,1.790739"
+         sodipodi:ry="8.6138458"
+         sodipodi:rx="9.1281061"
+         sodipodi:cy="22.730677"
+         sodipodi:cx="17.356256"
+         id="path3950-0-1-2-7-6"
+         style="fill:url(#radialGradient3856);fill-opacity:1;stroke:#0000ff;stroke-width:0.40480241;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+      <path
+         transform="matrix(-0.65674274,-0.97894389,1.0373826,-0.69595527,19.152407,82.064379)"
+         d="m 26.484363,22.730677 c 0,4.757295 -4.086793,8.613845 -9.128107,8.613845 -5.041313,0 -9.1281056,-3.85655 -9.1281056,-8.613845 0,-4.757296 4.0867926,-8.613846 9.1281056,-8.613846 5.041314,0 9.128107,3.85655 9.128107,8.613846 z"
+         sodipodi:ry="8.6138458"
+         sodipodi:rx="9.1281061"
+         sodipodi:cy="22.730677"
+         sodipodi:cx="17.356256"
+         id="path3950-0-1-2-7-6-6"
+         style="fill:url(#radialGradient3858);fill-opacity:1;stroke:#0000ff;stroke-width:0.40480241;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+         sodipodi:type="arc" />
+    </g>
+  </g>
+</svg>
diff --git a/data/logo.png b/data/logo.png
new file mode 100644
index 0000000..7b8c863
Binary files /dev/null and b/data/logo.png differ
diff --git a/data/noise-texture.png b/data/noise-texture.png
new file mode 100644
index 0000000..45f41bc
Binary files /dev/null and b/data/noise-texture.png differ
diff --git a/data/trainedClassifier.xml b/data/trainedClassifier.xml
new file mode 100644
index 0000000..280bc82
--- /dev/null
+++ b/data/trainedClassifier.xml
@@ -0,0 +1,1962 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<my_random_trees type_id="opencv-ml-random-trees">
+  <nclasses>3</nclasses>
+  <nsamples>8208</nsamples>
+  <nactive_vars>3</nactive_vars>
+  <oob_error>3.9617035325189833e-03</oob_error>
+  <var_importance type_id="opencv-matrix">
+    <rows>1</rows>
+    <cols>13</cols>
+    <dt>f</dt>
+    <data>
+      6.52524158e-02 7.97529593e-02 7.23684207e-02 6.65950626e-02
+      6.52524158e-02 8.67346972e-02 7.34425336e-02 8.49892646e-02
+      8.06928053e-02 9.72073078e-02 6.52524158e-02 9.69387814e-02
+      6.55209497e-02</data></var_importance>
+  <ntrees>1</ntrees>
+  <is_classifier>1</is_classifier>
+  <var_all>13</var_all>
+  <var_count>13</var_count>
+  <ord_var_count>13</ord_var_count>
+  <cat_var_count>0</cat_var_count>
+  <training_params>
+    <use_surrogates>0</use_surrogates>
+    <max_categories>3</max_categories>
+    <max_depth>10</max_depth>
+    <min_sample_count>10</min_sample_count>
+    <cross_validation_folds>0</cross_validation_folds>
+    <priors type_id="opencv-matrix">
+      <rows>1</rows>
+      <cols>3</cols>
+      <dt>d</dt>
+      <data>
+        1. 1. 1.</data></priors></training_params>
+  <var_type>
+    0 0 0 0 0 0 0 0 0 0 0 0 0</var_type>
+  <cat_count type_id="opencv-matrix">
+    <rows>1</rows>
+    <cols>1</cols>
+    <dt>i</dt>
+    <data>
+      3</data></cat_count>
+  <cat_map type_id="opencv-matrix">
+    <rows>1</rows>
+    <cols>3</cols>
+    <dt>i</dt>
+    <data>
+      77 78 83</data></cat_map>
+  <trees>
+    <_>
+      <best_tree_idx>-1</best_tree_idx>
+      <nodes>
+        <_>
+          <depth>0</depth>
+          <sample_count>8208</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>4788.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>11</var>
+              <quality>3.9165463867187500e+03</quality>
+              <le>1.6042158677009866e-05</le></_></splits></_>
+        <_>
+          <depth>1</depth>
+          <sample_count>5577</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>3145.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>9</var>
+              <quality>2.9114199218750000e+03</quality>
+              <le>4.1234216041630134e-06</le></_></splits></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>2931</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>997.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>2.1626032714843750e+03</quality>
+              <le>5.3137254714965820e-01</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>2227</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>319.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>1.9421389160156250e+03</quality>
+              <le>1.6351390838623047e+01</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>1987</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>93.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>1.8243182373046875e+03</quality>
+              <le>5.2086955308914185e-01</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>1869</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>59.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>7</var>
+              <quality>1.7642591552734375e+03</quality>
+              <le>5.5222986702574417e-05</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>1531</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>1.5075963134765625e+03</quality>
+              <le>1.5973502397537231e-01</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>1048</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>483</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>483.</quality>
+              <le>1.5975108742713928e-01</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>12</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>471</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>338</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>47.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>2.8525625610351562e+02</quality>
+              <le>5.0766017287969589e-02</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>320</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>29.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>2</var>
+              <quality>2.9564001464843750e+02</quality>
+              <le>-9.5346355810761452e-03</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>50</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>21.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>3.3200000762939453e+01</quality>
+              <le>3.6435991525650024e-02</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>35</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>14.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>35.</quality>
+              <le>2.9563095420598984e-02</le></_></splits></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>14</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>21</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>15</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>270</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>18</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>118</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>34.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>1.0005511474609375e+02</quality>
+              <le>1.4778005599975586e+01</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>77</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>2.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>7.3727272033691406e+01</quality>
+              <le>5.4006891332392115e-06</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>11</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>2.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>11.</quality>
+              <le>1.4124208450317383e+01</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>9</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>2</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>66</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>41</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>9.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>41.</quality>
+              <le>1.3920962373958901e-05</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>9</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>32</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>240</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>72.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>9</var>
+              <quality>2.1415383911132812e+02</quality>
+              <le>1.3415177591014071e-06</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>182</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>14.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>1.6488888549804688e+02</quality>
+              <le>2.2636068344116211e+01</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>36</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>14.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>36.</quality>
+              <le>1.7818126678466797e+01</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>22</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>14</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>146</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>58</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>704</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>115.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>5.9930541992187500e+02</quality>
+              <le>3.4886692047119141e+01</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>645</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>56.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>5.6545007324218750e+02</quality>
+              <le>2.1612022072076797e-02</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>14</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>631</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>42.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>6.0747918701171875e+02</quality>
+              <le>1.1614009417826310e-04</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>601</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>5.8547058105468750e+02</quality>
+              <le>1.4945338249206543e+01</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>34</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>34.</quality>
+              <le>1.4785240173339844e+01</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>22</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>12</sample_count>
+          <value>83.</value>
+          <norm_class_idx>2</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>567</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>30</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>59</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>2646</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>954.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>1.7257384033203125e+03</quality>
+              <le>4.5547248840332031e+01</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>2324</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>632.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>11</var>
+              <quality>1.4729133300781250e+03</quality>
+              <le>-2.9288125915627461e-06</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>659</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>307.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>4.1600720214843750e+02</quality>
+              <le>2.5279611349105835e-01</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>245</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>50.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>11</var>
+              <quality>1.7186038208007812e+02</quality>
+              <le>-1.2737706128973514e-05</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>99</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>34.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>7.4622642517089844e+01</quality>
+              <le>5.0714290142059326e-01</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>46</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>53</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>19.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>2</var>
+              <quality>53.</quality>
+              <le>-1.9999222829937935e-02</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>19</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>34</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>146</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>16.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>130.</quality>
+              <le>1.9658117294311523e+01</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>32</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>16.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>32.</quality>
+              <le>1.8304916381835938e+01</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>16</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>16</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>114</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>414</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>112.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>9</var>
+              <quality>2.8753912353515625e+02</quality>
+              <le>1.2232421431690454e-04</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>109</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>41.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>9.2524635314941406e+01</quality>
+              <le>2.4578746795654297e+01</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>40</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>4.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>3.3777778625488281e+01</quality>
+              <le>2.5486472249031067e-01</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>22</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>18</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>4.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>18.</quality>
+              <le>2.7055963873863220e-01</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>4</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>14</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>69</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>5.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>6.0515151977539062e+01</quality>
+              <le>4.2941570281982422e-01</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>33</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>5.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>33.</quality>
+              <le>6.9642853736877441e-01</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>5</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>28</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>36</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>305</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>44.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>9</var>
+              <quality>2.3476147460937500e+02</quality>
+              <le>1.8918307614512742e-04</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>87</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>218</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>44.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>1.6976237487792969e+02</quality>
+              <le>1.3028185348957777e-03</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>16</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>202</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>28.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>1.6122978210449219e+02</quality>
+              <le>4.0236657857894897e-01</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>164</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>1.4443077087402344e+02</quality>
+              <le>2.9756432771682739e-01</le></_></splits></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>65</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>99</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>38</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>16.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>38.</quality>
+              <le>3.9889609813690186e-01</le></_></splits></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>22</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>16</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>1665</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>325.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>1.2421967773437500e+03</quality>
+              <le>3.7092134356498718e-02</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>74</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>1591</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>251.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>1.2206766357421875e+03</quality>
+              <le>1.8014425039291382e-01</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>164</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>76.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>1.0781155395507812e+02</quality>
+              <le>6.4449213445186615e-02</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>70</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>15.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>5.2500000000000000e+01</quality>
+              <le>4.8026315867900848e-02</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>34</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>36</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>15.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>36.</quality>
+              <le>6.0202204622328281e-04</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>15</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>21</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>94</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>21.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>7</var>
+              <quality>94.</quality>
+              <le>3.8623809814453125e-03</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>73</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>21</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>1427</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>163.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>1.1836140136718750e+03</quality>
+              <le>3.7529802648350596e-04</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>1001</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>32.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>1001.</quality>
+              <le>2.6287765502929688e+01</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>969</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>32</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>426</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>131.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>11</var>
+              <quality>2.7254132080078125e+02</quality>
+              <le>8.2167853179271333e-06</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>352</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>79.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>2.5518627929687500e+02</quality>
+              <le>5.6980520486831665e-01</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>148</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>204</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>79.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>1.7101388549804688e+02</quality>
+              <le>1.9377330780029297e+01</le></_></splits></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>144</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>19.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>10</depth>
+          <sample_count>60</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>74</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>22.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>74.</quality>
+              <le>2.0838302612304688e+01</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>22</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>52</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>322</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>1</depth>
+          <sample_count>2631</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>422.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>7</var>
+              <quality>2.1514155273437500e+03</quality>
+              <le>8.2556396722793579e-02</le></_></splits></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>923</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>410.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>5.5689031982421875e+02</quality>
+              <le>6.0392159223556519e-01</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>393</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>74.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>2</var>
+              <quality>2.9441119384765625e+02</quality>
+              <le>-8.8752536103129387e-03</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>194</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>4.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>1.8710345458984375e+02</quality>
+              <le>1.6491228342056274e-01</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>165</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>29</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>4.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>29.</quality>
+              <le>5.8116883039474487e-01</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>25</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>4</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>199</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>70.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>3</var>
+              <quality>1.3053285217285156e+02</quality>
+              <le>1.8159434199333191e-01</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>137</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>67.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>1.2105063629150391e+02</quality>
+              <le>1.7590325325727463e-02</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>79</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>9.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>12</var>
+              <quality>6.6291229248046875e+01</quality>
+              <le>1.0133214800589485e-06</le></_></splits></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>60</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>2.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>12</var>
+              <quality>5.6533332824707031e+01</quality>
+              <le>-1.0311199503121316e-06</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>15</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>2.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>15.</quality>
+              <le>3.7972488403320312e+01</le></_></splits></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>13</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>9</depth>
+          <sample_count>2</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>45</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>7</depth>
+          <sample_count>19</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>7.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>2</var>
+              <quality>19.</quality>
+              <le>-5.2844178862869740e-03</le></_></splits></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>12</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>8</depth>
+          <sample_count>7</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>58</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>62</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>530</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>194.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>2</var>
+              <quality>3.6627804565429688e+02</quality>
+              <le>-1.1560095474123955e-02</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>96</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>4.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>9.2085105895996094e+01</quality>
+              <le>6.1684781312942505e-01</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>2</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>94</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>2.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>94.</quality>
+              <le>2.5915008783340454e-01</le></_></splits></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>2</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>6</depth>
+          <sample_count>92</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>434</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>102.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>434.</quality>
+              <le>3.5433719635009766e+01</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>332</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>102</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>1708</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>7</var>
+              <quality>1.6853714599609375e+03</quality>
+              <le>1.7107027769088745e-01</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>210</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>1.8869158935546875e+02</quality>
+              <le>3.4632985480129719e-03</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>107</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>12.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>107.</quality>
+              <le>2.4559429287910461e-01</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>95</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>12</sample_count>
+          <value>77.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>103</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>1498</sample_count>
+          <value>78.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_></nodes></_></trees></my_random_trees>
+</opencv_storage>
diff --git a/data/trainedClassifierPS.xml b/data/trainedClassifierPS.xml
new file mode 100644
index 0000000..e59f563
--- /dev/null
+++ b/data/trainedClassifierPS.xml
@@ -0,0 +1,480 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<my_random_trees type_id="opencv-ml-random-trees">
+  <nclasses>2</nclasses>
+  <nsamples>2224</nsamples>
+  <nactive_vars>3</nactive_vars>
+  <oob_error>1.2106537530266344e-03</oob_error>
+  <var_importance type_id="opencv-matrix">
+    <rows>1</rows>
+    <cols>13</cols>
+    <dt>f</dt>
+    <data>
+      5.99547550e-02 7.57918581e-02 1.05203621e-01 5.99547550e-02
+      5.99547550e-02 7.57918581e-02 1.33484170e-01 9.38914046e-02
+      7.46606365e-02 7.23981932e-02 6.90045282e-02 5.99547550e-02
+      5.99547550e-02</data></var_importance>
+  <ntrees>1</ntrees>
+  <is_classifier>1</is_classifier>
+  <var_all>13</var_all>
+  <var_count>13</var_count>
+  <ord_var_count>13</ord_var_count>
+  <cat_var_count>0</cat_var_count>
+  <training_params>
+    <use_surrogates>0</use_surrogates>
+    <max_categories>3</max_categories>
+    <max_depth>10</max_depth>
+    <min_sample_count>10</min_sample_count>
+    <cross_validation_folds>0</cross_validation_folds>
+    <priors type_id="opencv-matrix">
+      <rows>1</rows>
+      <cols>2</cols>
+      <dt>d</dt>
+      <data>
+        1. 1.</data></priors></training_params>
+  <var_type>
+    0 0 0 0 0 0 0 0 0 0 0 0 0</var_type>
+  <cat_count type_id="opencv-matrix">
+    <rows>1</rows>
+    <cols>1</cols>
+    <dt>i</dt>
+    <data>
+      2</data></cat_count>
+  <cat_map type_id="opencv-matrix">
+    <rows>1</rows>
+    <cols>2</cols>
+    <dt>i</dt>
+    <data>
+      78 83</data></cat_map>
+  <trees>
+    <_>
+      <best_tree_idx>-1</best_tree_idx>
+      <nodes>
+        <_>
+          <depth>0</depth>
+          <sample_count>2224</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>987.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>2</var>
+              <quality>1.3264243164062500e+03</quality>
+              <le>-7.4277203530073166e-03</le></_></splits></_>
+        <_>
+          <depth>1</depth>
+          <sample_count>1171</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>284.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>1.0397031250000000e+03</quality>
+              <le>1.8695288896560669e-01</le></_></splits></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>844</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>17.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>8.1261535644531250e+02</quality>
+              <le>3.4836662234738469e-04</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>623</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>221</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>17.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>2.0506250000000000e+02</quality>
+              <le>6.0769236087799072e-01</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>189</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>32</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>15.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>7</var>
+              <quality>32.</quality>
+              <le>5.4183769971132278e-03</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>15</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>17</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>327</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>60.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>6</var>
+              <quality>2.4411340332031250e+02</quality>
+              <le>2.0524463057518005e-01</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>194</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>60.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>1.3976190185546875e+02</quality>
+              <le>8.7533406913280487e-02</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>26</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>168</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>34.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>7</var>
+              <quality>168.</quality>
+              <le>7.6055224053561687e-03</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>134</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>34</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>133</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>1</depth>
+          <sample_count>1053</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>350.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>5</var>
+              <quality>8.3538385009765625e+02</quality>
+              <le>6.0769236087799072e-01</le></_></splits></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>505</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>156.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>3.9871688842773438e+02</quality>
+              <le>1.7408443450927734e+01</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>318</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>18.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>8</var>
+              <quality>2.9124841308593750e+02</quality>
+              <le>1.0315108811482787e-03</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>314</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>14.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>7</var>
+              <quality>314.</quality>
+              <le>5.7028401643037796e-03</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>300</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>14</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>4</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>187</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>49.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>1</var>
+              <quality>1.3607843017578125e+02</quality>
+              <le>9.6617646515369415e-02</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>85</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>102</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>49.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>9</var>
+              <quality>102.</quality>
+              <le>4.4875236199004576e-05</le></_></splits></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>49</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>5</depth>
+          <sample_count>53</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>2</depth>
+          <sample_count>548</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>1.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>10</var>
+              <quality>5.4600665283203125e+02</quality>
+              <le>1.8630350950843422e-07</le></_></splits></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>302</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>1.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error>
+          <splits>
+            <_><var>0</var>
+              <quality>302.</quality>
+              <le>1.5779340744018555e+01</le></_></splits></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>1</sample_count>
+          <value>83.</value>
+          <norm_class_idx>1</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>4</depth>
+          <sample_count>301</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_>
+        <_>
+          <depth>3</depth>
+          <sample_count>246</sample_count>
+          <value>78.</value>
+          <norm_class_idx>0</norm_class_idx>
+          <Tn>0</Tn>
+          <complexity>0</complexity>
+          <alpha>0.</alpha>
+          <node_risk>0.</node_risk>
+          <tree_risk>0.</tree_risk>
+          <tree_error>0.</tree_error></_></nodes></_></trees></my_random_trees>
+</opencv_storage>
diff --git a/data/training-set1/Mult_B_0.png b/data/training-set1/Mult_B_0.png
new file mode 100644
index 0000000..2b23e55
Binary files /dev/null and b/data/training-set1/Mult_B_0.png differ
diff --git a/data/training-set1/Mult_C_0.png b/data/training-set1/Mult_C_0.png
new file mode 100644
index 0000000..f13b91f
Binary files /dev/null and b/data/training-set1/Mult_C_0.png differ
diff --git a/data/training-set1/Mult_D_0.png b/data/training-set1/Mult_D_0.png
new file mode 100644
index 0000000..b3724b8
Binary files /dev/null and b/data/training-set1/Mult_D_0.png differ
diff --git a/data/training-set1/Neg_B_0.png b/data/training-set1/Neg_B_0.png
new file mode 100644
index 0000000..2b361f5
Binary files /dev/null and b/data/training-set1/Neg_B_0.png differ
diff --git a/data/training-set1/Sing_A_0.png b/data/training-set1/Sing_A_0.png
new file mode 100644
index 0000000..62fbc10
Binary files /dev/null and b/data/training-set1/Sing_A_0.png differ
diff --git a/data/training-set1/Sing_C_0.png b/data/training-set1/Sing_C_0.png
new file mode 100644
index 0000000..f6f262e
Binary files /dev/null and b/data/training-set1/Sing_C_0.png differ
diff --git a/data/training-set2/Neg_psB_1.png b/data/training-set2/Neg_psB_1.png
new file mode 100644
index 0000000..e61620e
Binary files /dev/null and b/data/training-set2/Neg_psB_1.png differ
diff --git a/data/training-set2/Sing_psA_1.png b/data/training-set2/Sing_psA_1.png
new file mode 100644
index 0000000..04d594d
Binary files /dev/null and b/data/training-set2/Sing_psA_1.png differ
diff --git a/data/training-set2/Sing_psc_1.png b/data/training-set2/Sing_psc_1.png
new file mode 100644
index 0000000..b308770
Binary files /dev/null and b/data/training-set2/Sing_psc_1.png differ
diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4
new file mode 100644
index 0000000..af37acd
--- /dev/null
+++ b/m4/ax_cxx_compile_stdcxx_11.m4
@@ -0,0 +1,133 @@
+# ============================================================================
+#  http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
+# ============================================================================
+#
+# SYNOPSIS
+#
+#   AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
+#
+# DESCRIPTION
+#
+#   Check for baseline language coverage in the compiler for the C++11
+#   standard; if necessary, add switches to CXXFLAGS to enable support.
+#
+#   The first argument, if specified, indicates whether you insist on an
+#   extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
+#   -std=c++11).  If neither is specified, you get whatever works, with
+#   preference for an extended mode.
+#
+#   The second argument, if specified 'mandatory' or if left unspecified,
+#   indicates that baseline C++11 support is required and that the macro
+#   should error out if no mode with that support is found.  If specified
+#   'optional', then configuration proceeds regardless, after defining
+#   HAVE_CXX11 if and only if a supporting mode is found.
+#
+# LICENSE
+#
+#   Copyright (c) 2008 Benjamin Kosnik <bkoz at redhat.com>
+#   Copyright (c) 2012 Zack Weinberg <zackw at panix.com>
+#   Copyright (c) 2013 Roy Stogner <roystgnr at ices.utexas.edu>
+#
+#   Copying and distribution of this file, with or without modification, are
+#   permitted in any medium without royalty provided the copyright notice
+#   and this notice are preserved. This file is offered as-is, without any
+#   warranty.
+
+#serial 3
+
+m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [
+  template <typename T>
+    struct check
+    {
+      static_assert(sizeof(int) <= sizeof(T), "not big enough");
+    };
+
+    typedef check<check<bool>> right_angle_brackets;
+
+    int a;
+    decltype(a) b;
+
+    typedef check<int> check_type;
+    check_type c;
+    check_type&& cr = static_cast<check_type&&>(c);
+
+    auto d = a;
+])
+
+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
+  m4_if([$1], [], [],
+        [$1], [ext], [],
+        [$1], [noext], [],
+        [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
+  m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
+        [$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
+        [$2], [optional], [ax_cxx_compile_cxx11_required=false],
+        [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
+  AC_LANG_PUSH([C++])dnl
+  ac_success=no
+  AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
+  ax_cv_cxx_compile_cxx11,
+  [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
+    [ax_cv_cxx_compile_cxx11=yes],
+    [ax_cv_cxx_compile_cxx11=no])])
+  if test x$ax_cv_cxx_compile_cxx11 = xyes; then
+    ac_success=yes
+  fi
+
+  m4_if([$1], [noext], [], [dnl
+  if test x$ac_success = xno; then
+    for switch in -std=gnu++11 -std=gnu++0x; do
+      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
+      AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
+                     $cachevar,
+        [ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
+          [eval $cachevar=yes],
+          [eval $cachevar=no])
+         CXXFLAGS="$ac_save_CXXFLAGS"])
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi])
+
+  m4_if([$1], [ext], [], [dnl
+  if test x$ac_success = xno; then
+    for switch in -std=c++11 -std=c++0x; do
+      cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
+      AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
+                     $cachevar,
+        [ac_save_CXXFLAGS="$CXXFLAGS"
+         CXXFLAGS="$CXXFLAGS $switch"
+         AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
+          [eval $cachevar=yes],
+          [eval $cachevar=no])
+         CXXFLAGS="$ac_save_CXXFLAGS"])
+      if eval test x\$$cachevar = xyes; then
+        CXXFLAGS="$CXXFLAGS $switch"
+        ac_success=yes
+        break
+      fi
+    done
+  fi])
+  AC_LANG_POP([C++])
+  if test x$ax_cxx_compile_cxx11_required = xtrue; then
+    if test x$ac_success = xno; then
+      AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
+    fi
+  else
+    if test x$ac_success = xno; then
+      HAVE_CXX11=0
+      AC_MSG_NOTICE([No compiler with C++11 support was found])
+    else
+      HAVE_CXX11=1
+      AC_DEFINE(HAVE_CXX11,1,
+                [define if the compiler supports basic C++11 syntax])
+    fi
+
+    AC_SUBST(HAVE_CXX11)
+  fi
+])
diff --git a/m4/pkg.m4 b/m4/pkg.m4
new file mode 100644
index 0000000..a0b9cd4
--- /dev/null
+++ b/m4/pkg.m4
@@ -0,0 +1,155 @@
+# pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
+# 
+# Copyright © 2004 Scott James Remnant <scott at netsplit.com>.
+#
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=m4_default([$1], [0.9.0])
+	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		AC_MSG_RESULT([yes])
+	else
+		AC_MSG_RESULT([no])
+		PKG_CONFIG=""
+	fi
+		
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+    pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+    PKG_CHECK_EXISTS([$3],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+		     [pkg_failed=yes])
+ else
+    pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+	ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+		[AC_MSG_RESULT([no])
+                $4])
+elif test $pkg_failed = untried; then
+	ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])],
+		[$4])
+else
+	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
+	ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
diff --git a/packagingScripts/opencfu.desktop b/packagingScripts/opencfu.desktop
new file mode 100644
index 0000000..441f538
--- /dev/null
+++ b/packagingScripts/opencfu.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Name=OpenCFU
+Comment=A modern program to count circular objects from pictures or webcams
+Name[en_GB]=OpenCFU
+Comment[en_GB]=A modern program to count circular objects from pictures or webcams
+Version=1.0
+Exec=opencfu
+Icon=opencfu
+Icon[en_GB]=opencfu
+Terminal=false
+Type=Application
+Categories=Science;Biology;ImageProcessing;
diff --git a/src/classifier/headers/DataMaker.hpp b/src/classifier/headers/DataMaker.hpp
new file mode 100644
index 0000000..2d89a4f
--- /dev/null
+++ b/src/classifier/headers/DataMaker.hpp
@@ -0,0 +1,30 @@
+#ifndef DATAMAKER_H
+#define DATAMAKER_H
+
+#include "defines.hpp"
+#include "dirent.h"
+#include "opencv2/highgui/highgui.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+#include "ContourFamily.hpp"
+#include "Features.hpp"
+
+class DataMaker
+{
+    public:
+        DataMaker();
+        DataMaker(const std::string& lib,const std::string& lib_ps);
+        void makeData(cv::Mat& out, std::vector<signed char>& category );
+        void makeDataPS(cv::Mat& out, std::vector<signed char>& category );
+    protected:
+        void makeFileList(std::vector<std::string>& out,const char direct[]);
+        signed char findCategFromName(const std::string& str);
+        void makeFeaturesMatrix(const std::vector<ContourFamily>& contour_fams,cv::Mat& dst);
+        void makeContourChunksVect(const cv::Mat& src,std::vector<ContourFamily>& contour_fams);
+        void preFilterContourSize(std::vector<ContourFamily>& contour_fams);
+    private:
+        Features m_featureMaker;
+        std::string m_library;
+        std::string m_library_ps;
+        bool m_rotate_scale;
+};
+#endif // DATAMAKER_H
diff --git a/src/classifier/main.cpp b/src/classifier/main.cpp
new file mode 100644
index 0000000..280cb59
--- /dev/null
+++ b/src/classifier/main.cpp
@@ -0,0 +1,93 @@
+/*
+    Copyright Quentin Geissmann 2012-2013
+
+    This file is part of OpenCFU
+
+    OpenCFU 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 3 of the License, or
+    (at your option) any later version.
+
+    OpenCFU 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 OpenCFU.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "DataMaker.hpp"
+#include "Predictor.hpp"
+#include "defines.hpp"
+
+int main(int argc, char **argv){
+    Predictor my_predictor;
+    std::vector<signed char> categs;
+    cv::Mat features;
+
+    assert(argc == 3 || argc == 4 );
+
+    /*If the program is called to TRAIN the model*/
+    if(argv[1][0] == 't'){
+        std::cout<<"\n~~~~~~~~~~~~~~TRAINING PREDICTOR~~~~~~~~~~~~~\n "<<std::endl;
+
+        DataMaker dm(TRAINING_SET_IMG,TRAINING_SET_IMG_PS);
+        if(argc == 3)
+            dm.makeData(features,categs);
+        else
+            dm.makeDataPS(features,categs);
+        my_predictor.train(features,categs);
+        my_predictor.save(argv[2]);
+        std::cout<<"\n~~~~~~~~~~~~~~PREDICTOR TRAINED~~~~~~~~~~~~~\n "<<std::endl;
+
+    }
+    /*Else, if the program is called to validate the training*/
+    else{
+        DataMaker dm(TRAINING_SET_IMG,TRAINING_SET_IMG_PS);
+        if(argc == 3)
+            dm.makeData(features,categs);
+        else
+            dm.makeDataPS(features,categs);
+
+        my_predictor.loadTrainData(argv[2]);
+
+        std::vector<signed char> pred;
+        my_predictor.predict(features,pred);
+        int n_false(0);
+        cv::Mat m_mat(3,3,CV_32F,cv::Scalar(0));
+        std::map<char,int> lut;
+        lut['N'] = 0;
+        lut['S'] = 1;
+        lut['M'] = 2;
+        char revLut[3] =  {'N','S','M'};
+        std::vector<int> counts(3,0);
+
+        for(unsigned int i = 0; i<pred.size(); i++){
+            char p =pred[i];
+            char r =categs[i];
+            int real = lut[r];
+            int pred = lut[p];
+            counts[real] +=1;
+
+            if(real != pred){
+                n_false++;
+            }
+            m_mat.at<float>(pred,real) = m_mat.at<float>(pred,real) + 1;
+        }
+        cv::Mat sum_cols;
+        cv::reduce(m_mat, sum_cols, 0, CV_REDUCE_SUM);
+        cv::repeat(sum_cols, 3, 1, sum_cols);
+        m_mat = 100*m_mat/sum_cols;
+        float accur = 1 - ((float) n_false/(float) pred.size());
+        std::cout<<"\n~~~~~~~~~~~~~~ASSESSING ACCURACY OF THE PREDICTOR~~~~~~~~~~~~~\n "<<std::endl;
+        std::cout<<"ACCURACY = "<<accur<<std::endl;
+        std::cout<<"\nTRAINNING CLASS BALANCE:"<<std::endl;
+
+        std::cout.setf(std::ios::fixed);
+        for(unsigned int i = 0; i < counts.size();i++)
+            std::cout<<"N(class =="<<revLut[i]<<") "<<counts[i]<<std::endl;
+        std::cout<<"\nConfusion Matrix = \n REAL(top) -> PRED(left) \n"<<cv::format(m_mat,"CSV")<<"\n"<<std::endl;
+    }
+    return 0;
+}
diff --git a/src/classifier/src/DataMaker.cpp b/src/classifier/src/DataMaker.cpp
new file mode 100644
index 0000000..082ef39
--- /dev/null
+++ b/src/classifier/src/DataMaker.cpp
@@ -0,0 +1,169 @@
+#include "DataMaker.hpp"
+#include <algorithm>
+
+DataMaker::DataMaker() : m_library(TRAINING_SET_IMG),m_library_ps(TRAINING_SET_IMG_PS){}
+
+DataMaker::DataMaker(const std::string& lib,const std::string& lib_ps):
+m_library(lib.c_str()),
+m_library_ps(lib_ps.c_str()),
+m_rotate_scale(true)
+{}
+
+void DataMaker::makeFileList(std::vector<std::string>& out,const char direct[]){
+    DIR *dir;
+    struct dirent *ent;
+    if ((dir = opendir (direct)) != NULL) {
+      /* print all the files and directories within directory */
+      while ((ent = readdir(dir)) != NULL) {
+        std::stringstream ss;
+        ss<<direct;
+        ss<<ent->d_name;
+        std::string str = ss.str();
+        int found = str.rfind(".png");
+        if(found != std::string::npos)
+            out.push_back(str);
+      }
+      std::sort(out.begin(), out.end());
+      closedir (dir);
+    }
+    else {
+      return;
+    }
+}
+
+signed char DataMaker::findCategFromName(const std::string& str){
+    int neg = str.rfind("Neg_");
+    int sing = str.rfind("Sing_");
+    int mult = str.rfind("Mult_");
+    signed char toRet = -1;
+    if(neg != std::string::npos)
+        toRet = 'N';
+    else if(sing != std::string::npos)
+        toRet = 'S';
+    else if(mult != std::string::npos)
+        toRet = 'M';
+    return toRet;
+}
+
+void DataMaker::makeDataPS(cv::Mat& out, std::vector<signed char>& category ){
+    out =cv::Mat();
+    category.resize(0);
+    std::vector<std::string> allFiles;
+    makeFileList(allFiles,m_library_ps.c_str());
+    std::vector< std::vector<ContourFamily> >contour_fams;
+    for(auto& str : allFiles){
+        cv::Mat src = cv::imread(str,0);
+        assert(!src.empty());
+        signed char categ = findCategFromName(str);
+        cv::Mat img0, img;
+        src.copyTo(img0);
+        for(int j=0; j<4;j++){
+                if (j==0)
+                    cv::flip(img0,img,0);
+                else if(j==1)
+                    cv::flip(img0,img,1);
+                else if(j==2)
+                    cv::flip(img0,img,2);
+                else
+                    img0.copyTo(img);
+
+            for(int i=0; i != 4;++i){
+                cv::transpose(img,img);
+                cv::flip(img,img,0);
+                std::vector<ContourFamily>  tmp_fam;
+                makeContourChunksVect(img,tmp_fam);
+                preFilterContourSize(tmp_fam);
+                cv::Mat tmp_mat;
+                makeFeaturesMatrix(tmp_fam,tmp_mat);
+                out.push_back(tmp_mat);
+                for(unsigned int k=0; k != tmp_fam.size();++k){
+                    category.push_back(categ);
+                }
+            }
+        }
+    }
+}
+
+
+void DataMaker::makeData(cv::Mat& out, std::vector<signed char>& category ){
+    out =cv::Mat();
+    category.resize(0);
+    std::vector<std::string> allFiles;
+    makeFileList(allFiles,m_library.c_str());
+    std::vector< std::vector<ContourFamily> >contour_fams;
+    for(auto& str : allFiles){
+        DEV_INFOS(str);
+        cv::Mat src = cv::imread(str,0);
+        assert(!src.empty());
+        signed char categ = findCategFromName(str);
+        cv::Mat img0, img;
+        src.copyTo(img0);
+        for(int j=0; j<4;j++){
+                if (j==0)
+                    cv::flip(img0,img,0);
+                else if(j==1)
+                    cv::flip(img0,img,1);
+                else if(j==2)
+                    cv::flip(img0,img,2);
+                else
+                    img0.copyTo(img);
+
+            for(int i=0; i != 4;++i){
+                cv::transpose(img,img);
+                cv::flip(img,img,0);
+                std::vector<ContourFamily>  tmp_fam;
+                makeContourChunksVect(img,tmp_fam);
+                preFilterContourSize(tmp_fam);
+                cv::Mat tmp_mat;
+                makeFeaturesMatrix(tmp_fam,tmp_mat);
+                out.push_back(tmp_mat);
+                for(unsigned int k=0; k != tmp_fam.size();++k){
+                    category.push_back(categ);
+                }
+            }
+        }
+    }
+}
+
+void DataMaker::makeFeaturesMatrix(const std::vector<ContourFamily>& contour_fams,cv::Mat& dst){
+    unsigned int n = contour_fams.size();
+    unsigned int n_features = m_featureMaker.getNFeature();
+    dst = cv::Mat(n,n_features,CV_32F);
+    for(unsigned int i = 0; i < n;i++){
+        cv::Mat tmp_row(1,n_features,CV_32F);
+        m_featureMaker.calcFeatures(contour_fams[i],tmp_row);
+        tmp_row.copyTo(dst.row(i));
+    }
+}
+
+void DataMaker::makeContourChunksVect(const cv::Mat& src,std::vector<ContourFamily>& contour_fams ){
+    cont_chunk contours_chunk;
+    hier_chunk hieras_chunk;
+    cv::Mat thrd;
+    cv::threshold(src,thrd,128,255,cv::THRESH_BINARY);
+    cv::findContours(thrd, contours_chunk, hieras_chunk, cv::RETR_CCOMP, cv::CHAIN_APPROX_SIMPLE);
+    unsigned int c=0;
+    unsigned int CC = contours_chunk.size();
+    while ( c < CC){
+        /*if this is not the lastest non-hole*/
+        unsigned int nHoles = 0;
+        if( hieras_chunk[c][0] > 0)
+            nHoles = hieras_chunk[c][0]-c-1;
+        else
+            nHoles = CC - (c+1);
+        contour_fams.push_back(ContourFamily(cont_chunk(contours_chunk.begin()+c,contours_chunk.begin()+c+nHoles+1)));
+        c += nHoles+1;
+    }
+}
+
+void DataMaker::preFilterContourSize(std::vector<ContourFamily>& contour_fams){
+    std::vector<ContourFamily> tmp_fams;
+    tmp_fams.reserve(contour_fams.size());
+    for(ContourFamily& i : contour_fams){
+        if(i.contours[0].size() <= 6)
+            continue;
+        else
+            tmp_fams.push_back(i);
+    }
+    std::swap(tmp_fams,contour_fams);
+}
diff --git a/src/defines.hpp b/src/defines.hpp
new file mode 100644
index 0000000..ad0ac2e
--- /dev/null
+++ b/src/defines.hpp
@@ -0,0 +1,47 @@
+//#include "defines.hpp"
+//Should be in all headers in all headers!
+#ifndef DEFINES_H
+#define DEFINES_H
+
+#include <assert.h>
+#include <unistd.h>
+#include "config.h"
+
+#ifdef DBG_MESSAGE
+#include <iostream>
+#define DEV_INFOS(X) std::cerr<<"file:"<<__FILE__<<"\tline:"<<__LINE__<<"\t=>"<<X<<std::endl
+//#define DEV_INFOS(X) ;
+#else
+#define DEV_INFOS(X) ;
+#endif // DBG_MESSAGE
+
+
+#define OCFU_THR_NORM 0
+#define OCFU_THR_INV 1
+#define OCFU_THR_BILAT 2
+
+#define MODE_STANDBY 0
+#define MODE_IMG 1
+
+#define PROCESSOR_WORKING_SIGNAL 0
+#define PROCESSOR_IDLE_SIGNAL 1
+//#define PROCESSOR_HAS_REWORKED_SIGNAL 2
+
+
+
+#define MASK_TYPE_NONE 0
+#define MASK_TYPE_FILE 1
+#define MASK_TYPE_DRAW 2
+#define MASK_TYPE_AUTO 3
+
+#define MASK_TOOL_3P_CIRCLE 0
+#define MASK_TOOL_CONV_POLYGON 1
+
+//GUI:
+#define DISPLAY_MIN_MARGIN 10
+
+#endif // NDEVEL
+
+
+#define MY_PI 3.1416
+
diff --git a/src/gui/headers/Gui_ColourCluster.hpp b/src/gui/headers/Gui_ColourCluster.hpp
new file mode 100644
index 0000000..085c063
--- /dev/null
+++ b/src/gui/headers/Gui_ColourCluster.hpp
@@ -0,0 +1,54 @@
+#ifndef GUI_COLOURCLUSTER_HPP
+#define GUI_COLOURCLUSTER_HPP
+
+#include "Gui_OptionSetterBaseClass.hpp"
+#include <gtkmm/box.h>
+#include <gtkmm/label.h>
+#include <gtkmm/spinbutton.h>
+#include "defines.hpp"
+#include "text.hpp"
+
+
+/**
+Nathanael Lampe
+09/08/2014
+
+Based on Gui_ColourSelector
+*/
+
+
+class Gui_ColourCluster : public Gui_OptionSetterBaseClass
+{
+    public:
+        Gui_ColourCluster(Gui_ProcessorHandler& processor_hand,const std::string str);
+        void updateNFiles(int i);
+
+    protected:
+        void on_ClusteringDistanceChanged(){
+//                int val_clustering_distance = m_spin_butt_clustering_distance.get_value();
+                this->setOption();
+        }
+        bool setOption(){
+            return Gui_OptionSetterBaseClass::setOption();
+        }
+        bool updateOptions();
+
+        void on_realize(){
+            this->on_tick_box();
+            Gui_OptionSetterBaseClass::on_realize();}
+
+        void on_tick_box(){ m_check_butt.get_active() ?  m_hbox.show() : m_hbox.hide(); }
+
+        void on_activate_filter(){
+            this->on_tick_box();
+            this->setOption();}
+    private:
+        Gtk::HBox m_hbox;
+//        Gtk::VBox m_vbox; //declared in parent
+        Gtk::Adjustment m_adjust_clustering_distance;
+        Gtk::SpinButton m_spin_butt_clustering_distance;
+        Gtk::CheckButton m_check_butt;
+        Gtk::Label m_lab_clustering_distance;
+};
+
+#endif // GUI_COLOURCLUSTER_HPP
diff --git a/src/gui/headers/Gui_ColourSelector.hpp b/src/gui/headers/Gui_ColourSelector.hpp
new file mode 100644
index 0000000..c1831f8
--- /dev/null
+++ b/src/gui/headers/Gui_ColourSelector.hpp
@@ -0,0 +1,60 @@
+#ifndef GUI_COLOURSELECTOR_H
+#define GUI_COLOURSELECTOR_H
+
+#include "Gui_OptionSetterBaseClass.hpp"
+#include "Gui_ColourWheel.hpp"
+#include <gtkmm/box.h>
+#include <gtkmm/label.h>
+#include <gtkmm/spinbutton.h>
+#include "defines.hpp"
+#include "text.hpp"
+
+class Gui_ColourSelector : public Gui_OptionSetterBaseClass
+{
+    public:
+        Gui_ColourSelector(Gui_ProcessorHandler& processor_hand,const std::string str);
+        void updateNFiles(int i);
+
+
+    protected:
+        void on_MinSatChanged(){
+                int val_min = m_spin_butt_sat_min.get_value();
+                int val_max = m_spin_butt_sat_max.get_value();
+                if(val_min > val_max)
+                    m_spin_butt_sat_max.set_value(val_min);
+                else
+                    this->setOption();
+        }
+        bool setOption(){
+            m_col_wheel.queue_draw();
+            return Gui_OptionSetterBaseClass::setOption();
+        }
+        bool updateOptions();
+
+        void on_realize(){
+            this->on_tick_box();
+            Gui_OptionSetterBaseClass::on_realize();}
+
+        void on_tick_box(){ m_check_butt.get_active() ?  m_hbox2.show() : m_hbox2.hide(); }
+
+        void on_activate_filter(){
+            this->on_tick_box();
+            this->setOption();}
+
+
+    private:
+        Gtk::HBox m_hbox2,m_hbox21,m_hbox22;
+        Gtk::VBox m_vbox2;
+        Gtk::Adjustment m_adjust_hue_center,m_adjust_hue_tol;
+        Gtk::Adjustment m_adjust_sat_min,m_adjust_sat_max;
+        Gtk::SpinButton m_spin_butt_hue_center, m_spin_butt_hue_tol;
+        Gtk::SpinButton m_spin_butt_sat_min, m_spin_butt_sat_max;
+        Gtk::CheckButton m_check_butt;
+        Gtk::Label m_lab_hue, m_lab_center, m_lab_tol;
+
+        Gtk::Label m_lab_sat, m_lab_sat_min, m_lab_sat_max;
+
+        Gui_ColourWheel m_col_wheel;
+};
+
+#endif // GUI_COLOURSELECTOR_H
diff --git a/src/gui/headers/Gui_ColourWheel.hpp b/src/gui/headers/Gui_ColourWheel.hpp
new file mode 100644
index 0000000..102fbdf
--- /dev/null
+++ b/src/gui/headers/Gui_ColourWheel.hpp
@@ -0,0 +1,28 @@
+#ifndef GUI_COLOURWHEEL_H
+#define GUI_COLOURWHEEL_H
+
+#include <gtkmm/drawingarea.h>
+#include "defines.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+class Gui_ColourWheel: public Gtk::DrawingArea
+{
+    public:
+        Gui_ColourWheel();
+        void setParams(int mean_hue, int tol_hue, int min_sat, int max_sat);
+    protected:
+        bool on_expose_event(GdkEventExpose* event);
+        void redraw();
+    private:
+        cv::Mat  m_img_to_display;
+        Glib::RefPtr<Gdk:: Pixbuf > m_pixbuf;
+//        Glib::RefPtr<Gdk:: Pixbuf > tmp_buf;
+        int m_centr_hue;
+        int m_tol_hue;
+        int m_min_sat;
+        int m_max_sat;
+
+};
+
+#endif // GUI_COLOURWHEEL_H
diff --git a/src/gui/headers/Gui_ConfigIO.hpp b/src/gui/headers/Gui_ConfigIO.hpp
new file mode 100644
index 0000000..a4373d4
--- /dev/null
+++ b/src/gui/headers/Gui_ConfigIO.hpp
@@ -0,0 +1,32 @@
+#ifndef GUI_CONFIGIO_H
+#define GUI_CONFIGIO_H
+
+#include "defines.hpp"
+#include <glibmm/keyfile.h>
+#include <giomm/file.h>
+#include "ProcessingOptions.hpp"
+
+class Gui_ConfigIO
+{
+    public:
+        Gui_ConfigIO(ProcessingOptions& opts);
+        ~Gui_ConfigIO();
+        int& getHelloLevelRef(){return m_hello_lev;}
+        std::string& getLastDir(){
+            return m_last_working_dir;}
+    protected:
+        void makeNewConfig();
+        void readConfig();
+        void getOptionsFromConf();
+    private:
+        int m_hello_lev;
+        std::string m_config_file_name;
+        std::string m_version;
+        ProcessingOptions& m_opts;
+        Glib::KeyFile m_key_file;
+        Glib::RefPtr<Gio::File> m_file;
+        std::string m_last_working_dir;
+
+};
+
+#endif // GUI_CONFIGIO_H
diff --git a/src/gui/headers/Gui_ControlPanel.hpp b/src/gui/headers/Gui_ControlPanel.hpp
new file mode 100644
index 0000000..1b2f3dc
--- /dev/null
+++ b/src/gui/headers/Gui_ControlPanel.hpp
@@ -0,0 +1,83 @@
+#ifndef GUI_CONTROLPANEL_H
+#define GUI_CONTROLPANEL_H
+
+#include <gtkmm/box.h>
+#include <gtkmm/frame.h>
+#include <gtkmm/aboutdialog.h>
+
+#include "Gui_ProcessorHandler.hpp"
+#include "Gui_ResultLabel.hpp"
+#include "Gui_ImgFileSetter.hpp"
+#include "Gui_ThresholdSetter.hpp"
+#include "Gui_RadiusSetter.hpp"
+#include "Gui_ColourSelector.hpp"
+#include "Gui_LikFiltSelector.hpp"
+#include "Gui_HelloWindow.hpp"
+#include "Gui_PixbufOpener.hpp"
+#include "Gui_MaskSetter.hpp"
+#include "Gui_ColourCluster.hpp" //NJL 10/AUG/2014
+#include "Gui_ConfigIO.hpp"
+
+class MyAboutDialog : public Gtk::AboutDialog
+{
+    public:
+        MyAboutDialog(): Gtk::AboutDialog(),m_link(PACKAGE_URL,PACKAGE_URL){
+            set_version(PACKAGE_VERSION);
+            std::vector<Glib::ustring> authors;
+            authors.push_back("Quentin Geissmann<opencfu at gmail.com>");
+            set_authors(authors);
+            set_license("GPL_3_0");
+            set_copyright("Quentin Geissmann 2012-2013");
+
+            #if defined _WIN64 || defined _WIN32
+
+            std::stringstream ss;
+            ss<<ABOUT_TEXT<<std::endl<<PACKAGE_URL;
+            set_comments(ss.str());
+            #else
+            set_website(PACKAGE_URL);
+            set_website_label("Website");
+            set_comments(ABOUT_TEXT);
+            #endif
+
+        set_logo(Gui_PixbufOpener::pixbufOpen(LOGO_IMG));
+
+        }
+    protected:
+        void on_activate_link(const std::string& str){
+            DEV_INFOS(str);
+        }
+    private:
+        PortableLinkButton m_link;
+};
+
+class Gui_ControlPanel: public Gtk::Frame
+{
+    public:
+        Gui_ControlPanel(Gui_ProcessorHandler& processor_hand,ResultMap& result_map, Gui_ConfigIO& config);
+
+        sigc::signal<void,bool>& signal_set_to_NA(){
+            return m_result_label.signal_set_to_NA();}
+
+        sigc::signal<void,bool,double>& signal_show_decorator(){
+            return m_result_label.signal_show_decorator();}
+        sigc::signal<void,bool> signal_show_mask(){return m_mask_setter.signal_show_mask();}
+        void on_about_button();
+
+
+    private:
+        Gui_ProcessorHandler& m_processor_hand;
+        Gui_ResultLabel m_result_label;
+        Gui_ImgFileSetter m_file_setter;
+        Gui_ThresholdSetter m_thr_setter;
+        Gui_RadiusSetter m_rad_setter;
+        Gui_MaskSetter m_mask_setter;
+        Gui_ColourSelector m_col_select;
+        Gui_LikFiltSelector m_lik_select;
+        Gui_ColourCluster m_col_cluster; //NJL 10/AUG/2014
+        Gtk::VBox m_vbox;
+        Gtk::Button m_about_opencfu_button;
+
+};
+
+#endif // GUI_CONTROLPANEL_H
diff --git a/src/gui/headers/Gui_Decorator.hpp b/src/gui/headers/Gui_Decorator.hpp
new file mode 100644
index 0000000..061f99e
--- /dev/null
+++ b/src/gui/headers/Gui_Decorator.hpp
@@ -0,0 +1,42 @@
+#ifndef GUI_DECORATOR_H
+#define GUI_DECORATOR_H
+
+
+#include "defines.hpp"
+
+#include "Gui_ProcessorHandler.hpp"
+#include "Result.hpp"
+
+#include <gtkmm/drawingarea.h>
+#include <cairomm/context.h>
+#include <gtkmm/drawingarea.h>
+#include "Gui_DisplayRoi.hpp"
+
+
+class Gui_Decorator
+{
+    public:
+        Gui_Decorator(Gtk::DrawingArea* parent, Gui_ProcessorHandler& processor_hand, int& idx_point_to_show, bool& show_point, Gui_DisplayRoi& ROI);
+//        Gui_Decorator(Gtk::DrawingArea* parent, Gui_ProcessorHandler& processor_hand,Gui_DisplayRoi& ROI);
+        void decorate();
+        void setLineWidthMult(double mult){m_line_width_multip = mult;}
+        void setVectorOfCrosses (std::vector<cv::Point2f> *vec){
+            m_vector_crosses = vec;
+        };
+    protected:
+        void drawCrosses(Cairo::RefPtr<Cairo::Context> cr);
+    private:
+        Gtk::DrawingArea* m_parent;
+        Gui_ProcessorHandler& m_processor_hand;
+        int& m_idx_point_to_show;
+        bool& m_show_point;
+        Gui_DisplayRoi& m_ROI;
+        double m_line_width_multip;
+        std::vector<cv::Point2f> *m_vector_crosses;
+
+        void highlightCells(Cairo::RefPtr<Cairo::Context> cr, std::vector<int> cells, float r, float g, float b, float a, float width);
+
+
+};
+
+#endif // GUI_DECORATOR_H
diff --git a/src/gui/headers/Gui_Display.hpp b/src/gui/headers/Gui_Display.hpp
new file mode 100644
index 0000000..a0f023a
--- /dev/null
+++ b/src/gui/headers/Gui_Display.hpp
@@ -0,0 +1,150 @@
+#ifndef GUI_DISPLAY_H
+#define GUI_DISPLAY_H
+
+#include "Gui_DisplayBaseClass.hpp"
+class Gui_Display :public Gui_DisplayBaseClass
+{
+public:
+    Gui_Display(Gui_ProcessorHandler& processor_hand);
+
+    void setShowDeco(bool show,double line_width);
+    void show_this_idx(int idx);
+
+    sigc::signal<void,int,int>& signal_click_on_obj(){return m_signal_click_on_obj;}
+    void setShowMask(bool show){m_show_mask = show; queue_draw();}
+    protected:
+        bool on_click(GdkEventButton* event);
+
+
+    private:
+        sigc::signal<void,int,int> m_signal_click_on_obj;
+
+};
+
+
+class Gui_DisplayFrame : public Gtk::Frame{
+    public:
+        Gui_DisplayFrame(Gui_ProcessorHandler& processor_hand,sigc::signal<void,bool,double> signal_show_decor,sigc::signal<void,bool> signal_show_mask):
+        m_display(processor_hand){
+            DEV_INFOS("building graphical display frame");
+            this->add(m_display);
+            signal_show_decor.connect( sigc::mem_fun(this,&Gui_DisplayFrame::on_show_deco));
+            signal_show_mask.connect( sigc::mem_fun(this,&Gui_DisplayFrame::on_show_mask));
+        }
+        void on_show_deco(bool show,double line_width){
+            m_display.setShowDeco(show,line_width);
+        }
+        void on_show_mask(bool show){
+            m_display.setShowMask(show);
+        }
+        void on_show_specific_object(int idx){
+            m_display.show_this_idx(idx);
+            DEV_INFOS("asking to draw the point");
+        }
+        sigc::signal<void,int,int>& signal_click_on_obj(){
+            return m_display.signal_click_on_obj();
+            }
+    private:
+        Gui_Display m_display;
+};
+
+/*
+#include <gtkmm/drawingarea.h>
+#include <gtkmm/frame.h>
+#include "opencv2/core/core.hpp"
+#include "defines.hpp"
+#include "Result.hpp"
+#include "Gui_ProcessorHandler.hpp"
+#include "Gui_Decorator.hpp"
+#include "Gui_DisplayRoi.hpp"
+#include "Gui_MouseHandler.hpp"
+
+
+class Gui_Display : public Gtk::DrawingArea
+{
+    public:
+        Gui_Display(Gui_ProcessorHandler& processor_hand);
+        void show_this_idx(int idx){
+            if(idx <0){
+               m_show_point = false;
+            }
+            else{
+                m_show_point = true;
+                m_show_idx = idx;
+//
+                const Result& res = m_processor_hand.getNumResult();
+                res.getRow(m_show_idx);
+                cv::Point2f center((res.getRow(m_show_idx).getPoint(0) + res.getRow(m_show_idx).getPoint(2)) *0.5);
+                m_ROI.makeNewROI(center,true);
+            }
+            queue_draw();
+        }
+
+        sigc::signal<void,int,int>& signal_click_on_obj(){return m_signal_click_on_obj;}
+
+        void setShowDeco(bool show,double line_width){
+            m_deco.setLineWidthMult(line_width);
+            m_draw_result = show;
+            queue_resize();
+        }
+
+    protected:
+        void makeLUT();
+        bool on_click(GdkEventButton* event);
+        bool on_scroll(GdkEventScroll* event);
+        bool on_expose_event(GdkEventExpose* event);
+        void myRedraw(int state){
+            if(state == PROCESSOR_IDLE_SIGNAL)
+                m_draw_result = true;
+            else
+                m_draw_result = false;
+            queue_resize();
+            }
+        void redraw();
+
+    private:
+        Gui_ProcessorHandler& m_processor_hand;
+        Gui_Decorator m_deco;
+        cv::Mat m_img_to_display;
+//        cv::Mat m_mask_to_display;
+        cv::Mat m_LUT;
+        Gui_DisplayRoi m_ROI;
+        Glib::RefPtr<Gdk:: Pixbuf > m_pixbuf;
+        Glib::RefPtr<Gdk:: Pixbuf > m_mask_pixbuf;
+        Glib::RefPtr<Gdk:: Pixbuf > m_banner_pixbuf;
+        bool m_draw_result;
+        Gdk::Color m_color;
+        int m_show_idx;
+        int m_alph_mask;
+        bool m_show_point;
+        sigc::signal<void,int,int> m_signal_click_on_obj;
+//        std::string m_banner_path;
+//        sigc::signal<void,double> m_signal_change_line_width;
+        Gui_MouseHandler m_mouse_handl;
+
+};
+
+class Gui_DisplayFrame : public Gtk::Frame{
+    public:
+        Gui_DisplayFrame(Gui_ProcessorHandler& processor_hand,sigc::signal<void,bool,double> signal_show_decor):
+        m_display(processor_hand){
+            DEV_INFOS("building graphical display frame");
+            this->add(m_display);
+            signal_show_decor.connect( sigc::mem_fun(this,&Gui_DisplayFrame::on_show_deco));
+        }
+        void on_show_deco(bool show,double line_width){
+            m_display.setShowDeco(show,line_width);
+        }
+        void on_show_specific_object(int idx){
+            m_display.show_this_idx(idx);
+            DEV_INFOS("asking to draw the point");
+        }
+        sigc::signal<void,int,int>& signal_click_on_obj(){
+            return m_display.signal_click_on_obj();
+            }
+    private:
+        Gui_Display m_display;
+};
+
+*/
+#endif // GUI_DISPLAY_H
diff --git a/src/gui/headers/Gui_DisplayBaseClass.hpp b/src/gui/headers/Gui_DisplayBaseClass.hpp
new file mode 100644
index 0000000..7a56064
--- /dev/null
+++ b/src/gui/headers/Gui_DisplayBaseClass.hpp
@@ -0,0 +1,64 @@
+#ifndef GUI_DISPLAYBASECLASS_H
+#define GUI_DISPLAYBASECLASS_H
+
+
+#include <gtkmm/drawingarea.h>
+#include <gtkmm/frame.h>
+#include <gdkmm/cursor.h>
+#include "opencv2/core/core.hpp"
+#include "defines.hpp"
+#include "Result.hpp"
+#include "Gui_ProcessorHandler.hpp"
+#include "Gui_Decorator.hpp"
+#include "Gui_DisplayRoi.hpp"
+#include "Gui_PixbufOpener.hpp"
+
+class Gui_DisplayBaseClass : public Gtk::DrawingArea
+{
+    public:
+        Gui_DisplayBaseClass(Gui_ProcessorHandler& processor_hand);
+
+    protected:
+        void on_realize();
+        void drawBackground();
+        void makeLUT();
+        virtual bool on_click(GdkEventButton* event)=0;
+        bool on_scroll(GdkEventScroll* event);
+        bool on_expose_event(GdkEventExpose* event);
+        void myRedraw(int state);
+        void redraw();
+        virtual bool getMask(cv::Mat& tmp_img){
+
+            if(m_processor_hand.getMaskAsRGB(tmp_img))
+                return true;
+            else
+                return false;
+
+        }
+
+
+        Gui_ProcessorHandler& m_processor_hand;
+        Gui_Decorator m_deco;
+        cv::Mat m_img_to_display;
+
+        cv::Mat m_LUT;
+        Gui_DisplayRoi m_ROI;
+        Glib::RefPtr<Gdk:: Pixbuf > m_pixbuf;
+        Glib::RefPtr<Gdk:: Pixbuf > m_mask_pixbuf;
+        Glib::RefPtr<Gdk:: Pixbuf > m_banner_pixbuf;
+        Glib::RefPtr<Gdk:: Pixbuf > m_background;
+        bool m_draw_result;
+        Gdk::Color m_color;
+
+        int m_alph_mask;
+        std::string m_banner_path;
+
+        int m_show_idx;
+        bool m_show_point;
+        bool m_show_mask;
+        Gdk::Cursor m_cursor;
+        Glib::RefPtr <Gdk::Window> m_ref_window;
+
+};
+
+#endif // GUI_DISPLAY_H
diff --git a/src/gui/headers/Gui_DisplayRoi.hpp b/src/gui/headers/Gui_DisplayRoi.hpp
new file mode 100644
index 0000000..ae556a3
--- /dev/null
+++ b/src/gui/headers/Gui_DisplayRoi.hpp
@@ -0,0 +1,58 @@
+#ifndef GUI_DISPLAYROI_H
+#define GUI_DISPLAYROI_H
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+#include <gtkmm/widget.h>
+#include "defines.hpp"
+
+class Gui_DisplayRoi: public cv::Rect
+{
+    public:
+        Gui_DisplayRoi(cv::Point pt1, cv::Point pt2) : cv::Rect(pt1,pt2),m_zoom(1), m_zoom_incr(1.2){}
+        void reallocateSize(Gtk::Allocation alloc);
+        cv::Point2f scaleToFitAllocation(const cv::Mat& src, cv::Mat& dst,bool interp_nearest = false);
+        cv::Point2f scaleToFitAllocation(const Glib::RefPtr<Gdk:: Pixbuf >& src, Glib::RefPtr<Gdk:: Pixbuf>& dst);
+        bool newROIFromScroll(cv::Point2f xy_pb,int direc);
+        void makeNewROI(const cv::Point2f center,bool put_in_center);
+        void update(cv::Point2f raw_dim){
+            m_raw_dim = raw_dim;
+            if(this->br().x > m_raw_dim.x || this->br().y > m_raw_dim.y)
+                m_zoom = 1;
+            if(m_zoom == 1){
+                x = 0;
+                y = 0;
+                width = m_raw_dim.x;
+                height = m_raw_dim.y;
+                }
+        }
+        void getABForDeco(cv::Point2f& a,cv::Point2f& b){
+            b = CoordPbToROI(CoordROIToRaw(cv::Point2f(0,0),true),m_pixbuf_wh,true);
+            a = CoordPbToROI(CoordROIToRaw(m_raw_dim,true),m_pixbuf_wh,true) - b;
+            a.x /= m_raw_dim.x;
+            a.y /= m_raw_dim.y;
+        }
+        cv::Point2f pbToRaw(cv::Point2f p){
+            return CoordROIToRaw(CoordPbToROI(p,m_pixbuf_wh,false),false);
+        }
+        cv::Point2f getPixbufDim(){
+            return m_pixbuf_wh;
+        }
+    protected:
+
+        float calcScale(const cv::Point2f img_wh, const cv::Point2f pb_wh);
+        cv::Point2f calcOffset(float scale_ratio, const cv::Point2f img_wh, const cv::Point2f pb_wh);
+
+        cv::Point2f CoordPbToROI(const cv::Point2f xy,const cv::Point2f pb_wh,const  bool revers);
+        cv::Point2f CoordROIToRaw(const cv::Point2f xy,const  bool revers);
+
+
+    private:
+        cv::Point2f m_pixbuf_wh;
+        float m_zoom;
+        float m_zoom_incr;
+        cv::Point2f m_raw_dim;
+
+
+};
+
+#endif // GUI_DISPLAYROI_H
diff --git a/src/gui/headers/Gui_HelloWindow.hpp b/src/gui/headers/Gui_HelloWindow.hpp
new file mode 100644
index 0000000..aa41a86
--- /dev/null
+++ b/src/gui/headers/Gui_HelloWindow.hpp
@@ -0,0 +1,62 @@
+#ifndef GUI_HELLOWINDOW_H
+#define GUI_HELLOWINDOW_H
+
+#include "defines.hpp"
+#include "text.hpp"
+#include <gtkmm/stock.h>
+#include <gtkmm/window.h>
+#include <gtkmm/box.h>
+#include <gtkmm/label.h>
+#include <gtkmm/separator.h>
+#include <gtkmm/checkbutton.h>
+#include <gtkmm/button.h>
+#include <gtkmm/linkbutton.h>
+#include <gtkmm/image.h>
+
+
+#if defined _WIN64 || defined _WIN32
+#include <windows.h>
+#endif
+
+class PortableLinkButton: public Gtk::LinkButton
+{
+    public:
+    PortableLinkButton(const Glib::ustring& a,const Glib::ustring& b):
+        Gtk::LinkButton(a,b){}
+#if defined _WIN64 || defined _WIN32
+    protected:
+
+            void on_pressed(){
+                ShellExecute(NULL, "open", this->get_uri().c_str(), NULL, NULL, SW_SHOWNORMAL);
+                set_visited();
+            }
+
+#endif
+};
+
+class Gui_HelloWindow: public Gtk::Window
+{
+    public:
+        Gui_HelloWindow(int& hello_level);
+
+    protected:
+        void on_realize();
+//        bool on_delete_event(GdkEventAny* event);
+        void on_check_but();
+        bool on_key_press_event(GdkEventKey* event);
+
+    private:
+        int& m_hello_level;
+        Gtk::HBox m_hbox0,m_hbox1;
+        Gtk::VBox m_vbox0, m_vbox1;
+        Gtk::Label m_text;
+        PortableLinkButton m_website_blink,m_paper_blink, m_email_blink;
+        Gtk::Image m_ocfu_image;
+        Gtk::CheckButton m_hide_next_time;
+        Gtk::Button m_button_OK;
+        Gtk::HSeparator m_hsep;
+
+
+};
+
+#endif // GUI_HELLOWINDOW_H
diff --git a/src/gui/headers/Gui_ImgFileSetter.hpp b/src/gui/headers/Gui_ImgFileSetter.hpp
new file mode 100644
index 0000000..59a3875
--- /dev/null
+++ b/src/gui/headers/Gui_ImgFileSetter.hpp
@@ -0,0 +1,148 @@
+#ifndef GUI_IMGFILESETTER_H
+#define GUI_IMGFILESETTER_H
+
+#include "Gui_OptionSetterBaseClass.hpp"
+#include "text.hpp"
+#include <sstream>
+#include <gtkmm/box.h>
+#include <gtkmm/button.h>
+#include <gtkmm/label.h>
+#include <gtkmm/filechooserdialog.h>
+#include <gtkmm/messagedialog.h>
+#include <gtkmm/stock.h>
+#include <glibmm/miscutils.h>
+#include "defines.hpp"
+#include <giomm/file.h>
+#include "Gui_ConfigIO.hpp"
+
+class Updatable{
+    public:
+        Updatable(std::vector<Glib::RefPtr<Gio::File> >& files,unsigned int& current_file_idx):
+        m_files(files),
+        m_current_file_idx(current_file_idx)
+        {}
+
+    virtual void update() = 0;
+    protected:
+        std::vector<Glib::RefPtr<Gio::File> >& m_files;
+        unsigned int& m_current_file_idx;
+
+};
+
+class InfoLabel: public Updatable, public Gtk::Label{
+    public:
+        InfoLabel(std::vector<Glib::RefPtr<Gio::File> >& files,
+           unsigned int& current_file_idx):
+           Updatable(files,current_file_idx),
+           m_no_img_txt(NO_FILE_LABEL){
+           set_line_wrap();
+//           set_line_wrap_mode(Pango::WRAP_WORD_CHAR );
+           }
+
+        void update(){
+            std::stringstream ss;
+            if(m_files.size()==0){
+                ss<<m_no_img_txt;
+            }
+
+            else{
+                ss  << "Image"
+                    <<m_current_file_idx+1
+                    <<"/"
+                    <<m_files.size()
+                    <<" ("
+                    <<(m_files[m_current_file_idx])->get_basename()
+                    <<")";
+            }
+
+            this->set_text(ss.str());
+        }
+
+    private:
+        const std::string m_no_img_txt;
+};
+
+
+class FileBrowsingButton: public Updatable, public Gtk::Button{
+    public:
+        FileBrowsingButton(std::vector<Glib::RefPtr<Gio::File> >& files,
+           unsigned int& current_file_idx, std::string str, int score):
+           Updatable(files,current_file_idx), Gtk::Button(str), m_score(score){
+
+               set_has_tooltip();
+               switch(score){
+                case -2:
+                    set_tooltip_text(TOOLTIP_IMG_SETTER_FIRST);
+                    break;
+                case -1:
+                    set_tooltip_text(TOOLTIP_IMG_SETTER_PREVIOUS);
+                    break;
+                case 1:
+                    set_tooltip_text(TOOLTIP_IMG_SETTER_NEXT);
+                    break;
+                case 2:
+                    set_tooltip_text(TOOLTIP_IMG_SETTER_LAST);
+                    break;
+
+               }
+           }
+
+        int getScore(){return m_score;}
+        void update(){
+            if(m_score < 0){
+                if(m_current_file_idx == 0 || m_files.size() == 0 ){
+                    this->set_sensitive(false);
+                }
+                else
+                    this->set_sensitive();
+            }
+
+            else{
+                if((m_current_file_idx == m_files.size() - 1) || m_files.size() == 0)
+                    this->set_sensitive(false);
+                else
+                    this->set_sensitive();
+            }
+        }
+    private:
+        const int m_score;
+
+};
+
+class Gui_ImgFileSetter : public Gui_OptionSetterBaseClass{
+    public:
+        Gui_ImgFileSetter(Gui_ProcessorHandler& processor_hand,const std::string str, Gui_ConfigIO& config);
+        void updateNFiles(int i){}
+        sigc::signal<void,int> signal_publish_N_files(){ return m_signal_publish_N_files;}
+        virtual ~Gui_ImgFileSetter();
+    protected:
+        bool updateOptions();
+        void on_AddFileClicked();
+        bool appendOrOverWrite(std::vector<std::string>&  selected_files);
+        sigc::signal<void,int> signal_change_file(){ return m_signal_change_file;}
+        void on_ChangeFile(int idx_mod);
+        void updateAllWidgets();
+        void recieveDragAndDrop(std::vector<std::string> strg);
+        void publishNFiles(){ m_signal_publish_N_files.emit(m_files.size());}
+        void on_realize();
+
+//        void checkFiles( std::vector<Glib::RefPtr<Gio::File> >& files);
+        void checkCorruptedFiles( std::vector<Glib::RefPtr<Gio::File> >& files);
+        void checkRedondantFiles( std::vector<Glib::RefPtr<Gio::File> >& files);
+    private:
+        sigc::signal<void,int> m_signal_change_file;
+        sigc::signal<void,int> m_signal_publish_N_files;
+        Gtk::HBox m_hbox_butts;
+        Gtk::Button m_add_file_button;
+        std::vector<FileBrowsingButton*> m_file_buttons;
+        const int m_button_scores[4];
+        const std::string m_button_text[4];
+        std::vector<Glib::RefPtr<Gio::File> > m_files;
+        Glib::RefPtr<Gio::File> m_current_file;
+        std::string& m_last_dir;
+        unsigned int m_current_file_idx;
+        Gtk::FileFilter m_img_filter,m_no_filter;
+        InfoLabel m_label;
+};
+
+#endif // GUI_IMGFILESETTER_H
diff --git a/src/gui/headers/Gui_LikFiltSelector.hpp b/src/gui/headers/Gui_LikFiltSelector.hpp
new file mode 100644
index 0000000..c880bfd
--- /dev/null
+++ b/src/gui/headers/Gui_LikFiltSelector.hpp
@@ -0,0 +1,36 @@
+#ifndef GUI_LIKFILTSELECTOR_H
+#define GUI_LIKFILTSELECTOR_H
+
+#include "Gui_OptionSetterBaseClass.hpp"
+#include <gtkmm/box.h>
+#include <gtkmm/label.h>
+#include <gtkmm/spinbutton.h>
+#include "defines.hpp"
+#include "text.hpp"
+
+class Gui_LikFiltSelector: public Gui_OptionSetterBaseClass
+{
+    public:
+        Gui_LikFiltSelector(Gui_ProcessorHandler& processor_hand,const std::string str);
+        void updateNFiles(int i);
+    protected:
+        bool updateOptions();
+
+        void on_realize(){
+            this->on_tick_box();
+            Gui_OptionSetterBaseClass::on_realize();}
+
+        void on_tick_box(){ m_check_butt.get_active() ?  m_hbox2.show() : m_hbox2.hide(); }
+
+        void on_activate_filter(){
+            this->on_tick_box();
+            this->setOption();}
+    private:
+        Gtk::HBox m_hbox2;
+        Gtk::Adjustment m_adjust_thr;
+        Gtk::SpinButton m_spin_butt_thr;
+        Gtk::CheckButton m_check_butt;
+        Gtk::Label m_lab_thr;
+};
+
+#endif // GUI_LIKFILTSELECTOR_H
diff --git a/src/gui/headers/Gui_MaskSetter.hpp b/src/gui/headers/Gui_MaskSetter.hpp
new file mode 100644
index 0000000..9be4bfc
--- /dev/null
+++ b/src/gui/headers/Gui_MaskSetter.hpp
@@ -0,0 +1,202 @@
+#ifndef GUI_MASKSETTER_H
+#define GUI_MASKSETTER_H
+
+#include "defines.hpp"
+#include "Gui_OptionSetterBaseClass.hpp"
+#include "Gui_DisplayBaseClass.hpp"
+#include "text.hpp"
+#include <gtkmm/box.h>
+#include <gtkmm/button.h>
+#include <gtkmm/label.h>
+#include <gtkmm/filechooserdialog.h>
+#include <gtkmm/messagedialog.h>
+#include <gtkmm/stock.h>
+#include <glibmm/miscutils.h>
+#include <giomm/file.h>
+#include "MaskROI.hpp"
+#include <gtkmm/comboboxtext.h>
+
+
+
+
+class MyComboboxText : public Gtk::ComboBoxText{
+    public:
+        MyComboboxText():Gtk::ComboBoxText(),m_last_idx(0),m_revert_switch(false){
+
+        }
+
+        int getLastIxd(){return m_last_idx;}
+
+        void revert(){
+            if(get_active() != m_last_idx)
+               set_active(m_last_idx);
+        }
+        void append(int ID, const std::string& str){
+            m_data_map[str] = ID;
+            append_text(str);
+        }
+    int getState(){return m_data_map[get_active_text()];}
+    sigc::signal<bool,int> signal_select_type(){return m_signal_select_type;}
+    sigc::signal<void,int> signal_change_state(){return m_signal_change_state;}
+    protected:
+        void on_changed(){
+                int state = getState();
+                if(!m_revert_switch){
+                    if(m_signal_select_type.emit(state)){
+                        m_last_idx = get_active_row_number();
+                        DEV_INFOS(m_last_idx);
+                        m_signal_change_state.emit(state);
+                        Gtk::ComboBoxText::on_changed();
+                    }
+                    else{
+                        m_revert_switch = true;
+                        set_active(m_last_idx);
+
+                    }
+                }
+                else{
+                    m_revert_switch = false;
+                }
+        }
+
+    void on_realize(){
+        m_revert_switch = true;
+        set_active(0);
+        Gtk::ComboBoxText::on_realize();
+    }
+
+    private:
+        sigc::signal<bool,int> m_signal_select_type;
+        sigc::signal<void,int> m_signal_change_state;
+        std::map<std::string,int> m_data_map;
+        int m_last_idx;
+        bool m_revert_switch;
+};
+
+
+
+class Gui_MaskSetter : public Gui_OptionSetterBaseClass{
+    public:
+        Gui_MaskSetter(Gui_ProcessorHandler& processor_hand,const std::string str);
+        void updateNFiles(int i);
+        sigc::signal<void,bool> signal_show_mask(){return m_signal_show_mask;}
+    protected:
+        bool updateOptions();
+        bool on_AddFileClicked();
+        bool drawMask();
+        bool checkFile(const Glib::RefPtr<Gio::File>& file);
+        bool on_combo_changed(int state);
+        void on_update_hbox(int state);
+        void on_remake_mask();
+        void on_show_mask(){m_signal_show_mask.emit(m_check_butt.get_active());}
+    private:
+        Gtk::HBox m_hbox;
+        Glib::RefPtr<Gio::File> m_file;
+        std::string m_last_dir;
+        Gtk::FileFilter m_img_filter, m_no_filter;
+        MyComboboxText m_combo;
+        Gtk::Button m_remake_button;
+        Gtk::Label m_from_file_label;
+        MaskROI m_mask;
+        Gtk::CheckButton m_check_butt;
+        sigc::signal<void,bool> m_signal_show_mask;
+};
+
+
+class Mask_Display : public Gui_DisplayBaseClass
+{
+public:
+    Mask_Display(Gui_ProcessorHandler& processor_hand):
+        Gui_DisplayBaseClass(processor_hand)
+        {
+        m_cursor = Gdk::Cursor(Gdk::PENCIL);
+        myRedraw(PROCESSOR_IDLE_SIGNAL);
+        m_deco.setVectorOfCrosses(&m_points);
+
+    Glib::RefPtr< Gdk::Screen > screen = Gdk::Screen::get_default();
+    Gdk::Rectangle rect;
+    screen->get_monitor_geometry(screen->get_primary_monitor(),rect);
+    set_size_request(rect.get_width()*0.7,rect.get_height()*0.7);
+
+    };
+    void setMaskPtr(MaskROI* mask){m_mask = mask;}
+    void forceRedraw(){queue_draw();}
+    void emptyPoints(){m_points.resize(0);queue_draw();}
+    const std::vector<cv::Point2f>& getPoints(){return m_points;}
+    sigc::signal<void>& signal_click_on_obj(){return m_signal_click_on_obj;}
+
+    protected:
+        bool on_click(GdkEventButton* event){
+            if(event->button <3){
+               cv::Point2f p = m_ROI.pbToRaw(cv::Point2f(event->x,event->y));
+               m_points.push_back(p);
+               DEV_INFOS((int)m_draw_result);
+            }
+            else{
+                if (!m_points.empty())
+                    m_points.pop_back();
+            }
+            queue_draw();
+            m_signal_click_on_obj.emit();
+            return true;
+            }
+            bool getMask(cv::Mat& tmp_img){
+                DEV_INFOS("GEtTING MASK");
+
+                m_processor_hand.getSourceImgAsRGB(tmp_img);
+                m_mask->update(tmp_img);
+                const cv::Mat&  mask_img = m_mask->getMat();
+                DEV_INFOS("GEtTING MASK2");
+                if(mask_img.empty()){
+                    DEV_INFOS("empty mask");
+                    return false;
+                }
+                else{
+                    DEV_INFOS("ok mask");
+                    cv::cvtColor(mask_img,tmp_img,CV_GRAY2RGB);
+                    DEV_INFOS("RGB mask");
+                    return true;
+                }
+            }
+
+    private:
+        std::vector<cv::Point2f> m_points;
+        sigc::signal<void> m_signal_click_on_obj;
+        MaskROI* m_mask;
+};
+
+
+class DrawMaskDial: public Gtk::Dialog
+{
+    public:
+        DrawMaskDial(Gui_ProcessorHandler& processor_hand, MaskROI& mask);
+        const MaskROI& getMask()const {return  m_mask;}
+    protected:
+        void on_change_tool();
+        void on_points_changed();
+        void lockROI();
+        void on_new_shape();
+        void on_remove_shape();
+        void updateButtons();
+    private:
+        Gui_ProcessorHandler& m_processor_hand;
+        Gtk::RadioButton m_rb_circle, m_rb_conv_polyg;
+        Gtk::Button m_plus, m_minus;
+        Gtk::RadioButton::Group group;
+        Mask_Display display;
+        int m_tool;
+
+        Gtk::HBox m_hbox;
+        Gtk::HBox m_hbox2;
+        Gtk::VBox m_vbox2;
+        Gtk::Label m_text;
+        std::vector< std::pair<std::vector<cv::Point2f>,int > > m_points;
+        std::vector<cv::Point2f> m_pts;
+        MaskROI m_mask;
+        Gtk::Frame m_frame;
+
+
+};
+
+
+#endif // GUI_MASKSETTER_H
diff --git a/src/gui/headers/Gui_MouseHandler.hpp b/src/gui/headers/Gui_MouseHandler.hpp
new file mode 100644
index 0000000..1c92fdb
--- /dev/null
+++ b/src/gui/headers/Gui_MouseHandler.hpp
@@ -0,0 +1,13 @@
+#ifndef GUI_MOUSEHANDLER_H
+#define GUI_MOUSEHANDLER_H
+
+
+class Gui_MouseHandler
+{
+    public:
+        Gui_MouseHandler();
+    protected:
+    private:
+};
+
+#endif // GUI_MOUSEHANDLER_H
diff --git a/src/gui/headers/Gui_MyApplication.hpp b/src/gui/headers/Gui_MyApplication.hpp
new file mode 100644
index 0000000..6638b75
--- /dev/null
+++ b/src/gui/headers/Gui_MyApplication.hpp
@@ -0,0 +1,32 @@
+#ifndef GUI_MYAPPLICATION_H
+#define GUI_MYAPPLICATION_H
+//
+
+#include <gtkmm.h>
+#include <gtkmm/main.h>
+#include "Gui_ConfigIO.hpp"
+#include "Processor.hpp"
+#include "defines.hpp"
+#include "Gui_MyWindow.hpp"
+#include "Gui_ProcessorHandler.hpp"
+#include "Gui_HelloWindow.hpp"
+//
+
+
+class Gui_MyApplication: public Gtk::Main
+{
+    public:
+        Gui_MyApplication(int argc,char** argv,Processor& pro);
+//
+    private:
+        Processor& m_processor;
+        ProcessingOptions m_opts;
+        Gui_ProcessorHandler m_pro_hand;
+        Gui_ConfigIO m_config;
+        std::vector<Glib::RefPtr<Gdk::Pixbuf> > m_icon_list;
+
+
+
+};
+
+#endif // GUI_MYAPPLICATION_H
diff --git a/src/gui/headers/Gui_MyWindow.hpp b/src/gui/headers/Gui_MyWindow.hpp
new file mode 100644
index 0000000..30561f2
--- /dev/null
+++ b/src/gui/headers/Gui_MyWindow.hpp
@@ -0,0 +1,57 @@
+#ifndef GUI_MYWINDOW_H
+#define GUI_MYWINDOW_H
+
+#include "defines.hpp"
+
+#include <gtkmm/window.h>
+#include <gtkmm/paned.h>
+#include <gdkmm/cursor.h>
+#include <gdkmm/window.h>
+#include <sigc++/sigc++.h>
+
+#include "Gui_ResultFrame.hpp"
+
+#include "Gui_ControlPanel.hpp"
+#include "Gui_OptionSetterBaseClass.hpp"
+#include "Processor.hpp"
+#include "ProcessingOptions.hpp"
+#include "Gui_ProcessorHandler.hpp"
+#include "Gui_Display.hpp"
+#include "Gui_ConfigIO.hpp"
+
+
+
+class Gui_MyWindow: public Gtk::Window
+{
+    public:
+        Gui_MyWindow(Gui_ProcessorHandler& processor_hand, Gui_ConfigIO& config);
+        sigc::signal<void, std::vector<std::string> > signal_drag_and_drop(){
+            return m_signal_drag_and_drop;
+        }
+
+    protected:
+        void changeCursor(int state);
+        void on_dropped_file(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time);
+        void on_realize();
+        bool on_delete_event(GdkEventAny* event);
+    private:
+        Gui_ProcessorHandler& m_processor_hand;
+        Gui_ControlPanel m_controlPanel;
+        Gui_DisplayFrame m_draw_frame;
+        Gui_ResultFrame m_result_frame;
+
+
+        ResultMap m_result_map;
+
+        Gtk::HBox m_hbox;
+        Gtk::VPaned m_v_paned;
+        sigc::signal<void, std::vector<std::string> > m_signal_drag_and_drop;
+        Glib::RefPtr <Gdk::Window> m_ref_window;
+        Gdk::Cursor m_Cursor_wait;
+        Gdk::Cursor m_Cursor_basic;
+
+
+
+};
+
+#endif // GUI_MYWINDOW_H
diff --git a/src/gui/headers/Gui_OptionSetterBaseClass.hpp b/src/gui/headers/Gui_OptionSetterBaseClass.hpp
new file mode 100644
index 0000000..5e0272b
--- /dev/null
+++ b/src/gui/headers/Gui_OptionSetterBaseClass.hpp
@@ -0,0 +1,42 @@
+#ifndef GUI_OPTIONSETTERBASECLASS_H
+#define GUI_OPTIONSETTERBASECLASS_H
+
+#include <gtkmm/box.h>
+#include <gtkmm/frame.h>
+#include <gtkmm/bin.h>
+//#include <gtkmm/separator.h>
+#include <gtkmm/label.h>
+#include <sigc++/sigc++.h>
+#include "ProcessingOptions.hpp"
+#include "Gui_ProcessorHandler.hpp"
+
+
+class Gui_OptionSetterBaseClass: public Gtk::Frame
+{
+    public:
+        Gui_OptionSetterBaseClass(Gui_ProcessorHandler& processor_hand,const std::string name);
+
+
+
+        bool setOption();
+        virtual void updateNFiles(int i) = 0;
+        virtual ~Gui_OptionSetterBaseClass();
+    protected:
+        bool lockMutexAndUpdate();
+        void on_realize(){updateOptions();Gtk::Frame::on_realize();}
+        virtual bool updateOptions() = 0;
+        Gtk::VBox m_vbox;
+        Gui_ProcessorHandler& m_processor_hand;
+        ProcessingOptions& m_opts;
+        sigc::signal<bool> m_signal_change_options;
+//    private:
+
+
+
+
+
+
+};
+
+
+#endif // GUI_OPTIONSETTERBASECLASS_H
diff --git a/src/gui/headers/Gui_PixbufOpener.hpp b/src/gui/headers/Gui_PixbufOpener.hpp
new file mode 100644
index 0000000..70d0ef2
--- /dev/null
+++ b/src/gui/headers/Gui_PixbufOpener.hpp
@@ -0,0 +1,14 @@
+#ifndef GUI_PIXBUFOPENER_H
+#define GUI_PIXBUFOPENER_H
+
+#include <gtkmm/drawingarea.h>
+#include "defines.hpp"
+#include "Result.hpp"
+class Gui_PixbufOpener
+{
+    public:
+        static Glib::RefPtr<Gdk:: Pixbuf > pixbufOpen(const std::string& name);
+    private:
+};
+
+#endif // GUI_PIXBUFOPENER_H
diff --git a/src/gui/headers/Gui_ProcessorHandler.hpp b/src/gui/headers/Gui_ProcessorHandler.hpp
new file mode 100644
index 0000000..875d993
--- /dev/null
+++ b/src/gui/headers/Gui_ProcessorHandler.hpp
@@ -0,0 +1,91 @@
+#ifndef GUI_PROCESSORHANDLER_H
+#define GUI_PROCESSORHANDLER_H
+
+#include "defines.hpp"
+
+#include <glibmm/dispatcher.h>
+#include <glibmm/timer.h>
+#include <atomic>
+#include <memory>
+#include <sigc++/sigc++.h>
+#include "Result.hpp"
+#include "Processor.hpp"
+#include "defines.hpp"
+
+#include <glibmm/thread.h>
+
+class Gui_ProcessorHandler
+{
+    public:
+        Gui_ProcessorHandler(Processor& processor,ProcessingOptions& opts);
+        ~Gui_ProcessorHandler();
+
+
+        void onRunProcess();
+        Glib::Mutex& getMutex(){return m_mutex;}
+
+        sigc::signal<void, int> signal_state(){ return m_signal_state;}
+
+    std::shared_ptr<cv::Mat>& getGUIFilter(){return m_filter;}
+
+    bool getSourceImgAsRGB(cv::Mat& out){
+        DEV_INFOS("getting RGB");
+        Glib::Mutex::Lock lock (m_mutex);
+        if (m_opts.getImage().empty()){
+            DEV_INFOS("getting RGB : empty");
+            return false;
+        }
+        else{
+            DEV_INFOS("getting RGB : OK");
+            cv::cvtColor(m_opts.getImage(),out,CV_BGR2RGB);
+            return true;
+        }
+    }
+
+    bool getMaskAsRGB(cv::Mat& out){
+        Glib::Mutex::Lock lock (m_mutex);
+        cv::Mat mat = m_opts.getMask().getMat();
+
+        if (mat.empty()){
+            return false;
+        }
+        else{
+            cv::cvtColor(mat,out,CV_GRAY2RGB);
+            return true;
+        }
+    }
+
+    const Result& getNumResult() {
+
+            Glib::Mutex::Lock lock (m_mutex_result);
+            return m_result;
+        }
+
+        ProcessingOptions& getOptions(){
+            return m_opts;
+        }
+
+    protected:
+        void runProcessOnThread();
+        void tryResetFilter();
+    private:
+        Glib::Mutex m_mutex;
+        Glib::Mutex m_mutex_result;
+
+        Processor& m_processor;
+        Glib::Thread* m_thread;
+        Glib::Dispatcher m_dispa_working;
+        Glib::Dispatcher m_dispa_idle;
+        ProcessingOptions& m_opts;
+        Result m_result;
+
+        sigc::signal<void, int> m_signal_state;
+
+        std::vector<std::vector<float> > m_processing_result;
+        std::atomic<bool> m_to_process;
+        std::atomic<bool> m_end_process;
+
+        std::shared_ptr<cv::Mat> m_filter;
+};
+#endif // GUI_PROCESSORHANDLER_H
+
diff --git a/src/gui/headers/Gui_RadiusSetter.hpp b/src/gui/headers/Gui_RadiusSetter.hpp
new file mode 100644
index 0000000..26bd542
--- /dev/null
+++ b/src/gui/headers/Gui_RadiusSetter.hpp
@@ -0,0 +1,38 @@
+#ifndef GUI_RADIUSSETTER_H
+#define GUI_RADIUSSETTER_H
+
+
+#include "Gui_OptionSetterBaseClass.hpp"
+#include <gtkmm/box.h>
+#include <gtkmm/label.h>
+#include <gtkmm/spinbutton.h>
+#include "defines.hpp"
+#include "text.hpp"
+
+
+class Gui_RadiusSetter:public Gui_OptionSetterBaseClass
+{
+    public:
+        Gui_RadiusSetter(Gui_ProcessorHandler& processor_hand,const std::string str);
+        void updateNFiles(int i);
+    protected:
+        bool updateOptions();
+        void on_MinRadChanged(){
+                int val_min = m_spin_butt_min.get_value();
+                int val_max = m_spin_butt_max.get_value();
+                if(val_min > val_max)
+                    m_spin_butt_max.set_value(val_min);
+                else
+                    this->setOption();
+        }
+    private:
+        Gtk::HBox m_hbox2;
+        Gtk::Adjustment m_adjust_min,m_adjust_max;
+        Gtk::SpinButton m_spin_butt_min, m_spin_butt_max;
+        Gtk::CheckButton m_check_butt;
+        Gtk::Label m_lab_min, m_lab_max;
+};
+
+
+
+#endif // GUI_RADIUSSETTER_H
diff --git a/src/gui/headers/Gui_ResultDetails.hpp b/src/gui/headers/Gui_ResultDetails.hpp
new file mode 100644
index 0000000..ea84832
--- /dev/null
+++ b/src/gui/headers/Gui_ResultDetails.hpp
@@ -0,0 +1,107 @@
+#ifndef GUI_RESULTDETAILS_H
+#define GUI_RESULTDETAILS_H
+
+#include <pangomm/attributes.h>
+#include <gtkmm/button.h>
+#include <gtkmm/box.h>
+#include "Gui_ResultDisplayBaseClass.hpp"
+#include "text.hpp"
+
+
+typedef Gtk::TreeModel::Children    type_children;
+
+class Gui_ResultDetails : public Gui_ResultDisplayBaseClass{
+    public:
+        Gui_ResultDetails(  sigc::signal<void,Glib::RefPtr<Gio::File>,int>& signal_update_result_map,
+                            sigc::signal<void,int>& signal_select_object,
+                            sigc::signal<void,int,bool>& signal_toggle_object,
+                            ResultMap& result_map);
+
+        void set_selection(int i){
+            if(i >=0){
+                type_children::iterator chil = findWichRow(m_ref_tree_model->children(),i);
+                m_ref_tree_selection->select(chil);
+                m_tree_view.scroll_to_row(Gtk::TreePath(chil));
+
+            }
+            else
+                on_unselect();
+
+       }
+
+    protected:
+        void on_cell_toggled(const Glib::ustring& path){
+            Gtk::TreeModel::iterator iter = m_ref_tree_model->get_iter (path);
+            if (iter)
+                (*iter)[m_col_model.m_valid] = !(*iter)[m_col_model.m_valid];
+
+            m_signal_toggle_object.emit((*iter)[m_col_model.m_id],(*iter)[m_col_model.m_valid]);
+
+            DEV_INFOS("cell toggled");
+            }
+        void updateView(Glib::RefPtr<Gio::File> file, int idx);
+
+        type_children::iterator findWichRow(type_children children,int idx);
+
+        void on_selection_changed(){
+            Gtk::TreeModel::iterator iter = m_ref_tree_selection->get_selected();
+            if(iter){
+                  Gtk::TreeModel::Row row = *iter;
+                  m_signal_select_object.emit(row[m_col_model.m_id]);
+                }
+        }
+
+        void on_unselect(){
+            m_ref_tree_selection->unselect_all();
+            m_signal_select_object.emit(-1);
+        }
+
+        class ModelColumns : public Gtk::TreeModel::ColumnRecord{
+            public:
+                ModelColumns()
+                {
+                add(m_id);
+                add(m_valid);
+                add(m_x);
+                add(m_y);
+                add(m_roi);
+                add(m_area);
+                add(m_radius);
+                add(m_R);
+                add(m_G);
+                add(m_B);
+                add(m_Hue);
+                add(m_Sat);
+                add(m_NinClust);
+                add(m_cluster_id); //NJL 13/AUG/2014
+                }
+
+                Gtk::TreeModelColumn<int> m_id;
+                Gtk::TreeModelColumn<bool> m_valid;
+                Gtk::TreeModelColumn<int> m_x;
+                Gtk::TreeModelColumn<int> m_y;
+                Gtk::TreeModelColumn<int> m_roi;
+                Gtk::TreeModelColumn<int> m_area;
+                Gtk::TreeModelColumn<int> m_radius;
+                Gtk::TreeModelColumn<int> m_R;
+                Gtk::TreeModelColumn<int> m_G;
+                Gtk::TreeModelColumn<int> m_B;
+                Gtk::TreeModelColumn<int> m_Hue;
+                Gtk::TreeModelColumn<int> m_Sat;
+                Gtk::TreeModelColumn<int> m_NinClust;
+                Gtk::TreeModelColumn<std::string> m_cluster_id; //NJL 13/AUG/2014
+
+        };
+
+       ModelColumns m_col_model;
+       void setOneRow(Gtk::TreeModel::Row& row, const OneObjectRow& oor, const unsigned int i);
+
+
+    private:
+        Glib::RefPtr<Gtk::ListStore> m_ref_tree_model;
+        sigc::signal<void,int>& m_signal_select_object;
+        sigc::signal<void,int,bool>& m_signal_toggle_object;
+        Glib::RefPtr<Gio::File> m_old_file;
+        Gtk::Button m_unselect;
+};
+#endif // GUI_RESULTDETAILS_H
diff --git a/src/gui/headers/Gui_ResultDisplayBaseClass.hpp b/src/gui/headers/Gui_ResultDisplayBaseClass.hpp
new file mode 100644
index 0000000..e97baa4
--- /dev/null
+++ b/src/gui/headers/Gui_ResultDisplayBaseClass.hpp
@@ -0,0 +1,40 @@
+#ifndef GUI_RESULTDISPLAYBASECLASS_H
+#define GUI_RESULTDISPLAYBASECLASS_H
+
+//
+
+#include <giomm/file.h>
+#include <gtkmm/treeview.h>
+#include <gtkmm/treemodel.h>
+#include <gtkmm/liststore.h>
+#include <gtkmm/box.h>
+#include <gtkmm/frame.h>
+#include <gtkmm/scrolledwindow.h>
+#include "Gui_ProcessorHandler.hpp"
+#include "ResultMap.hpp"
+
+class Gui_ResultDisplayBaseClass : public Gtk::Frame
+{
+    public:
+        Gui_ResultDisplayBaseClass(sigc::signal<void,Glib::RefPtr<Gio::File>,int>& signal_update_result_map, ResultMap& result_map);
+        virtual ~Gui_ResultDisplayBaseClass();
+
+    protected:
+        void on_realize();
+        void on_update_view(Glib::RefPtr<Gio::File> file, int idx){this->updateView(file,idx);}
+        virtual void updateView(Glib::RefPtr<Gio::File> str, int idx) = 0;
+
+        sigc::signal<void,Glib::RefPtr<Gio::File>,int>& m_signal_update_result_map;
+        ResultMap& m_result_map;
+        Gtk::TreeModel::ColumnRecord m_col_model;
+        Gtk::TreeView m_tree_view;
+
+        class ModelColumnsBaseClass : public Gtk::TreeModel::ColumnRecord{};
+        Glib::RefPtr<Gtk::TreeSelection> m_ref_tree_selection;
+        Gtk::ScrolledWindow m_scrolled_window;
+        Gtk::VBox m_vbox;
+        Gtk::Label m_label;
+        Gtk::HBox m_hbox;
+};
+
+#endif // GUI_RESULTDISPLAYBASECLASS_H
diff --git a/src/gui/headers/Gui_ResultFileWriter.hpp b/src/gui/headers/Gui_ResultFileWriter.hpp
new file mode 100644
index 0000000..997a31d
--- /dev/null
+++ b/src/gui/headers/Gui_ResultFileWriter.hpp
@@ -0,0 +1,81 @@
+#ifndef GUI_RESULTFILEWRITER_H
+#define GUI_RESULTFILEWRITER_H
+#include "ResultMap.hpp"
+#include "text.hpp"
+#include <sstream>
+#include <giomm/file.h>
+#include <gtkmm/dialog.h>
+#include <gtkmm/stock.h>
+#include <gtkmm/messagedialog.h>
+#include <gtkmm/filechooserdialog.h>
+
+
+class SaveFileChooser : public Gtk::FileChooserDialog{
+    public:
+        SaveFileChooser(std::string last_uri):
+            Gtk::FileChooserDialog(SAVE_FILE_TITLE, Gtk:: FILE_CHOOSER_ACTION_SAVE){
+                DEV_INFOS(last_uri);
+                if(!last_uri.empty())
+                    set_uri(last_uri);
+                else
+                    set_uri(Glib::build_filename("file://" ,Glib::get_home_dir()));
+
+
+                set_select_multiple(false);
+                set_do_overwrite_confirmation(true);
+                this->set_create_folders(true);
+                this->add_button(Gtk::Stock::OK,Gtk::RESPONSE_OK);
+                this->add_button(Gtk::Stock::CANCEL,Gtk::RESPONSE_CANCEL);
+                this->set_current_name("my_results.csv");
+
+                Gtk::FileFilter filter, no_filter;
+
+                filter.set_name("CSV Files");
+                filter.add_mime_type("text/csv");
+                filter.add_pattern("*.csv");
+                no_filter.set_name("Any files");
+                no_filter.add_pattern("*");
+
+                this->add_filter(filter);
+                this->add_filter(no_filter);
+                }
+};
+
+
+class NoSelectionMessage : public Gtk::MessageDialog{
+    public:
+        NoSelectionMessage():
+            Gtk::MessageDialog(NO_SELECTION_MESSAGE,true, Gtk::MESSAGE_ERROR,Gtk::BUTTONS_OK){}
+};
+
+class SaveModeMessage : public Gtk::MessageDialog{
+    public:
+        SaveModeMessage():
+            Gtk::MessageDialog(SAVE_MODE_MESSAGE,true, Gtk::MESSAGE_QUESTION,Gtk::BUTTONS_NONE){
+            this->add_button("Summary",Gtk::RESPONSE_ACCEPT);
+            this->add_button("Detailled",Gtk::RESPONSE_OK);
+            this->add_button(Gtk::Stock::CANCEL,Gtk::RESPONSE_CANCEL);
+        }
+};
+
+
+class Gui_ResultFileWriter
+{
+    public:
+        Gui_ResultFileWriter(Gtk::Widget* parent);
+        bool saveSelection(const ResultMap& res_map, const std::vector<int>& idxs);
+        void setInUpToDate(bool up_to_date){m_up_to_date = up_to_date;}
+        bool getInUpToDate(){return m_up_to_date;}
+    protected:
+         void writeHeader(const bool detail,const ResultMap& res_map, const std::vector<int>& idxs);
+         void writeRows(const bool detail,const ResultMap& res_map,const std::vector<int>& idxs);
+
+    private:
+        Gtk::Widget* m_parent_widg;
+        bool m_up_to_date;
+
+        Glib::RefPtr<Gio::File> m_out_file;
+
+};
+
+#endif // GUI_RESULTFILEWRITER_H
diff --git a/src/gui/headers/Gui_ResultFrame.hpp b/src/gui/headers/Gui_ResultFrame.hpp
new file mode 100644
index 0000000..14f8221
--- /dev/null
+++ b/src/gui/headers/Gui_ResultFrame.hpp
@@ -0,0 +1,45 @@
+#ifndef GUI_RESULTFRAME_H
+#define GUI_RESULTFRAME_H
+
+
+#include "defines.hpp"
+#include <sigc++/sigc++.h>
+#include <gtkmm/paned.h>
+#include "ResultMap.hpp"
+#include "Gui_ProcessorHandler.hpp"
+#include "Gui_ResultListDisplay.hpp"
+#include "Gui_ResultDetails.hpp"
+#include "Gui_UserFilterSetter.hpp"
+
+class Gui_ResultFrame : public Gtk::HPaned
+{
+    public:
+        Gui_ResultFrame(Gui_ProcessorHandler& processor_hand, sigc::signal<void,bool>& signal_set_to_NA, ResultMap& result_map);
+        sigc::signal<void,int>& signal_object_selected(){
+            return m_signal_select_object;}
+
+        void on_click_object(int i,int but);
+        bool isAllSaved(){return m_result_display.isAllSaved();}
+
+        ResultMap& getResultMap(){
+            DEV_INFOS("getting result map from result frame");
+            return m_result_map;}
+
+    protected:
+        void on_processor_idle(int state);
+        void on_set_current_to_NA(bool NA);
+        void on_realize();
+    private:
+        ResultMap& m_result_map;
+        Gui_ProcessorHandler& m_processor_hand;
+        Gui_ResultListDisplay m_result_display;
+        Gui_ResultDetails m_result_detail;
+        Gui_UserFilterSetter m_user_filter;
+
+        sigc::signal<void,Glib::RefPtr<Gio::File>,int> m_signal_update_result_map;
+        sigc::signal<void,int> m_signal_select_object;
+        sigc::signal<void,int,bool> m_signal_toggle_object;
+};
+
+
+#endif // GUI_RESULTFRAME_H
diff --git a/src/gui/headers/Gui_ResultLabel.hpp b/src/gui/headers/Gui_ResultLabel.hpp
new file mode 100644
index 0000000..328ad96
--- /dev/null
+++ b/src/gui/headers/Gui_ResultLabel.hpp
@@ -0,0 +1,57 @@
+#ifndef GUI_RESULTLABEL_H
+#define GUI_RESULTLABEL_H
+
+#include <gtkmm/frame.h>
+#include <gtkmm/box.h>
+#include <gtkmm/separator.h>
+#include <gtkmm/label.h>
+#include <gtkmm/progressbar.h>
+#include <gtkmm/checkbutton.h>
+#include <gtkmm/spinbutton.h>
+#include <giomm/file.h>
+#include <sstream>
+#include "text.hpp"
+#include "Result.hpp"
+#include "Gui_ProcessorHandler.hpp"
+#include "ResultMap.hpp"
+
+class Gui_ResultLabel: public Gtk::Frame
+{
+    public:
+        Gui_ResultLabel(Gui_ProcessorHandler& processor_hand,ResultMap& result_map );
+        void updateNFiles(int i);
+        void updateLabel();
+        sigc::signal<void,bool>& signal_set_to_NA(){
+            return m_signal_set_to_NA;}
+        sigc::signal<void,bool,double>& signal_show_decorator(){
+            return m_signal_hide_show_decor;}
+
+    protected:
+        void on_processorHandSignal(int state);
+        bool on_pulse();
+        void on_show_deco();
+        void on_set_NA();
+
+
+    private:
+        Gui_ProcessorHandler& m_processor_hand;
+        Gtk::VBox m_vbox;
+        Gtk::HBox m_hbox, m_hbox2;
+        Gtk::HSeparator m_vsep;
+        Gtk::Label m_lab_text;
+        Gtk::Label m_lab_res;
+        Gtk::Label m_lab_line_width;
+        Gtk::ProgressBar m_progress_bar;
+        Gtk::CheckButton m_check_butt_show_object;
+        Gtk::CheckButton m_check_butt_NA;
+        int m_state;
+        sigc::signal<void,bool,double> m_signal_hide_show_decor;
+        sigc::signal<void,bool > m_signal_set_to_NA;
+        Gtk::Adjustment m_adjust_line_width;
+        Gtk::SpinButton m_spin_butt_line_width;
+        bool m_is_result_NA;
+        Glib::RefPtr<Gio::File> m_last_file;
+        ResultMap& m_result_map;
+};
+
+#endif // GUI_RESULTLABEL_H
diff --git a/src/gui/headers/Gui_ResultListDisplay.hpp b/src/gui/headers/Gui_ResultListDisplay.hpp
new file mode 100644
index 0000000..0a1d1f0
--- /dev/null
+++ b/src/gui/headers/Gui_ResultListDisplay.hpp
@@ -0,0 +1,74 @@
+#ifndef GUI_RESULTLISTDISPLAY_H
+#define GUI_RESULTLISTDISPLAY_H
+
+#include <sstream>
+#include <pangomm/attributes.h>
+#include <gtkmm/button.h>
+#include <gtkmm/box.h>
+#include <gtkmm/treestore.h>
+#include "Gui_ResultDisplayBaseClass.hpp"
+#include "Gui_ResultFileWriter.hpp"
+#include "text.hpp"
+
+
+
+
+typedef Gtk::TreeModel::Children    type_children;
+
+class Gui_ResultListDisplay : public Gui_ResultDisplayBaseClass{
+    public:
+        Gui_ResultListDisplay(sigc::signal<void,Glib::RefPtr<Gio::File>,int>& signal_update_result_map, ResultMap& result_map);
+        bool isAllSaved(){return m_file_writer.getInUpToDate();}
+
+    protected:
+        type_children::iterator findWichRow(Gtk::TreeModel::Children& children, int idx);
+        void on_save_all();
+        void on_save();
+        void on_delete();
+        void on_edit_comment(const Glib::ustring& path, const Glib::ustring& text);
+        void makeIndecesOfSelected(const Gtk::TreeModel::iterator& ite){
+            m_indeces_of_selected.push_back((*ite)[m_col_model.m_col_id]);
+        }
+        void updateView(Glib::RefPtr<Gio::File> file, int idx);
+        int getDepthFromPath(const Glib::ustring& path);
+
+        class ModelColumns : public Gtk::TreeModel::ColumnRecord{
+            public:
+                ModelColumns()
+                { add(m_col_id);
+//
+                add(m_col_n_objects);
+                add(m_col_n_excluded);
+                add(m_comment);
+                add(m_col_path);
+                add(m_col_name);
+/**
+                add(m_col_clust1);
+                add(m_col_clust2);
+                add(m_col_clust3);
+*/
+                }
+
+                Gtk::TreeModelColumn<int> m_col_id;
+                Gtk::TreeModelColumn<std::string > m_col_n_objects;
+                Gtk::TreeModelColumn<std::string> m_col_n_excluded;
+                Gtk::TreeModelColumn<Glib::ustring> m_comment;
+                Gtk::TreeModelColumn<std::string> m_col_path;
+                Gtk::TreeModelColumn<std::string> m_col_name;
+/**             Gtk::TreeModelColumn<std::string> m_col_clust1;
+                Gtk::TreeModelColumn<std::string> m_col_clust2;
+                Gtk::TreeModelColumn<std::string> m_col_clust3;*/
+        };
+       ModelColumns m_col_model;
+    private:
+        Glib::RefPtr<Gtk::TreeStore> m_ref_tree_model;
+        Gtk::Button m_save_selected;
+        Gtk::Button m_save_all;
+        Gtk::Button m_delete_selected;
+        std::vector<int> m_indeces_of_selected;
+        Gui_ResultFileWriter m_file_writer;
+};
+
+
+
+#endif // GUI_RESULTLISTDISPLAY_H
diff --git a/src/gui/headers/Gui_ThresholdSetter.hpp b/src/gui/headers/Gui_ThresholdSetter.hpp
new file mode 100644
index 0000000..a12a79d
--- /dev/null
+++ b/src/gui/headers/Gui_ThresholdSetter.hpp
@@ -0,0 +1,30 @@
+#ifndef GUI_THRESHOLDSETTER_H
+#define GUI_THRESHOLDSETTER_H
+
+#include "defines.hpp"
+#include "Gui_OptionSetterBaseClass.hpp"
+#include <gtkmm/box.h>
+#include <gtkmm/label.h>
+#include <gtkmm/spinbutton.h>
+#include <gtkmm/comboboxtext.h>
+#include "text.hpp"
+
+
+class Gui_ThresholdSetter:public Gui_OptionSetterBaseClass
+{
+    public:
+        Gui_ThresholdSetter(Gui_ProcessorHandler& processor_hand,const std::string str);
+        void updateNFiles(int i);
+    protected:
+        bool updateOptions();
+    private:
+        Gtk::HBox m_hbox2;
+        Gtk::Adjustment m_adjust;
+        Gtk::SpinButton m_spin_butt;
+        Gtk::CheckButton m_check_butt;
+        Gtk::ComboBoxText m_combo;
+        std::map<std::string,int> m_combo_map;
+//        bool dummy_variable;
+};
+
+#endif // GUI_THRESHOLDSETTER_H
diff --git a/src/gui/headers/Gui_UserFilterSetter.hpp b/src/gui/headers/Gui_UserFilterSetter.hpp
new file mode 100644
index 0000000..5fed836
--- /dev/null
+++ b/src/gui/headers/Gui_UserFilterSetter.hpp
@@ -0,0 +1,23 @@
+#ifndef GUI_USERFILTERSETTER_H
+#define GUI_USERFILTERSETTER_H
+
+#include "defines.hpp"
+#include <memory>
+#include "Gui_OptionSetterBaseClass.hpp"
+
+class Gui_UserFilterSetter : public Gui_OptionSetterBaseClass
+{
+    public:
+        Gui_UserFilterSetter(Gui_ProcessorHandler& processor_hand);
+        void on_click_object(int obj, int but);
+        void on_toggle_object(int obj, bool t);
+    protected:
+        bool updateOptions();
+        void updateNFiles(int i){};
+    private:
+        int m_idx_to_switch;
+        std::shared_ptr<cv::Mat> m_filter;
+
+};
+
+#endif // GUI_USERFILTERSETTER_H
diff --git a/src/gui/headers/ResultMap.hpp b/src/gui/headers/ResultMap.hpp
new file mode 100644
index 0000000..223bb6f
--- /dev/null
+++ b/src/gui/headers/ResultMap.hpp
@@ -0,0 +1,87 @@
+#ifndef RESULTMAP_H
+#define RESULTMAP_H
+
+
+#include <giomm/file.h>
+#include <unordered_map>
+#include "Result.hpp"
+
+
+class functorHash{
+    public:
+      int operator() (const Glib::RefPtr<Gio::File> file) const{
+            return file->hash();
+          }
+};
+
+class functorEqual{
+    public:
+        bool operator() (const Glib::RefPtr<Gio::File> file1,const Glib::RefPtr<Gio::File> file2) const{
+            return file1->equal(file2);
+        }
+};
+
+class ResultMap{
+    public:
+        ResultMap(){};
+
+        int append(const  Glib::RefPtr<Gio::File> file, const Result& res);
+        int setFileToNA(const  Glib::RefPtr<Gio::File> file,bool NA){
+            std::unordered_map <Glib::RefPtr<Gio::File>,int,functorHash,functorEqual>::iterator ite
+             = m_idx_from_file.find(file);
+            if(ite != m_idx_from_file.end()){
+               int where = ite->second;
+               std::get<1>(m_results[where]) = NA;
+               return where;
+            }
+            else{
+                DEV_INFOS("WARNING: this file is not in the result MAP");
+                return 0;
+            }
+
+        }
+        bool getIsFileNA(const  Glib::RefPtr<Gio::File> file){
+            std::unordered_map <Glib::RefPtr<Gio::File>,int,functorHash,functorEqual>::iterator ite
+             = m_idx_from_file.find(file);
+            if(ite != m_idx_from_file.end())
+               return std::get<1>(m_results[ite->second]);
+            else
+                return false;
+
+        }
+        bool getIsNAAt(const int idx) const{
+            return std::get<1>(m_results[idx]);
+        }
+
+        void setCommentAt(int idx, const Glib::ustring& comment){
+            std::get<2>(m_results[idx]) = comment;
+        }
+
+       const Glib::ustring& getCommentAt(const int idx) const{
+            return std::get<2>(m_results[idx]);
+        }
+
+        const Result& getResultAt(const int idx) const{
+            return std::get<0>(m_results[idx]);
+        }
+
+        const Glib::RefPtr<Gio::File> getFileFromIdx(const int idx)const {
+            Glib::RefPtr<Gio::File> f = m_reverse_map.find(idx)->second;
+            return f;
+        }
+        void deleteAt(const int idx){
+            Glib::RefPtr<Gio::File> f = m_reverse_map.find(idx)->second;
+            m_idx_from_file.erase(f);
+            m_results.erase(m_results.begin() + idx);
+            m_reverse_map.erase(idx);
+
+        }
+
+    private:
+        std::vector <std::tuple<Result,bool,Glib::ustring> > m_results;
+        std::unordered_map < Glib::RefPtr<Gio::File>,int,functorHash,functorEqual> m_idx_from_file;
+        std::unordered_map < int,Glib::RefPtr<Gio::File> > m_reverse_map;
+};
+
+
+#endif // RESULTMAP_H
diff --git a/src/gui/headers/text.hpp b/src/gui/headers/text.hpp
new file mode 100644
index 0000000..27a0257
--- /dev/null
+++ b/src/gui/headers/text.hpp
@@ -0,0 +1,162 @@
+#ifndef MYTEXT_H
+#define MYTEXT_H
+
+
+#define PLOS_URL "http:\x2f/www.plosone.org/article/info\%3Adoi\%2F10.1371\%2Fjournal.pone.0054072"
+
+#define ABOUT_TEXT "Thank you for using OpenCFU. Consider citing the PLoS ONE publication if you use OpenCFU in your academic work :)."
+
+#define SHOW_HELLO_NEXT_TIME "Show this message next time"
+#define VISIT_WEBSITE "Visit OpenCFU's Website"
+#define READ_PUBLICATION "Read the publication on PLoS ONE"
+#define REPORT_BUGS "opencfu at gmail.com"
+#define INTRO_TEXT_1 "<big>Thank you for using OpenCFU ("
+
+#define INTRO_TEXT_2 "\
+)! <b>This is a beta version</b>. \
+It is likely to have a few bugs. \
+Please, feel free to request features and \
+report any problems you would experience.</big>"
+
+
+#define NO_SAVE_WARNING_MAIN "<big><b><i>Do you really want to quit?</i></b></big>"
+#define NO_SAVE_WARNING_SECOND "<big>It looks like <i>some results have not been saved!</i> \
+Do you want to quit OpenCFU anyway?</big>"
+
+#define ADD_FILE_BUTTON_TEXT "Add files"
+#define APPEND_OR_OVERWRITE_MESSAGE "What are we doing with those new files?"
+
+#define FILE_REMOVED " file(s) was/were not added."
+
+#define FILE_CORRUPTED_SECONDARY "The file(s) appear to be corrupted or inexistent. Please send a bug-repport if not."
+#define FILE_REDONDANT_SECONDARY "The file(s) selected are already in the file list"
+#define NO_FILES "None of the files added are valid"
+
+
+#define NO_FILE_LABEL "No files yet"
+#define APPEND_OR_OVERWRITE_MESSAGE2 "\
+\"Overwrite\" will replace your list \
+of files with the selected files whilst\"Append\" will only add \
+them in the end of your current list."
+
+
+#define NAME_IMAGE_FILE_SETTER "<b><i>Files:</i></b>"
+#define NAME_THR_SETTER "<b><i>Threshold:</i></b>"
+#define NAME_RAD_SETTER "<b><i>Radius:</i></b>"
+#define NAME_MASK_SETTER "<b><i>ROIs and Mask:</i></b>"
+#define NAME_COL_SELECT "<b><i>Colour filter:</i></b>"
+#define NAME_LIK_SELECT "<b><i>Auto outlier filter:</i></b>"
+//NJL 10/AUG/2014
+#define NAME_COL_CLUSTER "<b><i>Group similar colours:</i></b>"
+
+#define LABEL_CHECKBUTTON_MAX_RAD "Auto-Max"
+#define LABEL_CHECKBUTTON_AUTO_THR "Auto"
+#define LABEL_MIN_RAD "Min\t"
+#define LABEL_MAX_RAD "Max\t"
+
+#define LABEL_CHECKBUTTON_HAS_HUE_FILT "Use colour filter"
+#define LABEL_HUE "Hue:\t"
+#define LABEL_HUE_CENT "Mean\t"
+#define LABEL_HUE_TOL "Tol\t"
+#define LABEL_SATUR "Saturation:\t"
+#define LABEL_SATUR_MIN "Min\t"
+#define LABEL_SATUR_MAX "Max\t"
+
+#define LABEL_CHECKBUTTON_HAS_LIK_FILT "Use outlier filter"
+#define LABEL_THR "Threshold"
+
+
+#define LABEL_SET_DECO_LINE_WIDTH "Line width"
+
+#define RESULT_LABEL_BUSY "<span size=\"x-large\"><b><i>Processing:</i> \\/\\<sub>\\/\\/ </sub></b></span>"
+#define RESULT_LABEL_IDLE "<span font_size=\"x-large\"><b><i>Result:</i></b></span>"
+
+#define RESULT_DETAIL_TITLE "<b><i>Per object</i></b>"
+#define RESULT_LIST_TITLE "<b><i>Per image</i></b>"
+#define RESULT_LIST_CHECKBUTTON "Show objects"
+
+
+#define NO_SELECTION_MESSAGE "<b>No files were selected.</b> Impossible to write a file with no results."
+#define SAVE_MODE_MESSAGE "<b>What kind of output do you want?</b>"
+
+
+#define SAVE_FILE_TITLE "Save Results"
+
+#define TEXT_DELETE_SELECTED_RESULT "Delete selection"
+#define TEXT_SAVE_ALL_RESULT "Save all"
+#define TEXT_SAVE_SELECTED_RESULT "Save selection"
+
+
+
+#define DRAW_MASK_TEXT "\
+<big>You can draw one or several Regions Of Interest \
+by clicking on the image. Whith \"Three point circle\" \
+ROI means you will define circular areas by clicking on \
+any three point of their circumference. For more informations \
+about ROIs, you will find video tutorial on the website.</big>"
+
+
+#define THREE_POINT_CIRCLE_TOOL "Three points circle"
+#define CONVEX_POLYGON_TOOL "Convex polygon"
+
+
+//NJL 10/AUG/2014 Colour Clustering
+#define LABEL_CHECKBUTTON_HAS_CLUSTERING_DISTANCE "Recognise similar colours"
+#define LABEL_CLUSTERING "Coarseness:"
+
+/*==================TOOLTIPS==================*/
+
+#define TOOLTIP_COLOUR_SELECTOR "Select objects by colour (Hue and Saturation)"
+#define TOOLTIP_COLOUR_SELECTOR_HUE "\
+The \"Mean\" Hue defines the average colour\n\
+your objects should have whilst \"Tol\", defines\n\
+the tolerance around the mean."
+
+#define TOOLTIP_COLOUR_SELECTOR_SAT "\
+The colour saturation can be any integer value between 0 and 255.\
+"
+
+
+#define TOOLTIP_IMG_SETTER "Use this tool to\nadd and browse images"
+#define TOOLTIP_IMG_SETTER_FIRST "Go to first image"
+#define TOOLTIP_IMG_SETTER_PREVIOUS "Go to previous image"
+#define TOOLTIP_IMG_SETTER_NEXT "Go to next image"
+#define TOOLTIP_IMG_SETTER_LAST "Go to last image"
+
+
+
+#define TOOLTIP_LIK_FILT "Automatically detect outliers\n\
+and exclude them.\n\
+The small values of threshold\n\
+will exclude more objects."
+
+
+#define TOOLTIP_RAD_SETTER "Set the range of size of the objects to look for"
+
+#define TOOLTIP_RESULT_LIST_DET "Investigate and object by clicking.\n\
+Click on the \"Valid\" checkbox to exclude/include objects"
+
+#define TOOLTIP_RESULT_LAB "Result: [Valid objects]/[All objects]"
+#define TOOLTIP_RESULT_LAB_NA "Set the current result as NA"
+#define TOOLTIP_RESULT_LAB_DECO "Hide/show rectangles aurount detected objects"
+#define TOOLTIP_RESULT_LAB_LINE_WIDTH "Increase/decrease the size of the\n\
+annotations on the image"
+
+#define TOOLTIP_RESULT_LIST_SIMPL "See and save results"
+
+
+
+#define TOOLTIP_THR_SETTER "The higher is the threshold, the more stringent will be analysis"
+
+#define TOOLTIP_MASK_SETTER "To define one or several regions of interest"
+#define TOOLTIP_MASK_SETTER_SHOW "Hide/show the ROIs on the image"
+#define TOOLTIP_MASK_SETTER_REFRESH "Redraw current mask"
+
+//NJL 10/AUG/2014 Colour Clustering
+#define TOOLTIP_CLUSTERING "Use a density based algorithm to identify like coloured colonies"
+#define TOOLTIP_CLUSTERING_DISTANCE_SELECTOR "\
+The \"Coarseness\" defines the maximum difference\n\
+between colours grouped as similar. A coarseness\n\
+of 2.3 corresponds to a just notable difference"
+
+#endif
diff --git a/src/gui/src/Gui_ColourCluster.cpp b/src/gui/src/Gui_ColourCluster.cpp
new file mode 100644
index 0000000..6fecb1c
--- /dev/null
+++ b/src/gui/src/Gui_ColourCluster.cpp
@@ -0,0 +1,53 @@
+#include "Gui_ColourCluster.hpp"
+
+/**
+Class to implement Colour Clustering GUI interface
+Written 10/AUG/2014
+*/
+Gui_ColourCluster::Gui_ColourCluster(Gui_ProcessorHandler& processor_hand,const std::string str):
+    Gui_OptionSetterBaseClass(processor_hand,str),
+    m_adjust_clustering_distance(m_processor_hand.getOptions().getClustDist(),0.1,50.0,0.1,1.0,0.0),
+    m_spin_butt_clustering_distance(m_adjust_clustering_distance, 0.0, 1),
+    m_check_butt(LABEL_CHECKBUTTON_HAS_CLUSTERING_DISTANCE),
+    m_lab_clustering_distance(LABEL_CLUSTERING)
+
+{
+    set_tooltip_text(TOOLTIP_CLUSTERING);
+    m_hbox.set_tooltip_text(TOOLTIP_CLUSTERING_DISTANCE_SELECTOR);
+
+    //GUI Layout
+    m_vbox.pack_start(m_check_butt);
+    m_vbox.pack_start(m_hbox);
+    m_hbox.pack_start(m_lab_clustering_distance);
+    m_hbox.pack_start(m_spin_butt_clustering_distance);
+
+    //Signal interaction
+    m_spin_butt_clustering_distance.signal_value_changed().connect( sigc::hide_return(sigc::mem_fun(*this,&Gui_ColourCluster::setOption)));
+    m_check_butt.signal_toggled().connect(sigc::mem_fun(*this,&Gui_ColourCluster::on_activate_filter));
+}
+
+
+
+bool Gui_ColourCluster::updateOptions(){
+    DEV_INFOS("Trying to send a processing option");
+    float val_clust_dist = m_spin_butt_clustering_distance.get_value();
+
+    bool has_clust_dist = m_check_butt.get_active();
+    m_opts.setHasClustDist(has_clust_dist);
+
+    if(has_clust_dist){
+        bool success = m_opts.setClustDist(val_clust_dist);
+        return success;
+    }
+    else
+        return true;
+}
+
+
+void Gui_ColourCluster::updateNFiles(int i){
+    if(i == 0)
+        this->hide_all();
+    else
+        this->show_all();
+    on_tick_box();
+}
diff --git a/src/gui/src/Gui_ColourSelector.cpp b/src/gui/src/Gui_ColourSelector.cpp
new file mode 100644
index 0000000..ba0d43a
--- /dev/null
+++ b/src/gui/src/Gui_ColourSelector.cpp
@@ -0,0 +1,89 @@
+#include "Gui_ColourSelector.hpp"
+
+Gui_ColourSelector::Gui_ColourSelector(Gui_ProcessorHandler& processor_hand,const std::string str):
+    Gui_OptionSetterBaseClass(processor_hand,str),
+    m_adjust_hue_center(m_processor_hand.getOptions().getCenTolHue().first, 0.0, 358, 2.0, 10.0, 0.0),
+    m_adjust_hue_tol(m_processor_hand.getOptions().getCenTolHue().second, 0.0, 180, 1.0, 10.0, 0.0),
+    m_adjust_sat_min(m_processor_hand.getOptions().getMinMaxSat().first, 0.0, 255, 1.0, 10.0, 0.0),
+    m_adjust_sat_max(m_processor_hand.getOptions().getMinMaxSat().second, 0.0, 255, 1.0, 10.0, 0.0),
+    m_spin_butt_hue_center(m_adjust_hue_center),
+    m_spin_butt_hue_tol(m_adjust_hue_tol),
+    m_spin_butt_sat_min(m_adjust_sat_min),
+    m_spin_butt_sat_max(m_adjust_sat_max),
+    m_check_butt(LABEL_CHECKBUTTON_HAS_HUE_FILT),
+    m_lab_hue(LABEL_HUE),
+    m_lab_center(LABEL_HUE_CENT),
+    m_lab_tol(LABEL_HUE_TOL),
+    m_lab_sat(LABEL_SATUR),
+    m_lab_sat_min(LABEL_SATUR_MIN),
+    m_lab_sat_max(LABEL_SATUR_MAX)
+{
+    set_tooltip_text(TOOLTIP_COLOUR_SELECTOR);
+    m_hbox21.set_tooltip_text(TOOLTIP_COLOUR_SELECTOR_HUE);
+    m_hbox22.set_tooltip_text(TOOLTIP_COLOUR_SELECTOR_SAT);
+
+
+    m_vbox.pack_start(m_check_butt);
+    m_vbox.pack_start(m_hbox2);
+    m_hbox2.pack_start(m_col_wheel,true,true);
+    m_hbox2.pack_start(m_vbox2,false,false);
+    m_vbox2.pack_start(m_hbox21,false,false);
+
+    m_hbox21.pack_start(m_lab_hue,false,false);
+    m_hbox21.pack_start(m_spin_butt_hue_center,false,false);
+    m_hbox21.pack_start(m_lab_center,false,false);
+    m_hbox21.pack_start(m_spin_butt_hue_tol,false,false);
+    m_hbox21.pack_start(m_lab_tol,false,false);
+
+    m_vbox2.pack_start(m_hbox22);
+
+    m_hbox22.pack_start(m_lab_sat);
+    m_hbox22.pack_start(m_spin_butt_sat_min);
+    m_hbox22.pack_start(m_lab_sat_min);
+    m_hbox22.pack_start(m_spin_butt_sat_max);
+    m_hbox22.pack_start(m_lab_sat_max);
+    m_spin_butt_hue_center.set_wrap(true);
+
+    m_spin_butt_hue_center.signal_value_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_ColourSelector::setOption)));
+    m_spin_butt_hue_tol.signal_value_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_ColourSelector::setOption)));
+    m_spin_butt_sat_min.signal_value_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_ColourSelector::on_MinSatChanged)));
+    m_spin_butt_sat_max.signal_value_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_ColourSelector::setOption)));
+    m_check_butt.signal_toggled().connect(sigc::mem_fun(*this,&Gui_ColourSelector::on_activate_filter));
+
+}
+
+
+
+bool Gui_ColourSelector::updateOptions(){
+    DEV_INFOS("Trying to send a processing option");
+    int val_cent = m_spin_butt_hue_center.get_value();
+    int val_tol = m_spin_butt_hue_tol.get_value();
+
+    int val_min = m_spin_butt_sat_min.get_value();
+    int val_max = m_spin_butt_sat_max.get_value();
+
+    if(val_min > val_max){
+        m_spin_butt_sat_max.set_value(val_min);
+        val_max = val_min;
+    }
+
+    bool has_hue = m_check_butt.get_active();
+    m_opts.setHasHueFilt(has_hue);
+    if(has_hue){
+        bool success = m_opts.setCenTolHue(std::pair<int,int>(val_cent,val_tol));
+        success = success && m_opts.setMinMaxSat(std::pair<int,int>(val_min,val_max));
+        m_col_wheel.setParams(val_cent,val_tol,val_min,val_max);
+        return success;
+    }
+    else
+        return true;
+}
+
+
+void Gui_ColourSelector::updateNFiles(int i){
+    if(i == 0)
+        this->hide_all();
+    else
+        this->show_all();
+    on_tick_box();
+}
diff --git a/src/gui/src/Gui_ColourWheel.cpp b/src/gui/src/Gui_ColourWheel.cpp
new file mode 100644
index 0000000..c6687b0
--- /dev/null
+++ b/src/gui/src/Gui_ColourWheel.cpp
@@ -0,0 +1,88 @@
+#include "Gui_ColourWheel.hpp"
+
+Gui_ColourWheel::Gui_ColourWheel(){
+    Glib::RefPtr< Gdk::Screen > screen = Gdk::Screen::get_default();
+    Gdk::Rectangle rect;
+    screen->get_monitor_geometry(screen->get_primary_monitor(),rect);
+    set_size_request(rect.get_width()/32,rect.get_height()/32);
+    m_pixbuf = Gdk::Pixbuf::create(Gdk::COLORSPACE_RGB,true,8,1,1);
+}
+
+
+bool Gui_ColourWheel::on_expose_event(GdkEventExpose* event){
+    this->redraw();
+    return true;
+}
+
+void Gui_ColourWheel::setParams(int mean_hue, int tol_hue, int min_sat, int max_sat){
+    m_centr_hue = mean_hue;
+    m_tol_hue = tol_hue;
+    m_min_sat = min_sat;
+    m_max_sat = max_sat;
+    queue_draw();
+}
+
+void Gui_ColourWheel::redraw(){
+    Gtk::Allocation allocation = this->get_allocation();
+    const float pixbuf_w = allocation.get_width();
+    const float pixbuf_h = allocation.get_height();
+    int siz = std::min(pixbuf_w,pixbuf_h);
+    m_img_to_display = cv::Mat(siz*2+1,siz*2+1,CV_8UC3,cv::Scalar(128,128,128));
+    cv::cvtColor(m_img_to_display,m_img_to_display,CV_BGR2HLS);
+
+    std::vector<cv::Mat> chanels;
+    cv::split(m_img_to_display, chanels);
+
+    int h = m_img_to_display.rows;
+    int w = m_img_to_display.cols;
+
+    for( int i = 0; i < h; i++ ){
+        for( int j = 0; j < w; j++ ){
+
+            int mean_hue = std::atan2((h/2)-i , (w/2)-j) * 180/MY_PI;
+            if (mean_hue < 0 )
+                mean_hue = (180 + mean_hue) +180 ;
+
+            int val =((h/2) - i) *((h/2) - i) + ((w/2) - j) *((w/2) - j);
+            val = std::sqrt(val);
+            val = val*255/(h/2);
+
+            chanels[0].at<uchar>(i, j) = mean_hue/2;
+            chanels[2].at<uchar>(i, j) = (uchar) val;
+
+            float aa = (float) mean_hue *  MY_PI /180;
+            float bb = (float) m_centr_hue *  MY_PI /180;
+
+            int diff = abs(atan2(sin(aa-bb), cos(aa-bb)) * 180 / MY_PI);
+            if(val < m_min_sat || val > m_max_sat || diff > m_tol_hue){
+                chanels[1].at<uchar>(i, j) = 0;
+                chanels[2].at<uchar>(i, j) = 0;
+            }
+
+        }
+    }
+
+    cv::merge(chanels,m_img_to_display);
+    cv::cvtColor(m_img_to_display,m_img_to_display,CV_HLS2BGR);
+//    cv::GaussianBlur(m_img_to_display,m_img_to_display,cv::Size(3,3),1.5);
+    cv::resize(m_img_to_display,m_img_to_display,cv::Size(siz,siz),0,0,cv::INTER_NEAREST);
+    cv::cvtColor(m_img_to_display,m_img_to_display,CV_BGR2RGB);
+
+    h = m_img_to_display.rows;
+    w = m_img_to_display.cols;
+    if(pixbuf_w != m_pixbuf->get_width() || pixbuf_h != m_pixbuf->get_height() )
+        m_pixbuf = Gdk::Pixbuf::create(Gdk::COLORSPACE_RGB,true,8,pixbuf_w,pixbuf_h);
+    m_pixbuf->fill(0x00000000);
+
+    Glib::RefPtr<Gdk:: Pixbuf > tmp_buf= Gdk::Pixbuf::create_from_data(
+                                            (guint8*)m_img_to_display.data,Gdk::COLORSPACE_RGB,false,
+                                            8,w,h,m_img_to_display.step);
+
+    tmp_buf = tmp_buf->add_alpha(true,0,0,0);
+    tmp_buf->composite 	( 	m_pixbuf,0,0,
+        w,h,0,0,1,1,Gdk::INTERP_NEAREST,255);
+
+    m_pixbuf->render_to_drawable(get_window(), get_style()->get_black_gc(),0, 0,
+                                  0, 0, m_pixbuf->get_width(),m_pixbuf->get_height(),Gdk::RGB_DITHER_NONE, 0, 0);
+
+}
diff --git a/src/gui/src/Gui_ConfigIO.cpp b/src/gui/src/Gui_ConfigIO.cpp
new file mode 100644
index 0000000..dd525ba
--- /dev/null
+++ b/src/gui/src/Gui_ConfigIO.cpp
@@ -0,0 +1,136 @@
+#include "Gui_ConfigIO.hpp"
+#include <glibmm.h>
+
+
+
+Gui_ConfigIO::Gui_ConfigIO(ProcessingOptions& opts):
+m_hello_lev(0),
+m_opts(opts)
+{
+    readConfig();
+}
+
+Gui_ConfigIO::~Gui_ConfigIO(){
+    makeNewConfig();
+}
+void Gui_ConfigIO::makeNewConfig(){
+
+    m_key_file.set_integer("GUI","hello_level",m_hello_lev);
+    m_key_file.set_string("GUI","last_wd", m_last_working_dir);
+    m_key_file.set_boolean("Processing","Has_auto-threshold",m_opts.getHasAutoThr());
+    m_key_file.set_boolean("Processing","Has_max-radius",m_opts.getHasMaxRad());
+    m_key_file.set_boolean("Processing","Has_hue-filter",m_opts.getHasHueFilt());
+    m_key_file.set_boolean("Processing","Has_outlier-filter",m_opts.getHasOutlierFilt());
+
+    m_key_file.set_integer("Processing","Threshold",m_opts.getThr());
+    m_key_file.set_integer("Processing","Threshold-mode",m_opts.getThrMode());
+
+    m_key_file.set_integer("Processing","Min-rad",m_opts.getMinMaxRad().first);
+    m_key_file.set_integer("Processing","Max-rad",m_opts.getMinMaxRad().second);
+
+    m_key_file.set_integer("Processing","Hue-center",m_opts.getCenTolHue().first);
+    m_key_file.set_integer("Processing","Hue-tolerance",m_opts.getCenTolHue().second);
+
+    m_key_file.set_integer("Processing","Satur-min-saturation",m_opts.getMinMaxSat().first);
+    m_key_file.set_integer("Processing","Satur-max-saturation",m_opts.getMinMaxSat().second);
+
+    m_key_file.set_double("Processing","Likelihood-threshold",m_opts.getLikeThr());
+
+    m_key_file.set_double("Processing","Clustering-Distance",m_opts.getClustDist());
+
+    m_key_file.set_string("General","former_version",PACKAGE_VERSION);
+
+
+    m_file = Gio::File::create_for_path(m_config_file_name.c_str());
+    Glib::RefPtr< Gio::FileOutputStream > fout = m_file->replace();
+    fout->write(m_key_file.to_data());
+    fout->close();
+}
+
+
+void Gui_ConfigIO::getOptionsFromConf(){
+    m_hello_lev =  m_key_file.get_integer("GUI","hello_level");//,0);
+
+    m_opts.setHasAutoThr(m_key_file.get_boolean("Processing","Has_auto-threshold"));
+
+    m_opts.setHasMaxRad(m_key_file.get_boolean("Processing","Has_max-radius"));
+
+    m_opts.setHasHueFilt(m_key_file.get_boolean("Processing","Has_hue-filter"));
+
+    m_opts.setHasOutlierFilt(m_key_file.get_boolean("Processing","Has_outlier-filter"));
+
+
+    m_opts.setThr(m_key_file.get_integer("Processing","Threshold"));
+
+    m_opts.setThrMode(m_key_file.get_integer("Processing","Threshold-mode"));
+
+
+    m_opts.setMinMaxRad(std::pair<int,int>(m_key_file.get_integer("Processing","Min-rad"),m_key_file.get_integer("Processing","Max-rad")));
+
+    m_opts.setCenTolHue(std::pair<int,int>(m_key_file.get_integer("Processing","Hue-center"),m_key_file.get_integer("Processing","Hue-tolerance")));
+
+    m_opts.setCenTolHue(std::pair<int,int>(m_key_file.get_integer("Processing","Satur-min-saturation"),m_key_file.get_integer("Processing","Satur-max-saturation")));
+
+    m_opts.setLikeThr(m_key_file.get_double("Processing","Likelihood-threshold"));
+
+    //This exception block catches the instance where an older config file is used,
+    //In some cases, on the first run, the parameter "Clustering-Distance" will not be defined.
+    try {
+        m_opts.setClustDist(m_key_file.get_double("Processing","Clustering-Distance"));
+    }
+    catch (Glib::KeyFileError) {
+        m_opts.setClustDist(2.3);
+    }
+
+    try {
+        m_version = m_key_file.get_string("General","former_version");
+    }
+    catch (Glib::KeyFileError) {
+    m_version = "3.8.0";
+    }
+
+    try{
+
+        m_last_working_dir =  m_key_file.get_string("GUI","last_wd");
+        if (!g_file_test(m_last_working_dir.c_str(),G_FILE_TEST_EXISTS))
+            throw std::invalid_argument("the working directory does not exist");
+    }
+    catch(...){
+        m_last_working_dir = Glib::get_home_dir();
+    }
+}
+
+
+void Gui_ConfigIO::readConfig(){
+//    std::string config_dir_name = Glib::build_filename(Glib::get_user_config_dir(), Glib::get_application_name());
+    std::string config_dir_name = Glib::build_filename(Glib::get_user_config_dir(), std::string(PACKAGE_TARNAME));
+    DEV_INFOS("configuration directory should be:"<<config_dir_name);
+    if(g_file_test(config_dir_name.c_str(),G_FILE_TEST_IS_DIR)){
+        DEV_INFOS("Directory exist already");
+    }
+    else{
+        DEV_INFOS("Creating the directory");
+        Gio::File::create_for_path(config_dir_name.c_str())->make_directory_with_parents();
+    }
+
+    std::stringstream ss;
+    ss << Glib::get_prgname()<<".conf";
+    m_config_file_name = Glib::build_filename(config_dir_name,ss.str());
+
+
+    if(g_file_test(m_config_file_name.c_str(),G_FILE_TEST_EXISTS)){
+        DEV_INFOS(m_config_file_name);
+
+        assert(m_key_file.load_from_file(m_config_file_name,Glib::KEY_FILE_NONE));
+        this->getOptionsFromConf();
+        if(m_version != PACKAGE_VERSION){
+            this->makeNewConfig();
+            m_hello_lev = 0;
+        }
+    }
+    else{
+        this->makeNewConfig();
+    }
+
+
+}
diff --git a/src/gui/src/Gui_ControlPanel.cpp b/src/gui/src/Gui_ControlPanel.cpp
new file mode 100644
index 0000000..3091c65
--- /dev/null
+++ b/src/gui/src/Gui_ControlPanel.cpp
@@ -0,0 +1,48 @@
+#include "Gui_ControlPanel.hpp"
+
+Gui_ControlPanel::Gui_ControlPanel(Gui_ProcessorHandler& processor_hand,ResultMap& result_map, Gui_ConfigIO& config):
+    m_processor_hand(processor_hand),
+    m_result_label(m_processor_hand,result_map),
+    m_file_setter(processor_hand,NAME_IMAGE_FILE_SETTER, config),
+    m_thr_setter(processor_hand,NAME_THR_SETTER),
+    m_rad_setter(processor_hand,NAME_RAD_SETTER),
+    m_mask_setter(processor_hand,NAME_MASK_SETTER),
+    m_col_select(processor_hand,NAME_COL_SELECT),
+    m_lik_select(processor_hand,NAME_LIK_SELECT),
+    m_col_cluster(processor_hand,NAME_COL_CLUSTER), //NJL 10/AUG/2014
+    m_about_opencfu_button("About OpenCFU")
+
+
+{
+        this->set_border_width(5);
+
+        this->add(m_vbox);
+        m_vbox.pack_start(m_result_label,false,false);
+        m_vbox.pack_start(m_file_setter,false,false);
+        m_vbox.pack_start(m_thr_setter,false,false);
+        m_vbox.pack_start(m_rad_setter,false,false);
+        m_vbox.pack_start(m_mask_setter,false,false);
+        m_vbox.pack_start(m_col_select,false,false);
+        m_vbox.pack_start(m_lik_select,false,false);
+        m_vbox.pack_start(m_col_cluster,false,false); //NJL 10/AUG/2014
+        m_vbox.pack_end(m_about_opencfu_button,false,false);
+
+        m_file_setter.signal_publish_N_files().connect( sigc::mem_fun(m_thr_setter,&Gui_ThresholdSetter::updateNFiles));
+        m_file_setter.signal_publish_N_files().connect( sigc::mem_fun(m_rad_setter,&Gui_RadiusSetter::updateNFiles));
+        m_file_setter.signal_publish_N_files().connect( sigc::mem_fun(m_mask_setter,&Gui_MaskSetter::updateNFiles));
+        m_file_setter.signal_publish_N_files().connect( sigc::mem_fun(m_result_label,&Gui_ResultLabel::updateNFiles));
+        m_file_setter.signal_publish_N_files().connect( sigc::mem_fun(m_col_select,&Gui_ColourSelector::updateNFiles));
+        m_file_setter.signal_publish_N_files().connect( sigc::mem_fun(m_lik_select,&Gui_LikFiltSelector::updateNFiles));
+        m_file_setter.signal_publish_N_files().connect( sigc::mem_fun(m_col_cluster,&Gui_ColourCluster::updateNFiles)); //NJL 10/AUG/2014
+        m_about_opencfu_button.signal_clicked().connect( sigc::mem_fun(*this,&Gui_ControlPanel::on_about_button));
+
+
+}
+
+void Gui_ControlPanel::on_about_button(){
+    Gtk::Window* parent =  (Gtk::Window*) get_toplevel();
+    MyAboutDialog about;
+    about.set_transient_for(*parent);
+    DEV_INFOS(parent);
+    about.run();
+}
diff --git a/src/gui/src/Gui_Decorator.cpp b/src/gui/src/Gui_Decorator.cpp
new file mode 100644
index 0000000..2d901a3
--- /dev/null
+++ b/src/gui/src/Gui_Decorator.cpp
@@ -0,0 +1,241 @@
+#include "Gui_Decorator.hpp"
+
+Gui_Decorator::Gui_Decorator(Gtk::DrawingArea* parent, Gui_ProcessorHandler& processor_hand,
+                              int& idx_point_to_show, bool& show_point,Gui_DisplayRoi& ROI):
+    m_parent(parent),
+    m_processor_hand(processor_hand),
+    m_idx_point_to_show(idx_point_to_show),
+    m_show_point(show_point),
+    m_ROI(ROI),
+    m_line_width_multip(1),m_vector_crosses(NULL)
+{
+}
+
+//Gui_Decorator::Gui_Decorator(Gtk::DrawingArea* parent, Gui_ProcessorHandler& processor_hand,Gui_DisplayRoi& ROI):
+//    m_parent(parent),
+//    m_processor_hand(processor_hand),
+//    m_idx_point_to_show(-1),
+//    m_show_point(false),
+//    m_ROI(ROI),
+//    m_line_width_multip(1)
+//{
+//}
+
+
+void Gui_Decorator::drawCrosses(Cairo::RefPtr<Cairo::Context> cr){
+    if(m_vector_crosses == NULL){
+        DEV_INFOS("No crosses to draw");
+        return;
+    }
+    if(!m_vector_crosses->empty()){
+
+
+        float cte = std::min(m_ROI.getPixbufDim().x,m_ROI.getPixbufDim().y) / 30;
+        cv::Point2f A,B,C,D;
+
+
+
+
+        for(auto i : *m_vector_crosses ){
+            DEV_INFOS(i);
+            A = i - cv::Point2f(cte,cte);
+            B = i - cv::Point2f(cte,-cte);
+            C = i - cv::Point2f(-cte,-cte);
+            D = i - cv::Point2f(-cte,cte);
+
+            cr->move_to (A.x,A.y);
+            cr->line_to (C.x,C.y);
+            cr->move_to (B.x,B.y);
+            cr->line_to (D.x,D.y);
+
+        }
+    cr->set_source_rgba(0, 0, 0,0.8);
+    cr->set_line_width(cte/3);
+    cr->stroke_preserve();
+    cr->set_source_rgba(1.0, 1.0, 0.5,1);
+    cr->set_line_width(cte/10);
+
+    cr->stroke();
+    }
+}
+void Gui_Decorator::decorate(){
+    DEV_INFOS("Decorating");
+
+    cv::Point2f a;
+    cv::Point2f b;
+
+    m_ROI.getABForDeco(a,b);
+
+
+    const Result& result = m_processor_hand.getNumResult();
+
+    Cairo::RefPtr<Cairo::Context> cr = m_parent->get_window()->create_cairo_context();
+    cr->set_matrix(Cairo::Matrix(a.x,0,0,a.y,b.x,b.y));
+
+
+    cr->set_line_cap(Cairo::LINE_CAP_ROUND);
+    cr->set_line_join(Cairo::LINE_JOIN_ROUND);
+
+
+
+    cv::Point2f tp;
+
+
+    std::vector<int> in_field_valid; //valid, but clusterID=0
+    std::vector<int> in_field_invalid;
+    std::vector<int> in_cluster_one;
+    std::vector<int> in_cluster_two;
+    std::vector<int> in_cluster_three;
+    std::vector<int> in_cluster_four;
+    for(unsigned int i = 0; i != result.size();i++){
+        const OneObjectRow& oor = result.getRow(i);
+        bool inside = false;
+        for(unsigned int j = 0; j != 4;j++){
+            if(m_ROI.contains(oor.getPoint(j)))
+                inside = true;
+        }
+        //edited 13/AUG/2014 to create groups for clusters 1 and 2
+        if(inside){
+            if (oor.getColorClusterID() == 1){
+                in_cluster_one.push_back(i);
+            }
+            else if (oor.getColorClusterID() == 2){
+                in_cluster_two.push_back(i);
+            }
+            else if (oor.getColorClusterID() == 3){
+                in_cluster_three.push_back(i);
+            }
+            else if (oor.getColorClusterID() == 4){
+                in_cluster_four.push_back(i);
+            }
+            else {
+                oor.isValid() ? in_field_valid.push_back(i) : in_field_invalid.push_back(i);
+            }
+        }
+    }
+/******************************************************************************
+ *Drawing each region, migrated to a functional form 4/SEP/2014
+ *****************************************************************************/
+    //clusters if present
+    highlightCells(cr, in_cluster_one,   0.0, 1.0, 0.0, 0.8, 3.0);
+    highlightCells(cr, in_cluster_one,   0.0, 1.0, 0.0, 1.0, 1.5);
+
+    highlightCells(cr, in_cluster_two,   1.0, 0.5, 0.0, 0.8, 3.0);
+    highlightCells(cr, in_cluster_two,   1.0, 0.5, 0.0, 1.0, 1.5);
+
+    highlightCells(cr, in_cluster_three, 0.0, 1.0, 1.0, 0.8, 3.0);
+    highlightCells(cr, in_cluster_three, 0.0, 1.0, 1.0, 1.0, 1.5);
+
+    highlightCells(cr, in_cluster_four,  1.0, 0.0, 1.0, 0.8, 3.0);
+    highlightCells(cr, in_cluster_four,  1.0, 0.0, 1.0, 1.0, 1.5);
+
+    //valid cells not in  clusters
+    highlightCells(cr, in_field_valid, 1.0, 1.0, 0.0, 0.8, 3.0);
+    highlightCells(cr, in_field_valid, 0.0, 0.0, 1.0, 1.0, 1.5);
+
+
+/******************************************************************************
+ * Drawing of invalid cells, done outside of function to accomodate extra
+ * lines
+ *****************************************************************************/
+
+    for(int i : in_field_invalid){
+        const OneObjectRow& oor = result.getRow(i);
+        if(oor.getGUIValid()  == -1){
+            cr->move_to (oor.getPoint(0).x,oor.getPoint(0).y);
+            cr->line_to ( oor.getPoint(1).x,oor.getPoint(1).y);
+            cr->line_to ( oor.getPoint(2).x,oor.getPoint(2).y);
+            cr->line_to ( oor.getPoint(3).x,oor.getPoint(3).y);
+            cr->close_path();
+            cr->line_to ( oor.getPoint(2).x,oor.getPoint(2).y);
+        }
+        else{
+            cr->move_to (oor.getPoint(0).x,oor.getPoint(0).y);
+            cr->line_to ( oor.getPoint(1).x,oor.getPoint(1).y);
+            cr->line_to ( oor.getPoint(2).x,oor.getPoint(2).y);
+            cr->line_to ( oor.getPoint(3).x,oor.getPoint(3).y);
+            cr->close_path();
+            cr->line_to ( oor.getPoint(2).x,oor.getPoint(2).y);
+            cr->move_to (oor.getPoint(3).x,oor.getPoint(3).y);
+            cr->line_to ( oor.getPoint(1).x,oor.getPoint(1).y);
+        }
+
+    }
+    cr->set_line_width(5.0*m_line_width_multip);
+    cr->set_source_rgba(1.0, 0.0, 0.0,0.8);
+    cr->stroke_preserve();
+    cr->set_line_width(2.5*m_line_width_multip);
+    cr->set_source_rgba(0.0, 0.0, 0.0,1.0);
+    cr->stroke();
+
+    if(m_show_point){
+        const OneObjectRow& oor = result.getRow(m_idx_point_to_show);
+
+        cv::Point2f center = (oor.getPoint(0) + oor.getPoint(2) ) * 0.5;
+        float rad = oor.getRadius() * 1.2;
+        cr->arc(center.x, center.y, rad, 0.0, 2 * MY_PI);
+
+        std::vector<cv::Point2f> relpos;
+        relpos.push_back(cv::Point2f(-rad,0));
+        relpos.push_back(cv::Point2f(0,+rad));
+        relpos.push_back(cv::Point2f(+rad,0));
+        relpos.push_back(cv::Point2f(0,-rad));
+
+        for(auto i : relpos){
+            cv::Point2f start = (i*1.5) + center;
+            cv::Point2f endd = (i*0.5) + center;
+            cr->move_to (start.x,start.y);
+            cr->line_to (endd.x, endd.y );
+        }
+
+
+        cr->set_line_width(4.0*m_line_width_multip);
+        cr->set_source_rgba(.0, .0, .0,0.7);
+        cr->stroke_preserve();
+        cr->set_line_width(2*m_line_width_multip);
+        cr->set_source_rgba(1.0, 1.0, 0,1);
+
+        cr->stroke();
+        }
+    DEV_INFOS("Decorating OK");
+    drawCrosses(cr);
+}
+
+/**
+ * Gui_Decorator::higlightCells
+ * Routine for drawing squares around valid cells
+ * @param Cairo::RefPtr<Cairo::Context> cr >> Pointer to the cairo drawing context
+ * @param std::vector<int> cells >> vector of int values pointing to which rows in result to paint
+ * @param float r >> red pixel value [0,1]
+ * @param float g >> green pixel value [0,1]
+ * @param float b >> blue pixel value [0,1]
+ * @param float alpha >> alpha channel value [0,1]
+ * @param float width >> line width
+ */
+void Gui_Decorator::highlightCells(Cairo::RefPtr<Cairo::Context> cr, std::vector<int> cells, float r, float g, float b, float a, float width){
+    for(int i : cells){
+        const OneObjectRow& oor = m_processor_hand.getNumResult().getRow(i);
+        if(oor.getGUIValid()  == -1){
+            cr->move_to (oor.getPoint(0).x,oor.getPoint(0).y);
+
+            cr->line_to ( oor.getPoint(1).x,oor.getPoint(1).y);
+            cr->line_to ( oor.getPoint(2).x,oor.getPoint(2).y);
+            cr->line_to ( oor.getPoint(3).x,oor.getPoint(3).y);
+            cr->close_path();
+        }
+        else{
+            cr->move_to (oor.getPoint(0).x,oor.getPoint(0).y);
+            cr->line_to ( oor.getPoint(1).x,oor.getPoint(1).y);
+            cr->line_to ( oor.getPoint(2).x,oor.getPoint(2).y);
+            cr->line_to ( oor.getPoint(3).x,oor.getPoint(3).y);
+            cr->close_path();
+            cr->line_to ( oor.getPoint(2).x,oor.getPoint(2).y);
+            cr->move_to (oor.getPoint(3).x,oor.getPoint(3).y);
+            cr->line_to ( oor.getPoint(1).x,oor.getPoint(1).y);
+        }
+
+    }
+    cr->set_line_width(width*m_line_width_multip);
+    cr->set_source_rgba(r,g,b,a);
+    cr->stroke();
+}
diff --git a/src/gui/src/Gui_Display.cpp b/src/gui/src/Gui_Display.cpp
new file mode 100644
index 0000000..58f243e
--- /dev/null
+++ b/src/gui/src/Gui_Display.cpp
@@ -0,0 +1,58 @@
+#include "Gui_Display.hpp"
+//#include <sstream>
+#include "Gui_PixbufOpener.hpp"
+
+Gui_Display::Gui_Display(Gui_ProcessorHandler& processor_hand):
+    Gui_DisplayBaseClass(processor_hand)
+    {}
+
+
+
+void Gui_Display::setShowDeco(bool show,double line_width){
+    m_deco.setLineWidthMult(line_width);
+    m_draw_result = show;
+    queue_resize();
+}
+
+void Gui_Display::show_this_idx(int idx){
+    if(idx <0){
+       m_show_point = false;
+    }
+    else{
+        m_show_point = true;
+        m_show_idx = idx;
+    //
+        const Result& res = m_processor_hand.getNumResult();
+        res.getRow(m_show_idx);
+        cv::Point2f center((res.getRow(m_show_idx).getPoint(0) + res.getRow(m_show_idx).getPoint(2)) *0.5);
+        m_ROI.makeNewROI(center,true);
+    }
+    queue_draw();
+}
+bool Gui_Display::on_click(GdkEventButton* event){
+
+    cv::Point2f p = m_ROI.pbToRaw(cv::Point2f(event->x,event->y));
+
+    int idx = -1;
+
+    float min_dist = INT_MAX;
+
+    const Result& result = m_processor_hand.getNumResult();
+    for(unsigned int i = 0; i<result.size();i++){
+        const cv::RotatedRect& rrect= result.getRow(i).getRrect();
+        cv::Rect rect = rrect.boundingRect();
+        if(rect.contains(p)){
+            cv::Point2f pts[4];
+            rrect.points(pts);
+            cv::Point2f center = (pts[0] + pts[2]) *0.5;
+            float dist = sqrt((center.x - p.x)*(center.x - p.x) + (center.y - p.y)*(center.y - p.y));
+            if(dist < min_dist){
+                idx = i;
+                min_dist = dist;
+            }
+        }
+    }
+    m_signal_click_on_obj.emit(idx,event->button);
+    return true;
+}
+
diff --git a/src/gui/src/Gui_DisplayBaseClass.cpp b/src/gui/src/Gui_DisplayBaseClass.cpp
new file mode 100644
index 0000000..05a6eab
--- /dev/null
+++ b/src/gui/src/Gui_DisplayBaseClass.cpp
@@ -0,0 +1,149 @@
+#include "Gui_DisplayBaseClass.hpp"
+
+
+
+Gui_DisplayBaseClass::Gui_DisplayBaseClass(Gui_ProcessorHandler& processor_hand):
+    m_processor_hand(processor_hand),
+    m_deco(this,processor_hand,m_show_idx,m_show_point,m_ROI),
+    m_ROI(cv::Point(0,0),cv::Point(0,0)),
+    m_draw_result(false),
+    m_alph_mask(128),
+    m_show_idx(-1),m_show_point(false),m_show_mask(true),
+    m_cursor(Gdk::CROSS)
+    {
+
+    this->add_events( Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK );
+    this->signal_scroll_event().connect( sigc::mem_fun( *this, &Gui_DisplayBaseClass::on_scroll) );
+    this->signal_button_press_event().connect( sigc::mem_fun( *this, &Gui_DisplayBaseClass::on_click) );
+
+    m_color.set_rgb_p(0.2,0.2,0.2);
+    this->modify_bg(Gtk::STATE_NORMAL,m_color);
+
+    m_processor_hand.signal_state().connect( sigc::mem_fun(*this,&Gui_DisplayBaseClass::myRedraw));
+
+    Glib::RefPtr< Gdk::Screen > screen = Gdk::Screen::get_default();
+    Gdk::Rectangle rect;
+    screen->get_monitor_geometry(screen->get_primary_monitor(),rect);
+    set_size_request(rect.get_width()/4,rect.get_height()/4);
+
+
+
+    makeLUT();
+
+
+
+
+}
+void Gui_DisplayBaseClass::on_realize(){
+    Gtk::DrawingArea::on_realize();
+m_ref_window = this->get_window();
+    assert(m_ref_window);
+    m_ref_window->set_cursor(m_cursor);
+}
+
+
+bool Gui_DisplayBaseClass::on_expose_event(GdkEventExpose* event){
+    m_ROI.reallocateSize(this->get_allocation());
+    redraw();
+    return true;
+}
+
+bool Gui_DisplayBaseClass::on_scroll(GdkEventScroll* event){
+    cv::Point2f xy_pb = cv::Point2f(event->x,event->y);
+    bool ret = m_ROI.newROIFromScroll(xy_pb, event->direction);
+    this->queue_draw();
+    DEV_INFOS("scrolling");
+    return ret;
+}
+
+void Gui_DisplayBaseClass::myRedraw(int state){
+    if(state == PROCESSOR_IDLE_SIGNAL)
+        m_draw_result = true;
+    else
+        m_draw_result = false;
+    queue_resize();
+    }
+
+void Gui_DisplayBaseClass::drawBackground(){
+//    if(!m_background)
+//    m_background = Gui_PixbufOpener::pixbufOpen(BACKGROUND_NOISE);
+//    cv::Point2f wh = m_ROI.getPixbufDim();
+//    m_background = m_background->scale_simple (wh.x, wh.x, Gdk::INTERP_TILES) ;
+//    m_background->render_to_drawable(get_window(), get_style()->get_black_gc(),0, 0,
+//    0, 0, wh.x, wh.x,Gdk::RGB_DITHER_NONE, 0, 0);
+
+
+}
+void Gui_DisplayBaseClass::redraw(){
+    DEV_INFOS("redrawing");
+    cv::Mat tmp_img;
+    cv::Point2f offset;
+    drawBackground();
+    if(!m_processor_hand.getSourceImgAsRGB(tmp_img)){
+        if(!m_banner_pixbuf)
+            m_banner_pixbuf = Gui_PixbufOpener::pixbufOpen(BANNER_IMG);
+            offset = m_ROI.scaleToFitAllocation(m_banner_pixbuf, m_pixbuf);
+    }
+    else{
+        m_banner_pixbuf.clear();
+        cv::Point2f raw_img_dim(tmp_img.cols,tmp_img.rows);
+        m_ROI.update(raw_img_dim);
+        tmp_img(m_ROI).copyTo(tmp_img);
+        offset = m_ROI.scaleToFitAllocation(tmp_img, m_img_to_display);
+        m_pixbuf = Gdk::Pixbuf::create_from_data((guint8*)m_img_to_display.data,Gdk::COLORSPACE_RGB,false,
+                                                8,m_img_to_display.cols,m_img_to_display.rows,m_img_to_display.step);
+
+
+
+
+        //show mask
+
+        if(getMask(tmp_img) && m_show_mask){
+
+            DEV_INFOS("drawing mask "<<cv::Point2f(tmp_img.rows,tmp_img.cols)<<" vs "<<raw_img_dim);
+            tmp_img(m_ROI).copyTo(tmp_img);
+            cv::LUT(tmp_img,m_LUT,tmp_img);
+
+            m_ROI.scaleToFitAllocation(tmp_img, tmp_img,true);
+
+            m_mask_pixbuf = Gdk::Pixbuf::create_from_data((guint8*)tmp_img.data,Gdk::COLORSPACE_RGB,false,
+                                                    8,tmp_img.cols,tmp_img.rows,tmp_img.step);
+            m_mask_pixbuf = m_mask_pixbuf->add_alpha(true,0,0,0);
+            m_mask_pixbuf->composite 	( 	m_pixbuf,0,0,
+                m_mask_pixbuf->get_width(),m_mask_pixbuf->get_height(),
+                0,0,1,1,Gdk::INTERP_NEAREST,
+                m_alph_mask//int  	overall_alpha
+                );
+
+
+        }
+
+
+    }
+    m_pixbuf->render_to_drawable(get_window(), get_style()->get_black_gc(),0, 0,
+                  offset.x, offset.y, m_pixbuf->get_width(), m_pixbuf->get_height(),Gdk::RGB_DITHER_NONE, 0, 0);
+
+    if(m_draw_result)
+        m_deco.decorate();
+
+}
+void Gui_DisplayBaseClass::makeLUT(){
+
+    m_LUT=cv::Mat(1,256,CV_8UC3,cv::Scalar(1,1,1));
+
+    std::vector<cv::Vec3b> cols;
+    cols.push_back(cv::Vec3b(255,0,0));
+    cols.push_back(cv::Vec3b(0,0,255));
+    cols.push_back(cv::Vec3b(0,255,0));
+    cols.push_back(cv::Vec3b(255,255,0));
+    cols.push_back(cv::Vec3b(255,0,255));
+    cols.push_back(cv::Vec3b(0 ,255,255));
+    cols.push_back(cv::Vec3b(128 ,128,255));
+    cols.push_back(cv::Vec3b(255,128 ,128));
+    cols.push_back(cv::Vec3b(128 ,255,128));
+    unsigned int N = cols.size();
+
+    for(unsigned int i = 1; i<256;++i)
+        for(unsigned int j =0; j<3;++j)
+            m_LUT.at<cv::Vec3b>(i)[j] = cols[(i-1)%N][j];
+}
diff --git a/src/gui/src/Gui_DisplayRoi.cpp b/src/gui/src/Gui_DisplayRoi.cpp
new file mode 100644
index 0000000..95aac87
--- /dev/null
+++ b/src/gui/src/Gui_DisplayRoi.cpp
@@ -0,0 +1,175 @@
+#include "Gui_DisplayRoi.hpp"
+
+
+
+void Gui_DisplayRoi::reallocateSize(Gtk::Allocation alloc){
+            m_pixbuf_wh.x = alloc.get_width();
+            m_pixbuf_wh.y = alloc.get_height();
+        };
+
+
+
+cv::Point2f Gui_DisplayRoi::CoordPbToROI(const cv::Point2f xy, const cv::Point2f pb_wh ,const  bool revers){
+    float r = calcScale(cv::Point2f(width,height),pb_wh );
+    cv::Point2f off = calcOffset(r,cv::Point2f(width,height),pb_wh );
+    if(!revers)
+        return (xy - off ) * r;
+    else
+        return off + xy * (1/r);
+}
+cv::Point2f Gui_DisplayRoi::CoordROIToRaw(const cv::Point2f xy,const  bool revers){
+    cv::Point2f pt = tl();
+    if(!revers)
+        return xy + pt;
+    else
+        return xy - pt;
+}
+
+cv::Point2f Gui_DisplayRoi::scaleToFitAllocation(const Glib::RefPtr<Gdk:: Pixbuf >& src, Glib::RefPtr<Gdk:: Pixbuf>& dst){
+    int w = src->get_width ();
+    int h = src->get_height ();
+    float r = calcScale(cv::Point2f(w,h),m_pixbuf_wh);
+    cv::Point2f off = calcOffset(r,cv::Point2f(w,h),m_pixbuf_wh);
+    dst = src->scale_simple(w/r,h/r,Gdk::INTERP_BILINEAR);
+    return off;
+}
+cv::Point2f Gui_DisplayRoi::scaleToFitAllocation(const cv::Mat& src, cv::Mat& dst,bool interp_nearest){
+
+    float r = calcScale(cv::Point2f(src.cols,src.rows),m_pixbuf_wh);
+    if(!interp_nearest)
+        cv::resize(src,dst,cv::Size(),1/r,1/r,cv::INTER_AREA);
+    else
+        cv::resize(src,dst,cv::Size(),1/r,1/r,cv::INTER_NEAREST);
+
+    return calcOffset(r,cv::Point2f(src.cols,src.rows),m_pixbuf_wh);
+}
+//
+float Gui_DisplayRoi::calcScale(const cv::Point2f img_wh, const cv::Point2f pb_wh){
+    float r_img = img_wh.x/img_wh.y;
+    float r_pb = pb_wh.x/pb_wh.y;
+
+    if(r_pb>r_img)
+       return img_wh.y/(pb_wh.y - 2*DISPLAY_MIN_MARGIN);
+
+    else
+        return img_wh.x/(pb_wh.x- 2*DISPLAY_MIN_MARGIN);
+}
+cv::Point2f Gui_DisplayRoi::calcOffset(float scale_ratio, const cv::Point2f img_wh, const cv::Point2f pb_wh){
+    float r_img = img_wh.x/img_wh.y;
+    float r_pb = pb_wh.x/pb_wh.y;
+
+    if(r_pb>r_img){
+        int x = (pb_wh.x - img_wh.x/scale_ratio) /2;
+        return cv::Point2f(x,DISPLAY_MIN_MARGIN);
+
+    }
+    else{
+        int y = (pb_wh.y - img_wh.y/scale_ratio )/2;
+        return cv::Point2f(DISPLAY_MIN_MARGIN,y);
+    }
+}
+
+//
+void Gui_DisplayRoi::makeNewROI(const cv::Point2f center,bool put_in_center){
+    cv::Point2f wh(m_raw_dim.x/m_zoom, m_raw_dim.y/m_zoom);
+    cv::Point2f pos_in_roi = CoordROIToRaw(center,true);
+
+    float rx;
+    float ry;
+
+    if(!put_in_center){
+        cv::Point2f excent = (br() - tl() );
+        rx = pos_in_roi.x/excent.x;
+        ry = pos_in_roi.y/excent.y;
+    }
+    else{
+        rx = 0.5;
+        ry = 0.5;
+    }
+
+    float xb = center.x + wh.x * (1 - rx);
+    float yb = center.y + wh.y * (1 - ry);
+    float xa = center.x - wh.x * (rx);
+    float ya = center.y - wh.y * (ry);
+    cv::Point2f top_left = cv::Point2f(xa,ya) ;
+    cv::Point2f  bot_right = cv::Point2f(xb,yb);
+
+    if(top_left.x < 0){
+        bot_right = bot_right - cv::Point2f(top_left.x,0);
+        top_left = top_left - cv::Point2f(top_left.x,0);
+    }
+
+    if(top_left.y < 0){
+        bot_right = bot_right - cv::Point2f(0,top_left.y);
+        top_left = top_left - cv::Point2f(0,top_left.y);
+    }
+
+    if(bot_right.x > m_raw_dim.x){
+        float dx = bot_right.x - m_raw_dim.x;
+        top_left = top_left - cv::Point2f(dx,0);
+        bot_right = bot_right - cv::Point2f(dx,0);
+    }
+
+    if(bot_right.y > m_raw_dim.y){
+        float dy = bot_right.y - m_raw_dim.y;
+        top_left = top_left - cv::Point2f(0,dy);
+        bot_right = bot_right - cv::Point2f(0,dy);
+    }
+    this->x = top_left.x;
+
+    this->y = top_left.y;
+    this->width = bot_right.x - top_left.x;
+    this->height = bot_right.y - top_left.y;
+
+}
+
+bool Gui_DisplayRoi::newROIFromScroll(cv::Point2f xy_pb,int direc ){
+
+    cv::Point2f xy_raw = CoordROIToRaw( CoordPbToROI(xy_pb,m_pixbuf_wh,false),false);
+    if(xy_raw.x > m_raw_dim.x)
+        xy_raw.x = m_raw_dim.x;
+    else if (xy_raw.x < 0)
+        xy_raw.x = 0;
+    if(xy_raw.y > m_raw_dim.y)
+        xy_raw.y = m_raw_dim.y;
+    else if (xy_raw.y < 0)
+        xy_raw.y = 0;
+    if(direc == GDK_SCROLL_UP){
+        if(width > 24 && height > 24)
+        m_zoom *= m_zoom_incr;
+    }
+    else if(direc == GDK_SCROLL_DOWN){
+        m_zoom /= m_zoom_incr;
+        if(m_zoom < 1)
+            m_zoom = 1;
+    }
+    makeNewROI(xy_raw,false);
+    return true;
+}
+
+/**
+bool Gui_Display::on_scroll(GdkEventScroll* event){
+    cv::Point2f xy_pb = cv::Point2f(event->x,event->y);
+    cv::Point2f xy_raw = CoordROIToRaw(CoordPbToROI(xy_pb));
+    if(xy_raw.x > m_raw_img_dim.x)
+        xy_raw.x = m_raw_img_dim.x;
+    else if (xy_raw.x < 0)
+        xy_raw.x = 0;
+    if(xy_raw.y > m_raw_img_dim.y)
+        xy_raw.y = m_raw_img_dim.y;
+    else if (xy_raw.y < 0)
+        xy_raw.y = 0;
+    if(event->direction == GDK_SCROLL_UP){
+        if(m_ROI.width > 24 && m_ROI.height > 24)
+        m_zoom *= m_zoom_incr;
+    }
+    else if(event->direction == GDK_SCROLL_DOWN){
+        m_zoom /= m_zoom_incr;
+        if(m_zoom < 1)
+            m_zoom = 1;
+    }
+    makeNewROI(xy_raw);
+    this->queue_draw();
+    return true;
+}
+*/
diff --git a/src/gui/src/Gui_HelloWindow.cpp b/src/gui/src/Gui_HelloWindow.cpp
new file mode 100644
index 0000000..eb5bf14
--- /dev/null
+++ b/src/gui/src/Gui_HelloWindow.cpp
@@ -0,0 +1,92 @@
+#include "Gui_HelloWindow.hpp"
+//#include <gtkmm.h>
+#include <gtkmm/main.h>
+#include "Gui_PixbufOpener.hpp"
+
+Gui_HelloWindow::Gui_HelloWindow(int& hello_level):
+    m_hello_level(hello_level),
+
+    m_website_blink(PACKAGE_URL,VISIT_WEBSITE),
+    m_paper_blink(PLOS_URL,READ_PUBLICATION),
+    m_email_blink("",REPORT_BUGS),
+    m_hide_next_time(SHOW_HELLO_NEXT_TIME),
+    m_button_OK(Gtk::Stock::OK)
+{
+
+
+    m_text.set_text(std::string(INTRO_TEXT_1)+std::string(PACKAGE_VERSION)+std::string(INTRO_TEXT_2));
+    m_text.set_line_wrap();
+    set_urgency_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
+    set_resizable(false);
+    set_decorated(false);
+    set_keep_above (true);
+    set_modal(true);
+    set_border_width(16);
+
+    m_text.set_justify(Gtk::JUSTIFY_CENTER);
+    add(m_vbox0);
+    m_vbox0.pack_start(m_hbox0);
+    m_vbox0.pack_start(m_vbox1);
+
+    m_hbox0.pack_start(m_ocfu_image);
+    m_hbox0.pack_start(m_text);
+    m_vbox1.pack_start(m_website_blink);
+    m_vbox1.pack_start(m_paper_blink);
+    m_vbox1.pack_start(m_email_blink);
+    m_vbox1.pack_start(m_hsep);
+    m_vbox1.pack_start(m_hbox1);
+    if(hello_level > 0)
+        m_hbox1.pack_start(m_hide_next_time);
+
+    m_hbox1.pack_start(m_button_OK);
+
+
+    m_text.set_use_markup(true);
+    std::stringstream path;
+    path << "mailto:"<<PACKAGE_BUGREPORT;
+    m_email_blink.set_uri(path.str());
+
+    m_ocfu_image.set(Gui_PixbufOpener::pixbufOpen(LOGO_IMG));
+
+    m_hide_next_time.signal_clicked().connect(sigc::mem_fun(*this,&Gui_HelloWindow::on_check_but));
+
+    m_website_blink.signal_clicked().connect(sigc::bind(sigc::mem_fun(*this,&Gui_HelloWindow::set_keep_above),false));
+    m_paper_blink.signal_clicked().connect(sigc::bind(sigc::mem_fun(*this,&Gui_HelloWindow::set_keep_above),false));
+    m_email_blink.signal_clicked().connect(sigc::bind(sigc::mem_fun(*this,&Gui_HelloWindow::set_keep_above),false));
+
+    m_button_OK.signal_clicked().connect(sigc::ptr_fun(Gtk::Main::quit));
+
+    set_focus(m_button_OK);
+    m_hide_next_time.set_active(true);
+    show_all();
+}
+
+void Gui_HelloWindow::on_check_but(){
+    if(m_hide_next_time.get_active())
+        m_hello_level = 1;
+    else
+        m_hello_level = 2;
+}
+
+bool Gui_HelloWindow::on_key_press_event(GdkEventKey* event){
+    if(
+        event->keyval == 0xff1b || //Gdk::KEY_Escape ||
+        event->keyval == 0xff0d || //Gdk::GDK_KEY_Return ||
+        event->keyval == 0xffff) //Gdk::GDK_KEY_Delete)
+            Gtk::Main::quit();
+    return true;
+}
+
+void Gui_HelloWindow::on_realize(){
+    Gtk::Window::on_realize();
+    Glib::RefPtr< Gdk::Screen > screen = Gdk::Screen::get_default();
+    Gdk::Rectangle rect;
+    screen->get_monitor_geometry(screen->get_primary_monitor(),rect);
+    int ww =get_width ();
+    int sw =rect.get_width();
+    int wh =get_height ();
+    int sh =rect.get_height();
+    int x = sw/2 - ww/2 + rect.get_x();
+    int y = sh/2 - wh/2 + rect.get_y();
+    move (x,y);
+}
diff --git a/src/gui/src/Gui_ImgFileSetter.cpp b/src/gui/src/Gui_ImgFileSetter.cpp
new file mode 100644
index 0000000..6953536
--- /dev/null
+++ b/src/gui/src/Gui_ImgFileSetter.cpp
@@ -0,0 +1,256 @@
+#include "Gui_ImgFileSetter.hpp"
+#include "Gui_MyWindow.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+
+Gui_ImgFileSetter::Gui_ImgFileSetter(Gui_ProcessorHandler& processor_hand,const std::string str, Gui_ConfigIO& config):
+    Gui_OptionSetterBaseClass(processor_hand,str),
+    m_add_file_button(ADD_FILE_BUTTON_TEXT),
+    m_file_buttons(4),
+    m_button_scores{-2,-1,1,2},
+    m_button_text{"<<","<",">",">>"},
+    m_last_dir(config.getLastDir()),
+    m_current_file_idx(0),
+    m_label(m_files,m_current_file_idx)
+{
+    set_tooltip_text(TOOLTIP_IMG_SETTER);
+    this->m_vbox.add(m_label);
+    this->m_vbox.add(m_add_file_button);
+    this->m_vbox.add(m_hbox_butts);
+
+    for(unsigned int i = 0;i<4;i++){
+        FileBrowsingButton *fb  = Gtk::manage(new FileBrowsingButton(m_files,m_current_file_idx,m_button_text[i],m_button_scores[i]));
+        m_file_buttons[i] = fb;
+        m_hbox_butts.add(*fb);
+        fb->signal_clicked().connect( sigc::bind(sigc::mem_fun(m_signal_change_file,&sigc::signal<void, int>::emit),fb->getScore()));
+    }
+
+    m_add_file_button.signal_clicked().connect( sigc::mem_fun(*this,&Gui_ImgFileSetter::on_AddFileClicked) );
+    signal_change_file().connect( sigc::mem_fun(*this,&Gui_ImgFileSetter::on_ChangeFile) );
+    signal_change_file().connect(
+            sigc::hide(sigc::mem_fun(*this,&Gui_ImgFileSetter::publishNFiles))
+         );
+
+    m_files.reserve(100);
+    m_img_filter.set_name("Images");
+    m_img_filter.add_mime_type("image/*");
+    m_img_filter.add_pattern("*.jpeg");
+    m_img_filter.add_pattern("*.jpg");
+    m_img_filter.add_pattern("*.JPG");
+    m_img_filter.add_pattern("*.JPEG");
+    m_img_filter.add_pattern("*.TIF");
+    m_img_filter.add_pattern("*.TIFF");
+    m_img_filter.add_pattern("*.tif");
+    m_img_filter.add_pattern("*.tiff");
+    m_img_filter.add_pattern("*.BMP");
+    m_img_filter.add_pattern("*.bmp");
+    m_img_filter.add_pattern("*.png");
+    m_img_filter.add_pattern("*.PNG");
+    m_img_filter.add_pattern("*.gif");
+    m_img_filter.add_pattern("*.GIF");
+
+    m_no_filter.set_name("Any files");
+    m_no_filter.add_pattern("*");
+    this->updateAllWidgets();
+
+}
+
+bool Gui_ImgFileSetter::updateOptions(){
+    DEV_INFOS("Trying to send a processing option");
+    std::string tmp_path = m_current_file->get_path();
+    m_last_dir = Glib::path_get_dirname(m_current_file->get_path());
+    return m_opts.setImage(tmp_path);
+}
+
+Gui_ImgFileSetter::~Gui_ImgFileSetter(){
+}
+
+void Gui_ImgFileSetter::on_realize (){
+    ((Gui_MyWindow*)get_toplevel())->signal_drag_and_drop().connect(sigc::mem_fun(*this,&Gui_ImgFileSetter::recieveDragAndDrop));
+    publishNFiles();
+    Gtk::Frame::on_realize();
+}
+
+
+void Gui_ImgFileSetter::on_ChangeFile(int idx_mod){
+
+    if(m_files.size()>0){
+        if(idx_mod == -1 && m_current_file_idx>0){
+            m_current_file_idx += idx_mod;
+        }
+
+        else if(idx_mod == 1 && m_current_file_idx < (m_files.size()-1)){
+            m_current_file_idx += idx_mod;
+        }
+
+
+        else if (idx_mod == -2 && m_current_file_idx>0){
+            m_current_file_idx = 0;
+        }
+
+        else if(idx_mod == 2 && m_current_file_idx < (m_files.size()-1)){
+            m_current_file_idx = (m_files.size()-1);
+        }
+        m_current_file = m_files[m_current_file_idx];
+        m_signal_change_options.emit();
+    }
+    else{
+        DEV_INFOS("Not Changing file: no files");
+    }
+    this->updateAllWidgets();
+}
+
+void Gui_ImgFileSetter::updateAllWidgets(){
+    m_label.update();
+    for(unsigned int i = 0;i<m_file_buttons.size();i++){
+            (m_file_buttons[i])->update();
+    }
+}
+
+void Gui_ImgFileSetter::on_AddFileClicked(){
+    Gtk::FileChooserDialog dialog("Please choose a file",Gtk::FILE_CHOOSER_ACTION_OPEN);
+    dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+    dialog.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK);
+
+    dialog.add_filter(m_img_filter);
+    dialog.add_filter(m_no_filter);
+
+    dialog.set_select_multiple(true);
+    dialog.set_current_folder(m_last_dir);
+    dialog.set_transient_for(*((Gtk::Window*) this->get_toplevel()));
+    bool success = false;
+    while(!success){
+        int result = dialog.run();
+        switch(result){
+            case Gtk::RESPONSE_OK:
+                {
+                std::vector<std::string>  selected_files = dialog.get_uris();
+                dialog.hide();
+                success = this->appendOrOverWrite(selected_files);
+                dialog.show();
+                break;
+                }
+            case Gtk::RESPONSE_CANCEL:
+                {
+                success = true;
+                break;
+                }
+            default:
+                {
+                success = true;
+                break;
+                }
+        }
+    }
+}
+
+void Gui_ImgFileSetter::checkRedondantFiles( std::vector<Glib::RefPtr<Gio::File> >& files){
+    std::vector<Glib::RefPtr<Gio::File> > new_files;
+    new_files.reserve(files.size());
+    for(auto& f:files){
+        bool exist(false);
+        for(auto& mf:m_files)
+            if(mf->equal(f))
+                exist = true;
+        if(!exist)
+            new_files.push_back(f);
+    }
+    std::swap(new_files,files);
+}
+//
+void Gui_ImgFileSetter::checkCorruptedFiles( std::vector<Glib::RefPtr<Gio::File> >& files){
+    std::vector<Glib::RefPtr<Gio::File> > new_files;
+    new_files.reserve(files.size());
+
+    for(auto& f:files){
+        std::string str= f->get_path();
+        if(!cv::imread(str).empty())
+            new_files.push_back(f);
+    }
+    std::swap(new_files,files);
+}
+
+bool Gui_ImgFileSetter::appendOrOverWrite(std::vector<std::string>&  selected_files){
+    int result;
+    std::vector<Glib::RefPtr<Gio::File> > files;
+
+    for(auto& str : selected_files){
+        files.push_back(Gio::File::create_for_uri(str));
+    }
+
+    this->checkCorruptedFiles(files);
+
+    if(files.empty()){
+        Gtk::MessageDialog dial(NO_FILES, false, Gtk::MESSAGE_ERROR,  Gtk::BUTTONS_OK );
+        dial.set_secondary_text(FILE_CORRUPTED_SECONDARY);
+        dial.set_transient_for(*((Gtk::Window*) this->get_toplevel()));
+        dial.run();
+        return false;
+    }
+    else if (files.size() < selected_files.size()){
+        std::stringstream ss;
+        ss<<selected_files.size() - files.size()<<FILE_REMOVED;
+
+
+        Gtk::MessageDialog dial(ss.str(), false, Gtk::MESSAGE_WARNING,  Gtk::BUTTONS_OK );
+        dial.set_secondary_text(FILE_CORRUPTED_SECONDARY);
+        dial.set_transient_for(*((Gtk::Window*) this->get_toplevel()));
+        dial.run();
+    }
+
+    if(m_files.size()>0){
+        Gtk::MessageDialog dial(APPEND_OR_OVERWRITE_MESSAGE, false, Gtk::MESSAGE_QUESTION,  Gtk::BUTTONS_NONE );
+        dial.set_secondary_text(APPEND_OR_OVERWRITE_MESSAGE2);
+
+        dial.add_button("Append",Gtk::RESPONSE_NO);
+        dial.add_button("Overwrite",Gtk::RESPONSE_YES);
+        dial.add_button(Gtk::Stock::CANCEL,Gtk::RESPONSE_CANCEL);
+        dial.set_transient_for(*((Gtk::Window*) this->get_toplevel()));
+        result = dial.run();
+    }
+    else
+        result = Gtk::RESPONSE_YES;
+
+
+
+    if(result == Gtk::RESPONSE_YES){
+        m_files = files;
+        this->m_signal_change_file.emit(-2);
+        return true;
+    }
+    else if(result == Gtk::RESPONSE_NO){
+        unsigned int siz = files.size();
+        checkRedondantFiles(files);
+        if(files.size() == 0){
+            Gtk::MessageDialog dial(NO_FILES, false, Gtk::MESSAGE_ERROR,  Gtk::BUTTONS_OK );
+            dial.set_secondary_text(FILE_REDONDANT_SECONDARY);
+            dial.set_transient_for(*((Gtk::Window*) this->get_toplevel()));
+            dial.run();
+            return false;
+
+        }
+        else{
+            if(files.size() < siz){
+
+                std::stringstream ss;
+                ss<<siz- files.size()<<FILE_REMOVED;
+                Gtk::MessageDialog dial(ss.str(), false, Gtk::MESSAGE_WARNING,  Gtk::BUTTONS_OK );
+                dial.set_secondary_text(FILE_REDONDANT_SECONDARY);
+                dial.set_transient_for(*((Gtk::Window*) this->get_toplevel()));
+                dial.run();
+            }
+            m_files.insert( m_files.end(), files.begin(), files.end() );
+            this->m_signal_change_file.emit(0);
+            return true;
+        }
+
+    }
+    else
+        return false;
+}
+
+
+void Gui_ImgFileSetter::recieveDragAndDrop(std::vector<std::string> strg){
+    DEV_INFOS("drag and drop");
+    appendOrOverWrite(strg);
+}
diff --git a/src/gui/src/Gui_LikFiltSelector.cpp b/src/gui/src/Gui_LikFiltSelector.cpp
new file mode 100644
index 0000000..414858c
--- /dev/null
+++ b/src/gui/src/Gui_LikFiltSelector.cpp
@@ -0,0 +1,43 @@
+#include "Gui_LikFiltSelector.hpp"
+
+Gui_LikFiltSelector::Gui_LikFiltSelector(Gui_ProcessorHandler& processor_hand,const std::string str):
+    Gui_OptionSetterBaseClass(processor_hand,str),
+    m_adjust_thr(m_processor_hand.getOptions().getLikeThr(), 0.0, 99.9, 0.1, 3.0, 0.0),
+    m_spin_butt_thr(m_adjust_thr),
+    m_check_butt(LABEL_CHECKBUTTON_HAS_LIK_FILT),
+    m_lab_thr(LABEL_THR)
+
+{
+    set_tooltip_text(TOOLTIP_LIK_FILT);
+    m_spin_butt_thr.set_digits(1);
+    m_check_butt.set_active(m_processor_hand.getOptions().getHasOutlierFilt());
+    m_vbox.pack_start(m_check_butt);
+    m_vbox.pack_start(m_hbox2);
+    m_hbox2.pack_start(m_spin_butt_thr);
+    m_hbox2.pack_start(m_lab_thr);
+    m_spin_butt_thr.signal_value_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_LikFiltSelector::setOption)));
+    m_check_butt.signal_toggled().connect(sigc::mem_fun(*this,&Gui_LikFiltSelector::on_activate_filter));
+
+}
+
+
+bool Gui_LikFiltSelector::updateOptions(){
+    float value = m_spin_butt_thr.get_value();
+    bool has_thr = m_check_butt.get_active();
+    m_opts.setHasOutlierFilt(has_thr);
+    if(has_thr){
+
+        return m_opts.setLikeThr(value);
+    }
+    else
+        return true;
+}
+
+
+void Gui_LikFiltSelector::updateNFiles(int i){
+    if(i == 0)
+        this->hide_all();
+    else
+        this->show_all();
+    on_tick_box();
+}
diff --git a/src/gui/src/Gui_MaskSetter.cpp b/src/gui/src/Gui_MaskSetter.cpp
new file mode 100644
index 0000000..4f22deb
--- /dev/null
+++ b/src/gui/src/Gui_MaskSetter.cpp
@@ -0,0 +1,319 @@
+#include "Gui_MaskSetter.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+//#include "Gui_MyWindow.hpp"
+
+#include "Gui_Display.hpp"
+
+Gui_MaskSetter::Gui_MaskSetter(Gui_ProcessorHandler& processor_hand,const std::string str):
+    Gui_OptionSetterBaseClass(processor_hand,str),m_last_dir(Glib::get_home_dir()),
+    m_remake_button(Gtk::Stock::REFRESH), m_check_butt("Show")
+{
+    //todo
+    set_tooltip_text(TOOLTIP_MASK_SETTER);
+    m_check_butt.set_tooltip_text(TOOLTIP_MASK_SETTER_SHOW);
+    m_remake_button.set_tooltip_text(TOOLTIP_MASK_SETTER_REFRESH);
+
+    m_img_filter.set_name("Images");
+    m_img_filter.add_mime_type("image/*");
+    m_img_filter.add_pattern("*.jpeg");
+    m_img_filter.add_pattern("*.jpg");
+    m_img_filter.add_pattern("*.JPG");
+    m_img_filter.add_pattern("*.JPEG");
+    m_img_filter.add_pattern("*.TIF");
+    m_img_filter.add_pattern("*.TIFF");
+    m_img_filter.add_pattern("*.tif");
+    m_img_filter.add_pattern("*.tiff");
+    m_img_filter.add_pattern("*.BMP");
+    m_img_filter.add_pattern("*.bmp");
+    m_img_filter.add_pattern("*.png");
+    m_img_filter.add_pattern("*.PNG");
+    m_img_filter.add_pattern("*.gif");
+    m_img_filter.add_pattern("*.GIF");
+
+    m_no_filter.set_name("Any files");
+    m_no_filter.add_pattern("*");
+
+
+    m_vbox.pack_start( m_combo);
+
+    m_combo.append(MASK_TYPE_NONE,"None");
+    m_combo.append(MASK_TYPE_DRAW,"Draw mask");
+    m_combo.append(MASK_TYPE_FILE,"From file");
+    m_combo.append(MASK_TYPE_AUTO,"Auto");
+
+
+
+    this->m_vbox.pack_start(m_hbox);
+    m_hbox.pack_start(m_check_butt);
+    m_hbox.pack_start(m_remake_button);
+
+    m_check_butt.set_active();
+    m_check_butt.set_sensitive(false);
+    m_remake_button.set_sensitive(false);
+
+    m_combo.signal_select_type().connect(sigc::mem_fun(*this,&Gui_MaskSetter::on_combo_changed));
+    m_combo.signal_change_state().connect(sigc::mem_fun(*this,&Gui_MaskSetter::on_update_hbox));
+    m_remake_button.signal_clicked().connect(sigc::mem_fun(*this,&Gui_MaskSetter::on_remake_mask));
+    m_check_butt.signal_clicked().connect(sigc::mem_fun(*this,&Gui_MaskSetter::on_show_mask));
+    m_combo.set_title("ROI type");
+
+
+}
+
+void Gui_MaskSetter::on_remake_mask(){
+    on_combo_changed(m_combo.getState());
+}
+
+void Gui_MaskSetter::on_update_hbox(int state){
+    if(state == MASK_TYPE_NONE || state == MASK_TYPE_AUTO)
+        m_remake_button.set_sensitive(false);
+    else
+        m_remake_button.set_sensitive(true);
+
+    if(state == MASK_TYPE_NONE)
+        m_check_butt.set_sensitive(false);
+    else
+        m_check_butt.set_sensitive(true);
+}
+
+bool Gui_MaskSetter::on_combo_changed(int state){
+    DEV_INFOS("change combo");
+    DEV_INFOS(state);
+
+    if(state == MASK_TYPE_NONE){
+        DEV_INFOS("Noning mask");
+        m_mask.none();
+        this->setOption();
+        return true;
+    }
+    else if(state == MASK_TYPE_DRAW){
+        if(drawMask()){
+            this->setOption();
+            return true;
+        }
+    }
+    else if(state == MASK_TYPE_AUTO){
+        m_mask.type = MASK_TYPE_AUTO;
+        this->setOption();
+        return true;
+    }
+
+    else if(state == MASK_TYPE_FILE){
+        if(on_AddFileClicked()){
+            this->setOption();
+            return true;
+        }
+    }
+
+    return false;
+}
+
+
+
+bool Gui_MaskSetter::updateOptions(){
+    DEV_INFOS("Trying to send a processing option");
+    return m_opts.setMask(m_mask);
+}
+
+bool Gui_MaskSetter::on_AddFileClicked(){
+    Gtk::FileChooserDialog dialog("Please choose a mask file",Gtk::FILE_CHOOSER_ACTION_OPEN);
+    dialog.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+    dialog.add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK);
+
+    dialog.add_filter(m_img_filter);
+    dialog.add_filter(m_no_filter);
+
+    dialog.set_select_multiple(false);
+    dialog.set_current_folder(m_last_dir);
+    dialog.set_transient_for(*((Gtk::Window*) this->get_toplevel()));
+
+    bool success = false;
+    while(!success){
+        int result = dialog.run();
+        switch(result){
+            case Gtk::RESPONSE_OK:
+                {
+                Glib::RefPtr<Gio::File> file = Gio::File::create_for_uri(dialog.get_uri());
+                dialog.hide();
+                success = checkFile(file);
+                dialog.show();
+
+                if(success){
+                    m_file = file;
+                    MaskROI(m_file->get_path()).copyTo(m_mask);
+                    return true;
+                }
+
+                break;
+                }
+            case Gtk::RESPONSE_CANCEL:
+                {
+                return false;
+                break;
+                }
+            default:
+                {
+                return false;
+                break;
+                }
+        }
+    }
+    return false;
+}
+
+bool Gui_MaskSetter::checkFile( const Glib::RefPtr<Gio::File>& file){
+    std::string str= file->get_path();
+    cv::Mat mat = cv::imread(str);
+    cv::Mat tmp_mat;
+    bool has_mask =  m_processor_hand.getMaskAsRGB(tmp_mat);
+    if(mat.empty()){
+        DEV_INFOS("corrupted file");
+        return false;
+    }
+    else if(mat.channels() == 1){
+        DEV_INFOS("convertion to greyscale");
+        return true;
+    }
+    else if(!has_mask){
+        return true;
+    }
+    else if(mat.rows != tmp_mat.rows || mat.cols != tmp_mat.cols ){
+        DEV_INFOS("the file will be rescaled");
+        return true;
+    }
+    return false;
+}
+bool Gui_MaskSetter::drawMask(){
+    Gtk::Window* parent =  (Gtk::Window*) get_toplevel();
+    DrawMaskDial dial(m_processor_hand,m_mask);
+    dial.set_transient_for(*parent);
+    if(dial.run() == Gtk::RESPONSE_OK){
+        dial.getMask().copyTo(m_mask);
+        return true;
+    }
+    else
+        return false;
+
+}
+void Gui_MaskSetter::updateNFiles(int i){
+    if(i == 0)
+        this->hide_all();
+    else
+        this->show_all();
+}
+
+/*******************************************************************************************/
+DrawMaskDial::DrawMaskDial(Gui_ProcessorHandler& processor_hand, MaskROI& mask):
+Gtk::Dialog(),
+m_processor_hand(processor_hand),
+m_rb_circle(THREE_POINT_CIRCLE_TOOL),
+m_rb_conv_polyg(CONVEX_POLYGON_TOOL),
+m_plus(Gtk::Stock::ADD),
+m_minus(Gtk::Stock::REMOVE),
+display(processor_hand),
+m_tool(MASK_TOOL_3P_CIRCLE)
+{
+    m_text.set_line_wrap();
+    mask.copyTo(m_mask);
+    display.setMaskPtr(&m_mask);
+    this->get_vbox()->pack_start(m_hbox);
+    m_text.set_markup(DRAW_MASK_TEXT);
+    m_hbox.pack_start(m_vbox2,false,false);
+    m_vbox2.pack_start(m_text,true,false);
+    m_vbox2.pack_start(m_rb_circle,true,false);
+    m_vbox2.pack_start(m_rb_conv_polyg,true,false);
+    m_vbox2.pack_start(m_hbox2,true,false);
+    m_hbox2.pack_start(m_plus,true,true);
+    m_hbox2.pack_start(m_minus,true,true);
+    Gtk::RadioButton::Group group = m_rb_circle.get_group();
+    m_rb_conv_polyg.set_group(group);
+    m_frame.add(display);
+    m_hbox.pack_start(m_frame,true,true);
+    m_vbox2.set_border_width(5);
+    m_frame.set_border_width(5);
+    this->get_vbox()->show_all();
+    this->add_button(Gtk::Stock::OK,Gtk::RESPONSE_OK);
+    this->add_button(Gtk::Stock::CANCEL,Gtk::RESPONSE_CANCEL);
+    this->get_vbox()->show();
+    display.signal_click_on_obj().connect(sigc::mem_fun(*this,&DrawMaskDial::on_points_changed));
+    m_rb_circle.signal_toggled().connect(sigc::mem_fun(*this,&DrawMaskDial::on_change_tool));
+    m_rb_conv_polyg.signal_toggled().connect(sigc::mem_fun(*this,&DrawMaskDial::on_change_tool));
+    m_plus.signal_clicked().connect(sigc::mem_fun(*this,&DrawMaskDial::on_new_shape));
+    m_minus.signal_clicked().connect(sigc::mem_fun(*this,&DrawMaskDial::on_remove_shape));
+    m_points.push_back(std::pair<std::vector<cv::Point2f>,int >(std::vector<cv::Point2f>(),m_tool));
+    updateButtons();
+}
+void DrawMaskDial::lockROI(){
+    if(m_pts.size() >2){
+        cv::Mat mat;
+        if(m_processor_hand.getSourceImgAsRGB(mat)){
+
+            if(m_points.empty())
+                m_points.resize(1);
+
+            m_points[m_points.size()-1] = std::pair<std::vector<cv::Point2f>,int >(m_pts,m_tool);
+            }
+        m_mask.setFromPoints(m_points,mat.cols,mat.rows);
+        }
+    }
+void DrawMaskDial::on_points_changed(){
+    m_pts = display.getPoints();
+    if (m_tool == MASK_TOOL_3P_CIRCLE && m_pts.size() == 3){
+        on_new_shape();
+    }
+    updateButtons();
+}
+void DrawMaskDial::on_change_tool(){
+    if(m_rb_circle.get_active())
+        m_tool = MASK_TOOL_3P_CIRCLE;
+    else if (m_rb_conv_polyg.get_active())
+        m_tool = MASK_TOOL_CONV_POLYGON;
+    display.emptyPoints();
+    m_pts = display.getPoints();
+    updateButtons();
+}
+void DrawMaskDial::on_new_shape(){
+    lockROI();
+    m_points.push_back(std::pair<std::vector<cv::Point2f>,int >(std::vector<cv::Point2f>(),m_tool));
+    display.emptyPoints();
+    m_pts = display.getPoints();
+    updateButtons();
+}
+void DrawMaskDial::updateButtons(){
+
+    const std::vector<cv::Point2f>& pts = display.getPoints();
+    if(m_tool == MASK_TOOL_3P_CIRCLE){
+        if(pts.size() == 3 && !m_points.empty())
+            m_plus.set_sensitive(true);
+        else
+            m_plus.set_sensitive(false);
+    }
+    else if(m_tool == MASK_TOOL_CONV_POLYGON){
+        if(pts.size() >2){
+            m_plus.set_sensitive();
+        }
+        else{
+            m_plus.set_sensitive(false);
+        }
+
+    }
+    if(m_points.size() < 2)
+        m_minus.set_sensitive(false);
+    else
+         m_minus.set_sensitive(true);
+}
+void DrawMaskDial::on_remove_shape(){
+    if(m_points.size() < 2)
+        return;
+    cv::Mat mat;
+    if(m_processor_hand.getSourceImgAsRGB(mat)){
+        display.emptyPoints();
+        m_points.pop_back();
+        m_points.pop_back();
+        m_mask.setFromPoints(m_points,mat.cols,mat.rows);
+        m_points.push_back(std::pair<std::vector<cv::Point2f>,int >(std::vector<cv::Point2f>(),m_tool));
+        display.forceRedraw();
+    }
+    updateButtons();
+}
+
diff --git a/src/gui/src/Gui_MouseHandler.cpp b/src/gui/src/Gui_MouseHandler.cpp
new file mode 100644
index 0000000..454a957
--- /dev/null
+++ b/src/gui/src/Gui_MouseHandler.cpp
@@ -0,0 +1,7 @@
+#include "Gui_MouseHandler.hpp"
+
+Gui_MouseHandler::Gui_MouseHandler()
+{
+    //ctor
+}
+
diff --git a/src/gui/src/Gui_MyApplication.cpp b/src/gui/src/Gui_MyApplication.cpp
new file mode 100644
index 0000000..e64ecf4
--- /dev/null
+++ b/src/gui/src/Gui_MyApplication.cpp
@@ -0,0 +1,34 @@
+#include "Gui_MyApplication.hpp"
+
+Gui_MyApplication::Gui_MyApplication(int argc,char** argv,Processor& pro):
+Gtk::Main(argc,argv),
+m_processor(pro),
+m_pro_hand(m_processor,m_opts),
+m_config(m_opts)
+{
+
+
+    DEV_INFOS("Building GUI");
+
+    std::string prefix;
+    #if defined _WIN64 || _WIN32
+        Gtk::Window::set_default_icon_list(m_icon_list);
+        m_icon_list.push_back(Gui_PixbufOpener::pixbufOpen(ICON128_IMG));
+        m_icon_list.push_back(Gui_PixbufOpener::pixbufOpen(ICON64_IMG));
+        m_icon_list.push_back(Gui_PixbufOpener::pixbufOpen(ICON48_IMG));
+        m_icon_list.push_back(Gui_PixbufOpener::pixbufOpen(ICON24_IMG));
+        Gtk::Window::set_default_icon_list(m_icon_list);
+    #else
+        Gtk::Window::set_default_icon_name 	("opencfu");
+    #endif
+
+
+    if(m_config.getHelloLevelRef() <2){
+        Gui_HelloWindow hello_window(m_config.getHelloLevelRef());
+        Gtk::Main::run(hello_window);
+    }
+
+    Gui_MyWindow my_window(m_pro_hand,m_config);
+    my_window.maximize();
+    Gtk::Main::run(my_window);
+}
diff --git a/src/gui/src/Gui_MyWindow.cpp b/src/gui/src/Gui_MyWindow.cpp
new file mode 100644
index 0000000..1fecdfc
--- /dev/null
+++ b/src/gui/src/Gui_MyWindow.cpp
@@ -0,0 +1,102 @@
+#include "Gui_MyWindow.hpp"
+
+
+
+Gui_MyWindow::Gui_MyWindow(Gui_ProcessorHandler& processor_hand, Gui_ConfigIO& config):
+     Gtk::Window(),
+
+     m_processor_hand(processor_hand),
+
+     m_controlPanel(m_processor_hand,m_result_map,config),
+     m_draw_frame(m_processor_hand,m_controlPanel.signal_show_decorator(),m_controlPanel.signal_show_mask()),
+     m_result_frame(m_processor_hand,m_controlPanel.signal_set_to_NA(),m_result_map),
+
+
+     m_Cursor_wait (Gdk::WATCH)
+{
+    DEV_INFOS(Glib::get_user_config_dir ());
+
+    this->set_title(PROGRAM_NAME);
+
+    this->set_border_width(10);
+    m_v_paned.set_border_width(5);
+
+
+    this->add(m_hbox);
+    m_hbox.pack_start(m_controlPanel,false,false);
+
+    m_hbox.pack_start(m_v_paned);
+    m_v_paned.pack1(m_draw_frame);
+    m_v_paned.pack2(m_result_frame);
+
+    this->show_all_children();
+    this->show();
+
+
+    /* Change the cursor when processing */
+    m_processor_hand.signal_state().connect( sigc::mem_fun(*this,&Gui_MyWindow::changeCursor));
+
+    /*For drag and drop*/
+    std::list<Gtk::TargetEntry> listTargets;
+    listTargets.push_back(Gtk::TargetEntry("text/uri-list"));
+    drag_dest_set(listTargets, Gtk::DEST_DEFAULT_MOTION | Gtk::DEST_DEFAULT_DROP, Gdk::ACTION_COPY | Gdk::ACTION_MOVE);
+    signal_drag_data_received().connect(sigc::mem_fun(*this, &Gui_MyWindow::on_dropped_file));
+    m_result_frame.signal_object_selected().connect(sigc::mem_fun(m_draw_frame, &Gui_DisplayFrame::on_show_specific_object));
+    m_draw_frame.signal_click_on_obj().connect(sigc::mem_fun(m_result_frame, &Gui_ResultFrame::on_click_object)) ;
+    m_ref_window = get_window();
+}
+
+
+//
+void Gui_MyWindow::on_realize(){
+    DEV_INFOS("window real");
+    Gtk::Window::on_realize();
+
+}
+
+
+bool Gui_MyWindow::on_delete_event(GdkEventAny* event){
+    DEV_INFOS("window real");
+
+    if (m_result_frame.isAllSaved()){
+        return false;
+        }
+    else{
+        Gtk::MessageDialog dial(NO_SAVE_WARNING_MAIN, true, Gtk::MESSAGE_WARNING,  Gtk::BUTTONS_YES_NO );
+        dial.set_secondary_text(NO_SAVE_WARNING_SECOND,true);
+        dial.set_transient_for(*this);
+//        *((Gtk::Window*) m_parent_widg->get_toplevel())
+        if (dial.run() == Gtk::RESPONSE_YES)
+            return false;
+        else
+            return true;
+    }
+}
+
+void Gui_MyWindow::changeCursor(int state){
+    if(state == PROCESSOR_IDLE_SIGNAL){
+        m_ref_window->set_cursor(m_Cursor_basic);
+    }
+    else
+        m_ref_window->set_cursor(m_Cursor_wait);
+
+}
+
+
+void Gui_MyWindow::on_dropped_file(const Glib::RefPtr<Gdk::DragContext>& context, int x, int y, const Gtk::SelectionData& selection_data, guint info, guint time){
+    std::vector<std::string> paths;
+    DEV_INFOS("D");
+    if ((selection_data.get_length() >= 0) && (selection_data.get_format() == 8)){
+        std::vector<Glib::ustring> file_list;
+        file_list = selection_data.get_uris();
+        for (auto &str: file_list){
+            paths.push_back(str);
+        }
+        context->drag_finish(true, false, time);
+    }
+    else
+        context->drag_finish(false, false, time);
+    m_signal_drag_and_drop.emit(paths);
+
+}
+
diff --git a/src/gui/src/Gui_OptionSetterBaseClass.cpp b/src/gui/src/Gui_OptionSetterBaseClass.cpp
new file mode 100644
index 0000000..313e8f7
--- /dev/null
+++ b/src/gui/src/Gui_OptionSetterBaseClass.cpp
@@ -0,0 +1,38 @@
+#include "Gui_OptionSetterBaseClass.hpp"
+
+Gui_OptionSetterBaseClass::Gui_OptionSetterBaseClass(Gui_ProcessorHandler& processor_hand, const std::string name):
+    Gtk::Frame(name),
+    m_processor_hand(processor_hand),
+    m_opts(m_processor_hand.getOptions())
+{
+
+    this->add(m_vbox);
+    this->set_border_width(3);
+    Gtk::Label* l;
+    l = (Gtk::Label*) this->get_label_widget();
+    l->set_use_markup();
+    m_signal_change_options.connect(sigc::mem_fun(*this,&Gui_OptionSetterBaseClass::setOption));
+    set_has_tooltip();
+}
+
+Gui_OptionSetterBaseClass::~Gui_OptionSetterBaseClass()
+{
+}
+
+bool Gui_OptionSetterBaseClass::setOption(){
+    DEV_INFOS("Setting an option: " + std::string(typeid(*this).name()));
+    bool result = lockMutexAndUpdate();
+    if(!result){
+        DEV_INFOS("did not work !");
+    }
+    else{
+         m_processor_hand.onRunProcess();
+    }
+    return result;
+
+}
+
+bool Gui_OptionSetterBaseClass::lockMutexAndUpdate(){
+    Glib::Mutex::Lock lock (m_processor_hand.getMutex());
+    return this->updateOptions();
+}
diff --git a/src/gui/src/Gui_PixbufOpener.cpp b/src/gui/src/Gui_PixbufOpener.cpp
new file mode 100644
index 0000000..3620eb0
--- /dev/null
+++ b/src/gui/src/Gui_PixbufOpener.cpp
@@ -0,0 +1,29 @@
+#include "Gui_PixbufOpener.hpp"
+
+
+ Glib::RefPtr<Gdk:: Pixbuf > Gui_PixbufOpener::pixbufOpen(const std::string& name){
+    GFileTest test =  G_FILE_TEST_EXISTS;
+        std::string path = "./"+name;
+        DEV_INFOS("TRYING TO OPEN LOCALY "<<name<<" at "<<path);
+        if(!g_file_test(path.c_str(),test)){
+            DEV_INFOS("NO LOCAL FILE -> falling back on installed files");
+                std::string prefix;
+                #if defined _WIN64 || defined _WIN32
+                prefix = "..";
+                #else
+                prefix = INSTALLDIR;
+                #endif
+                path = prefix+"/"+name;
+
+                DEV_INFOS("TRYING TO OPEN LOCALY "<<name<<" at "<<path);
+
+                if(!g_file_test(path.c_str(),test)){
+                    DEV_INFOS("NO INSTALLED FILE");
+                    //todo exeption
+
+                }
+        }
+               Glib::RefPtr<Gdk:: Pixbuf >  pb = Gdk::Pixbuf::create_from_file(path);
+        //todo check
+    return pb;
+ }
diff --git a/src/gui/src/Gui_ProcessorHandler.cpp b/src/gui/src/Gui_ProcessorHandler.cpp
new file mode 100644
index 0000000..c79e335
--- /dev/null
+++ b/src/gui/src/Gui_ProcessorHandler.cpp
@@ -0,0 +1,72 @@
+#include "Gui_ProcessorHandler.hpp"
+
+Gui_ProcessorHandler::Gui_ProcessorHandler(Processor& processor,ProcessingOptions& opts):
+    m_processor(processor),
+    m_opts(opts),
+    m_to_process(false),
+    m_end_process(false),
+    m_filter(new cv::Mat)
+{
+    m_thread = Glib::Thread::create(sigc::mem_fun(*this,&Gui_ProcessorHandler::runProcessOnThread),true);
+
+    m_dispa_idle.connect( sigc::bind(sigc::mem_fun(m_signal_state,&sigc::signal<void, int>::emit),PROCESSOR_IDLE_SIGNAL));
+    m_dispa_working.connect( sigc::bind(sigc::mem_fun(m_signal_state,&sigc::signal<void, int>::emit),PROCESSOR_WORKING_SIGNAL));
+}
+
+
+Gui_ProcessorHandler::~Gui_ProcessorHandler(){
+    m_end_process = true; //request thread to stop
+    m_thread->join(); //wait for thread to stop;
+}
+void Gui_ProcessorHandler::onRunProcess(){
+    DEV_INFOS("Asking processor to re run");
+    m_to_process = true;
+}
+
+void Gui_ProcessorHandler::runProcessOnThread(){
+    while(!m_end_process){
+        Glib::Timer timer;
+        if(m_to_process){
+
+            {
+            Glib::Mutex::Lock lock (m_mutex);
+            DEV_INFOS("DBG SETTING PROC OPTIONS filter size :"<<m_opts.getGUIFilter().rows);
+            m_processor.setOptions(m_opts);
+            }
+
+
+            m_dispa_working.emit();
+
+            m_to_process = false;
+            m_processor.runAll();
+            const Result& result(m_processor.getNumResult());
+            {
+            Glib::Mutex::Lock lock (m_mutex_result);
+            m_result = result;
+            }
+
+
+            int us_to_sleep = std::max<int>(10e3 - int(timer.elapsed()*1e6),0);
+            Glib::usleep(us_to_sleep);
+
+            if(!m_to_process){
+               m_dispa_idle.emit();
+            }
+
+            tryResetFilter();
+        }
+
+        int us_to_sleep = std::max<int>(10e3 - int(timer.elapsed()*1e6),0);
+        Glib::usleep(us_to_sleep);
+
+
+    }
+
+}
+
+
+void Gui_ProcessorHandler::tryResetFilter(){
+    if(!m_result.getSameObjects() || m_filter->empty())
+        cv::Mat(m_result.size(),1,CV_8S,cv::Scalar(-1)).copyTo(*m_filter);
+
+}
diff --git a/src/gui/src/Gui_RadiusSetter.cpp b/src/gui/src/Gui_RadiusSetter.cpp
new file mode 100644
index 0000000..6a18362
--- /dev/null
+++ b/src/gui/src/Gui_RadiusSetter.cpp
@@ -0,0 +1,55 @@
+#include "Gui_RadiusSetter.hpp"
+
+Gui_RadiusSetter::Gui_RadiusSetter(Gui_ProcessorHandler& processor_hand,const std::string str):
+    Gui_OptionSetterBaseClass(processor_hand,str),
+    m_adjust_min(m_processor_hand.getOptions().getMinMaxRad().first, 0.0, 9999.0, 1.0, 10.0, 0.0),
+    m_adjust_max(m_processor_hand.getOptions().getMinMaxRad().second, 0.0, 9999.0, 1.0, 10.0, 0.0),
+    m_spin_butt_min(m_adjust_min),
+    m_spin_butt_max(m_adjust_max),
+    m_check_butt(LABEL_CHECKBUTTON_MAX_RAD),
+    m_lab_min(LABEL_MIN_RAD),
+    m_lab_max(LABEL_MAX_RAD)
+{
+    set_tooltip_text(TOOLTIP_RAD_SETTER);
+    m_check_butt.set_active(!m_processor_hand.getOptions().getHasMaxRad());
+    this->m_vbox.add(m_hbox2);
+    m_hbox2.add(m_spin_butt_min);
+    m_hbox2.add(m_lab_min);
+    m_hbox2.add(m_spin_butt_max);
+    m_hbox2.add(m_lab_max);
+    m_hbox2.add(m_check_butt);
+    m_spin_butt_min.signal_value_changed().connect(sigc::mem_fun(*this,&Gui_RadiusSetter::on_MinRadChanged));
+    m_spin_butt_max.signal_value_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_RadiusSetter::setOption)));
+    m_check_butt.signal_toggled().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_RadiusSetter::setOption)  ) );
+}
+
+bool Gui_RadiusSetter::updateOptions(){
+    DEV_INFOS("Trying to send a processing option");
+    int val_min = m_spin_butt_min.get_value();
+    int val_max = m_spin_butt_max.get_value();
+//
+    if(val_min > val_max){
+        m_spin_butt_max.set_value(val_min);
+        val_max = val_min;
+    }
+
+    bool tmp_bool = m_opts.setMinMaxRad(std::pair<int,int>(val_min,val_max));
+    bool auto_max_rad = m_check_butt.get_active();
+
+    if(auto_max_rad){
+        m_spin_butt_max.set_sensitive(false);
+    }
+    else{
+        m_spin_butt_max.set_sensitive();
+    }
+    m_opts.setHasMaxRad(!auto_max_rad);
+
+    return tmp_bool ;
+}
+
+void Gui_RadiusSetter::updateNFiles(int i){
+    if(i == 0)
+        this->hide_all();
+    else
+        this->show_all();
+}
diff --git a/src/gui/src/Gui_ResultDetails.cpp b/src/gui/src/Gui_ResultDetails.cpp
new file mode 100644
index 0000000..310d6a4
--- /dev/null
+++ b/src/gui/src/Gui_ResultDetails.cpp
@@ -0,0 +1,208 @@
+#include "Gui_ResultDetails.hpp"
+#include <sstream>
+
+Gui_ResultDetails::Gui_ResultDetails(sigc::signal<void,Glib::RefPtr<Gio::File>,int>& signal_update_result_map,
+                                      sigc::signal<void,int>& signal_select_object,
+                                      sigc::signal<void,int,bool>& signal_toggle_object,
+                                      ResultMap& result_map):
+    Gui_ResultDisplayBaseClass(signal_update_result_map, result_map),
+     m_signal_select_object(signal_select_object),
+     m_signal_toggle_object(signal_toggle_object),
+     m_unselect("Unselect")
+   {
+
+    DEV_INFOS("RESUlt detail");
+    set_tooltip_text(TOOLTIP_RESULT_LIST_DET);
+    m_label.set_markup(RESULT_DETAIL_TITLE);
+
+    Gtk::TreeView::Column* tmp_col;
+
+    int c=0;
+    m_tree_view.append_column("ID", m_col_model.m_id);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_id);
+
+
+    ++c;
+    Gtk::CellRendererToggle* renderer_active = Gtk::manage( new Gtk::CellRendererToggle());
+    renderer_active->signal_toggled().connect( sigc::mem_fun(*this, & Gui_ResultDetails::on_cell_toggled));
+    Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column("Valid"));
+    column->pack_start(*renderer_active, false);
+    column->add_attribute(renderer_active->property_active (), m_col_model.m_valid);
+    m_tree_view.append_column(*column);
+    column->set_sort_column(m_col_model.m_valid);
+
+    m_tree_view.append_column("X", m_col_model.m_x);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_x);
+
+    m_tree_view.append_column("Y", m_col_model.m_y);
+        tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_y);
+
+    m_tree_view.append_column("ROI", m_col_model.m_roi);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_roi);
+
+
+
+    m_tree_view.append_column("Area", m_col_model.m_area);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_area);
+
+
+    m_tree_view.append_column("Radius", m_col_model.m_radius);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_radius);
+
+
+    m_tree_view.append_column("R", m_col_model.m_R);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_R);
+
+    m_tree_view.append_column("G", m_col_model.m_G);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_G);
+
+    m_tree_view.append_column("B", m_col_model.m_B);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_B);
+
+
+    m_tree_view.append_column("Hue", m_col_model.m_Hue);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_Hue);
+
+
+    m_tree_view.append_column("Sat", m_col_model.m_Sat);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_Sat);
+
+
+    m_tree_view.append_column("Neighbours", m_col_model.m_NinClust);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_NinClust);
+
+    //NJL 01/SEP/2014
+    m_tree_view.append_column("Cluster ID", m_col_model.m_cluster_id);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_cluster_id);
+
+
+    Gtk::CellRenderer *cell = m_tree_view.get_column_cell_renderer(0);
+    Gtk::CellRendererText* cell_text = (Gtk::CellRendererText*) cell;
+
+
+
+    Glib::PropertyProxy< Pango::AttrList > pango_attrs = cell_text->property_attributes();
+    Pango::Attribute attr = Pango::Attribute::create_attr_weight(Pango::WEIGHT_BOLD );
+    Pango::AttrList my_list;
+    my_list.insert(attr);
+    pango_attrs.set_value(my_list);
+
+
+    m_ref_tree_model = Gtk::ListStore::create(m_col_model);
+    m_tree_view.set_model(m_ref_tree_model);
+//    m_scrolled_window.add(m_tree_view);
+
+    m_hbox.pack_start(m_unselect,false,false);
+
+    m_ref_tree_selection = m_tree_view.get_selection();
+    m_ref_tree_selection->signal_changed().connect(sigc::mem_fun(*this, &Gui_ResultDetails::on_selection_changed));
+
+    m_unselect.signal_clicked().connect(sigc::mem_fun(*this, &Gui_ResultDetails::on_unselect));
+
+    DEV_INFOS("RESUlt detail OK");
+   }
+
+
+void Gui_ResultDetails::updateView(Glib::RefPtr<Gio::File> file, int idx){
+    DEV_INFOS("Updating view");
+    type_children children = m_ref_tree_model->children();
+    const Result& res(m_result_map.getResultAt(idx));
+    const bool NA (m_result_map.getIsNAAt(idx));
+    if(NA)
+        m_scrolled_window.set_sensitive(false);
+    else
+        m_scrolled_window.set_sensitive(true);
+
+    unsigned int N = (int) res.size();
+
+    if( N == children.size() && file->equal(m_old_file)){
+        int i = 0;
+        int sort_col = -1;
+        Gtk::SortType order;
+        m_ref_tree_model->get_sort_column_id(sort_col, order);
+        m_ref_tree_model->set_sort_column(0,Gtk::SortType::SORT_ASCENDING );
+
+        for(type_children::iterator iter = children.begin(); iter != children.end(); ++iter,++i){
+            const OneObjectRow& oor = res.getRow(i);
+            Gtk::TreeModel::Row row = *iter;
+
+            setOneRow(row,oor,i);
+        }
+
+        m_ref_tree_model->set_sort_column(sort_col,order);
+
+    }
+    else{
+        m_signal_select_object.emit(-1);
+        m_ref_tree_model->clear();
+
+        for(unsigned int i = 0; i != N; ++i){
+            const OneObjectRow& oor = res.getRow(i);
+            Gtk::TreeModel::Row row = *(m_ref_tree_model->append());
+            setOneRow(row,oor,i);
+        }
+    }
+    m_old_file = file;
+}
+
+void Gui_ResultDetails::setOneRow(Gtk::TreeModel::Row& row, const OneObjectRow& oor, const unsigned int i){
+
+    row[m_col_model.m_id] = i;
+    row[m_col_model.m_valid] = oor.isValid();
+    cv::Point2f midpoint((oor.getPoint(0) + oor.getPoint(2)) * 0.5);
+    row[m_col_model.m_x] = midpoint.x;
+    row[m_col_model.m_y] = midpoint.y;
+    row[m_col_model.m_roi] = oor.getROI();
+    row[m_col_model.m_area] = oor.getArea();
+    row[m_col_model.m_radius] = oor.getRadius();
+    cv::Scalar colour = oor.getBGRMean();
+    row[m_col_model.m_R] = colour[2];
+    row[m_col_model.m_G] = colour[1];
+    row[m_col_model.m_B] = colour[0];
+    row[m_col_model.m_Hue] = oor.getHue();
+    row[m_col_model.m_Sat] = oor.getSat();
+    row[m_col_model.m_NinClust] = oor.getNInClust();
+    std::stringstream ss;
+    if (oor.getColorClusterID() == 0)
+        ss<<"NA";
+    else
+        ss<<oor.getColorClusterID();
+    row[m_col_model.m_cluster_id] = ss.str(); //NJL 13/AUG/2014
+}
+
+
+type_children::iterator Gui_ResultDetails::findWichRow(type_children children,int idx){
+    for(type_children::iterator iter = children.begin(); iter != children.end(); ++iter){
+        Gtk::TreeModel::Row tmp_row = *iter;
+        if (tmp_row[m_col_model.m_id] == idx ){
+                return iter;
+            }
+    }
+    return children.end();
+}
diff --git a/src/gui/src/Gui_ResultDisplayBaseClass.cpp b/src/gui/src/Gui_ResultDisplayBaseClass.cpp
new file mode 100644
index 0000000..3d292bb
--- /dev/null
+++ b/src/gui/src/Gui_ResultDisplayBaseClass.cpp
@@ -0,0 +1,25 @@
+#include "Gui_ResultDisplayBaseClass.hpp"
+
+Gui_ResultDisplayBaseClass::Gui_ResultDisplayBaseClass(sigc::signal<void,Glib::RefPtr<Gio::File>,int>& signal_update_result_map, ResultMap& result_map):
+    m_signal_update_result_map(signal_update_result_map),
+    m_result_map(result_map)
+{
+    set_has_tooltip();
+    add(m_vbox);
+    m_vbox.pack_start(m_label,false,false);
+    m_vbox.pack_start(m_scrolled_window,true,true);
+
+    m_vbox.pack_start(m_hbox,false,false);
+    m_scrolled_window.add(m_tree_view);
+
+}
+
+void Gui_ResultDisplayBaseClass::on_realize(){
+
+    m_signal_update_result_map.connect(sigc::mem_fun(*this,&Gui_ResultDisplayBaseClass::on_update_view));
+    Gtk::Frame::on_realize();
+}
+
+Gui_ResultDisplayBaseClass::~Gui_ResultDisplayBaseClass()
+{
+}
diff --git a/src/gui/src/Gui_ResultFileWriter.cpp b/src/gui/src/Gui_ResultFileWriter.cpp
new file mode 100644
index 0000000..dfbb352
--- /dev/null
+++ b/src/gui/src/Gui_ResultFileWriter.cpp
@@ -0,0 +1,153 @@
+    #include "Gui_ResultFileWriter.hpp"
+
+
+    Gui_ResultFileWriter::Gui_ResultFileWriter(Gtk::Widget* parent):
+        m_parent_widg(parent),m_up_to_date(true)
+    {
+
+    }
+
+
+
+    void Gui_ResultFileWriter::writeHeader(const bool detail,const ResultMap& res_map, const std::vector<int>& idxs){
+
+        Glib::RefPtr< Gio::FileOutputStream > fout = m_out_file->replace();
+        std::stringstream ss;
+        if(detail){
+                ss << "Full_Path, "<<OneObjectRow::printHeader()<<", Comment"<<std::endl;
+        }
+        else{
+            ss<<"ID, File_name, ROI, N_Objects, N_Excluded, Cluster1, Cluster2, Cluster3, Comment, Full_Path, ClusterDetail"<<std::endl;
+        }
+        DEV_INFOS(ss.str());
+        fout->write(ss.str());
+        fout->close();
+    }
+
+    void Gui_ResultFileWriter::writeRows(const bool detail,const ResultMap& res_map,const std::vector<int>& idxs){
+        Glib::RefPtr< Gio::FileOutputStream > fout = m_out_file->append_to();
+
+
+        if(detail){
+            for (auto i : idxs){
+                const Result& res_ref = res_map.getResultAt(i);
+
+                const std::string& path = (res_map.getFileFromIdx(i)->get_path());
+                const std::string& comment = res_map.getCommentAt(i);
+
+                if(!res_map.getIsNAAt(i)){
+                    for (unsigned int j=0; j<res_ref.size();++j){
+                        std::stringstream ss;
+                        const OneObjectRow& oor = res_ref.getRow(j);
+                        ss <<"\""<<path<<"\", "<< oor.print()<<", \""<<comment<<"\""<<std::endl;
+                        fout->write(ss.str());
+                    }
+                }
+            }
+        }
+        else{
+            for (auto i : idxs){
+                const Result& res_ref = res_map.getResultAt(i);
+                Glib::RefPtr<Gio::File> tmp_file = res_map.getFileFromIdx(i);
+                const std::vector<int> roi_keys = res_ref.getROIs();
+                const std::string& comment = res_map.getCommentAt(i);
+
+                std::map < unsigned int,std::pair<unsigned int,unsigned int> > table;
+                table[0].first = res_ref.getNValid();
+                table[0].second =  res_ref.size() - res_ref.getNValid();
+                for(unsigned int i=0; i != (unsigned int)res_ref.size(); ++i){
+                    OneObjectRow object = res_ref.getRow(i);
+                    int roi = object.getROI();
+                    if (roi > 0){
+                        if(object.getGUIValid() && object.isValid()) //otherwise colour filters etc. don't work
+                            ++(table[roi].first);
+                        else
+                            ++(table[roi].second);
+                    }
+                }
+
+
+                for (auto &it : table){
+                    int roi = it.first;
+                    if ((table.size() == 1) || (roi >= 1)){
+
+                        std::stringstream ss;
+                        ss  <<i<<","
+                            <<"\""<<tmp_file->get_basename()<<"\""<<","
+                            <<roi<<",";
+
+                        if(!res_map.getIsNAAt(i)){
+                            ss<<it.second.first<<","
+                            <<it.second.second<<",";
+                        }
+                        else{
+                            ss<<"NA,NA,";
+                        }
+                            ss<<res_ref.getROIClusterData(roi).clusterPop(1)<<","
+                            <<res_ref.getROIClusterData(roi).clusterPop(2)<<","
+                            <<res_ref.getROIClusterData(roi).clusterPop(3)<<","
+                            <<"\""<<comment<<"\""<<","
+                            <<"\""<<tmp_file->get_path()<<"\","
+                            <<"\""<<res_ref.getROIClusterData(roi).str()<<"\""<<std::endl;
+
+                        fout->write(ss.str());
+                    }
+                }
+            }
+        }
+        fout->flush ();
+        fout->close();
+
+    }
+    bool Gui_ResultFileWriter::saveSelection(const ResultMap& res_map, const std::vector<int>& idxs){
+
+        if(idxs.empty()){
+            NoSelectionMessage msg;
+            msg.set_transient_for(*((Gtk::Window*) m_parent_widg->get_toplevel()));
+            msg.run();
+            return false;
+        }
+        Glib::ustring file_uri;
+
+        bool detailed_result(false);
+
+        while(file_uri.empty()){
+            int result;
+            {
+            SaveModeMessage save_mode;
+            save_mode.set_transient_for(*((Gtk::Window*) m_parent_widg->get_toplevel()));
+            result = save_mode.run();
+            }
+            switch(result){
+                case Gtk::RESPONSE_ACCEPT: //summary
+                    detailed_result = false;
+                    break;
+                case Gtk::RESPONSE_OK: //Detail
+                    detailed_result = true;
+                    break;
+
+                default:
+                    return false;
+                    break;
+            }
+            std::string dir_uri;
+
+            if(m_out_file)
+                if (m_out_file->query_exists())
+                    dir_uri = m_out_file->get_uri();
+
+
+            SaveFileChooser file_chooser(dir_uri);
+            file_chooser.set_transient_for(*((Gtk::Window*) m_parent_widg->get_toplevel()));
+            result = file_chooser.run();
+            if(result == Gtk::RESPONSE_OK)
+                file_uri = file_chooser.get_uri();
+        }
+
+        m_out_file = Gio::File::create_for_uri(file_uri);
+
+        writeHeader(detailed_result,res_map,idxs);
+        writeRows(detailed_result,res_map,idxs);
+        m_up_to_date = true;
+        return true;
+    }
diff --git a/src/gui/src/Gui_ResultFrame.cpp b/src/gui/src/Gui_ResultFrame.cpp
new file mode 100644
index 0000000..d918415
--- /dev/null
+++ b/src/gui/src/Gui_ResultFrame.cpp
@@ -0,0 +1,55 @@
+
+#include "Gui_ResultFrame.hpp"
+
+
+Gui_ResultFrame::Gui_ResultFrame(Gui_ProcessorHandler& processor_hand, sigc::signal<void,bool>& signal_set_to_NA, ResultMap& result_map):
+    m_result_map(result_map),
+    m_processor_hand(processor_hand),
+    m_result_display(m_signal_update_result_map, m_result_map),
+    m_result_detail(m_signal_update_result_map,m_signal_select_object,m_signal_toggle_object, m_result_map),
+    m_user_filter(m_processor_hand)
+{
+    DEV_INFOS("RESUlt frame");
+    this->pack1(m_result_display);
+    this->pack2(m_result_detail);
+    processor_hand.signal_state().connect( sigc::mem_fun(*this,&Gui_ResultFrame::on_processor_idle));
+    signal_set_to_NA.connect( sigc::mem_fun(*this,&Gui_ResultFrame::on_set_current_to_NA));
+    m_signal_toggle_object.connect( sigc::mem_fun(m_user_filter,&Gui_UserFilterSetter::on_toggle_object));
+//    signal_set_to_NA.connect( sigc::mem_fun(m_result_display,&Gui_ResultListDisplay::on_setToNA));
+    DEV_INFOS("RESUlt frame OK");
+}
+void Gui_ResultFrame::on_click_object(int i,int but){
+            DEV_INFOS("The mouse button "<< but <<" was clicked on the object "<<i);
+            if(but == 1)
+                m_result_detail.set_selection(i);
+
+
+            m_user_filter.on_click_object(i,but);
+        }
+
+void Gui_ResultFrame::on_realize(){
+    set_position(this->get_allocation().get_width() / 2);
+    Gtk::HPaned::on_realize();
+}
+void Gui_ResultFrame::on_set_current_to_NA(bool NA){
+    std::string tmp_name  = m_processor_hand.getOptions().getImageName();
+    Glib::RefPtr<Gio::File> file;
+    file = Gio::File::create_for_path(tmp_name);
+    int where = m_result_map.setFileToNA(file,NA);
+    m_signal_update_result_map.emit(file,where);
+}
+
+void Gui_ResultFrame::on_processor_idle(int state){
+    if (state == PROCESSOR_IDLE_SIGNAL){
+
+        std::string tmp_name  = m_processor_hand.getOptions().getImageName();
+        Glib::RefPtr<Gio::File> file;
+        file = Gio::File::create_for_path(tmp_name);
+        const Result& tmp_res = m_processor_hand.getNumResult();
+        int where = m_result_map.append(file,tmp_res);
+
+        m_signal_update_result_map.emit(file,where);
+    }
+
+
+}
diff --git a/src/gui/src/Gui_ResultLabel.cpp b/src/gui/src/Gui_ResultLabel.cpp
new file mode 100644
index 0000000..c3ab16b
--- /dev/null
+++ b/src/gui/src/Gui_ResultLabel.cpp
@@ -0,0 +1,134 @@
+
+#include "Gui_ResultLabel.hpp"
+
+Gui_ResultLabel::Gui_ResultLabel(Gui_ProcessorHandler& processor_hand,ResultMap& result_map):
+ m_processor_hand(processor_hand),
+ m_lab_line_width(LABEL_SET_DECO_LINE_WIDTH),
+ m_check_butt_show_object(RESULT_LIST_CHECKBUTTON),
+ m_check_butt_NA("Set as NA"),
+ m_adjust_line_width(1.0, 0.0, 10.0, 0.1,1.0, 0.0),
+ m_spin_butt_line_width(m_adjust_line_width),
+ m_is_result_NA(false),
+ m_result_map(result_map)
+{
+    DEV_INFOS("building result label");
+    set_has_tooltip();
+
+    set_tooltip_text(TOOLTIP_RESULT_LAB);
+    m_check_butt_NA.set_tooltip_text(TOOLTIP_RESULT_LAB_NA);
+    m_check_butt_show_object.set_tooltip_text(TOOLTIP_RESULT_LAB_DECO);
+    m_spin_butt_line_width.set_tooltip_text(TOOLTIP_RESULT_LAB_LINE_WIDTH);
+
+
+    this->set_border_width(3);
+    this->add(m_vbox);
+    m_vbox.pack_start(m_hbox,false,false);
+    m_vbox.pack_start(m_progress_bar,false,false);
+    m_hbox.pack_start(m_lab_text);
+
+    m_hbox.pack_end(m_check_butt_NA);
+    m_hbox.pack_end(m_lab_res);
+
+    m_vbox.pack_start(m_hbox2);
+    m_hbox2.pack_start(m_check_butt_show_object);
+
+    m_hbox2.pack_end(m_spin_butt_line_width);
+    m_hbox2.pack_end(m_lab_line_width);
+    m_check_butt_show_object.set_active();
+
+    m_spin_butt_line_width.set_digits(1);
+
+    m_processor_hand.signal_state().connect( sigc::mem_fun(*this,&Gui_ResultLabel::on_processorHandSignal));
+    m_spin_butt_line_width.signal_value_changed().connect( sigc::mem_fun(*this ,&Gui_ResultLabel::on_show_deco));
+    m_check_butt_show_object.signal_clicked().connect( sigc::mem_fun(*this ,&Gui_ResultLabel::on_show_deco));
+    m_check_butt_NA.signal_clicked().connect( sigc::mem_fun(*this ,&Gui_ResultLabel::on_set_NA));
+    DEV_INFOS("result label ok");
+}
+
+void Gui_ResultLabel::on_set_NA(){
+    m_is_result_NA = m_check_butt_NA.get_active();
+    m_signal_set_to_NA.emit(m_is_result_NA);
+    updateLabel();
+}
+
+
+void Gui_ResultLabel::on_show_deco(){
+    double lw = m_spin_butt_line_width.get_value();
+    bool show = m_check_butt_show_object.get_active();
+
+    if(show)
+        m_spin_butt_line_width.set_sensitive(true);
+    else
+        m_spin_butt_line_width.set_sensitive(false);
+    m_signal_hide_show_decor.emit(show,lw);
+}
+bool Gui_ResultLabel::on_pulse(){
+
+    if(m_state == PROCESSOR_IDLE_SIGNAL)
+        return false;
+    else{
+        m_progress_bar.pulse();
+        return true;
+    }
+}
+
+void Gui_ResultLabel::updateNFiles(int i){
+    if(i == 0)
+        this->hide_all();
+    else
+        this->show_all();
+}
+
+void Gui_ResultLabel::on_processorHandSignal(int state){
+    if(m_state != state){
+        m_state = state;
+        updateLabel();
+
+        std::string tmp_name  = m_processor_hand.getOptions().getImageName();
+        Glib::RefPtr<Gio::File> file;
+        file = Gio::File::create_for_path(tmp_name);
+        DEV_INFOS(tmp_name);
+        DEV_INFOS((int) !m_result_map.getIsFileNA(file));
+
+        if( !file->equal(m_last_file)){
+            if(!m_result_map.getIsFileNA(file))
+                m_check_butt_NA.set_active(false);
+            else
+                m_check_butt_NA.set_active(true);
+            m_last_file = file;
+           }
+
+
+    }
+}
+
+void Gui_ResultLabel::updateLabel(){
+    const Result& result = m_processor_hand.getNumResult();
+
+
+
+    std::stringstream ss;
+    if(m_state != PROCESSOR_IDLE_SIGNAL){
+        m_lab_text.set_markup(RESULT_LABEL_BUSY);
+        m_progress_bar.show();
+        Glib::signal_timeout().connect(sigc::mem_fun(*this,&Gui_ResultLabel::on_pulse), 33);
+        m_check_butt_NA.hide();
+    }
+    else{
+            DEV_INFOS((int)m_is_result_NA);
+             m_lab_text.set_markup(RESULT_LABEL_IDLE);
+        if(!m_is_result_NA){
+            ss  <<"<span font_size=\"x-large\"><b>"
+                <<result.getNValid()
+                <<"</b></span><sub>/"
+                <<result.size()<<"</sub>";
+        }
+        else{
+            ss  <<"<span font_size=\"x-large\"><b>NA</b></span><sub>/NA</sub>";
+        }
+            m_progress_bar.set_fraction(1.0);
+            m_check_butt_NA.show();
+    }
+    m_lab_res.set_markup(ss.str());
+
+}
diff --git a/src/gui/src/Gui_ResultListDisplay.cpp b/src/gui/src/Gui_ResultListDisplay.cpp
new file mode 100644
index 0000000..3800b22
--- /dev/null
+++ b/src/gui/src/Gui_ResultListDisplay.cpp
@@ -0,0 +1,340 @@
+#include "Gui_ResultListDisplay.hpp"
+
+Gui_ResultListDisplay::Gui_ResultListDisplay(sigc::signal<void,Glib::RefPtr<Gio::File>,int>& signal_update_result_map, ResultMap& result_map):
+    Gui_ResultDisplayBaseClass(signal_update_result_map, result_map),
+    m_save_selected(TEXT_SAVE_SELECTED_RESULT),m_save_all(TEXT_SAVE_ALL_RESULT),m_delete_selected(TEXT_DELETE_SELECTED_RESULT),
+    m_file_writer(this)
+
+   {
+
+    set_tooltip_text(TOOLTIP_RESULT_LIST_SIMPL);
+    m_label.set_markup(RESULT_LIST_TITLE);
+
+    Gtk::TreeView::Column* tmp_col;
+
+    int c=0;
+    m_tree_view.append_column("ID", m_col_model.m_col_id);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_id);
+
+    m_tree_view.append_column("File name", m_col_model.m_col_name);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_name);
+
+
+    m_tree_view.append_column("#Objects", m_col_model.m_col_n_objects);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_n_objects);
+
+    m_tree_view.append_column("#Excluded", m_col_model.m_col_n_excluded);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_n_excluded);
+/**
+    m_tree_view.append_column("#C1", m_col_model.m_col_clust1);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_clust1);
+
+    m_tree_view.append_column("#C2", m_col_model.m_col_clust2);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_clust2);
+
+    m_tree_view.append_column("#C3", m_col_model.m_col_clust3);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_clust3);
+*/
+
+    ++c;
+    Gtk::CellRendererText* renderer_name = Gtk::manage( new Gtk::CellRendererText() );
+    renderer_name->property_editable() = true;
+    Gtk::TreeView::Column* column = Gtk::manage( new Gtk::TreeView::Column("Comment"));
+    column->pack_start(*renderer_name, false);
+    column->add_attribute(renderer_name->property_text(), m_col_model.m_comment);
+    m_tree_view.append_column(*column);
+    column->set_sort_column(m_col_model.m_comment);
+    renderer_name->signal_edited().connect(sigc::mem_fun(*this, &Gui_ResultListDisplay::on_edit_comment));
+
+    Glib::PropertyProxy< Pango::AttrList > pango_attrs = renderer_name->property_attributes();
+    Pango::Attribute attr = Pango::Attribute::create_attr_weight(Pango::WEIGHT_BOLD );
+    Pango::AttrList my_list;
+    my_list.insert(attr);
+    pango_attrs.set_value(my_list);
+
+
+    m_tree_view.append_column("Full Path", m_col_model.m_col_path);
+    tmp_col = m_tree_view.get_column(c++);
+    if(tmp_col)
+      tmp_col->set_sort_column(m_col_model.m_col_path);
+
+//    Gtk::CellRenderer *cell = m_tree_view.get_column_cell_renderer(1);
+//    Gtk::CellRendererText* cell_text = (Gtk::CellRendererText*) cell;
+//
+//    Glib::PropertyProxy< Pango::AttrList > pango_attrs = cell_text->property_attributes();
+//    Pango::Attribute attr = Pango::Attribute::create_attr_weight(Pango::WEIGHT_BOLD );
+//    Pango::AttrList my_list;
+//    my_list.insert(attr);
+//    pango_attrs.set_value(my_list);
+
+
+    m_ref_tree_model = Gtk::TreeStore::create(m_col_model);
+    m_tree_view.set_model(m_ref_tree_model);
+
+
+    m_ref_tree_selection = m_tree_view.get_selection();
+    m_ref_tree_selection ->set_mode(Gtk::SELECTION_MULTIPLE);
+
+    m_hbox.pack_start(m_save_all,false,false);
+    m_hbox.pack_start(m_save_selected,false,false);
+    m_hbox.pack_start(m_delete_selected,false,false);
+
+    m_save_all.signal_clicked().connect( sigc::mem_fun(*this,&Gui_ResultListDisplay::on_save_all) );
+    m_save_selected.signal_clicked().connect( sigc::mem_fun(*this,&Gui_ResultListDisplay::on_save) );
+    m_delete_selected.signal_clicked().connect( sigc::mem_fun(*this,&Gui_ResultListDisplay::on_delete) );
+
+   }
+
+void Gui_ResultListDisplay::updateView(Glib::RefPtr<Gio::File> file, int idx){
+    type_children children = m_ref_tree_model->children();
+    DEV_INFOS("Updating view");
+    Gtk::TreeModel::Row row;
+
+    row = *findWichRow(children,idx);
+
+
+    if(row == children.end())
+        row = *(m_ref_tree_model->append());
+
+
+
+
+    const Result& res(m_result_map.getResultAt(idx));
+    const bool NA (m_result_map.getIsNAAt(idx));
+    const bool hasClusters = (res.getROIClusterData(0).clusterPop(1) >= 1);
+
+    int N = (int) res.getNValid();
+    int N_excl = (int) res.size() - res.getNValid();
+    row[m_col_model.m_col_id] = idx;
+    row[m_col_model.m_col_name] = file->get_basename();
+    row[m_col_model.m_col_path] = file->get_path();
+    row[m_col_model.m_comment] = m_result_map.getCommentAt(idx);
+
+    std::map < unsigned int,std::pair<unsigned int,unsigned int> > table;
+    for(unsigned int i=0; i != (unsigned int)res.size(); ++i){
+        OneObjectRow object = res.getRow(i);
+        int roi = object.getROI();
+        if (roi > 0){
+            if(object.getGUIValid() && object.isValid()) //otherwise colour filters etc. don't work
+                ++(table[roi].first);
+            else
+                ++(table[roi].second);
+        }
+    }
+
+    if(!NA){
+        std::stringstream ss;
+        ss << N;
+        row[m_col_model.m_col_n_objects] = ss.str();
+        ss.str("");
+        ss<<N_excl;
+        row[m_col_model.m_col_n_excluded] = ss.str();
+    }
+    else{
+        std::string str("NA");
+        row[m_col_model.m_col_n_objects] = str;
+        row[m_col_model.m_col_n_excluded] = str;
+    }
+/**
+    if (colCluster){
+        std::stringstream ss;
+        ss << res.getROIClusterData(0).clusterPop(1);
+        row[m_col_model.m_col_clust1] = ss.str();
+        ss.str("");
+        ss << res.getROIClusterData(0).clusterPop(2);
+        row[m_col_model.m_col_clust2] = ss.str();
+        ss.str("");
+        ss << res.getROIClusterData(0).clusterPop(3);
+        row[m_col_model.m_col_clust3] = ss.str();
+    }
+    else {
+        std::string str("NA");
+        row[m_col_model.m_col_clust1] = str;
+        row[m_col_model.m_col_clust2] = str;
+        row[m_col_model.m_col_clust3] = str;
+
+    }
+*/
+
+    while(!row.children().empty()){
+        m_ref_tree_model->erase(row.children().begin());
+    }
+
+    if (table.size() > 1){
+        for(auto& i : table){
+            Gtk::TreeModel::Row childrow = *(m_ref_tree_model->append(row.children()));
+            int roi = i.first;
+            childrow[m_col_model.m_col_id] = roi;
+            std::stringstream ss;
+            ss <<"ROI #"<<roi;
+            childrow[m_col_model.m_col_name] = ss.str();
+
+            if(!NA){
+                int number_valid = i.second.first;
+                int number_excluded = i.second.second;
+                ss.str("");
+                ss << number_valid;
+                childrow[m_col_model.m_col_n_objects] = ss.str();
+                ss.str("");
+                ss << number_excluded;
+                childrow[m_col_model.m_col_n_excluded] = ss.str();
+            }
+            else{
+                std::string str("NA");
+                childrow[m_col_model.m_col_n_objects] = str;
+                childrow[m_col_model.m_col_n_excluded] = str;
+            }
+            /**
+            if (colCluster){
+                std::stringstream ss;
+                ss << res.getROIClusterData(roi).clusterPop(1);
+                childrow[m_col_model.m_col_clust1] = ss.str();
+                ss.str("");
+                ss << res.getROIClusterData(roi).clusterPop(2);
+                childrow[m_col_model.m_col_clust2] = ss.str();
+                ss.str("");
+                ss << res.getROIClusterData(roi).clusterPop(3);
+                childrow[m_col_model.m_col_clust3] = ss.str();
+            }
+            else {
+                std::string str("NA");
+                childrow[m_col_model.m_col_clust1] = str;
+                childrow[m_col_model.m_col_clust2] = str;
+                childrow[m_col_model.m_col_clust3] = str;
+
+            }*/
+            if (hasClusters){
+                for (int jj = 1; jj != res.getROIClusterData(0).clustersTotal(); ++jj){
+                    Gtk::TreeModel::Row clusters = *(m_ref_tree_model->append(childrow.children()));
+                    clusters[m_col_model.m_col_id] = jj;
+                    std::stringstream ss;
+                    ss <<"Clust #"<<jj;
+                    clusters[m_col_model.m_col_name] = ss.str();
+
+                    if(!NA){
+                        int number_valid = res.getROIClusterData(roi).clusterPop(jj);
+                        std::string number_excluded = "";
+                        ss.str("");
+                        ss << number_valid;
+                        clusters[m_col_model.m_col_n_objects] = ss.str();
+                        ss.str("");
+                        ss << number_excluded;
+                        clusters[m_col_model.m_col_n_excluded] = ss.str();
+                    }
+                    else{
+                        std::string str("NA");
+                        clusters[m_col_model.m_col_n_objects] = str;
+                        clusters[m_col_model.m_col_n_excluded] = str;
+                    }
+
+                }
+
+            }
+        }
+    }
+
+    else if (hasClusters){
+        for (int jj = 1; jj != res.getROIClusterData(0).clustersTotal(); ++jj){
+            Gtk::TreeModel::Row clusters = *(m_ref_tree_model->append(row.children()));
+            clusters[m_col_model.m_col_id] = jj;
+            std::stringstream ss;
+            ss <<"Clust #"<<jj;
+            clusters[m_col_model.m_col_name] = ss.str();
+
+            if(!NA){
+                int number_valid = res.getROIClusterData(0).clusterPop(jj);
+                std::string number_excluded = "";
+                ss.str("");
+                ss << number_valid;
+                clusters[m_col_model.m_col_n_objects] = ss.str();
+                ss.str("");
+                ss << number_excluded;
+                clusters[m_col_model.m_col_n_excluded] = ss.str();
+            }
+            else{
+                std::string str("NA");
+                clusters[m_col_model.m_col_n_objects] = str;
+                clusters[m_col_model.m_col_n_excluded] = str;
+            }
+        }
+    }
+
+
+
+
+    m_ref_tree_selection->unselect_all();
+    m_ref_tree_selection->select(row);
+
+    m_tree_view.collapse_all();
+    m_tree_view.expand_row(Gtk::TreePath(row),true);
+
+    m_tree_view.scroll_to_row(Gtk::TreePath(row));
+
+    m_file_writer.setInUpToDate(false);
+}
+
+type_children::iterator Gui_ResultListDisplay::findWichRow(type_children& children,int idx){
+    for(type_children::iterator iter = children.begin(); iter != children.end(); ++iter){
+        Gtk::TreeModel::Row tmp_row = *iter;
+        if (tmp_row[m_col_model.m_col_id] == idx ){
+                return iter;
+            }
+    }
+    return children.end();
+}
+void Gui_ResultListDisplay::on_save_all(){
+    m_indeces_of_selected.clear();
+    type_children children = m_ref_tree_model->children();
+    for(type_children::iterator ite = children.begin();ite != children.end(); ++ite){
+        m_indeces_of_selected.push_back((*ite)[m_col_model.m_col_id]);
+        }
+    m_file_writer.saveSelection(m_result_map,m_indeces_of_selected);
+}
+void Gui_ResultListDisplay::on_save(){
+    m_indeces_of_selected.clear();
+    m_ref_tree_selection->selected_foreach_iter( sigc::mem_fun(*this, &Gui_ResultListDisplay::makeIndecesOfSelected));
+    m_file_writer.saveSelection(m_result_map,m_indeces_of_selected);
+}
+void Gui_ResultListDisplay::on_delete(){
+    while(true){
+        std::vector<Gtk::TreeModel::Path> rows = m_tree_view.get_selection() -> get_selected_rows();
+        if (rows.empty())
+            break;
+        auto ite = m_ref_tree_model->get_iter(rows.back());
+        DEV_INFOS(m_ref_tree_model->get_string(ite));
+        m_ref_tree_model->erase(ite);
+    }
+}
+
+void Gui_ResultListDisplay::on_edit_comment(const Glib::ustring& path, const Glib::ustring& text){
+    Gtk::TreeModel::iterator iter = m_ref_tree_model->get_iter (path);
+
+    if(iter && this->getDepthFromPath(path) == 0){
+        m_result_map.setCommentAt((*iter)[m_col_model.m_col_id],text);
+        (*iter)[m_col_model.m_comment] = text;
+    }
+
+}
+
+int Gui_ResultListDisplay::getDepthFromPath(const Glib::ustring& path){
+    int ncolons=0;
+    for (unsigned int i=0; i != path.length(); ++i)
+        if (path[i] == ':')
+            ++ncolons;
+
+    return ncolons;
+}
diff --git a/src/gui/src/Gui_ThresholdSetter.cpp b/src/gui/src/Gui_ThresholdSetter.cpp
new file mode 100644
index 0000000..da516fb
--- /dev/null
+++ b/src/gui/src/Gui_ThresholdSetter.cpp
@@ -0,0 +1,57 @@
+
+#include "Gui_ThresholdSetter.hpp"
+
+Gui_ThresholdSetter::Gui_ThresholdSetter(Gui_ProcessorHandler& processor_hand,const std::string str):
+    Gui_OptionSetterBaseClass(processor_hand,str),
+    m_adjust(m_opts.getThr(), 0.0, 255.0, 1.0, 10.0, 0.0),
+    m_spin_butt(m_adjust),
+    m_check_butt(LABEL_CHECKBUTTON_AUTO_THR)
+{
+    set_tooltip_text(TOOLTIP_THR_SETTER);
+    m_combo.set_title("Mode");
+
+    m_combo_map["Regular"] = OCFU_THR_NORM;
+    m_combo_map["Inverted"] = OCFU_THR_INV;
+    m_combo_map["Bilateral"] = OCFU_THR_BILAT;
+
+    m_combo.append_text("Regular");
+    m_combo.append_text("Inverted");
+    m_combo.append_text("Bilateral");
+
+    m_combo.set_active(m_opts.getThrMode());
+    m_check_butt.set_active(m_opts.getHasAutoThr());
+
+    this->m_vbox.add(m_hbox2);
+    m_hbox2.add(m_combo);
+    m_hbox2.add(m_spin_butt);
+    m_hbox2.add(m_check_butt);
+
+    m_spin_butt.signal_value_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_ThresholdSetter::setOption)));
+    m_check_butt.signal_clicked().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_ThresholdSetter::setOption)));
+    m_combo.signal_changed().connect( sigc::hide_return( sigc::mem_fun(*this,&Gui_ThresholdSetter::setOption)));
+}
+
+bool Gui_ThresholdSetter::updateOptions(){
+    DEV_INFOS("Trying to send a processing option");
+    int val = m_spin_butt.get_value();
+    int mode = m_combo_map[m_combo.get_active_text()];
+    bool auto_t = m_check_butt.get_active();
+
+    if(auto_t)
+        m_spin_butt.set_sensitive(false);
+    else
+        m_spin_butt.set_sensitive(true);
+
+    bool tmp_bool = m_opts.setThr(val);
+    bool tmp_bool2 = m_opts.setThrMode(mode);
+    m_opts.setHasAutoThr(auto_t);
+
+    return tmp_bool && tmp_bool2;
+}
+
+void Gui_ThresholdSetter::updateNFiles(int i){
+    if(i == 0)
+        this->hide_all();
+    else
+        this->show_all();
+}
diff --git a/src/gui/src/Gui_UserFilterSetter.cpp b/src/gui/src/Gui_UserFilterSetter.cpp
new file mode 100644
index 0000000..14813ca
--- /dev/null
+++ b/src/gui/src/Gui_UserFilterSetter.cpp
@@ -0,0 +1,49 @@
+#include "Gui_UserFilterSetter.hpp"
+
+
+Gui_UserFilterSetter::Gui_UserFilterSetter(Gui_ProcessorHandler& processor_hand):
+    Gui_OptionSetterBaseClass(processor_hand,""),
+    m_filter(processor_hand.getGUIFilter())
+{
+    m_opts.setGUIFilter(m_filter);
+}
+
+void Gui_UserFilterSetter::on_click_object(int obj, int but){
+
+    if (but ==1 || obj < 0)
+        return;
+
+    if(but == 3){
+        DEV_INFOS("User asked to switch the object "<<obj);
+        m_idx_to_switch = obj;
+        this->setOption();
+    }
+
+}
+
+
+void Gui_UserFilterSetter::on_toggle_object(int obj, bool t){
+
+        DEV_INFOS("User asked to switch the object "<<obj);
+        m_idx_to_switch = obj;
+        this->setOption();
+}
+
+bool Gui_UserFilterSetter::updateOptions(){
+
+    const Result& result = m_processor_hand.getNumResult();
+    const OneObjectRow& oor = result.getRow(m_idx_to_switch);
+    // The results have deeply changed, we add renew vector
+    if(!result.getSameObjects() || m_filter->empty()){
+        cv::Mat(result.size(),1,CV_8S,cv::Scalar(-1)).copyTo(*m_filter);
+    }
+
+    if(oor.isValid()){
+        m_filter->at<char>(m_idx_to_switch,0) = 0;
+    }
+     else{
+        m_filter->at<char>(m_idx_to_switch,0) = 1;
+    }
+    return true;
+}
+
diff --git a/src/gui/src/ResultMap.cpp b/src/gui/src/ResultMap.cpp
new file mode 100644
index 0000000..94c5d78
--- /dev/null
+++ b/src/gui/src/ResultMap.cpp
@@ -0,0 +1,36 @@
+#include "ResultMap.hpp"
+#include <time.h>
+
+int ResultMap::append(const  Glib::RefPtr<Gio::File> file, const Result& res){
+
+    std::unordered_map <Glib::RefPtr<Gio::File>,int,functorHash,functorEqual>::iterator ite = m_idx_from_file.find(file);
+
+    int where = 0;
+
+    if(ite != m_idx_from_file.end()){
+        DEV_INFOS("Found");
+        bool wasNA (std::get<1>(m_results[ite->second]));
+        Glib::ustring old_comment (std::get<2>(m_results[ite->second]));
+        m_results[ite->second] = std::make_tuple(res,wasNA,old_comment);
+        where = ite->second;
+    }
+
+    else{
+        DEV_INFOS(" N ot Found");
+        time_t now = time(0);
+        struct tm  tstruct;
+        char       buf[80];
+        tstruct = *localtime(&now);
+        strftime(buf, sizeof(buf), "%Y-%m-%d [%X]: no comment", &tstruct);
+
+        Glib::ustring new_coment(buf);
+
+        m_results.push_back(std::make_tuple(res,false,new_coment));
+        where = m_results.size()-1;
+    }
+
+    m_idx_from_file[file] = where;
+    m_reverse_map[where] = file;
+
+    return where;
+}
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 0000000..077440d
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,55 @@
+/*
+    Copyright Quentin Geissmann 2012-2013
+
+    This file is part of OpenCFU
+
+    OpenCFU 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 3 of the License, or
+    (at your option) any later version.
+
+    OpenCFU 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 OpenCFU.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "defines.hpp"
+#include "ArgumentParser.hpp"
+#include "ProcessingOptions.hpp"
+#include "Processor.hpp"
+
+ /*Only if compiled with Gtk support*/
+#ifdef WITH_GUI
+	#include "Gui_MyApplication.hpp"
+#endif
+
+int main(int argc, char **argv){
+
+    ProcessingOptions opts;
+    Processor processor(opts);
+    DEV_INFOS("Starting OpenCFU");
+    if(argc > 1){
+        DEV_INFOS("At least one argument -> parsing arguments...");
+        ArgumentParser par(argc, argv,opts);
+        DEV_INFOS("Argument parsed OK. Now processing");
+        processor.runAll();
+        processor.writeResult();
+    }
+    else{
+    #ifndef WITH_GUI
+        std::cerr<<"If you use no argument, OpenCFU will run as a GUI, but the program was not compiled with GTK support. Run 'opencfu -h' for more information"<<std::endl;
+        return EXIT_FAILURE;
+    #else
+        DEV_INFOS("No argument used, running the GUI...");
+        Glib::thread_init();
+        Glib::set_application_name (PROGRAM_NAME);
+        Gui_MyApplication myApp(argc,argv,processor);
+    #endif
+    }
+
+    return EXIT_SUCCESS;
+}
diff --git a/src/processor/headers/ArgumentParser.hpp b/src/processor/headers/ArgumentParser.hpp
new file mode 100644
index 0000000..88f9017
--- /dev/null
+++ b/src/processor/headers/ArgumentParser.hpp
@@ -0,0 +1,21 @@
+#ifndef ARGUMENTPARSER_H
+#define ARGUMENTPARSER_H
+
+#include "defines.hpp"
+#include "ProcessingOptions.hpp"
+
+class ArgumentParser
+{
+    public:
+        ArgumentParser(int argc, char **argv,ProcessingOptions& opts);
+    protected:
+        void printHelp();
+        void printVersion();
+    private:
+        const std::string m_help_string;
+};
+
+#endif // ARGUMENTPARSER_H
+
+
+
diff --git a/src/processor/headers/ContourFamily.hpp b/src/processor/headers/ContourFamily.hpp
new file mode 100644
index 0000000..6603001
--- /dev/null
+++ b/src/processor/headers/ContourFamily.hpp
@@ -0,0 +1,22 @@
+#ifndef CONTOURFAMILY_H
+#define CONTOURFAMILY_H
+
+#include "defines.hpp"
+#include "opencv2/core/core.hpp"
+
+
+typedef std::vector<std::vector<cv::Point> > cont_chunk;
+typedef std::vector<cv::Vec4i> hier_chunk;
+
+class ContourFamily{
+    public:
+        ContourFamily();
+        ContourFamily(const cont_chunk& cc);
+        cont_chunk contours;
+        hier_chunk hierarchies;
+        char predicted_categ;
+        int n_per_clust;
+    private:
+        void makeHierarchies(unsigned int nHoles);
+};
+#endif
diff --git a/src/processor/headers/ContourSpliter.hpp b/src/processor/headers/ContourSpliter.hpp
new file mode 100644
index 0000000..2643b8a
--- /dev/null
+++ b/src/processor/headers/ContourSpliter.hpp
@@ -0,0 +1,18 @@
+#ifndef CONTOURSPLITER_H
+#define CONTOURSPLITER_H
+
+#include "ContourFamily.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+class ContourSpliter
+{
+    public:
+        void split(std::vector<ContourFamily>& contour_fams, std::vector<signed char>& categ);//,std::vector<int>& n_per_clust);
+        void splitOneCont(const ContourFamily& in, std::vector<ContourFamily>& out);
+        void findPeaks(const cv::Mat& binary, cv::Mat& distance_map, cont_chunk& peaks_conts);
+        void makeWatershedLabel(const cv::Mat& binary, const cont_chunk& peaks_conts, cv::Mat& labels);
+        void watershedLike(cv::Mat &mask,cv::Mat& gray,int nlabs,double maxAreaModif);
+};
+
+#endif // CONTOURSPLITER_H
diff --git a/src/processor/headers/Features.hpp b/src/processor/headers/Features.hpp
new file mode 100644
index 0000000..916f717
--- /dev/null
+++ b/src/processor/headers/Features.hpp
@@ -0,0 +1,26 @@
+#ifndef FEATURES_H
+#define FEATURES_H
+
+#include "ContourFamily.hpp"
+#include "defines.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+
+class Features
+{
+    public:
+        Features();
+        void calcFeatures(const ContourFamily& fam,cv::Mat out);
+        int getNFeature(){return m_nfeatures;};
+        static cv::Point2f calculateWH(const std::vector<cv::Point>& contour);
+    protected:
+        cv::Point2f calcHullPerimArea(const std::vector<cv::Point>& contour);
+        inline static float calcTwoPointDist(const cv::Point P0,const cv::Point P1);
+        void smoothContour(const std::vector<cv::Point>& in,std::vector<cv::Point>& out);
+    private:
+        const unsigned int m_nfeatures;
+};
+
+
+#endif // FEATURES_H
diff --git a/src/processor/headers/MaskROI.hpp b/src/processor/headers/MaskROI.hpp
new file mode 100644
index 0000000..f3b12a3
--- /dev/null
+++ b/src/processor/headers/MaskROI.hpp
@@ -0,0 +1,71 @@
+#ifndef MASKROI_H
+#define MASKROI_H
+
+#include "defines.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+
+class MaskROI
+{
+    public:
+        MaskROI(int pretype):type(pretype){
+        }
+
+        MaskROI(const std::string& path){
+            cv::imread(path,CV_LOAD_IMAGE_GRAYSCALE).copyTo(m_original_mat);
+            type = MASK_TYPE_FILE;
+        }
+        MaskROI(cv::Mat img){
+            img.copyTo(m_original_mat);
+            type = MASK_TYPE_FILE;
+        }
+        MaskROI(cv::Mat img,int typepp){
+
+            if(typepp != MASK_TYPE_NONE)
+                img.copyTo(m_original_mat);
+                img.copyTo(m_mat);
+            type = typepp;
+        }
+
+        MaskROI():type(MASK_TYPE_NONE){};
+        void setFromPoints(const std::vector< std::pair<std::vector<cv::Point2f>,int > >& points,int width,int height);
+        void none(){
+            type = MASK_TYPE_NONE;
+            m_original_mat = cv::Mat();
+            }
+
+        const bool isValid()const {
+            if(type == MASK_TYPE_NONE || type == MASK_TYPE_AUTO)
+                return true;
+            else if(type == MASK_TYPE_FILE && !m_original_mat.empty())
+                return true;
+            else if(type == MASK_TYPE_DRAW && !m_original_mat.empty())
+                return true;
+
+            else
+                return false;
+        }
+        void copyTo(MaskROI& cpy)const {
+            cpy = MaskROI(m_original_mat,type);
+            if(type != MASK_TYPE_AUTO)
+                cpy.update(m_mat);
+        }
+        const cv::Mat& getMat()const{
+                DEV_INFOS("??");
+                return m_mat;
+
+            }
+
+        int type;
+        void update(const cv::Mat parent_image);
+    protected:
+        std::vector<float> circleFrom3(const std::vector<cv::Point2f>& points);
+        void makeAutoMask(const cv::Mat& parent);
+    private:
+
+        cv::Mat m_mat;
+        cv::Mat m_original_mat;
+};
+
+#endif // MASKROI_H
diff --git a/src/processor/headers/Predictor.hpp b/src/processor/headers/Predictor.hpp
new file mode 100644
index 0000000..8fa9fc1
--- /dev/null
+++ b/src/processor/headers/Predictor.hpp
@@ -0,0 +1,27 @@
+#ifndef PREDICTOR_H
+#define PREDICTOR_H
+
+#define PREDIC_NOISE 0
+#define PREDIC_SINGLE_COL 1
+#define PREDIC_MULT_COL 2
+
+#include "defines.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+#include "opencv2/ml/ml.hpp"
+class Predictor
+{
+    public:
+        Predictor();
+        void train(const cv::Mat& features, const std::vector<signed char>& categs);
+        void loadTrainData(const std::string& str);
+        void save(const std::string& str);
+        void predict(const cv::Mat& in, std::vector<signed char>& out);
+
+
+    protected:
+    private:
+        CvRTrees m_trees;
+        CvRTParams m_rt_params;
+};
+
+#endif // PREDICTOR_H
diff --git a/src/processor/headers/ProcessingOptions.hpp b/src/processor/headers/ProcessingOptions.hpp
new file mode 100644
index 0000000..0820286
--- /dev/null
+++ b/src/processor/headers/ProcessingOptions.hpp
@@ -0,0 +1,305 @@
+#ifndef PROCESSINGOPTIONS_H
+#define PROCESSINGOPTIONS_H
+
+#include "defines.hpp"
+#include <memory>
+#include "opencv2/core/core.hpp"
+#include "opencv2/highgui/highgui.hpp"
+#include "MaskROI.hpp"
+
+class ProcessingOptions
+{
+    public:
+/** \brief The default constructor
+ */
+        ProcessingOptions();
+        ProcessingOptions& operator= (const ProcessingOptions& cpy);
+
+/** \brief Getter for the m_min_max_radius variable
+ * \return the minimal and maximal radii as a pair of integer
+ */
+        const std::pair<int,int> getMinMaxRad() const { return m_min_max_radius;}
+
+/** \brief Getter for the m_cent_tol_hue variable
+ * \return the center and tolerance for the hue filter as a pair of integer
+ */
+        const std::pair<int,int> getCenTolHue()const{return m_cent_tol_hue;}
+
+/** \brief Getter for the m_cent_tol_sat variable
+ * \return the center and tolerance for the saturation filter as a pair of integer
+ */
+        const std::pair<int,int> getMinMaxSat()const{return m_min_max_sat;}
+
+/** \brief Getter for the m_likelihood_thr variable
+ * \return the likelihood threshold as a double
+ */
+       const  double getLikeThr()const{return m_likelihood_thr;}
+
+/** \brief Getter for the m_threshold variable
+ * \return the threshold as an integer
+ */
+        const int getThr()const{return m_threshold;}
+
+/** \brief Getter for the m_threshold_mode variable
+ * \return the threshold mode as an integer
+ */
+        const int getThrMode()const{return m_threshold_mode;}
+
+/** \brief Getter for the m_has_max_radius variable
+ * \return the threshold as a bool
+ */
+        const bool getHasMaxRad()const{return m_has_max_radius;}
+
+/** \brief Getter for the m_has_auto_threshold variable
+ * \return the threshold as a bool
+ */
+        const bool getHasAutoThr()const{return m_has_auto_threshold;}
+
+/** \brief Getter for the m_has_hue_filter variable
+ * \return the threshold as a bool
+ */
+        const bool getHasHueFilt()const{return m_has_hue_filter;}
+
+/** \brief Getter for the m_has_outlier_filter variable
+ * \return the threshold as a bool
+ */
+        const bool getHasOutlierFilt()const{return m_has_outlier_filter;}
+
+/** \brief Getter for the image
+ * \return a ref to m_image as a cv::Mat
+ */
+       const cv::Mat& getImage()const{return m_image;}
+
+/** \brief Getter for the image name
+ * \return a string
+ */
+        const std::string& getImageName()const{return m_image_path;}
+
+
+/** \brief Getter for the mask
+ * \return a ref to m_mask as a cv::Mat
+ */
+        const MaskROI& getMask()const{return m_mask;}
+
+
+        const cv::Mat& getGUIFilter()const {
+            return *m_gui_filter;
+            }
+
+//NJL 10/AUG/2014
+/** \brief Getter for the clustering distance
+ *  \return double clustering search distance in L*a*b* colour space
+ */
+
+        const double getClustDist()const{return m_clustering_distance;}
+
+ //NJL 10/AUG/2014
+/** \brief Getter for the has_clustering_distance variable
+ *  \return bool state of the has_clustering_distance variable
+ */
+        const bool getHasClustDist()const{return m_has_clustering_distance;}
+
+
+/** \brief Setter for m_image
+ * \param str the name of the file to read the image from
+ */
+        bool setImage(const std::string str){
+            cv::Mat tmpImg = cv::imread(str, CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_COLOR);
+
+            //patch for 16bit depth imgs:
+            if(tmpImg.depth() == CV_16U){
+                double min, max;
+                cv::minMaxLoc(tmpImg, &min, &max);
+                double rat = max / 256.0;
+                cv::divide(tmpImg,cv::Scalar(rat,rat,rat),tmpImg,1,CV_8UC3) ;//* (double)(1/2);
+            }
+
+            if(!tmpImg.empty()){
+                m_image = tmpImg;
+                m_image_path = str;
+                DEV_INFOS("");
+                m_mask.update(m_image);
+                return true;
+                }
+            else
+                return false;
+            }
+/** \brief Setter for m_image
+ * \param src an image
+ */
+        bool setImage(const cv::Mat src){
+            cv::Mat tmpImg;
+            src.copyTo(tmpImg);
+            if(!tmpImg.empty()){
+                m_image = tmpImg;
+                m_image_path = "img_from_memory";
+                DEV_INFOS("");
+                m_mask.update(m_image);
+                return true;
+                }
+            else
+                return false;
+            }
+
+/** \brief Setter for m_mask
+ * \param src an image
+ */
+        bool setMask(const MaskROI& mask){
+
+            if(mask.isValid()){
+
+                mask.copyTo(m_mask);
+                DEV_INFOS(m_image.channels());
+                m_mask.update(m_image);
+                return true;
+            }
+            else
+                return false;
+
+        }
+
+/** \brief Setter for m_min_max_radius
+ * \param min_max_radius the new value for m_min_max_radius
+ */
+        bool setMinMaxRad(const std::pair<int,int> min_max_radius){
+            bool maxRadTest(true);
+            if(m_has_max_radius)
+                maxRadTest = (min_max_radius.first <= min_max_radius.second && min_max_radius.second >=0);
+            if(min_max_radius.first >=0 && maxRadTest){
+                m_min_max_radius = min_max_radius;
+                return true;
+                }
+            else
+                return false;
+            }
+
+/** \brief Setter for m_cent_tol_hue
+ * \param v the new value for m_cent_tol_hue
+ */
+        bool setCenTolHue(const std::pair<int,int> cent_tol_hue){
+            if( cent_tol_hue.first <= 360 && cent_tol_hue.first >= 0 &&
+                cent_tol_hue.second <= 180 && cent_tol_hue.second>= 0){
+                m_cent_tol_hue = cent_tol_hue;
+                return true;
+            }
+            else
+                return false;
+
+            }
+/** \brief Setter for m_min_max_radius
+ * \param min_max_radius the new value for m_min_max_radius
+ */
+        bool setMinMaxSat(const std::pair<int,int> min_max_sat){
+            bool maxSatTest(true);
+            if(m_has_hue_filter)
+                maxSatTest = (min_max_sat.first <= min_max_sat.second && min_max_sat.second >=0);
+            if(min_max_sat.first >=0 && min_max_sat.second <256 && maxSatTest){
+                m_min_max_sat = min_max_sat;
+                return true;
+                }
+            else
+                return false;
+            }
+/** \brief Setter for m_likelihood_thr
+ * \param likelihood_thr the new value for m_likelihood_thr
+ */
+        bool setLikeThr(const double likelihood_thr){
+            m_likelihood_thr = likelihood_thr;
+            return true;
+            }
+
+/** \brief Setter for m_threshold
+ * \param threshold the new value for m_threshold
+ */
+        bool setThr(const int threshold){
+            if(threshold>=0 && threshold < 256){
+                m_threshold = threshold;
+                return true;
+            }
+            else
+                return false;
+        }
+
+/** \brief Setter for m_threshold_mode
+ * \param mode the new value for m_threshold_mode
+ */
+        bool setThrMode(const int mode){
+            if(mode == OCFU_THR_NORM ||
+                mode == OCFU_THR_INV ||
+                mode == OCFU_THR_BILAT ){
+                m_threshold_mode = mode;
+                return true;
+            }
+            else
+                return false;
+        }
+
+/** \brief Setter for m_has_max_radius
+ * \param has_max_radius the new value for m_has_max_radius
+ */
+        void setHasMaxRad(const bool has_max_radius){m_has_max_radius = has_max_radius;}
+
+/** \brief Setter for m_has_auto_threshold
+ * \param has_auto_threshold the new value for m_has_auto_threshold
+ */
+        void setHasAutoThr(const bool has_auto_threshold){m_has_auto_threshold = has_auto_threshold;}
+
+/** \brief Setter for m_hue_filter
+ * \param has_hue_filter the new value for m_has_hue_filter
+ */
+        void setHasHueFilt(const bool has_hue_filter ){m_has_hue_filter = has_hue_filter;}
+
+/** \brief Setter for m_has_outlier_filter
+ * \param has_outlier_filter the new value for m_has_outlier_filter
+ */
+        void setHasOutlierFilt(const bool has_outlier_filter){
+            m_has_outlier_filter = has_outlier_filter;
+            }
+
+        void setGUIFilter(std::shared_ptr<cv::Mat>& filt){
+            m_gui_filter = filt;
+            }
+
+//NJL 14/AUG/2014
+/** \brief Setter for Clustering Distance
+ *  \param double clustering_distance clustering distance in L*a*b* color space
+ */
+        bool setClustDist(const double clustering_distance){
+            if (clustering_distance>=0.1 && clustering_distance<=50.){
+                m_clustering_distance = clustering_distance;
+                return true;}
+            else{
+                return false;
+            }
+        }
+
+//NJL 14/AUG/2014
+/** \brief Setter for m_has_clustering_distance
+ *  \param bool has_clustering_distance state for whether to perform clustering
+ */
+        void setHasClustDist(const bool has_clustering_distance){m_has_clustering_distance = has_clustering_distance;}
+
+
+    protected:
+//        void ajustmaskToImg();
+    private:
+        cv::Mat m_image;
+        std::string m_image_path;
+        MaskROI m_mask;
+        std::pair<int,int> m_min_max_radius;
+        std::pair<int,int> m_cent_tol_hue;
+        std::pair<int,int> m_min_max_sat;
+        double m_likelihood_thr;
+        double m_clustering_distance; //NJL 10/AUG/2014
+        int m_threshold;
+        int m_threshold_mode;
+        bool m_has_max_radius;
+        bool m_has_auto_threshold;
+        bool m_has_hue_filter;
+        bool m_has_outlier_filter;
+        bool m_has_clustering_distance; //NJL 10/AUG/2014
+
+        std::shared_ptr<cv::Mat> m_gui_filter;
+};
+
+#endif // PROCESSINGOPTIONS_H
diff --git a/src/processor/headers/Processor.hpp b/src/processor/headers/Processor.hpp
new file mode 100644
index 0000000..3553422
--- /dev/null
+++ b/src/processor/headers/Processor.hpp
@@ -0,0 +1,38 @@
+#ifndef PROCESSOR_H
+#define PROCESSOR_H
+
+#include "defines.hpp"
+#include "opencv2/core/core.hpp"
+
+#include "Step_BaseClass.hpp"
+#include "ProcessingOptions.hpp"
+#include "Predictor.hpp"
+#include "Result.hpp"
+
+
+class Processor
+{
+    public:
+        Processor(ProcessingOptions& opts);
+        ~Processor();
+        void runAll();
+        void setOptions(const ProcessingOptions& opts){
+            m_opts = opts;
+        }
+        const Result& getNumResult()const {
+            return *m_result;
+        }
+        void setIsBusy(bool b){m_is_busy = b;}
+        bool getIsBusy(){return m_is_busy;}
+
+        void writeResult();
+    private:
+        std::vector<Step_BaseClass*> m_processing_steps;
+        ProcessingOptions& m_opts;
+        Predictor m_predictor, m_predictor_ps;
+        Result* m_result;
+        cv::Mat m_raw_img;
+        bool m_is_busy;
+};
+
+#endif // PROCESSOR_H
diff --git a/src/processor/headers/Result.hpp b/src/processor/headers/Result.hpp
new file mode 100644
index 0000000..8f5172b
--- /dev/null
+++ b/src/processor/headers/Result.hpp
@@ -0,0 +1,196 @@
+#ifndef RESULT_H
+#define RESULT_H
+
+#include "defines.hpp"
+#include <vector>
+#include "ContourFamily.hpp"
+#include "Features.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+#include <unordered_map>
+#include <string>
+
+bool pairCompare(const std::pair< int, std::vector<double> >& a, const std::pair< int, std::vector<double> >& b);
+
+class OneObjectRow{
+    public:
+        OneObjectRow();
+        OneObjectRow(ContourFamily cont_fam,const cv::Mat& raw_img);
+        const cv::Point2f getPoint(const int i) const{
+            cv::Point2f points[4];
+            m_rrect.points(points);
+            return points[i];
+            }
+        const cv::RotatedRect& getRrect() const{
+            return m_rrect;
+        }
+//        const ContourFamily& getContourFam() const{return m_cont_fam;}
+//        void setPoints(const int i,const cv::Point2f p){ m_points[i] = p;}
+        const bool isValid() const{return m_valid;}
+        const int getROI() const{return m_ROI;}
+        const signed char  getGUIValid() const {return m_GUI_mask;}
+        const int getNInClust() const{return m_n_in_clust;}
+        const int getArea() const{return m_area;}
+        const int getRadius() const{return m_rad;}
+        const int getHue() const{return m_hue_mean;}
+        const int getSat() const{return m_sat_mean;}
+        const cv::Scalar getBGRMean() const{return m_BGR_mean;}
+        const cv::Scalar getBGRSd() const{return m_BGR_sd;}
+        const cv::Scalar getLABMean() const{return m_LAB_mean;} //NJL 11/AUG/2014
+        void setValid(bool b){m_valid = b;}
+        void setGUIValid(signed char i){m_GUI_mask = i;}
+        void setROI(int r){m_ROI = r;}
+
+        const int getColorClusterID() const{return m_color_cluster_ID;} //NJL 11/AUG/2014
+        void setColorClusterID(int color_cluster_ID){m_color_cluster_ID = color_cluster_ID;} //NJL 11/AUG/2014
+
+        const cv::Scalar getClusterColor() const{return m_cluster_color;} //NJL 02/SEP/2014
+        void setClusterColor(cv::Scalar cluster_colour){m_cluster_color = cluster_colour;} //NJL 02/SEP/2014
+
+        std::string print() const ;
+        static std::string printHeader();
+
+    private:
+
+        cv::RotatedRect m_rrect;
+        cv::Scalar m_BGR_mean;
+        cv::Scalar m_BGR_sd;
+        cv::Scalar m_cluster_color; //NJL 02/SEP/2014
+        cv::Scalar m_LAB_mean; //NJL 11/AUG/2014
+
+        int m_sat_mean;
+        int m_hue_mean;
+        int m_n_in_clust;
+        int m_area;
+        int m_rad;
+        bool m_valid;
+        signed char m_GUI_mask; //-1 = neutral, 0 = force invalid, 1 = force valid
+        int m_ROI;
+        int cluster_class; //for unsupervised leaning
+        int m_color_cluster_ID; //NJL 11/AUG/2014
+};
+
+/**
+ *
+ *
+ *
+ */
+class ClusterData{
+    public:
+        ClusterData(){};
+        void addCluster(int id, int pop, cv::Scalar col){
+            if (!m_clusters.count(id)){
+                m_clusters.emplace( id, std::make_pair(pop, col) );
+            }
+            else{
+                DEV_INFOS("Duplicate cluster ID added");
+                m_clusters.erase(id);
+                m_clusters.emplace( id, std::make_pair(pop, col) );
+                }
+        };
+
+        // Note that using this method only the first colour added is used. We only print to
+        // DEV_INFOS if there is a mismatch
+        void addCluster(int id, cv::Scalar col){
+            if (!m_clusters.count(id)){
+                m_clusters.emplace( id, std::make_pair(1, col) );
+            }
+            else{
+                m_clusters.find(id)->second.first++;
+                if (m_clusters.find(id)->second.second != col)
+                    DEV_INFOS("Warning: Colour mismatch has occurred in cluster ID "<<id);
+            }
+        };
+
+        void incrementClusterPop(int id){m_clusters.find(id)->second.first++;}
+        const int clusterPop(int id) const{ return (m_clusters.count(id)) ? m_clusters.find(id)->second.first : 0;}
+        const cv::Scalar clusterColor(int id) const{cv::Scalar cvscl(0,0,0); return (m_clusters.count(id)) ? m_clusters.find(id)->second.second : cvscl;}
+
+        const int clustersTotal() const{return m_clusters.size();};
+        const std::string str() const;
+
+
+    private:
+        std::unordered_map< int, std::pair<int, cv::Scalar> > m_clusters;
+};
+
+
+class ROIData{
+    public:
+        ROIData(){};
+
+        const ClusterData& getROIClusterData(int roi) const{
+            if (!m_roi_clusters.count(roi)){
+                DEV_INFOS("Could not find roi");
+                return m_empty_cluster_data;
+            }
+            else
+                return (m_roi_clusters.find(roi)->second);
+        }
+
+        ClusterData& addROIClusterData(int roi) {
+            if (!m_roi_clusters.count(roi)){
+                ClusterData thisROI;
+                m_roi_clusters.emplace(roi, thisROI);
+            }
+            return (m_roi_clusters.find(roi)->second);
+        }
+
+        const std::vector<int> getROIkeys() const{
+            std::vector<int> keys;
+            for (auto &it : m_roi_clusters){
+                keys.push_back(it.first);
+            }
+            std::sort(keys.begin(),keys.end());
+            return keys;
+        }
+
+        void delClusterData(int roi) { m_roi_clusters.erase(roi); }
+        void clear() {m_roi_clusters.clear();}
+
+        //void addPoint(OneObjectRow&);
+
+    private:
+        std::unordered_map<int, ClusterData> m_roi_clusters;
+        ClusterData m_empty_cluster_data;
+
+};
+
+class Result{
+    public:
+        Result():m_same_objects(false){};
+
+        const size_t size() const{return v.size();}
+        void add_at(const OneObjectRow& row, const unsigned int i);
+
+        void reset(size_t s);
+
+        int getNValid() const{return m_n_valid;}
+
+        const OneObjectRow& getRow(unsigned int i) const{ return v[i];}
+        void applyFilter(const std::vector<bool>& valid);
+        void applyFilter(const std::vector<int>& valid);
+        void applyGuiFilter(const cv::Mat& valid);
+        void setSameObjects(bool b){m_same_objects = b;}
+        const bool getSameObjects()const {return m_same_objects;}
+        void recluster(const std::vector< std::pair<int,int> > clustered); //NJL 13/AUG/2014
+        void ClusterOrder(); //NJL 02/SEP/2014
+        void uncluster(); // NJL 01/SEP/2014
+
+        //const ClusterData& getClusterData() const{return m_clusterData;} //NJL 03/SEP/2014 //deprecated by getROIData(0)
+        const ClusterData& getROIClusterData(int roi) const{return m_roi_data.getROIClusterData(roi);} //NJL 10/SEP/2014
+        const std::vector<int> getROIs() const{return m_roi_data.getROIkeys();}
+
+    private:
+        int m_n_valid;
+        std::vector<OneObjectRow> v;
+        bool m_same_objects;
+        ClusterData m_clusterData;
+        ROIData m_roi_data;
+
+
+};
+
+
+
+#endif // RESULT_H
diff --git a/src/processor/headers/Step_1.hpp b/src/processor/headers/Step_1.hpp
new file mode 100644
index 0000000..542848a
--- /dev/null
+++ b/src/processor/headers/Step_1.hpp
@@ -0,0 +1,27 @@
+#ifndef STEP1_H
+#define STEP1_H
+
+#include "defines.hpp"
+#include "Step_BaseClass.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+class Step_1: public Step_BaseClass
+{
+    public:
+        Step_1(ProcessingOptions& opts):Step_BaseClass(opts){}
+        void process(const void* src);
+
+    protected:
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        void updateKernelSize();
+
+    private:
+        cv::Mat m_old_img;
+        cv::Mat m_step_img;
+        int m_old_min_rad;
+        int m_kernel_size;
+};
+
+#endif // STEP1
diff --git a/src/processor/headers/Step_2.hpp b/src/processor/headers/Step_2.hpp
new file mode 100644
index 0000000..3a7f430
--- /dev/null
+++ b/src/processor/headers/Step_2.hpp
@@ -0,0 +1,33 @@
+#ifndef STEP2_H
+#define STEP2_H
+
+#include "defines.hpp"
+#include "Step_BaseClass.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+class Step_2: public Step_BaseClass
+{
+    public:
+        Step_2(ProcessingOptions& opts):
+            Step_BaseClass(opts),
+            MEDIAN_BLUR_MAX_BLOCKSIZE(200),
+            LAPOFGAUSS_BLUR_SIZE(11){}
+        void process(const void* src);
+
+    protected:
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        void makeConvolvedMask();
+        void SubstractLapOGauss(const cv::Mat& in, cv::Mat& out, int blurSize);
+    private:
+        cv::Mat m_old_mask;
+        cv::Mat m_conv_mask;
+        cv::Mat m_step_img;
+        int m_old_thr_mode;
+        int m_block_size;
+        const int MEDIAN_BLUR_MAX_BLOCKSIZE;
+        const int LAPOFGAUSS_BLUR_SIZE;
+};
+
+#endif // STEP2_H
diff --git a/src/processor/headers/Step_3.hpp b/src/processor/headers/Step_3.hpp
new file mode 100644
index 0000000..ca99ba4
--- /dev/null
+++ b/src/processor/headers/Step_3.hpp
@@ -0,0 +1,40 @@
+#ifndef STEP3_H
+#define STEP3_H
+
+#include "defines.hpp"
+#include "Features.hpp"
+#include "ContourFamily.hpp"
+#include "Step_BaseClass.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+#include "Predictor.hpp"
+
+
+
+class Step_3: public Step_BaseClass
+{
+    public:
+        Step_3(ProcessingOptions& opts,Predictor& predictor):
+            Step_BaseClass(opts),
+            m_predictor(predictor){
+            }
+        void process(const void* src);
+
+    protected:
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        void makeFeaturesMatrix(const std::vector<ContourFamily>& contour_fams,cv::Mat& dst);
+        void makeContourChunksVect(const cv::Mat& src, std::vector<ContourFamily>& contour_fams);
+        void drawAllValid(cv::Mat& inout,std::vector<ContourFamily>& contour_fams,std::vector<signed char>& categ);
+        void subsample(const std::vector<cv::Point>& in, std::vector<cv::Point>& out,const unsigned  int size_out = 50);
+        bool isSizeOK(const std::vector<cv::Point>& cont);
+        Predictor& m_predictor;
+        Features m_featureMaker;
+        int m_min_radius, m_max_radius,m_max_cont_width;
+        bool m_has_max_radius;
+        cv::Mat m_step_img;
+};
+
+
+
+#endif // STEP3_H
diff --git a/src/processor/headers/Step_4.hpp b/src/processor/headers/Step_4.hpp
new file mode 100644
index 0000000..df74116
--- /dev/null
+++ b/src/processor/headers/Step_4.hpp
@@ -0,0 +1,42 @@
+#ifndef STEP4_H
+#define STEP4_H
+#include "Step_3.hpp"
+
+#include "defines.hpp"
+#include "Step_BaseClass.hpp"
+#include "ContourFamily.hpp"
+#include "ContourSpliter.hpp"
+
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+class Step_4: public Step_3
+{
+    public:
+        Step_4(ProcessingOptions& opts, Predictor& predictor,Predictor& predictor_ps, cv::Mat& raw_img):
+            Step_3(opts,predictor),
+            m_raw_img(raw_img),
+            m_predictor_ps(predictor_ps){}
+        void process(const void* src);
+
+    protected:
+        void makeContourChunksVect(const cv::Mat& src,std::vector<ContourFamily>& contour_fams);
+        void preFilterContourSize(std::vector<ContourFamily>& contour_fams);
+        void writeNumResults(const std::vector<ContourFamily>& contour_fams, const std::vector<signed char>& categ);//, const std::vector<int>& n_per_clust );
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        void separateUnsplited(const std::vector<ContourFamily>& contour_fams,std::vector<ContourFamily>& contour_fams_unsplit,std::vector<ContourFamily>& contour_fams_split);
+
+    private:
+        int m_threshold;
+        bool m_has_auto_thr;
+        ContourSpliter m_contour_spliter;
+        cv::Mat& m_raw_img;
+        Result m_step_numerical_result;
+        Predictor& m_predictor_ps;
+
+};
+
+
+
+#endif //STEP4_H
diff --git a/src/processor/headers/Step_BaseClass.hpp b/src/processor/headers/Step_BaseClass.hpp
new file mode 100644
index 0000000..8ff5bc8
--- /dev/null
+++ b/src/processor/headers/Step_BaseClass.hpp
@@ -0,0 +1,27 @@
+#ifndef STEPBASECLASS_H
+#define STEPBASECLASS_H
+
+#include "defines.hpp"
+#include "Result.hpp"
+#include "ProcessingOptions.hpp"
+#include "opencv2/core/core.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+
+class Step_BaseClass
+{
+    public:
+        Step_BaseClass(ProcessingOptions& opts);
+        bool run(void*& inout,bool forceReprocess = false);
+
+        virtual void process(const void* src) = 0;
+        virtual ~Step_BaseClass();
+    protected:
+        bool isSameImage(const cv::Mat& img1,const cv::Mat& img2);
+        virtual void updateParams(const void* src,bool was_forced) = 0;
+        virtual bool needReprocess(const void* src) = 0;
+        ProcessingOptions& m_opts;
+        void* m_step_result;
+};
+
+#endif // STEPBASECLASS_H
diff --git a/src/processor/headers/Step_ColourCluster.hpp b/src/processor/headers/Step_ColourCluster.hpp
new file mode 100644
index 0000000..0f9c5ed
--- /dev/null
+++ b/src/processor/headers/Step_ColourCluster.hpp
@@ -0,0 +1,73 @@
+#ifndef STEP_COLOURCLUSTER_H
+#define STEP_COLOURCLUSTER_H
+
+#include "defines.hpp"
+#include "Step_BaseClass.hpp"
+#include <math.h>
+#include <algorithm>
+#include <utility>
+#include <unordered_map>
+#include <string>
+
+class ClusterPoint
+{
+    public:
+        //Constructor
+        ClusterPoint(int id, int cluster_id, bool visited, cv::Scalar color);
+
+        //Constant returns
+        const cv::Scalar getColor()const{return m_color;}
+        const int getID()const{return m_id;}
+
+        //Variable returns and setters
+        bool getVisited(){return m_visited;}
+        int getClusterID(){return m_cluster_id;}
+
+        void setVisited(bool visited){m_visited = visited;}
+        void setClusterID(int cluster_id){m_cluster_id = cluster_id;}
+
+    private:
+        int m_id;
+        int m_cluster_id;
+        bool m_visited;
+        cv::Scalar m_color;
+
+
+};
+
+class Step_ColourCluster : public Step_BaseClass
+{
+    public:
+        Step_ColourCluster(ProcessingOptions& opts):
+            Step_BaseClass(opts)
+            {}
+
+
+    protected:
+        void process(const void* src);
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        std::vector< std::pair<int,int> >  cluster(const Result& in_numerical_result);
+    private:
+        bool m_use_this_filter;
+        double m_clustering_distance;
+        int m_min_pts;
+        Result m_step_numerical_result;
+
+        //relevant for header parameters for dbscan alorithm
+        std::vector<ClusterPoint> m_cluster_vector;
+        std::vector<ClusterPoint> m_neighbours;
+
+        double m_clustering_distance_2;
+        unsigned const m_min_cluster_pts = 4;
+        int m_current_cluster;
+
+        void dbscan();
+        std::vector<std::vector<ClusterPoint>::iterator> findNeighbours(ClusterPoint);
+        void expandCluster(ClusterPoint);
+};
+
+
+
+
+#endif // STEP_COLOURCLUSTER_H
diff --git a/src/processor/headers/Step_FiltGUI.hpp b/src/processor/headers/Step_FiltGUI.hpp
new file mode 100644
index 0000000..58a1ce6
--- /dev/null
+++ b/src/processor/headers/Step_FiltGUI.hpp
@@ -0,0 +1,24 @@
+#ifndef STEP_FILTGUI_H
+#define STEP_FILTGUI_H
+
+#include "defines.hpp"
+#include "Step_BaseClass.hpp"
+#include "ContourFamily.hpp"
+
+
+class Step_FiltGUI : public Step_BaseClass
+{
+    public:
+        Step_FiltGUI(ProcessingOptions& opts):
+        Step_BaseClass(opts),m_tag_same_result(false){}
+    protected:
+        void process(const void* src);
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+    private:
+        bool m_use_this_filter;
+        cv::Mat m_filter_mat;
+        Result m_step_numerical_result;
+        bool m_tag_same_result;
+};
+#endif // STEP_FILTGUI_H
diff --git a/src/processor/headers/Step_FiltHS.hpp b/src/processor/headers/Step_FiltHS.hpp
new file mode 100644
index 0000000..07db700
--- /dev/null
+++ b/src/processor/headers/Step_FiltHS.hpp
@@ -0,0 +1,28 @@
+#ifndef STEP_FILTHS_H
+#define STEP_FILTHS_H
+
+#include "defines.hpp"
+#include "Step_BaseClass.hpp"
+#include "ContourFamily.hpp"
+
+class Step_FiltHS : public Step_BaseClass
+{
+    public:
+        Step_FiltHS(ProcessingOptions& opts):
+            Step_BaseClass(opts){}
+    protected:
+        void process(const void* src);
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        std::vector<bool>  filter(const Result& in_numerical_result);
+    private:
+        bool m_use_this_filter;
+        int m_centr_hue;
+        int m_min_sat;
+        int m_tol_hue;
+        int m_max_sat;
+        Result m_step_numerical_result;
+};
+
+#endif // STEP_FILTHS_H
+
diff --git a/src/processor/headers/Step_FiltIPosition2D.hpp b/src/processor/headers/Step_FiltIPosition2D.hpp
new file mode 100644
index 0000000..ab8599b
--- /dev/null
+++ b/src/processor/headers/Step_FiltIPosition2D.hpp
@@ -0,0 +1,32 @@
+#ifndef STEP_FILTIPOSITION2D_H
+#define STEP_FILTIPOSITION2D_H
+
+#include "defines.hpp"
+#include "Step_BaseClass.hpp"
+#include "ContourFamily.hpp"
+
+class Step_FiltIPosition2D : public Step_BaseClass
+{
+    public:
+        Step_FiltIPosition2D(ProcessingOptions& opts):
+            Step_BaseClass(opts),m_use_this_filter(true)
+            {}
+
+    protected:
+        void process(const void* src);
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        std::vector<int>  filter(const Result& in_numerical_result);
+
+    void makeROIPolygons();
+    private:
+        bool m_use_this_filter;
+        cv::Mat m_old_mask;
+        cont_chunk m_ROIS_polygs;
+        std::vector<int> m_ROIS_val;
+        Result m_step_numerical_result;
+};
+
+#endif // STEP_FILTHS_H
+
+
diff --git a/src/processor/headers/Step_FiltLik.hpp b/src/processor/headers/Step_FiltLik.hpp
new file mode 100644
index 0000000..acba07c
--- /dev/null
+++ b/src/processor/headers/Step_FiltLik.hpp
@@ -0,0 +1,32 @@
+#ifndef STEP_FILTLIK_H
+#define STEP_FILTLIK_H
+#include "Step_BaseClass.hpp"
+
+class Step_FiltLik : public Step_BaseClass
+{
+    public:
+        Step_FiltLik(ProcessingOptions& opts):
+            Step_BaseClass(opts),
+            N_FEATURES(6),
+            m_means(N_FEATURES),
+            m_sds(N_FEATURES){}
+
+    protected:
+        std::vector<bool> filter(const Result& in_numerical_result);
+        void process(const void* src);
+        void updateParams(const void* src,bool was_forced);
+        bool needReprocess(const void* src);
+        float calcLikScore(std::vector<float>& in);
+
+    private:
+        const int N_FEATURES;
+        bool m_use_this_filter;
+        float m_lik_thr;
+        std::vector<float> m_means;
+        std::vector<float> m_sds;
+        Result m_step_numerical_result;
+
+
+};
+#endif // STEP_FILTLIK_H
+
diff --git a/src/processor/src/ArgumentParser.cpp b/src/processor/src/ArgumentParser.cpp
new file mode 100644
index 0000000..1383a58
--- /dev/null
+++ b/src/processor/src/ArgumentParser.cpp
@@ -0,0 +1,171 @@
+#include <iostream>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sstream>
+#include <utility>
+#include "ArgumentParser.hpp"
+
+ArgumentParser::ArgumentParser(int argc, char **argv,ProcessingOptions& opts):
+m_help_string("OpenCFU options:\n\
+-h = print this help\n\
+-v = print the version number\n\
+-a = set the auto-threshold ON. It overrides the argument -t\n\
+-i FILE : the name of the input image file\n\
+-m [FILE | auto]  :the name of the mask image file or the keyword `auto'\n\
+-d {reg,inv,bil} : The type of threshold: regular, inverted or bilateral (the default value `reg')\n\
+-t NUM :set the threshold (the default value is 10)\n\
+-l NUM : set a threshold for outlier exclusion(the default value is 10)\n\
+-r NUM : set the minimal radius (the default value is 3)\n\
+-R NUM : set a maximal radius\n\
+-c NUM : set a \"center\" value of the Hue/Colour threshold\n\
+-C NUM : set a \"tolerance\" value of the Hue/Colour threshold\n\
+-G NUM : set a \"coarseness\" value for the density based scanner\n\
+")
+{
+    std::stringstream tss;
+    std::pair<int,int> min_max_radius,cent_tol_hue;
+    double clustering_distance;
+    min_max_radius = opts.getMinMaxRad();
+    cent_tol_hue = opts.getCenTolHue();
+    clustering_distance = opts.getClustDist();
+    signed char c=0;
+
+    while ( (c = getopt (argc, argv, "hvad:i:m:r:R:c:C:t:l:o:G:")) != -1){
+        switch(c){
+            case 'h':
+                 printHelp();
+                 exit(EXIT_SUCCESS);
+                 break;
+            case 'v':
+                 DEV_INFOS("test");
+                 printVersion();
+                 exit(EXIT_SUCCESS);
+                 break;
+
+            case 'a':
+                 opts.setHasAutoThr(true);
+                 break;
+            case 'r':
+                min_max_radius.first =atoi(optarg);
+                break;
+
+            case 'R':
+                opts.setHasMaxRad(true);
+                min_max_radius.second = atoi(optarg);
+                break;
+
+            case 'c':
+                opts.setHasHueFilt(true);
+                cent_tol_hue.first = atoi(optarg);
+                break;
+
+            case 'C':
+                opts.setHasHueFilt(true);
+                cent_tol_hue.second = atoi(optarg);
+                break;
+            case 'G':
+                opts.setHasClustDist(true);
+                clustering_distance = atoi(optarg);
+                break;
+            case 'd':{
+                std::string str_optarg(optarg);
+                if(str_optarg == "reg")
+                    opts.setThrMode(OCFU_THR_NORM);
+                else if(str_optarg == "inv")
+                    opts.setThrMode(OCFU_THR_INV);
+                else if(str_optarg == "bil")
+                    opts.setThrMode(OCFU_THR_BILAT);
+                else{
+                    std::cerr<<"ERROR the type of threshold ("<<tss.str()<<") must be one of {reg,inv,bil}"<<std::endl;
+                    exit(EXIT_FAILURE);
+                }
+                break;
+            }
+            case 'i':
+                tss.str(optarg);
+                if (!opts.setImage(tss.str())){
+                    std::cerr<<"ERROR setting-up the INPUT file\""<<tss.str()<<"\"."<<std::endl;
+                    exit(EXIT_FAILURE);
+                }
+
+                break;
+
+            case 'm':
+                if(std::string(optarg) != "auto"){
+                    if (!opts.setMask(MaskROI(optarg))){
+                        std::cerr<<"ERROR setting up the MASK file\""<<tss.str()<<"\"."<<std::endl;
+                        exit(EXIT_FAILURE);
+                    }
+                }
+                else
+                    opts.setMask(MaskROI(MASK_TYPE_AUTO));
+
+                break;
+            case 't':
+                 if (!opts.setThr(atoi(optarg))){
+                    std::cerr<<atoi(optarg)<<"Incorrect value for threshold.\
+                     It should be in the [0,255] range"<<std::endl;
+                     exit(EXIT_FAILURE);
+                }
+
+                break;
+
+            case 'l':
+                 if (!opts.setLikeThr(atof(optarg))){
+                    std::cerr<<atof(optarg)<<" Incorrect value for outlier\
+                     exclusion threshold."<<std::endl;
+                     exit(EXIT_FAILURE);
+                }
+                else
+                    opts.setHasOutlierFilt(true);
+
+                break;
+
+            case '?':
+                if (optopt == 'c')
+                    std::cerr<<"Option -"<<optopt<<" requires an argument"<<std::endl;
+                else if (isprint (optopt))
+                    std::cerr<<"Unknown option -"<<optopt<<std::endl;
+                else
+                    std::cerr<<"Unknown option character"<<optopt<<std::endl;
+                exit(EXIT_FAILURE);
+                break;
+            default:
+                break;
+        }
+    }
+
+    if (opts.getImage().empty()){
+        std::cerr<<"ERROR no input file ! Use -i FILE"<<std::endl;
+        exit(EXIT_FAILURE);
+    }
+
+    if(!opts.setMinMaxRad(min_max_radius)){
+        std::cerr<<"ERROR setting up the radius limits\
+         (arguments \"-r\" and \"-R\")."<<std::endl;
+         exit(EXIT_FAILURE);
+    }
+    if(!opts.setCenTolHue(cent_tol_hue)){
+        std::cerr<<"ERROR setting up the hue limits\
+            (arguments \"-c\" and \"-C\"). They \
+            must be in the [0,360] and [0,180] \
+            range respecively"<<std::endl;
+            exit(EXIT_FAILURE);
+    }
+
+    if(!opts.setClustDist(clustering_distance)){
+        std::cerr<<"ERROR setting up the clustering distance\
+         (argument \"-G\"). Must be in range [1,50]"<<std::endl;
+         exit(EXIT_FAILURE);
+    }
+
+}
+
+void ArgumentParser::printHelp(){
+    std::cout<<m_help_string<<std::endl;
+}
+
+void ArgumentParser::printVersion(){
+    std::cout<<PACKAGE_VERSION<<std::endl;
+}
diff --git a/src/processor/src/ContourFamily.cpp b/src/processor/src/ContourFamily.cpp
new file mode 100644
index 0000000..1e8e95c
--- /dev/null
+++ b/src/processor/src/ContourFamily.cpp
@@ -0,0 +1,36 @@
+#include "ContourFamily.hpp"
+
+ContourFamily::ContourFamily():
+n_per_clust(0)
+{}
+
+ContourFamily::ContourFamily(const cont_chunk& cc):
+contours(cc),
+n_per_clust(0)
+{
+    this->makeHierarchies(cc.size() -1 );
+}
+
+void ContourFamily::makeHierarchies(unsigned int nHoles){
+    if (nHoles ==0){
+        hierarchies.push_back(cv::Vec4i(-1,-1,-1,-1));
+    }
+    else{
+        hierarchies.reserve(nHoles+1);
+        hierarchies.push_back(cv::Vec4i(-1,-1,1,-1));
+
+        int zeroth,first;
+
+        for(unsigned int h = 1; h != nHoles+1; h++){
+            if(h == nHoles)
+                zeroth = -1;
+            else
+                zeroth = h+1;
+            if(h == 1)
+                first = -1;
+            else
+                first = h-1;
+            hierarchies.push_back(cv::Vec4i(zeroth,first,-1,0));
+        }
+    }
+}
diff --git a/src/processor/src/ContourSpliter.cpp b/src/processor/src/ContourSpliter.cpp
new file mode 100644
index 0000000..9b19527
--- /dev/null
+++ b/src/processor/src/ContourSpliter.cpp
@@ -0,0 +1,176 @@
+#include "ContourSpliter.hpp"
+
+void ContourSpliter::split(std::vector<ContourFamily>& contour_fams,std::vector<signed char>& categ){//,
+    unsigned int hi = contour_fams.size();
+    std::vector<std::vector<ContourFamily> > list_contour_fams(hi);
+
+    #pragma omp parallel for schedule(dynamic)
+    for(unsigned int i=0; i < hi; ++i ){
+        signed char cat_it = categ[i];
+        std::vector<ContourFamily> tmp_v = list_contour_fams[i];
+        if(cat_it == 'M'){
+            splitOneCont(contour_fams[i], tmp_v);
+        }
+        else if(cat_it == 'S' ){
+            tmp_v.resize(1);
+            tmp_v[0] = contour_fams[i];
+        }
+        list_contour_fams[i] = tmp_v;
+    }
+
+
+
+    unsigned int siz = 0;
+    for(unsigned int i=0; i < hi; ++i )
+        siz += list_contour_fams[i].size();
+
+    std::vector<ContourFamily> tmp_contour_fams(siz);
+    std::vector<signed char> tmp_categ(siz);
+
+    unsigned int k = 0;
+
+
+    for(unsigned int i=0; i < hi; ++i ){
+        unsigned int ncl = list_contour_fams[i].size();
+
+        for(unsigned int j=0; j < ncl; ++j ){
+            tmp_contour_fams[k] = list_contour_fams[i][j];
+            tmp_categ[k] = categ[i];
+            tmp_contour_fams[k].n_per_clust = ncl;
+            k++;
+
+        }
+    }
+
+    std::swap(tmp_contour_fams,contour_fams);
+    std::swap(tmp_categ,categ);
+}
+
+void ContourSpliter::makeWatershedLabel(const cv::Mat& binary, const cont_chunk& peaks_conts, cv::Mat& labels){
+    cv::threshold(binary,labels,0,1,cv::THRESH_BINARY);
+    for(unsigned int k=0;k<peaks_conts.size();k++)
+        cv::drawContours(labels,peaks_conts,k,cv::Scalar(k+2),-1,8);
+}
+
+void ContourSpliter::findPeaks(const cv::Mat& binary, cv::Mat& distance_map, cont_chunk& peaks_conts){
+    cv::Mat tmp_mat,peaks;
+    cv::distanceTransform(binary,distance_map,CV_DIST_L2,CV_DIST_MASK_5);
+    cv::dilate(distance_map,peaks,cv::Mat(),cv::Point(-1,-1),3);
+    cv::dilate(binary,tmp_mat,cv::Mat(),cv::Point(-1,-1),3);
+    peaks = peaks - distance_map;
+    cv::threshold(peaks,peaks,0,255,cv::THRESH_BINARY);
+    peaks.convertTo(peaks,CV_8U);
+    cv::bitwise_xor(peaks,tmp_mat,peaks);
+    cv::dilate(peaks,peaks,cv::Mat(),cv::Point(-1,-1),1);
+    cv::findContours(peaks, peaks_conts, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
+    distance_map.convertTo(distance_map,CV_8U);
+}
+
+void ContourSpliter::splitOneCont(const ContourFamily& in, std::vector<ContourFamily>& out){
+
+    cv::Rect rect = cv::boundingRect(in.contours[0]);
+    cv::Mat miniTmp(rect.height,rect.width,CV_8U,cv::Scalar(0));
+    cv::drawContours(miniTmp,in.contours,-1,cv::Scalar(255),-1,8,in.hierarchies, INT_MAX, cv::Point(-rect.x,-rect.y));
+    cv::copyMakeBorder(miniTmp,miniTmp, 4,4,4,4, cv::BORDER_CONSTANT, cv::Scalar(0));
+
+    cv::Mat distance_map;
+    cont_chunk peaks;
+    findPeaks(miniTmp,distance_map,peaks);
+
+    unsigned int n_peaks = peaks.size();
+    cv::Mat label_mat;
+    makeWatershedLabel(miniTmp,peaks,label_mat);
+    watershedLike(label_mat,distance_map,n_peaks,1.6);
+    std::vector<ContourFamily> tmp_out;
+    tmp_out.reserve(n_peaks);
+    for(unsigned int k=0;k != n_peaks; ++k){
+        cv::Mat tmp;
+        cont_chunk tmpc;
+        cv::inRange(label_mat, k+2,k+2, tmp);
+        cv::findContours(tmp, tmpc, cv::RETR_CCOMP, cv::CHAIN_APPROX_SIMPLE,cv::Point(rect.x-4,rect.y-4));
+        tmp_out.push_back(ContourFamily(tmpc));
+    }
+    std::swap(out,tmp_out);
+}
+
+
+
+void ContourSpliter::watershedLike(cv::Mat &mask,cv::Mat& gray,int nlabs,double maxAreaModif){
+    /* Mask is 0 where no objects exist, 1 in undefined womes and >1 for attributed zones/labels*/
+    /* toUse is >0 for mpixel that have not yet been used as seed, and ==0 for the rest*/
+    cv::Mat toUse, tmp;
+    std::vector<int> areaCount(nlabs),peakValSQ(nlabs), maxArea(nlabs);
+    std::vector<cv::Point> center(nlabs);
+    for(unsigned int j=0; j<areaCount.size();j++){
+        areaCount[j] = 0;
+        peakValSQ[j] = 0;
+    }
+
+    mask.copyTo(toUse);
+    unsigned int nc=mask.cols;
+    unsigned int nl=mask.rows;
+
+    /*define the peaks heigh in gray*/
+    for(unsigned int j=0; j<nl;j++){
+        for(unsigned int i=0; i<nc;i++){
+            char newVal =*(mask.data+j*mask.step+i*mask.elemSize());
+            if(newVal > 1){
+                if(peakValSQ[newVal-2] < *(gray.data+(j)*gray.step+(i)*gray.elemSize()) ){
+                   peakValSQ[newVal-2] = *(gray.data+(j)*gray.step+(i)*gray.elemSize());
+                   peakValSQ[newVal-2] = peakValSQ[newVal-2] * peakValSQ[newVal-2];
+                   center[newVal-2]=cv::Point(j,i);
+
+                }
+            }
+        }
+    }
+    for(unsigned int j=0; j<areaCount.size();j++){
+        maxArea[j] = maxAreaModif * peakValSQ[j]*3.1416;
+    }
+    bool on =true;
+    int iter = 0;
+    while(on){
+        mask.copyTo(tmp);
+        on =false;
+        for(unsigned int j=0; j != nl; ++j){
+            for(unsigned int i=0; i != nc; ++i){
+                /* find pixels that are labels (mask) and unused(toUse)*/
+                if(*(mask.data+j*mask.step+i*mask.elemSize()) > 1 && *(toUse.data+j*toUse.step+i*toUse.elemSize()) > 0){
+                    /*for each neighbourgs*/
+                    for(int m=-1; m != 2;++m){
+                        for(int n=-1; n !=2;n++){
+                            bool test = !(n == 0 && m==0 ) || (n==0 || m==0);
+                                if( test && *(tmp.data+(j+m)*tmp.step+(i+n)*tmp.elemSize()) == 1){
+                                switch (*(mask.data+(j+m)*mask.step+(i+n)*mask.elemSize())){
+                                    case 0:
+                                        break;
+                                    /* if the mask in markable*/
+                                    case 1:
+                                        /* if the neighbour value in gray is lower or equal to the target*/
+                                        if(*(gray.data+(j+m)*gray.step+(i+n)*gray.elemSize()) <= *(gray.data+j*gray.step+i*gray.elemSize()) ){
+                                            char newVal =*(mask.data+j*mask.step+i*mask.elemSize());
+                                            int xd = (j+m)-center[newVal-2].x;
+                                            int yd = (i+m)-center[newVal-2].y;
+                                            if(areaCount[newVal-2] < maxArea[newVal-2] && xd*xd+yd*yd < maxAreaModif*peakValSQ[newVal-2]){
+                                                *(tmp.data+(j+m)*tmp.step+(i+n)*tmp.elemSize()) = newVal;
+                                                ++areaCount[newVal-2];
+                                            }
+                                        }
+                                        break;
+                                    default:
+                                        break;
+                                }
+                            }
+                        }
+                    }
+                    *(toUse.data+j*toUse.step+i*toUse.elemSize()) = 0;
+                    on = true;
+                }
+            }
+        }
+        tmp.copyTo(mask);
+        ++iter;
+    }
+}
+
+
diff --git a/src/processor/src/Features.cpp b/src/processor/src/Features.cpp
new file mode 100644
index 0000000..b8ef506
--- /dev/null
+++ b/src/processor/src/Features.cpp
@@ -0,0 +1,111 @@
+#include "Features.hpp"
+
+Features::Features():m_nfeatures(6+7){}
+
+void Features::calcFeatures(const ContourFamily& fam,cv::Mat out){
+    std::vector<cv::Point> contour ;
+    this->smoothContour(fam.contours[0],contour);
+    unsigned int s = fam.contours.size();
+    unsigned int np = contour.size();
+    float perim;
+    float area;
+    assert (np>6);
+
+    perim = cv::arcLength( contour,true);
+    area = cv::contourArea(contour);
+
+    cv::Point2f WH = Features::calculateWH(contour);
+    cv::Point2f PA_hull = calcHullPerimArea(contour);
+
+    float perim_hole = 0;
+    float area_hole = 0;
+    for(unsigned int i=1;i != s; ++i){
+        if(fam.contours[i].size() > 6){
+            perim_hole += cv::arcLength(fam.contours[i],true);
+            area_hole +=  cv::contourArea(fam.contours[i]);
+        }
+    }
+    if(area_hole  >= area)
+        area = 1;
+    else
+        area -= area_hole;
+    perim += perim_hole;
+    PA_hull.y -= area_hole;
+    PA_hull.x += perim_hole;
+    float matData[m_nfeatures];
+    int p=0;
+
+    matData[p++] = perim * perim / area;
+    matData[p++] = (PA_hull.y - area) / PA_hull.y;
+    matData[p++] = (PA_hull.x - perim) / PA_hull.x;
+    matData[p++] = area_hole / (area+area_hole);
+    matData[p++] = perim_hole / (perim+perim_hole);
+    matData[p++] = WH.x / (WH.y + WH.x);
+
+    double hu_moms[7];
+    cv::HuMoments(cv::moments(contour),hu_moms);
+    for(int i = 0; i<7;i++){
+        matData[i + p] = hu_moms[i];
+
+    }
+    cv::Mat layers(1,m_nfeatures,CV_32F,(void*)matData);
+    layers.copyTo(out);
+
+}
+
+
+cv::Point2f Features::calcHullPerimArea(const std::vector<cv::Point>& contour){
+    std::vector<cv::Point> hull;
+    cv::convexHull(contour, hull);
+    return cv::Point(cv::arcLength( contour,true),cv::contourArea(hull));
+}
+
+cv::Point2f Features::calculateWH(const std::vector<cv::Point>& contour){
+    cv::Point2f rRect[4];
+    cv::minAreaRect(contour).points(rRect);
+
+    float A,B;
+    A = calcTwoPointDist(rRect[0],rRect[1]) + 1;
+    B = calcTwoPointDist(rRect[1],rRect[2]) + 1;
+
+    return cv::Point(std::max(A,B),std::min(A,B));
+}
+
+
+inline float Features::calcTwoPointDist(const cv::Point P0,const cv::Point P1){
+        float Ax,Ay;
+        Ax = P0.x - P1.x;
+        Ax *= Ax;
+        Ay = P0.y - P1.y;
+        Ay *= Ay;
+        return sqrt(Ax + Ay) / 2;
+}
+
+
+void Features::smoothContour(const std::vector<cv::Point>& in ,std::vector<cv::Point>& out){
+
+    /* We define kenrel size as {number of points}/20*/
+    int k = 2*(in.size()/40) + 1;
+    /* however, k will not be higher than 99. Smoothing is important mainly for small shapes.
+       Also, it is very slow as k gets large */
+    if(k>99)
+        k=99;
+    /*k cannot be lower than 3*/
+    if(k>2){
+        /* Temporary matrix*/
+        cv::Mat in_mat,smooth_mat;
+        /* We copy the data of contour into the matrix (no hard copy here, so no need to copy back the data to the vector)*/
+        in_mat = cv::Mat(in,false);
+
+        /* These line is to solve the border effect (a contour is circular)*/
+        cv::copyMakeBorder(in_mat,smooth_mat, (k-1)/2,(k-1)/2 ,0, 0, cv::BORDER_WRAP);
+
+        /* Linear kernel application*/
+        cv::blur(smooth_mat, smooth_mat, cv::Size(1,k),cv::Point(-1,-1));
+
+        /* We remove the artificial border put two lines ago  */
+        smooth_mat.rowRange(cv::Range((k-1)/2,1+smooth_mat.rows-(k-1)/2)).copyTo(out);
+    }
+    else
+        out = in;
+}
diff --git a/src/processor/src/MaskROI.cpp b/src/processor/src/MaskROI.cpp
new file mode 100644
index 0000000..ce1887b
--- /dev/null
+++ b/src/processor/src/MaskROI.cpp
@@ -0,0 +1,93 @@
+#include "MaskROI.hpp"
+
+void MaskROI::update(const cv::Mat parent_image){
+    if(!m_original_mat.empty() && !parent_image.empty()){
+        if(( m_original_mat.rows != parent_image.rows || m_original_mat.cols != parent_image.cols)
+            && (type == MASK_TYPE_FILE ||type == MASK_TYPE_DRAW))
+            cv::resize(m_original_mat,m_mat,cv::Size(parent_image.cols,parent_image.rows),0,0,cv::INTER_NEAREST);
+        else
+            m_original_mat.copyTo(m_mat);
+    }
+    if(type == MASK_TYPE_AUTO && !parent_image.empty())
+        this->makeAutoMask(parent_image);
+}
+
+void MaskROI::setFromPoints(const std::vector< std::pair<std::vector<cv::Point2f>,int > >& points,int width,int height){
+
+    m_original_mat=cv::Mat(height,width,CV_8UC1,cv::Scalar(0));
+    type = MASK_TYPE_DRAW;
+    unsigned char j = 1;
+    for(auto& i : points){
+        if(i.second == MASK_TOOL_3P_CIRCLE){
+            assert((i.first).size() == 3);
+            std::vector<float> vec(3);
+            vec = circleFrom3(i.first);
+            cv::circle( m_original_mat,cv::Point(vec[0],vec[1]), vec[2], cv::Scalar(j++), CV_FILLED, 8, 0 );
+        }
+        else if(i.second == MASK_TOOL_CONV_POLYGON){
+            assert((i.first).size() >2 );
+            std::vector<std::vector<cv::Point> > pts(1);
+            for(auto j : i.first){
+                pts[0].push_back(cv::Point(round(j.x),round(j.y)));
+            }
+            cv::convexHull(pts[0],pts[0]);
+            cv::drawContours(m_original_mat,pts,0,cv::Scalar(j++),-1);
+        }
+    }
+}
+
+void MaskROI::makeAutoMask(const cv::Mat& parent){
+    cv::Mat grey;
+    cv::cvtColor(parent,grey,CV_BGR2GRAY);
+    cv::Mat mask(grey.size(),CV_8UC1,cv::Scalar(0));
+	float r = 256.0/ (float) grey.cols ;
+	cv::resize(grey,grey,cv::Size(0,0),r,r,cv::INTER_AREA);
+	cv::medianBlur(grey,grey,7);
+	std::vector<cv::Vec3f> out;
+	cv::HoughCircles(grey, out,  CV_HOUGH_GRADIENT,2, 100, 150, 10, 75, 350);
+	if(out.size()>0){
+        auto& i = out[0];
+        cv::circle(mask,cv::Point(i[0]/r,i[1]/r),i[2]/r,cv::Scalar(1),-1);
+        m_original_mat = mask;
+        m_mat = mask;
+    }
+    else{
+        m_original_mat = cv::Mat();
+        m_mat = cv::Mat();
+    }
+}
+
+/** This function is to calculate the cicle matching 3 points (used to draw a circular mask) */
+std::vector<float> MaskROI::circleFrom3(const std::vector<cv::Point2f>& points){
+	double x1,x2,x3,y1,y2,y3,c,f,g,m,d,e,h,k,s,r;
+
+	x1=points[0].x;
+	x2=points[1].x;
+	x3=points[2].x;
+	y1=points[0].y;
+	y2=points[1].y;
+	y3=points[2].y;
+
+	f = x3*x3-x3*x2-x1*x3+x1*x2+y3*y3-y3*y2-y1*y3+y1*y2; //formula
+	g = x3*y1-x3*y2+x1*y2-x1*y3+x2*y3-x2*y1;
+
+	if(g==0)
+		m = 0;
+	else
+		m = (f/g);
+
+	c = (m*y2)-x2-x1-(m*y1);	//formula
+	d = (m*x1)-y1-y2-(x2*m);
+	e = (x1*x2)+(y1*y2)-(m*x1*y2)+(m*x2*y1);
+	h = (c/2);			//formula
+	k = (d/2);
+	s = (((h)*(h))+((k)*(k))-e);
+	r = pow(s,0.5);
+
+
+	std::vector<float>vec(3);
+	vec[0] = pow(pow(h,2),.5);
+	vec[1] = pow(pow(k,2),.5);
+	vec[2] = r;
+	return vec;
+}
diff --git a/src/processor/src/Predictor.cpp b/src/processor/src/Predictor.cpp
new file mode 100644
index 0000000..9da5a78
--- /dev/null
+++ b/src/processor/src/Predictor.cpp
@@ -0,0 +1,49 @@
+#include "Predictor.hpp"
+
+
+#include "opencv2/highgui/highgui.hpp"//todel
+
+Predictor::Predictor():
+m_rt_params(
+10,//maxdepth
+10,//mincount
+0,//regression accur
+false,//surogate?
+3,//max categ
+0,//pointer to priors
+true,// var importance?
+false,//nact_var
+100,//max num tree
+0.01,//accuracy
+CV_TERMCRIT_EPS | CV_TERMCRIT_ITER//terminaison criteria
+)
+{
+    /*Reset random seed*/
+    *(m_trees.get_rng())= cvRNG(4);
+}
+
+void Predictor::loadTrainData(const std::string& str){
+    m_trees.load(str.c_str());
+}
+
+void Predictor::save(const std::string& str){
+    m_trees.save(str.c_str());
+}
+
+void Predictor::train(const cv::Mat& features, const std::vector<signed char>& categs){
+    cv::Mat categ_mat(categs.size(),1,CV_32S);
+    for(int i = 0; i < categ_mat.rows;i++)
+        categ_mat.at<long>(cv::Point(0,i)) = categs[i];
+    m_trees.train(features,CV_ROW_SAMPLE,categ_mat,cv::Mat(),cv::Mat(),cv::Mat(),cv::Mat(),m_rt_params);
+    DEV_INFOS("Variable Importance:\n"<<m_trees.getVarImportance()<<std::endl);
+}
+
+void Predictor::predict(const cv::Mat& in, std::vector<signed char>& out){
+    out.clear();
+    out.reserve(in.rows);
+    for(int i = 0; i < in.rows;i++){
+        signed char cat = m_trees.predict(in.row(i));
+        out.push_back(cat) ;
+    }
+}
+
diff --git a/src/processor/src/ProcessingOptions.cpp b/src/processor/src/ProcessingOptions.cpp
new file mode 100644
index 0000000..3ffba4f
--- /dev/null
+++ b/src/processor/src/ProcessingOptions.cpp
@@ -0,0 +1,46 @@
+#include "ProcessingOptions.hpp"
+#include "opencv2/imgproc/imgproc.hpp"
+
+
+ProcessingOptions::ProcessingOptions():
+    m_image(cv::Mat()),
+    m_mask(cv::Mat()),
+    m_min_max_radius(3,50),
+    m_cent_tol_hue(180,180),
+    m_min_max_sat(0,255),
+    m_likelihood_thr(30),
+    m_clustering_distance(2.3), //NJL 10/AUG/2014
+    m_threshold (10),
+    m_threshold_mode(OCFU_THR_NORM),
+    m_has_max_radius(false),
+    m_has_auto_threshold(false),
+    m_has_hue_filter(false),
+    m_has_outlier_filter(false),
+    m_has_clustering_distance(false), //NJL 10/AUG/2014
+    m_gui_filter(new cv::Mat){
+}
+
+//ProcessingOptions::~ProcessingOptions(){
+//    DEV_INFOS("destroying");
+//}
+
+ProcessingOptions&  ProcessingOptions::operator= (const ProcessingOptions& cpy){
+    m_min_max_radius = cpy.getMinMaxRad();
+    m_cent_tol_hue = cpy.getCenTolHue();
+
+    m_min_max_sat = cpy.getMinMaxSat();
+    m_likelihood_thr = cpy.getLikeThr();
+    m_threshold = cpy.getThr();
+    m_threshold_mode = cpy.getThrMode();
+    m_clustering_distance = cpy.getClustDist(); //NJL 10/AUG/2014
+    m_has_max_radius = cpy.getHasMaxRad();
+    m_has_auto_threshold = cpy.getHasAutoThr();
+    m_has_hue_filter = cpy.getHasHueFilt();
+    m_has_outlier_filter = cpy.getHasOutlierFilt();
+    m_has_clustering_distance = cpy.getHasClustDist(); //NJL 10/AUG/2014
+
+    cpy.m_gui_filter->copyTo(*m_gui_filter);
+    cpy.m_image.copyTo(m_image);
+    cpy.m_mask.copyTo(m_mask);
+    return *this;
+}
diff --git a/src/processor/src/Processor.cpp b/src/processor/src/Processor.cpp
new file mode 100644
index 0000000..60a7e49
--- /dev/null
+++ b/src/processor/src/Processor.cpp
@@ -0,0 +1,106 @@
+#include "Processor.hpp"
+#include "Step_1.hpp"
+#include "Step_2.hpp"
+#include "Step_3.hpp"
+#include "Step_4.hpp"
+#include "Step_FiltGUI.hpp"
+#include "Step_FiltHS.hpp"
+#include "Step_FiltIPosition2D.hpp"
+#include "Step_FiltLik.hpp"
+#include "Step_ColourCluster.hpp"
+#include <sstream>
+#include <iostream>
+
+Processor::Processor(ProcessingOptions& opts):
+    m_opts(opts),
+    m_is_busy(false)
+
+{
+    cv::FileStorage fs;
+    std::string path = std::string("./")+std::string(TRAINED_CLASSIF_XML_FILE);
+    fs.open(path, cv::FileStorage::READ);
+    DEV_INFOS("Trying to open any local trained classifier: "<<path);
+    if (!fs.isOpened()){
+
+        #if defined _WIN64 || defined _WIN32
+        path = std::string("../")+std::string(TRAINED_CLASSIF_XML_FILE);
+        #else
+        path = std::string(INSTALLDIR)+std::string("/")+std::string(TRAINED_CLASSIF_XML_FILE);
+        #endif
+        DEV_INFOS("failed. Falling back on installation path: "<<path);
+        fs.open(path, cv::FileStorage::READ);
+        if(!fs.isOpened()){
+            DEV_INFOS("NO TRAINED CLASSIFIER!! CHECK INSTALLATION"<<path);
+            assert(!fs.isOpened());
+        }
+    }
+    m_predictor.loadTrainData(path);
+    std::string path_ps = std::string("./")+std::string(TRAINED_CLASSIF_PS_XML_FILE);
+    fs.open(path_ps, cv::FileStorage::READ);
+    DEV_INFOS("Trying to open any local trained classifier: "<<path_ps);
+    if (!fs.isOpened()){
+
+        #if defined _WIN64 || defined _WIN32
+        path_ps = std::string("../")+std::string(TRAINED_CLASSIF_PS_XML_FILE);
+        #else
+        path_ps = std::string(INSTALLDIR)+std::string("/")+std::string(TRAINED_CLASSIF_PS_XML_FILE);
+        #endif
+        DEV_INFOS("failed. Falling back on installation path: "<<path_ps);
+        fs.open(path_ps, cv::FileStorage::READ);
+        if(!fs.isOpened()){
+            DEV_INFOS("NO TRAINED CLASSIFIER!! CHECK INSTALLATION"<<path_ps);
+            assert(!fs.isOpened());
+        }
+    }
+
+
+    m_predictor_ps.loadTrainData(path_ps);
+
+    m_processing_steps.push_back(new Step_1(opts));
+    m_processing_steps.push_back(new Step_2(opts));
+    m_processing_steps.push_back(new Step_3(opts,m_predictor));
+    m_processing_steps.push_back(new Step_4(opts,m_predictor,m_predictor_ps,m_raw_img));
+    m_processing_steps.push_back(new Step_FiltGUI(opts));
+    m_processing_steps.push_back(new Step_FiltIPosition2D(opts));
+    m_processing_steps.push_back(new Step_FiltHS(opts));
+    m_processing_steps.push_back(new Step_FiltLik(opts));
+    m_processing_steps.push_back(new Step_ColourCluster(opts)); //NJL 28/AUG/2014 //Gives segfault at the moment
+    DEV_INFOS("Processor constructed");
+}
+
+void Processor::runAll(){
+    DEV_INFOS("Running processor...");
+
+    assert(!m_opts.getImage().empty());
+    void* tmp_step_results = (void*) &m_opts.getImage();
+    m_raw_img = m_opts.getImage();
+    bool pipeBrocken = false;
+
+    Result result;
+    for(auto& step : m_processing_steps ){
+        pipeBrocken = step->run(tmp_step_results,pipeBrocken);
+    }
+
+    m_result = (Result*) tmp_step_results;
+    DEV_INFOS("Processor run finished.");
+    DEV_INFOS("N = "<<m_result->getNValid());
+}
+
+Processor::~Processor()
+{
+    DEV_INFOS("Destructing Processor...");
+    for(auto &it : m_processing_steps) {
+        delete it;
+    }
+    DEV_INFOS("Processor destroyed");
+}
+
+void Processor::writeResult(){
+    std::cout << OneObjectRow::printHeader()<<std::endl;
+    for(unsigned int i = 0; i != m_result->size();i++){
+        const OneObjectRow& oor = m_result->getRow(i);
+        std::cout << oor.print()<<std::endl;
+    }
+
+}
+
diff --git a/src/processor/src/Result.cpp b/src/processor/src/Result.cpp
new file mode 100644
index 0000000..2223a2a
--- /dev/null
+++ b/src/processor/src/Result.cpp
@@ -0,0 +1,335 @@
+#include "Result.hpp"
+#include <sstream>
+
+OneObjectRow::OneObjectRow():
+m_n_in_clust(0),m_valid(false),m_ROI(1), cluster_class(1),m_color_cluster_ID(0){}
+
+OneObjectRow::OneObjectRow(ContourFamily cont_fam,const cv::Mat& raw_img):
+    m_n_in_clust(cont_fam.n_per_clust),m_valid(true),m_ROI(1),cluster_class(1),m_color_cluster_ID(0)
+    {
+
+        m_rrect = cv::minAreaRect(cont_fam.contours[0]);
+        m_rad = Features::calculateWH(cont_fam.contours[0]).x;
+        cv::Rect rect = cv::boundingRect(cont_fam.contours[0]);
+
+        cv::Mat mini_mask(rect.height,rect.width,CV_8UC1,cv::Scalar(0));
+        cv::Mat mini_img;
+        raw_img(rect).copyTo(mini_img);
+        cv::drawContours(mini_mask,cont_fam.contours,0,cv::Scalar(255),-1,8, cont_fam.hierarchies, 2, cv::Point(-rect.x,-rect.y));
+
+        cv::Mat mean, stddev;
+        cv::meanStdDev(mini_img, mean, stddev, mini_mask);
+        m_area = cv::countNonZero(mini_mask);
+        stddev +=1;
+
+        m_BGR_mean = mean.at<cv::Scalar>(0,0);  //m_BGR_mean[0] =  blue channel, [1] = green channel, [2] = Red channel, (0-255)
+        m_BGR_sd = stddev.at<cv::Scalar>(0,0);
+
+
+
+        cv::Mat one_pix(1,1,CV_8UC3,m_BGR_mean);
+        cv::Mat one_pix_hls, one_pix_lab;           //modified NJL 11/AUG/2014
+
+        cv::cvtColor(one_pix,one_pix_hls,CV_BGR2HLS);
+        cv::Scalar mean_sc = cv::mean(one_pix_hls); //?
+
+        m_hue_mean =((int) mean_sc [0])*2;
+        m_sat_mean = (int) mean_sc [2];
+
+        //added NJL 11/AUG/2014
+        cv::cvtColor(one_pix, one_pix_lab, CV_BGR2Lab);
+        m_LAB_mean = cv::mean(one_pix_lab);
+
+
+
+    }
+
+std::string OneObjectRow::print() const{
+    std::stringstream ss;
+    cv::Point2f center = (this->getPoint(0) + this->getPoint(2) ) * 0.5;
+    ss   << this->isValid()<<","
+                    << center.x<<","
+                    <<center.y<<","
+                    << this->getROI()<<","
+                    << this->getColorClusterID()<<","
+                    << this->getNInClust()<<","
+                    << this->getArea()<<","
+                    << this->getRadius()<<","
+                    << this->getHue()<<","
+                    << this->getSat()<<","
+                    << this->getBGRMean()[2]<<","
+                    << this->getBGRMean()[1]<<","
+                    << this->getBGRMean()[0]<<","
+                    << this->getBGRSd()[2]<<","
+                    << this->getBGRSd()[1]<<","
+                    << this->getBGRSd()[0];
+
+    return  ss.str();
+}
+
+std::string OneObjectRow::printHeader(){
+    std::stringstream ss;
+    ss << "IsValid"<<","
+                << "X"<<","
+                << "Y"<<","
+                << "ROI"<<","
+                << "Colour_group"<<","
+                << "N_in_clust"<<","
+                << "Area"<<","
+                << "Radius"<<","
+                << "Hue" <<","
+                << "Saturation" <<","
+                << "Rmean" <<","
+                << "Gmean" <<","
+                << "Bmean" <<","
+                << "Rsd" <<","
+                << "Gsd" <<","
+                << "Bsd";
+
+    return ss.str();
+}
+
+void Result::reset(size_t s){
+    v.clear();
+    v.resize(s);
+    m_n_valid = 0;
+}
+
+void Result::add_at(const OneObjectRow& row,const unsigned int i){
+    v[i] = row;
+    if(row.isValid())
+        m_n_valid++;
+}
+
+
+ void Result::applyFilter(const std::vector<bool>& valid){
+    if (valid.empty())
+        return;
+
+    assert(valid.size() == v.size());
+
+    m_n_valid = 0;
+    for(unsigned int i = 0; i != valid.size(); ++i){
+        int test = (int)v[i].getGUIValid();
+        if(test > 0){
+            v[i].setValid(true);
+            ++m_n_valid;
+        }
+
+        else if(test == -1){
+            if(!valid[i])
+               v[i].setValid(false);
+            else{
+               ++m_n_valid;
+               v[i].setValid(true);
+            }
+        }
+
+        else if(test == 0)
+            v[i].setValid(false);
+    }
+}
+
+void Result::applyFilter(const std::vector<int>& valid){
+
+    if (valid.empty())
+        return;
+
+    assert(valid.size() == v.size());
+
+    m_n_valid = 0;
+    for(unsigned int i = 0; i != valid.size(); ++i){
+        int test = (int)v[i].getGUIValid();
+        if(test > 0){
+            v[i].setValid(true);
+            ++m_n_valid;
+           ////MODIF FOR ROI ATTRIBUTION
+           v[i].setROI(valid[i]);
+        }
+
+        else if(test == -1){
+            if(!valid[i]){
+               v[i].setValid(false);
+               v[i].setROI(0);
+            }
+            else{
+               ++m_n_valid;
+               v[i].setValid(true);
+               ////MODIF FOR ROI ATTRIBUTION
+               v[i].setROI(valid[i]);
+            }
+        }
+
+        else if(test == 0)
+            v[i].setValid(false);
+    }
+}
+
+//NJL 13/AUG/2014
+/**
+ *
+ * \param vector<pair<int,int>> values of row id and cluster to update each oor with
+ */
+void Result::recluster(std::vector< std::pair<int,int> > clustered){
+    if (clustered.empty()){
+        return;
+    }
+
+    std::sort(clustered.begin(), clustered.end());
+    std::vector<bool> valid;
+    for(std::vector< std::pair<int,int> >::const_iterator it = clustered.begin(); it != clustered.end(); ++it){
+        v[it->first].setColorClusterID(it->second);
+        if (it->second == 0) //if not in a cluster, point is invalid
+            valid.push_back(false);
+        else
+            valid.push_back(true);
+    }
+    applyFilter(valid);
+    ClusterOrder();
+}
+
+/**
+ *
+ */
+
+void Result::ClusterOrder(){
+//create structure cluster 1: [colour, colour, colour...]
+//                 cluster 2: [colour, ....]
+    std::unordered_map< int, std::vector<cv::Scalar> > clusterColors;
+
+    for (std::vector<OneObjectRow>::iterator it = v.begin(); it != v.end(); ++it){
+        int ID = it->getColorClusterID();
+        if (ID != 0){
+            std::unordered_map< int, std::vector<cv::Scalar> >::iterator loc = clusterColors.find(it->getColorClusterID());
+            if ( loc == clusterColors.end() ) {
+                std::vector<cv::Scalar> cc;
+                cc.push_back( it->getLABMean() );
+                clusterColors.emplace( ID, cc );
+            }
+            else {
+                (loc->second).push_back( it-> getLABMean() );
+            }
+
+        }
+    }
+
+
+//find average colour for each cluster
+    std::vector< std::pair< int, std::vector<double> > > clusterMeanColors;
+    for ( std::unordered_map< int, std::vector<cv::Scalar> >::iterator it = clusterColors.begin(); it != clusterColors.end(); ++it){
+
+        std::vector<double> target(3, 0.);
+        double length = (double) (it->second).size();
+        std::vector< cv::Scalar > sources = it->second;
+
+        for (cv::Scalar source : sources){
+            target[0] += source[0];
+            target[1] += source[1];
+            target[2] += source[2];
+        }
+        target[0] /= length;
+        target[1] /= length;
+        target[2] /= length;
+
+        clusterMeanColors.push_back( std::make_pair( it->first, target ) );
+
+    }
+
+//create translation map
+//cluster 1 has lowest L* and so on.
+    //Sorting, need to define a custom comparator
+
+
+    std::sort(clusterMeanColors.begin(), clusterMeanColors.end(), pairCompare);
+
+    std::unordered_map<int, std::pair<int,cv::Scalar> > translationTable;
+    cv::Scalar emptyPixel(0,0,0);
+    translationTable.emplace(0, std::make_pair(0, emptyPixel));
+    int currentClusterNumber = 1;
+
+
+    for (std::vector< std::pair< int, std::vector<double> > >::iterator it = clusterMeanColors.begin(); it != clusterMeanColors.end(); ++it){
+        cv::Scalar pixelColour((int) it->second[0], (int) it->second[1], (int) it->second[2]);
+        cv::Mat onepixBGR;
+        cv::Mat onepixLAB(1,1,CV_8UC3,pixelColour);
+        cv::cvtColor(onepixLAB, onepixBGR, CV_Lab2BGR);
+        cv::Scalar meanBGR = cv::mean(onepixBGR);
+
+        translationTable.emplace(it->first, std::make_pair(currentClusterNumber++, meanBGR));
+    }
+
+//Apply translation map to each row
+//add RGB cluster colour to each row.
+    m_roi_data.clear();
+    for (std::vector<OneObjectRow>::iterator it = v.begin(); it != v.end(); ++it){
+        std::unordered_map<int, std::pair<int,cv::Scalar> >::iterator loc = translationTable.find(it->getColorClusterID());
+        it->setColorClusterID( (loc->second).first );
+        it->setClusterColor( (loc->second).second );
+        int roi = it->getROI();
+        m_roi_data.addROIClusterData(0).addCluster(it->getColorClusterID(), it->getClusterColor());
+        if (roi != 0){
+            m_roi_data.addROIClusterData(roi).addCluster(it->getColorClusterID(), it->getClusterColor());
+        }
+    }
+}
+
+bool pairCompare(const std::pair< int, std::vector<double> >& a, const std::pair< int, std::vector<double> >& b){return ( a.second.at(0) < b.second.at(0) );}
+
+
+//NJL 01/SEP/2014
+/**
+ *
+ * Set all members to cluster 0
+ */
+void Result::uncluster(){
+    for(std::vector<OneObjectRow>::iterator it = v.begin(); it != v.end(); ++it){
+        it->setColorClusterID(0);
+    }
+}
+
+void Result::applyGuiFilter(const cv::Mat& valid){
+    if (valid.empty()){
+        DEV_INFOS("Empty filter!");
+        return;
+    }
+
+    std::vector<bool> boo(valid.rows);
+
+    m_n_valid = 0;
+    unsigned int nrow = (unsigned)valid.rows;
+    for(unsigned int i = 0; i < nrow; i++){
+        signed char val = valid.at<signed char>(i,0);
+        v[i].setGUIValid(val);
+        boo[i] = true;
+    }
+
+    applyFilter(boo);
+
+}
+
+const std::string ClusterData::str() const{
+    std::stringstream ss;
+    //this makes a python-dict like output for the saved string.
+    std::vector<int> keys;
+    for (auto &it : m_clusters){
+        keys.push_back(it.first);
+    }
+    int maxClustIndex = keys.begin() == keys.end() ? 0 : *std::max_element(keys.begin(),keys.end());
+
+    ss<<"{ ";
+    if ( maxClustIndex >= 1){
+        for (int ii = 1; ii != maxClustIndex+1; ++ii ){
+            ss  <<(ii)<<": { "
+                <<"'num' : "<<clusterPop(ii)<<", "
+                <<"'r' : "<<(int) clusterColor(ii)[2]<<", "
+                <<"'g' : "<<(int) clusterColor(ii)[1]<<", "
+                <<"'b' : "<<(int) clusterColor(ii)[0]<<" }";
+            if (ii != maxClustIndex)
+                ss<<",  ";
+        }
+    }
+    ss<<" }";
+    return ss.str();
+}
+
+
diff --git a/src/processor/src/Step_1.cpp b/src/processor/src/Step_1.cpp
new file mode 100644
index 0000000..d9b901d
--- /dev/null
+++ b/src/processor/src/Step_1.cpp
@@ -0,0 +1,55 @@
+#include "Step_1.hpp"
+
+void Step_1::updateKernelSize(){
+    int s = std::min(m_old_img.cols/3,m_old_img.rows/3);
+    if (s  < m_old_min_rad)
+            m_old_min_rad = s;
+
+
+    if (m_old_min_rad > 1)
+        m_kernel_size = (((m_old_min_rad -1)/4)*2)+1;
+    else
+        m_kernel_size = 0;
+}
+
+void Step_1::updateParams(const void* src,bool was_forced){
+    DEV_INFOS("updating parms?");
+    ((cv::Mat*)src)->copyTo(m_old_img);
+    m_old_min_rad = m_opts.getMinMaxRad().first;
+    this->updateKernelSize();
+}
+
+bool Step_1::needReprocess(const void* src){
+    DEV_INFOS("need to reprocess?");
+    if(m_old_img.empty()){
+        DEV_INFOS("Yes: no old img");
+        return true;
+    }
+    else if (!this->isSameImage(m_old_img,*((cv::Mat*) src))){
+        DEV_INFOS("Yes: different img");
+        return true;
+    }
+    else if(m_old_min_rad != m_opts.getMinMaxRad().first){
+        DEV_INFOS("Yes: different radius");
+        return true;
+    }
+    return false;
+}
+
+void Step_1::process(const void* src){
+    DEV_INFOS("Step 1, removing noise...");
+
+    const cv::Mat in = (*((cv::Mat*)src));
+    cv::Mat tmp_mat;
+    if(m_kernel_size > 1 ){
+        cv::medianBlur(in,tmp_mat,1);
+        cv::GaussianBlur(tmp_mat,m_step_img,cv::Size(m_kernel_size,m_kernel_size),5);
+        }
+    else{
+        in.copyTo(m_step_img);
+    }
+    m_step_result = (void*) (&m_step_img);
+
+    DEV_INFOS("Step 1 finished...");
+}
+
diff --git a/src/processor/src/Step_2.cpp b/src/processor/src/Step_2.cpp
new file mode 100644
index 0000000..770a04d
--- /dev/null
+++ b/src/processor/src/Step_2.cpp
@@ -0,0 +1,81 @@
+#include "Step_2.hpp"
+
+void Step_2::updateParams(const void* src,bool was_forced){
+    m_block_size = 2*((int)(((cv::Mat*)src)->cols/30))+1;;
+
+
+//    if(m_opts.getMask().type != MASK_TYPE_NONE)
+//        cv::threshold(mat,m_old_mask,0,255,CV_THRESH_BINARY);
+    m_old_thr_mode = m_opts.getThrMode();
+
+}
+bool Step_2::needReprocess(const void* src){
+//    if(!this->isSameImage(m_old_mask,m_opts.getMask()))
+//        return true;
+    if(m_old_thr_mode != m_opts.getThrMode()){
+            DEV_INFOS("New mode: "<<m_opts.getThrMode());
+        return true;
+    }
+    return false;
+}
+
+void Step_2::makeConvolvedMask(){
+    m_conv_mask=cv::Mat(m_opts.getImage().rows,m_opts.getImage().cols,CV_8U,cv::Scalar(255));
+    m_old_mask=m_conv_mask;
+}
+void Step_2::process(const void* src){
+    DEV_INFOS("Correcting brightness ...");
+    this->makeConvolvedMask();
+    cv::Mat invertMask;
+    cv::bitwise_not(m_old_mask,invertMask);
+    std::vector<cv::Mat> compos;
+    cv::split(*((cv::Mat*)src),compos);
+    #pragma omp parallel for schedule(static, 1)
+    for(unsigned int i=0;i<compos.size();i++){
+        /* Remove  masked regions*/
+        compos[i] = compos[i]-invertMask;
+        cv::Mat conv;
+        float r = 196.0/ (float) compos[i].cols ;
+        cv::resize(compos[i],conv,cv::Size(0,0),r,r,cv::INTER_AREA);
+        cv::medianBlur(conv,conv,11);
+        cv::resize(conv,conv,compos[i].size(),0,0,cv::INTER_LINEAR);
+        if(m_old_thr_mode == OCFU_THR_NORM){
+            compos[i]=255*(conv/m_conv_mask)-compos[i];
+        }
+        else if(m_old_thr_mode == OCFU_THR_INV){
+            compos[i] = compos[i] - 255*(conv/m_conv_mask);
+        }
+        else if(m_old_thr_mode == OCFU_THR_BILAT){ //bilateral threshold
+            cv::absdiff(compos[i],255*(conv/m_conv_mask),compos[i]);
+        }
+        cv::normalize(compos[i], compos[i],0,255, cv::NORM_MINMAX,-1, m_old_mask);
+        this->SubstractLapOGauss(compos[i], compos[i],LAPOFGAUSS_BLUR_SIZE);
+    }
+    m_step_img = (compos[0]+compos[1]+compos[2])/3;
+    m_step_result = (void*) &m_step_img;
+    DEV_INFOS("Correcting brightness finished...");
+}
+
+
+//TODO polish this function !! => get rid of magic numbers ^^
+void Step_2::SubstractLapOGauss(const cv::Mat& in, cv::Mat& out, int blurSize){
+    cv::Mat tmp_mat;
+    cv::GaussianBlur(in,tmp_mat,cv::Size(blurSize,blurSize),3);
+    cv::Laplacian(tmp_mat,tmp_mat,CV_8U, 5, 0.3);
+    /*find holes in laplacian and remove them*/
+    std::vector<std::vector<cv::Point> > contours;
+    std::vector<std::vector<cv::Point> > contoursToDraw(1);
+    std::vector<cv::Vec4i > hierarchy;
+    cv::Mat tmp;
+    cv::threshold(tmp_mat,tmp, 10, 255, cv::THRESH_BINARY);
+    cv::findContours(tmp, contours,hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);//TC89_L1);
+    for(unsigned int k=0; k<contours.size();k++){
+        /* if the contour has no holes and if it is not a hole*/
+        if( hierarchy[k][2] < 0 && hierarchy[k][3] < 0){
+            std::copy(contours.begin()+k, contours.begin()+k+1, contoursToDraw.begin());
+            cv::Rect rect = cv::boundingRect(contoursToDraw[0]);
+            cv::drawContours(tmp_mat,contoursToDraw,0,cv::Scalar(0),-1,8, cv::noArray(), 1,cv::Point(-rect.x,-rect.y));
+        }
+    }
+    out = in-tmp_mat;
+}
diff --git a/src/processor/src/Step_3.cpp b/src/processor/src/Step_3.cpp
new file mode 100644
index 0000000..c40cf19
--- /dev/null
+++ b/src/processor/src/Step_3.cpp
@@ -0,0 +1,164 @@
+#include "Step_3.hpp"
+
+void Step_3::updateParams(const void* src,bool was_forced){
+    m_min_radius = m_opts.getMinMaxRad().first;
+
+    m_has_max_radius = m_opts.getHasMaxRad();
+    m_max_cont_width = std::min(((cv::Mat*)src)->cols,((cv::Mat*)src)->rows) / 2;
+    if(m_has_max_radius)
+        m_max_radius = m_opts.getMinMaxRad().second;
+    else
+        m_max_radius = m_max_cont_width;
+}
+
+bool Step_3::needReprocess(const void* src){
+    if (m_has_max_radius){
+      if(!m_opts.getHasMaxRad())
+        return true;
+      if (m_max_radius != m_opts.getMinMaxRad().second)
+        return true;
+    }
+    else{
+        if(m_opts.getHasMaxRad())
+            return true;
+    }
+    if(m_min_radius != m_opts.getMinMaxRad().first)
+        return true;
+    return false;
+}
+
+void Step_3::process(const void* src){
+    DEV_INFOS("Pass One starting ...");
+    cv::Mat feature_mat;
+    std::vector<ContourFamily> contour_fams;
+    const cv::Mat in = *((cv::Mat*)src);
+    std::vector<signed char> categ;
+    m_step_img = cv::Mat(in.rows,in.cols,CV_8U,cv::Scalar(0));
+    this->makeContourChunksVect(in,contour_fams);
+//    this->preFilterContourSize(contour_fams);
+    this->makeFeaturesMatrix(contour_fams,feature_mat);
+    m_predictor.predict(feature_mat,categ);
+    this->drawAllValid(m_step_img ,contour_fams,categ);
+    m_step_result = (void*) &m_step_img;
+    DEV_INFOS("Pass One finished ...");
+}
+
+
+
+bool Step_3::isSizeOK(const std::vector<cv::Point>& cont){
+
+    if(cont.size() < 7)
+        return false;
+    cv::Point p = Features::calculateWH(cont);
+    if(p.x < m_min_radius || p.y > m_max_radius)
+        return false;
+
+    return true;
+}
+
+
+void Step_3::makeFeaturesMatrix(const std::vector<ContourFamily>& contour_fams,cv::Mat& dst){
+    unsigned int n = contour_fams.size();
+    unsigned int n_features = m_featureMaker.getNFeature();
+    dst = cv::Mat(n,n_features,CV_32F);
+
+    //#pragma omp parallel for schedule(guided)
+    for(unsigned int i = 0; i < n;i++){
+
+        cv::Mat tmp_row(1,n_features,CV_32F);
+        m_featureMaker.calcFeatures(contour_fams[i],tmp_row);
+        //#pragma omp critical
+        {
+        tmp_row.copyTo(dst.row(i));
+        //DEV_INFOS(i);
+        }
+    }
+}
+
+void Step_3::makeContourChunksVect(const cv::Mat& src,std::vector<ContourFamily>& contour_fams ){
+    unsigned int low,high;
+    double a,b;
+    cv::minMaxLoc(src, &a, &b, NULL,NULL);
+    low = (int) a;
+    high = (int) b;
+
+    assert (low<=high);
+    unsigned int lim = high - low;
+    std::vector<cont_chunk> all_contours_chunk(high-low);
+    std::vector<hier_chunk> all_hieras_chunk(high-low);
+
+    #pragma omp parallel for schedule(dynamic)
+    for(unsigned int i = 2; i < lim; i+=2){
+        cv::Mat thrd;
+        cv::threshold(src,thrd,i+low,255,cv::THRESH_BINARY);
+        cv::findContours(thrd, all_contours_chunk[i],all_hieras_chunk[i], cv::RETR_CCOMP, cv::CHAIN_APPROX_SIMPLE);
+
+        for(auto& c : all_contours_chunk[i] ){
+            if(c.size()>100)
+                subsample(c,c,100);
+        }
+    }
+
+    #pragma omp parallel for schedule(dynamic)
+    for(unsigned int i = 0; i < lim; i++){
+        cont_chunk& chunk = all_contours_chunk[i];
+        hier_chunk& hierarchy = all_hieras_chunk[i];
+        unsigned int c=0;
+        unsigned int CC = chunk.size();
+        while ( c < CC){
+            /*if this is not the lastest non-hole*/
+            unsigned int nHoles = 0;
+            if( hierarchy[c][0] > 0)
+                nHoles = hierarchy[c][0]-c-1;
+            else
+                nHoles = CC - (c+1);
+
+            if(isSizeOK(chunk[c])){
+                #pragma omp critical
+                {
+                contour_fams.push_back(ContourFamily(cont_chunk(chunk.begin()+c,chunk.begin()+c+nHoles+1)));
+                }
+            }
+            c += nHoles+1;
+        }
+    }
+}
+void Step_3::drawAllValid(cv::Mat& inout,std::vector<ContourFamily>& contour_fams, std::vector<signed char>& categ){
+    unsigned int hi = contour_fams.size();
+    #pragma omp parallel for schedule(dynamic)
+    for(unsigned int i=0; i < hi; ++i ){
+        const cont_chunk& tmp_contours = (contour_fams[i]).contours;
+        const hier_chunk& tmp_hiers = contour_fams[i].hierarchies;
+        cv::Rect rect = cv::boundingRect(tmp_contours[0]);
+        cv::Mat miniTmp(rect.height,rect.width,CV_8UC1,cv::Scalar(0));
+        if(categ[i] != 'N'){
+            cv::drawContours(miniTmp,tmp_contours,-1,cv::Scalar(1),-1,8, tmp_hiers, 2, cv::Point(-rect.x,-rect.y));
+            #pragma omp critical
+            {inout(rect) = miniTmp + inout(rect);}
+        }
+    }
+}
+
+
+void  Step_3::subsample(const std::vector<cv::Point>& in, std::vector<cv::Point>& out,const unsigned int size_out){
+
+    std::vector<cv::Point> preout (size_out);
+    unsigned int size_in = in.size();
+    std::vector<float> data((size_in+1)*2);
+    for(unsigned int i = 0; i != size_in; i++){
+        const cv::Point& p = in[i];
+        data[i*2] = p.x;
+        data[i*2+1] = p.y;
+    }
+    data[size_in*2] = data[0];
+    data[size_in*2+1] = data[1];
+    cv::Mat tmp_mat = cv::Mat(data,false).reshape(1,size_in+1).t();
+    cv::resize(tmp_mat,tmp_mat,cv::Size(size_out+1,2),cv::INTER_LINEAR);
+    for(unsigned int i = 0;i != size_out; ++i){
+        int x = std::round(tmp_mat.at<float>(0,i));
+        int y = std::round(tmp_mat.at<float>(1,i));
+        preout[i] = cv::Point(x,y);
+    }
+    std::swap(preout,out);
+}
+
diff --git a/src/processor/src/Step_4.cpp b/src/processor/src/Step_4.cpp
new file mode 100644
index 0000000..a5a0d6e
--- /dev/null
+++ b/src/processor/src/Step_4.cpp
@@ -0,0 +1,175 @@
+#include "Step_4.hpp"
+
+/*
+void testFun(std::vector<ContourFamily>& contour_fams, std::vector<signed char>& categ){
+    unsigned int hi = contour_fams.size();
+
+    for(unsigned int i=0; i < hi; ++i ){
+
+        const cont_chunk& tmp_contours = (contour_fams[i]).contours;
+        const hier_chunk& tmp_hiers = contour_fams[i].hierarchies;
+        cv::Rect rect = cv::boundingRect(tmp_contours[0]);
+        cv::Mat miniTmp(rect.height,rect.width,CV_8UC1,cv::Scalar(0));
+
+        if(contour_fams[i].n_per_clust >1 ){
+
+            std::stringstream ss;
+            ss<<"/tmp/"<<categ[i]<<"_"<<contour_fams[i].n_per_clust<<"_"<<i<<".png";
+            cv::drawContours(miniTmp,tmp_contours,-1,cv::Scalar(255),-1,8, tmp_hiers, 2, cv::Point(-rect.x,-rect.y));
+            cv::imwrite(ss.str(),miniTmp);
+
+
+        }
+    }
+}
+*/
+//montage S_* -background black -geometry +2+2 test.png
+
+
+
+void Step_4::updateParams(const void* src,bool was_forced){
+    m_min_radius = m_opts.getMinMaxRad().first;
+
+    m_has_max_radius = m_opts.getHasMaxRad();
+    m_max_cont_width = std::min(((cv::Mat*)src)->cols,((cv::Mat*)src)->rows) / 2;
+
+    if(m_has_max_radius)
+        m_max_radius = m_opts.getMinMaxRad().second;
+    else
+        m_max_radius = m_max_cont_width;
+
+    m_has_auto_thr = m_opts.getHasAutoThr();
+    m_threshold = m_opts.getThr();
+}
+
+bool Step_4::needReprocess(const void* src){
+
+ if (!m_has_auto_thr){
+      if(m_opts.getHasAutoThr())
+        return true;
+      if (m_threshold != m_opts.getThr())
+        return true;
+    }
+    else{
+        if(!m_opts.getHasAutoThr())
+            return true;
+    }
+    return false;
+}
+
+void Step_4::process(const void* src){
+    DEV_INFOS("Pass Two starting ...");
+
+    const cv::Mat in = *((cv::Mat*)src);
+
+    std::vector<ContourFamily> contour_fams;
+    makeContourChunksVect(in,contour_fams);
+    DEV_INFOS(contour_fams.size());
+    cv::Mat feature_mat;
+    preFilterContourSize(contour_fams);
+    this->makeFeaturesMatrix(contour_fams,feature_mat);
+    std::vector<signed char> categ;
+    m_predictor.predict(feature_mat,categ);
+
+    m_contour_spliter.split(contour_fams,categ);
+    std::vector<ContourFamily> contour_fams_split, contour_fams_unsplit;
+
+    separateUnsplited(contour_fams,contour_fams_unsplit,contour_fams_split);
+
+    cv::Mat feature_mat_split, feature_mat_unsplit;
+    std::vector<signed char> categ_split, categ_unsplit;
+
+    preFilterContourSize(contour_fams_split);
+    this->makeFeaturesMatrix(contour_fams_split,feature_mat_split);
+    m_predictor_ps.predict(feature_mat_split,categ_split);
+
+
+    preFilterContourSize(contour_fams_unsplit);
+    this->makeFeaturesMatrix(contour_fams_unsplit,feature_mat_unsplit);
+    m_predictor_ps.predict(feature_mat_unsplit,categ_unsplit);
+
+
+    contour_fams_split.insert( contour_fams_split.end(), contour_fams_unsplit.begin(), contour_fams_unsplit.end() );
+    std::swap(contour_fams_split,contour_fams);
+    categ_split.insert( categ_split.end(), categ_unsplit.begin(), categ_unsplit.end() );
+    std::swap(categ_split,categ);
+
+
+    writeNumResults(contour_fams,categ);
+    m_step_result = (void*) &m_step_numerical_result;
+
+}
+
+void Step_4::preFilterContourSize(std::vector<ContourFamily>& contour_fams){
+    std::vector<ContourFamily> tmp_fams;
+    tmp_fams.reserve(contour_fams.size());
+
+    for(ContourFamily& i : contour_fams){
+        if(i.contours[0].size() > 6){
+            cv::Point p = Features::calculateWH(i.contours[0]);
+            if(p.x > m_min_radius && p.y < m_max_radius)
+                tmp_fams.push_back(i);
+        }
+    }
+    std::swap(tmp_fams,contour_fams);
+}
+
+
+void Step_4::makeContourChunksVect(const cv::Mat& src,std::vector<ContourFamily>& contour_fams ){
+    cv::Mat tmp_mat;
+    cont_chunk coutours;
+    hier_chunk hierachies;
+
+    if(m_has_auto_thr)
+        cv::threshold(src,tmp_mat,m_threshold,255,cv::THRESH_BINARY|cv::THRESH_OTSU);
+    else
+        cv::threshold(src,tmp_mat,m_threshold,255,CV_THRESH_BINARY);
+
+
+
+    cv::findContours(tmp_mat, coutours,hierachies, cv::RETR_CCOMP, cv::CHAIN_APPROX_SIMPLE);
+    contour_fams.reserve(coutours.size());
+    unsigned int c=0;
+    unsigned int CC = coutours.size();
+    while ( c < CC){
+        unsigned int nHoles = 0;
+        if( hierachies[c][0] > 0)
+            nHoles = hierachies[c][0]-c-1;
+        else
+            nHoles = CC - (c+1);
+        contour_fams.push_back(ContourFamily(cont_chunk(coutours.begin()+c,coutours.begin()+c+nHoles+1)));
+        c += nHoles+1;
+    }
+}
+
+
+void Step_4::writeNumResults(const std::vector<ContourFamily>& contour_fams, const std::vector<signed char>& categ){
+
+    std::vector<unsigned int> valid_idx;
+    for(unsigned int i=0;i < categ.size() ; i++)
+        if(categ[i] == 'S')
+            valid_idx.push_back(i);
+
+    DEV_INFOS(valid_idx.size());
+    m_step_numerical_result.reset(valid_idx.size());
+
+    for(unsigned int i=0;i < valid_idx.size() ; i++){
+         unsigned int idx = valid_idx[i];
+            m_step_numerical_result.add_at(OneObjectRow(contour_fams[idx],m_raw_img),i);
+        }
+
+}
+
+void Step_4::separateUnsplited(const std::vector<ContourFamily>& contour_fams,std::vector<ContourFamily>& contour_fams_unsplit,std::vector<ContourFamily>& contour_fams_split){
+    contour_fams_split.reserve(contour_fams.size());
+    contour_fams_unsplit.reserve(contour_fams.size());
+    for(auto& f : contour_fams){
+        if(f.n_per_clust > 1)
+            contour_fams_split.push_back(f);
+        else
+            contour_fams_unsplit.push_back(f);
+
+    }
+    DEV_INFOS("N Splitted"<<contour_fams_split.size());
+    DEV_INFOS("N UnSplitted"<<contour_fams_unsplit.size());
+}
diff --git a/src/processor/src/Step_BaseClass.cpp b/src/processor/src/Step_BaseClass.cpp
new file mode 100644
index 0000000..3377ac4
--- /dev/null
+++ b/src/processor/src/Step_BaseClass.cpp
@@ -0,0 +1,55 @@
+#include "Step_BaseClass.hpp"
+
+Step_BaseClass::Step_BaseClass(ProcessingOptions& opts):
+m_opts(opts){}
+
+Step_BaseClass::~Step_BaseClass(){}
+
+bool Step_BaseClass::run(void*& inout,bool forceReprocess){
+    DEV_INFOS("" + std::string(typeid(*this).name()));
+    bool need_reprocess = this->needReprocess(inout);
+    bool toReprocess = need_reprocess || forceReprocess ;
+    if (toReprocess ){
+        this->updateParams(inout,forceReprocess);
+        DEV_INFOS("Processing step started from class:" + std::string(typeid(*this).name()));
+        this->process(inout);
+    }
+    inout = m_step_result;
+    return toReprocess;
+}
+
+bool Step_BaseClass::isSameImage(const cv::Mat& img1,const cv::Mat& img2){
+    if (img1.empty() != img2.empty()){
+        DEV_INFOS("Diff Img: one is empty");
+        return false;
+    }
+    else if (img1.empty()){
+        DEV_INFOS("BOTH EMPTY");
+        return true;
+    }
+    else if (img1.channels() != img2.channels()){
+        DEV_INFOS("Diff Img: not the same nb of channels!");
+        return false;
+    }
+    else if (img1.rows != img2.rows){
+        DEV_INFOS("Diff Img: not the same height!");
+        return false;
+    }
+    else if (img1.cols != img2.cols){
+        DEV_INFOS("Diff Img: not the same height!");
+        return false;
+    }
+
+    cv::Mat tmp_mat;
+    cv::compare(img1, img2,tmp_mat,cv::CMP_NE);
+    if (tmp_mat.channels() == 3)
+        cv::cvtColor(tmp_mat,tmp_mat,CV_BGR2GRAY);
+    int n = cv::countNonZero(tmp_mat);
+    if(n > 0){
+        DEV_INFOS("Diff Img: different pixels");
+        return false;
+    }
+    DEV_INFOS("Similar images !");
+    return true;
+
+}
diff --git a/src/processor/src/Step_ColourCluster.cpp b/src/processor/src/Step_ColourCluster.cpp
new file mode 100644
index 0000000..918a830
--- /dev/null
+++ b/src/processor/src/Step_ColourCluster.cpp
@@ -0,0 +1,153 @@
+#include "Step_ColourCluster.hpp"
+
+ClusterPoint::ClusterPoint(int id, int cluster_id, bool visited, cv::Scalar color){
+    m_id = id;
+    m_cluster_id = cluster_id;
+    m_visited = visited;
+    m_color = color;
+}
+
+void Step_ColourCluster::process(const void* src){
+    const Result& in_numerical_result(*((Result*)(src)));
+    if(!m_use_this_filter){
+        m_step_numerical_result = in_numerical_result;
+        DEV_INFOS("Unclustering");
+        m_step_numerical_result.uncluster();
+    }
+    else{
+        DEV_INFOS("Reclustering");
+        m_step_numerical_result = in_numerical_result;
+        m_step_numerical_result.uncluster();
+        m_step_numerical_result.recluster(cluster(in_numerical_result));
+    }
+    m_step_result = ((void*) &m_step_numerical_result);
+}
+
+
+void Step_ColourCluster::updateParams(const void* src,bool was_forced){
+    m_use_this_filter = m_opts.getHasClustDist();
+    m_clustering_distance = m_opts.getClustDist();
+    m_clustering_distance_2 = m_clustering_distance*m_clustering_distance;
+    DEV_INFOS("Cluster Distance set to "<<m_clustering_distance);
+
+}
+
+bool Step_ColourCluster::needReprocess(const void* src){
+    bool toReprocess = false;
+    toReprocess = ( m_use_this_filter != m_opts.getHasClustDist() ||
+                     m_clustering_distance != m_opts.getClustDist() );
+    return toReprocess;
+}
+
+
+/**
+ *
+ */
+std::vector< std::pair<int,int> > Step_ColourCluster::cluster(const Result& in_numerical_result){
+
+
+    std::vector< std::pair<int,int> > result;
+    m_cluster_vector.clear();
+    for(unsigned int ii = 0; ii < in_numerical_result.size(); ii++){
+        const OneObjectRow& oor = in_numerical_result.getRow(ii);
+        //populate the list of valid items with LAB color mean, ID and the cluster state
+        if ( oor.isValid() || (oor.getGUIValid() == 1) ){
+            m_cluster_vector.push_back(ClusterPoint( ii, 0, false, oor.getLABMean() ));
+        }
+        else {
+            result.push_back( std::make_pair<int,int>( ii, 0 ) );
+        }
+    }
+
+    dbscan();
+
+    for (std::vector<ClusterPoint>::iterator it = m_cluster_vector.begin(); it != m_cluster_vector.end(); ++it){
+        result.push_back(std::make_pair<int,int>( it->getID(), it->getClusterID() ));
+    }
+
+
+    return result;
+}
+
+/**
+ *
+ */
+void Step_ColourCluster::dbscan(){
+    DEV_INFOS("Launching density scanner on "<<m_cluster_vector.size()<<" entries");
+    m_current_cluster = 0;
+
+    for (std::vector<ClusterPoint>::iterator it = m_cluster_vector.begin(); it != m_cluster_vector.end(); ++it){
+
+    //for(unsigned ii = 0; ii < m_cluster_vector.size(); ++ii){
+        //only execute the scan if the element has not been visited
+        if (!it->getVisited()){
+
+            it->setVisited(true);
+            //DEV_INFOS("Point " + std::to_string(ii) + " visited");
+
+            std::vector<std::vector<ClusterPoint>::iterator> local_neighbours = Step_ColourCluster::findNeighbours( *it );
+
+            if (local_neighbours.size() < m_min_cluster_pts){
+                it->setClusterID(0);
+            }
+            else{
+                m_current_cluster++;
+                Step_ColourCluster::expandCluster( *it );
+            }
+        }
+    }
+}
+
+/**
+ *
+ */
+std::vector<std::vector<ClusterPoint>::iterator> Step_ColourCluster::findNeighbours(ClusterPoint searchPoint){
+    double colorL1 = searchPoint.getColor()[0];
+    double colorA1 = searchPoint.getColor()[1];
+    double colorB1 = searchPoint.getColor()[2];
+    std::vector<std::vector<ClusterPoint>::iterator> local_neighbours;
+    for(std::vector<ClusterPoint>::iterator it = m_cluster_vector.begin(); it != m_cluster_vector.end(); ++it){
+
+        double colorL2 = it->getColor()[0];
+        double colorA2 = it->getColor()[1];
+        double colorB2 = it->getColor()[2];
+        double sum = (colorL1-colorL2)*(colorL1-colorL2)*0.392157; //0.392157=100/255 because open CV stores and 8 bit int when the value is in [0,100]
+        sum += (colorA1-colorA2)*(colorA1-colorA2);
+        sum += (colorB1-colorB2)*(colorB1-colorB2);
+
+        if (sum<m_clustering_distance_2){
+            local_neighbours.push_back( it );
+        }
+    }
+    return local_neighbours;
+}
+
+/**
+ *
+ */
+void Step_ColourCluster::expandCluster(ClusterPoint expandPoint){
+    expandPoint.setClusterID(m_current_cluster);
+    std::vector<std::vector<ClusterPoint>::iterator>  local_neighbours = findNeighbours(expandPoint);
+    while (local_neighbours.size() >= 1){
+        std::vector<ClusterPoint>::iterator neighbour = local_neighbours.front();
+
+        if (neighbour->getVisited() == false){
+            neighbour->setVisited(true);
+            std::vector< std::vector<ClusterPoint>::iterator > new_neighbours = findNeighbours(*neighbour);
+            if (new_neighbours.size() >= m_min_cluster_pts){
+                for (unsigned kk = 0; kk < new_neighbours.size(); ++kk){
+                    if (!new_neighbours[kk]->getVisited()){
+                        local_neighbours.push_back(new_neighbours[kk]);
+                    }
+                    else if (new_neighbours[kk]->getClusterID() <= 0){        // The else if block catches visited, unlabelled points
+                        new_neighbours[kk]->setClusterID(m_current_cluster);  // It means we don't have to add all the points into
+                    }                                                         // the neighbours list
+                }
+            }
+        }
+        if (neighbour->getClusterID()<=0){
+            neighbour->setClusterID(m_current_cluster);
+        }
+        local_neighbours.erase(local_neighbours.begin());
+    }
+};
diff --git a/src/processor/src/Step_FiltGUI.cpp b/src/processor/src/Step_FiltGUI.cpp
new file mode 100644
index 0000000..42a3979
--- /dev/null
+++ b/src/processor/src/Step_FiltGUI.cpp
@@ -0,0 +1,31 @@
+#include "Step_FiltGUI.hpp"
+
+void Step_FiltGUI::process(const void* src){
+    const Result& in_numerical_result(*((Result*)(src)));
+    m_step_numerical_result = in_numerical_result;
+
+    m_step_numerical_result.applyGuiFilter(m_filter_mat);
+
+    m_step_numerical_result.setSameObjects(m_tag_same_result);
+    m_step_result = ((void*) &m_step_numerical_result);
+}
+
+
+void Step_FiltGUI::updateParams(const void* src,bool was_forced){
+    if(was_forced){
+        const Result& res(*((Result*)(src)));
+        m_filter_mat = cv::Mat (res.size(),1,CV_8S,cv::Scalar(-1));
+        DEV_INFOS("DBG-> force filtgui to rework "<<m_filter_mat.rows);
+        m_tag_same_result=false;
+        }
+    else{
+        DEV_INFOS("DBG-> DO NOT forced filtgui to rework:\
+            copy filter from options "<<m_opts.getGUIFilter().rows<<" vs "<<m_filter_mat.rows);
+        m_opts.getGUIFilter().copyTo(m_filter_mat);
+        m_tag_same_result=true;
+    }
+}
+
+bool Step_FiltGUI::needReprocess(const void* src){
+    return !isSameImage(m_opts.getGUIFilter(),m_filter_mat);
+}
diff --git a/src/processor/src/Step_FiltHS.cpp b/src/processor/src/Step_FiltHS.cpp
new file mode 100644
index 0000000..20a921c
--- /dev/null
+++ b/src/processor/src/Step_FiltHS.cpp
@@ -0,0 +1,59 @@
+#include "Step_FiltHS.hpp"
+
+void Step_FiltHS::process(const void* src){
+    const Result& in_numerical_result(*((Result*)(src)));
+    if(!m_use_this_filter){
+       m_step_numerical_result = in_numerical_result;
+    }
+    else{
+      m_step_numerical_result = in_numerical_result;
+      m_step_numerical_result.applyFilter(filter(in_numerical_result));
+    }
+    m_step_result = ((void*) &m_step_numerical_result);
+}
+
+
+void Step_FiltHS::updateParams(const void* src,bool was_forced){
+     m_use_this_filter = m_opts.getHasHueFilt();
+     m_centr_hue = m_opts.getCenTolHue().first;
+     m_min_sat = m_opts.getMinMaxSat().first;
+     m_tol_hue = m_opts.getCenTolHue().second;
+     m_max_sat = m_opts.getMinMaxSat().second;
+}
+
+bool Step_FiltHS::needReprocess(const void* src){
+    bool toReprocess = false;
+    toReprocess = ( m_use_this_filter != m_opts.getHasHueFilt() ||
+                     m_centr_hue != m_opts.getCenTolHue().first ||
+                     m_min_sat != m_opts.getMinMaxSat().first ||
+                     m_tol_hue != m_opts.getCenTolHue().second||
+                     m_max_sat != m_opts.getMinMaxSat().second);
+    return toReprocess;
+}
+
+
+std::vector<bool> Step_FiltHS::filter(const Result& in_numerical_result){
+
+    std::vector<bool> valid(in_numerical_result.size(),true);
+    for(unsigned int i = 0; i < valid.size(); i++){
+        const OneObjectRow& oor = in_numerical_result.getRow(i);
+        cv::Scalar mean = oor.getBGRMean();
+        cv::Mat one_pix(1,1,CV_8UC3,mean);
+        cv::cvtColor(one_pix,one_pix,CV_BGR2HLS);
+        mean = cv::mean(one_pix);
+
+        int mean_hue =((int) mean[0])*2;
+
+        float aa = (float) mean_hue *  3.1416 /180;
+        float bb = (float) m_centr_hue *  3.1416 /180;
+        int diff = abs(atan2(sin(aa-bb), cos(aa-bb)) * 180 / 3.1416);
+        int mean_sat = (int) mean[2];
+
+        if(diff > m_tol_hue || mean_sat > m_max_sat || mean_sat < m_min_sat)
+             valid[i] = false;
+        else
+            valid[i] = oor.isValid();
+    }
+    return valid;
+}
+
diff --git a/src/processor/src/Step_FiltIPosition2D.cpp b/src/processor/src/Step_FiltIPosition2D.cpp
new file mode 100644
index 0000000..d92109b
--- /dev/null
+++ b/src/processor/src/Step_FiltIPosition2D.cpp
@@ -0,0 +1,92 @@
+#include "Step_FiltIPosition2D.hpp"
+
+void Step_FiltIPosition2D::process(const void* src){
+    const Result& in_numerical_result(*((Result*)(src)));
+    if(!m_use_this_filter){
+       m_step_numerical_result = in_numerical_result;
+    }
+    else{
+      m_step_numerical_result = in_numerical_result;
+      m_step_numerical_result.applyFilter(filter(in_numerical_result));
+    }
+
+    m_step_result = ((void*) &m_step_numerical_result);
+}
+
+
+void Step_FiltIPosition2D::updateParams(const void* src,bool was_forced){
+    m_opts.getMask().getMat().copyTo(m_old_mask);
+    makeROIPolygons();
+
+}
+
+bool Step_FiltIPosition2D::needReprocess(const void* src){
+    if(!this->isSameImage(m_old_mask,m_opts.getMask().getMat()))
+        return true;
+    else
+        return false;
+}
+
+
+void Step_FiltIPosition2D::makeROIPolygons(){
+    cont_chunk tmp_chunk;
+    if(!m_old_mask.empty()){
+
+
+
+        cv::Mat tmp_img;
+
+        unsigned int low,high;
+        double a,b;
+        cv::minMaxLoc(m_old_mask, &a, &b, NULL,NULL,m_old_mask);
+        low = (int) a;
+        high = (int) b;
+
+        for(unsigned int i=low;i<high+1;++i){
+
+            m_old_mask.copyTo(tmp_img);
+            cv::inRange(m_old_mask, i,i,tmp_img);
+            cont_chunk tmp_small_chunk;
+            cv::findContours(tmp_img, tmp_small_chunk, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
+            for(auto& c : tmp_small_chunk){
+                tmp_chunk.push_back(c);
+                m_ROIS_val.push_back(i);
+
+            }
+        }
+        DEV_INFOS("found "<<tmp_chunk.size()<<"ROIs");
+    }
+    std::swap(tmp_chunk,m_ROIS_polygs);
+}
+
+std::vector<int> Step_FiltIPosition2D::filter(const Result& in_numerical_result){
+    std::vector<int> valid(in_numerical_result.size(),1);
+    if(!m_ROIS_polygs.empty()){
+        for(unsigned int i = 0; i < valid.size(); i++){
+            const OneObjectRow& oor = in_numerical_result.getRow(i);
+            cv::Point2f center = (oor.getPoint(0) + oor.getPoint(2) ) * 0.5;
+
+            int val=0;
+            float how_far_from_edge = INT_MIN;
+
+            for(unsigned int j = 0; j < m_ROIS_polygs.size(); ++j){
+                float dist = cv::pointPolygonTest(m_ROIS_polygs[j], center, true);
+
+                if(dist > 0){
+                    if(dist > how_far_from_edge ){
+                        how_far_from_edge = dist;
+                        val = m_ROIS_val[j];
+                    }
+                }
+            }
+            if(val > 0 && how_far_from_edge > oor.getRadius() ){
+
+                valid[i] = val;
+            }
+            else
+                valid[i] = 0;
+        }
+    }
+    return valid;
+}
+
diff --git a/src/processor/src/Step_FiltLik.cpp b/src/processor/src/Step_FiltLik.cpp
new file mode 100644
index 0000000..a8a7064
--- /dev/null
+++ b/src/processor/src/Step_FiltLik.cpp
@@ -0,0 +1,109 @@
+#include "Step_FiltLik.hpp"
+
+void Step_FiltLik::updateParams(const void* src,bool was_forced){
+    m_use_this_filter = m_opts.getHasOutlierFilt();
+    m_lik_thr = m_opts.getLikeThr();
+}
+
+bool Step_FiltLik::needReprocess(const void* src){
+    bool toReprocess = false;
+    toReprocess = ( m_use_this_filter != m_opts.getHasOutlierFilt()||
+                     m_lik_thr != m_opts.getLikeThr());
+    DEV_INFOS("reprocess?"<<(int)toReprocess);
+    return toReprocess;
+}
+
+void Step_FiltLik::process(const void* src){
+    const Result& in_numerical_result(*((Result*)(src)));
+    if(!m_use_this_filter){
+       m_step_numerical_result = in_numerical_result;
+       DEV_INFOS("Do not filter");
+    }
+    else{
+      m_step_numerical_result = in_numerical_result;
+      m_step_numerical_result.applyFilter(filter(in_numerical_result));
+      DEV_INFOS("filtering");
+    }
+    m_step_result = ((void*) &m_step_numerical_result);
+}
+
+std::vector<bool>  Step_FiltLik::filter(const Result& in_numerical_result){
+    std::vector<int> idx_of_good_objects;
+
+    for(unsigned int i = 0; i < in_numerical_result.size(); i++){
+        const OneObjectRow& oor = in_numerical_result.getRow(i);
+        if(oor.isValid() && oor.getNInClust() == 1){
+          idx_of_good_objects.push_back(i);
+        }
+    }
+
+    DEV_INFOS("N Good objects = "<<idx_of_good_objects.size());
+
+    if(idx_of_good_objects.size() < 6 ){
+         m_step_numerical_result = in_numerical_result;
+         std::vector<bool> r;
+        return r;
+    }
+    int j =0;
+    cv::Mat features(idx_of_good_objects.size(),N_FEATURES,CV_32F);
+    for(int i : idx_of_good_objects){
+        const OneObjectRow& oor = in_numerical_result.getRow(i);
+        if(oor.isValid() && oor.getNInClust() == 1){
+            cv::Mat one_row = features.row(j);
+            one_row.at<float>(0,0) = oor.getBGRMean()[0];
+            one_row.at<float>(0,1) = oor.getBGRMean()[1];
+            one_row.at<float>(0,2) = oor.getBGRMean()[2];
+            one_row.at<float>(0,3) = oor.getBGRSd()[0];
+            one_row.at<float>(0,4) = oor.getBGRSd()[1];
+            one_row.at<float>(0,5) = oor.getBGRSd()[2];
+            j++;
+        }
+
+    }
+
+    for(int i = 0; i < features.cols;i++){
+        cv::Mat mean, stddev;
+        cv::meanStdDev(features.col(i), mean, stddev);
+        m_means[i] = mean.at<double>(0,0);
+        m_sds[i] = stddev.at<double>(0,0);
+    }
+
+
+    std::vector<bool> valid(in_numerical_result.size(),false);
+    for(unsigned int i = 0; i < valid.size(); i++){
+        const OneObjectRow& oor = in_numerical_result.getRow(i);
+        if(oor.isValid()){
+            std::vector<float> feats;
+            feats.reserve(6);
+            feats.push_back(oor.getBGRMean()[0]);
+            feats.push_back(oor.getBGRMean()[1]);
+            feats.push_back(oor.getBGRMean()[2]);
+            feats.push_back(oor.getBGRSd()[0]);
+            feats.push_back(oor.getBGRSd()[1]);
+            feats.push_back(oor.getBGRSd()[2]);
+
+            float score = this->calcLikScore(feats);
+
+
+            if(score > m_lik_thr)
+                valid[i] = false;
+            else
+                valid[i] = true;
+        }
+    }
+    return(valid);
+}
+
+
+float Step_FiltLik::calcLikScore(std::vector<float>& in){
+    float p =0;
+    float pi = 3.14;
+    for(int i = 0; i < N_FEATURES;i++){
+        double sqrt_dif_by_sd = -std::pow((m_means[i] - in[i] )/m_sds[i],2)/2;
+        double A = std::exp(sqrt_dif_by_sd);
+        double B = m_sds[i] * std::sqrt(2*pi);
+        double pp = A / B;
+        p += std::log(pp);
+    }
+    return -1 * p;
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/opencfu.git



More information about the debian-med-commit mailing list