2.0.9:
 - Refresh build dependencies and upgrade to C++17

2.0.8:
 - Use cmake to generate flex scanner

2.0.7:
 - Bugfix: bobcat interface changes #28
 - Change build system to cmake only

2.0.3:
- Bugfix: multiple variable shadow problems resolved

2.0.2:
- Bugfix: fix configure build problem with newest bobcat library headers
- Bugfix: lock PREC output

2.0.1:
- Bugfix: file path handling of files with multiple "../" elements was wrong.

2.0.0:
- Multi-threading support using OpenMP (try -j 5)
- Sub-process invocation using bobcat::Process (libbobcat 2.0+ required)
- Header file lines in ccResolutions do not need to contain spaces anymore
- Build last modified file first
- Use gnutls-openssl library for MD5 instead of libgcrypt
- Use a single top-level "o" directory, instead of a per directory option
- Use of intermediate archive is nolonger experimental
- libboost is now required for build, currently headers only
- The "deps" command is now influenced by --verbose
- Dropped the "tree" command. If you need is, try "check" or open an issue
- The output of the "deps" command is now:
    1st line: local headers (|head -n1)
    2nd line: local source (|head -n2|tail -n1)
    3rd line: global headers (|tail -n1)
- Local resolution file load list is now:
    ./ccResolutions[.USERNAME,.HOSTNAME,.KERNEL_NAME,.MACHINE,]
- New feature: --batch
    Compile a batch of files with one g++ call before
    any other compilation. This effectively disables
    any multi-threading, but may speed things up.
    The exact behavior of this option may change in the
    future.
- Behaviour change: icmake
    The icmake command now lists the new CLASSES format and
    will leave out any classes already mentioned unless
    --verbose is flagged.
- New homepage location, moved from sourceforge to github.

1.5.7:
- Mac OSX patches by sent in by Michiel Holtkamp
- Flex detection in autotools configure stage
- Added --nowarn to suppress warnings about unknown includes

1.5.6:
- Fix MD5 sum bug, created with moving to libgcrypt
- Moved doc/debiandoc to doc/ccbuild
- Added NODEBUG to debug.hh and the configure script

1.5.5:
- Move to libgcrypt for the MD5 implementation to allow ccbuild to be packaged
- Remove automate.cache from distribution source package
- Bashisms removed from tools/*.sh

1.5.4:
- Closed ~/.ccbuild/ccResolutions~/ loading problem
- Autotools installation script added
- Relink every target after the first link is needed
  closes bug 1424010

1.5.3:
- Faster distclean
- Remove o/*.rpo files in distclean
- cleanPath bug fixed, eliminating bugs in find "../../" headers.

1.5.2:
- Break loop when q is given.
- Archive only when you have multiple objects
- Archiving between compile and link failed on me.
  So moved it to an experimental option.

1.5.1:
- Archive before link, this produces smaller binaries.
- Debug information nolonger shows.
- Start of --xml output support, implemented for check.
- Small documentation changes.

1.5.0:
-  Better system() call return status handling
-  --append now also works for the lib command
-  Clean all works on both binary and non binary targets (for libraries)
-  Code cleanup
-  Dropped the --realman option in favour of cleaner code.
-  Without sources, the ccbuild will now do nothing
-  Behaviour change: loop now requests a _return_ before continuing looping.
    Although this is less of a loop, it removes the problems arising from
    editing a file while g++ is running and still keeps you from rewritten
    the commandline arguments and rescanning unchanged files.
-  Memory leaks plugged for: Globals, MD5, Arguments.
-  Possible bugfix: local directory to root translation?

1.4.2:
-  Strip command in install.sh changed, closes bug 1328023.

1.4.1:
-  Bugfix: moved linker flags to behind the objects in accordance with
		( http://www.network-theory.co.uk/docs/gccintro/gccintro_18.html )

1.4.0:
-  The option -V has been added in support of --version.
-  The --pversion has been added as the only way to enter the library version.
-  The library command takes only a source as a possible argument, no version.
!  Bahaviour change: the lib command nolonger takes a version argument.
!  Bahaviour change: if no binary target is found, build is chained to lib.
-  Documented the use of -(*)threads under caveats.
-  New "make help" possible.
-  Usage manual update.
-  Full movement to new homepage

1.3.3:
-  Added clean rule to the Makefile
-  Moved homepage reference to a variable
-  Hopefully removed the yylex.cc file before distribution
-  Bugfix: Makefile output wasn't set next to the source.

1.3.2:
-  Bugfix: Back to the old Make rules, from back in 0.9.6
   (where the main target only depends on the directories.)
-  Added package.sh script, to clean and update before packaging.
-  Moved Make and A-A-P files to top directory
-  Optimization set to 2.
-  Bugfix in distclean where not all .gch files where removed.
-  Experimental "lib" command

1.3.1:
-  Bugfix: linking wasn't done when the main program changed.

1.3.0:
!  Complete rewrite of MD5 sums system
-  ccResolutions.d files are loaded alphabatically
-  Added the md5 command, to generate a list of MD5 sums
-  Rewritten the options class
-  Doxygen mainpage updated

1.2.0:
!  Bugfix: -C now works before default argument loading
   (ccResolutions should be in the directory pointed to by -C).
!  Behaviour change: ccbuild will now ignore all include
   statements with a single space after the "#" character.
-  deps commands shows a line with ignored headers in the center.
-  dot command in verbose mode shows the ignored headers collected in a box.
-  Bugfix: the examples were not quoted correctly in the manual page.
-  In verbose mode, ignored headers are mentioned on the stderr.
!  Bugfix: found binary targets in subdirectories are nolonger
   followed.
-  A-A-P rule rewrite with more variables and seperation.

1.1.0:
-  Bugfix: first file in aap rule wasn't quoted.
-  Added the --version commandline option.
-  A-A-P rules now include "INCLUDE", "DEFINE", "LIBS" and "conf".
-  Bugfix in MD5 hash storing (Not all were always generated and stored).
!  Allot of bugfixes regarding MD5 hashes.
-  Nolonger show MD5 as TESTING in help (although it might still be :-S).
-  Check command with verbose now shows filetype ccbuild thinks it is.
-  Dot command with verbose will show all tree targets.
-  Bugfix: clean command now removes md5 files.
-  Removed nolonger working icmake buildscript

1.0.1:
!  Bugfix: Ignore multiple arguments for compiler/linker.

1.0.0:
!  Added aap command for a-a-p file generation.
-  MD5 sums are now stored seperately (o/filename.md5).
-  Warning when expansion results in an empty string.
-  Complete rewrite of the Compilers argument parser.
-  Doxygen documentation for all members.
-  Changed the update checking system (better md5 support).
-  Code cleanup.
!  "--add" renamed to "--args".
-  Better long argument parsing warnings.
-  In makefiles, objects depend on their ownd output directory.
!  Added a-a-p script, so installation is may now be cd src; aap install

0.9.6:
-  Added support for ".CPP" as a source extension.
!  Added -L to isLinkerArgument, was missing!
-  Bahaviour change: --recursive-include now also adds -I to the commands.
-  Behaviour change: exec-on-fail/pass work only on PRE and CC commands.
-  Documentation update.
-  icmake slave mode never outputs the local path "."
-  If a command fails, the MD5Hash is removed from memory.
-  Cleaner exits, which means better/worse MD5Hash storing,
   this option still needs more testing.

v0.9.5:
-  Bugfix: -C argument sometimes got an extra space because of an error in
     Arguments class.
-  Removed all rule for single source makefile generations.
-  Added flex generation fule to default install makefile.
!  Added MD5 hashing support, as a TESTING feature.
-  Added removal of o/md5usms files in makefile.

v0.9.0:
-  Behaviour change: deps now outputs: local include \n\n global includes
   This will make it scriptable using `ccbuild deps <file>|[head|tail] -n1`
!  Bugfix: wrong shell expansion caused a segfault. (C functions...)
!  Bugfix: Resolution was only done on update?
!  Bugfix: command argument in loop created segfault.
-  Added --nodefargs option, to stop default arguments.
-  Added --nodefres option, to stop default resolutions.
-  Behaviour change: -I is automatically passed on to g++
-  Behaviour change: In brute mode, rm output files on failure.

v0.8.0:
-  Cancel brute mode when g++ returns 2.
-  Dropped a few TODO's.
-  Makefile with support for all header precompilation.
!  Bugfix: "Unable to resolve:" message was broken showing pointers.
!  Bugfix: resolving all showed the same global multiple times
-  Added the recursive-include option.
!  Bugfix: clean didn't remove the binary target object file.

v0.7.0:
-  All precompiled headers are removed when using no precompilation
    this is needed because forgetting the -p option will make g++
    use old precompiled headers which can give really weird errors.
!  Bugfix: last, instead of first, resolution rule was used.
-  Additional arguments read from ccResolutions' first line
    if this starts with "#&".
-  Source tree change in loop forces reload of everything and
    removes objects of binary targets.
-  Loop option will only work in combination with build command.
-  _DebugLevel macro now also outputs "D<debuglevel>"
-  Internal header precompilation in Makefile.
-  Added a distclean rule in Makefile.
-  Bugfix: .PHONY for all rule.
-  Better memory cleanup on exit.

v0.6.0:
-  Added the -I option to add local search paths
-  Made the resolver faster (by chaching expand calls) and more
     memory efficient using pointers.
-  Added a tool script to list all headers for a package and create
     a resolution file. See tools/genPkgconfigList.sh
!  Bugfix: distclean nolonger calls cleanAll. So now
     distclean is truly source independent.
-  Code cleanup using STL set container.
-  Speed-up for resolution and global header listing (GO pointers!)
    (which should also encompass a mem usage cut)
-  Added an experimental --loop option.
-  Added the resolve command.


v0.5.0:
!  Bugfix: lexer rules for includes didn't allow comments after includes
!  Bugfix: headers don't have to end in .hh or any other header extension.
     Redefined isHeader. This means that sources are identified by extension
     and headers are now anything which isn't a source.
-  Transition from "make" utility to "build" utility.
!  Bugfix: Argument parser could cause an abort.
-  Rewrite of build, check, makefile, icmake and dot commands.
-  Code cleaup using by adding UpToDate function
-  Support for first "not by me" projects!
!  Bugfix: Include scanning error handling (and detection) was broken.

v0.4.0:
-  Code cleanup: foreach to _foreach, debugLevel.. to _debugLevel...
!  Bugfix: "[DONE]" message on stderr instead of stdout.
-  Added options: real-man, highlight, clearpc, append, exec-on-pass,
     exec-on-fail.
-  Repeated options are supported (Arguments class hack).
-  Added command "check" to check the up to date status of sourcefiles.
-  Added command "icmake" to act as an icmake slave: output class directories.
-  New status webpage creation tool, see the tools directory.
-  Real men can now use: "ccbuild --real-man 2>/dev/null"
    (Also see: Real Man's Compiler Collection on Freshmeat)

v0.3.5:
-  Added support for ".H" as header extension.
-  Added the -C option, which works just like the make -C
    to change directory before anything else.
-  Added the "brute" option. To make ccbuild ignore compiler errors.
-  Added option to precompile all headers, not just internal headers.
   I noticed that precompiler headers is only faster when you don't use
   internal headers at all, otherwise it's not that handy.
!  Behaviour change: precompile before any normal compilation.
    (due to flattend build algorithm)
-  Small speed-up (in isReadable code).
-  The distclean command nolonger uses clean, so it should work
   without a working source tree again (which is the reason it's there).

v0.3.0:
!  Bugfix: Internal headers where dependent on .cc files.
   This made the ccbuild want to precompile internal headers to often.
!  Bugfix: Loading of ccResolutions.d files might have been broken.
-  Removed "#define" rule from sourcescanner, g++ should be able to do this
   at the moment. However we might need it in the future.
-  Cleaner class has removed in favour of a flat cleaning algorithm.
-  Link phase has been seperated from binaryTarget compilation.
-  Precompilation is no longer testing. However the implementation will
   probably be changed in some future release (see TODO).
-  Compiler has a cleaner and more "const" interface.
-  Added a small installation script to make up for not having autotools files.

v0.2.1:
-  Added all ANSI C++ header files to static ignore list. (Resolver.cc)
-  Removed default path searches. Now, ccbuild needs a ccResolutions file
   to be build with ccbuild. It made me notice, and remove, a superflourish
   include statement in expand.cc already, so it's a good thing ;-)
!  Wrong line number in resolution errors fixed.
-  Load all ~/.ccbuild/ccResolutions.d/* files into resolver.
-  Added a default ccResolutions.d in the tools directory,
   containing a list of known standard unix headers.
-  Added the --compiler option to change de base command of the compiler.
!  Precompilation is now testing code! You need g++ 3.4 or up though,
   so try using: ccbuild -p --compiler g++-3.4

v0.2.0:
-  Moved back to "g++ -Wall -g" as default command.
!  Fixed loading of ~/.ccbuild/ccResolutions, which was broken.
-  Always say something. ccbuild should now always output something.
-  All not-linker options are now compiler options. Which _should_ mean
   more or even all options are interpreted correctly.
-  Split testtree from distribution and added some libglademm examples to it.
!  Added evaluation of ccResolution lines, meaning you can now use:
      gtkmm.h    `/usr/bin/pkg-config --cflags --libs gtkmm-2.0`

v0.1.1:
-  Not empty leftover arguments after parsing from the resolution file are mentioned.
-  Code clean-up. Should make building just a few microseconds faster.
!  Handle the -Wl,... option which was wrongly interpeted as a compile-time option.
-  Experimental internalHeader precompilation support. Still gives warnings and
   I still have to run a few benchmarks on it. (see the tools/benchmark script)

v0.1.0:
-  Moved to "g++ -Wall -ggdb" instead of "g++ -Wall -g" as default command.
-  Centralized globSourceFiles function, to support all source types (".cc", ".cpp" etc.).
!  Fixed a bug in building single files (dependencies were not generated).
-  Argument parser in addArgument function of compiler. No Bash evaluation yet but.
   using the output from "pkg-config --cflags" in your ccResolution file  shouldn't
   be a problem.
-  Added the 'distclean' command, which empties and removes all 'o' directories.
-  Added a few variables to the generated Makefile.
-  Changed the interface of the Compiler and Cleaner classes (see rmCompileOptions).
-  ccResolutions files now may have extra spaces and must have one tab to seperate
   the values. Also comment lines are possible (start with "#").
-  Added a new example to the testtree showing the use of something that came out
   of pkg-config. Added using the following command:
      echo -e gtkmm.h "\t\t" `pkg-config gtkmm-2.4 --cflags --libs` >> ccResolutions
   This should, if you have gtkmm-2.4 development files, allow gtkmmbase.cc to build.

v0.0.2:
-  Fixed header file dependencie in Makefile.
-  Error message added when a local include isn't found/loadable.
-  Default compiler command is set to "g++ -Wall -g".
-  Behavior change: when you add an option (using --add) the defaults are removed.
-  Unknown commands are mentioned.
-  Arguments class now has a const interface for flag and argument testing!.
-  Solved a few //TODO's.
-  Support for ".cpp" extension.

v0.0.1.1: Emergency repair release...
!  Directory dependencie of object target rules in Makefile broke it.
   making make think it always needed to update.
-  Some documentation changes.
-  Makefile contains correct version in the ccbuild banner.
-  All rule for single bintarget Makefiles.

v0.0.1:
  Initial release!
