Implement `MIN_VERSION_GLASGOW_HASKELL()` macro
authorHerbert Valerio Riedel <hvr@gnu.org>
Sun, 5 Oct 2014 20:35:22 +0000 (22:35 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sun, 5 Oct 2014 20:36:18 +0000 (22:36 +0200)
commit3549c952b535803270872adaf87262f2df0295a4
tree6352a317b7999b8544e68a7acdc2e190339215d6
parent2a8ea4745d6ff79d6ce17961a64d9013243fc3c6
Implement `MIN_VERSION_GLASGOW_HASKELL()` macro

This exposes the `cProjectPatchLevel{1,2}` value at the CPP level to
allow it to be used in CPP conditionals. Concretely, GHC 7.10.2.20150623
would result in

  #define __GLASGOW_HASKELL__             710
  #define __GLASGOW_HASKELL_PATCHLEVEL1__ 2
  #define __GLASGOW_HASKELL_PATCHLEVEL2__ 20150623

while GHC 7.10.3 results in

  #define __GLASGOW_HASKELL__             710
  #define __GLASGOW_HASKELL_PATCHLEVEL1__ 3

and finally GHC 7.9.20141009 results in

  #define __GLASGOW_HASKELL__             709
  #define __GLASGOW_HASKELL_PATCHLEVEL1__ 20141009

As it's error-prone to properly express CPP conditionals for testing GHC
multi-component versions, a new macro `MIN_VERSION_GLASGOW_HASKELL()` is
provided (also via the new CPP include file `ghcversion.h`)

Finally, in order to make it easier to define the new CPP macro
`MIN_VERSION_GLASGOW_HASKELL()`, a new default-included
`include/ghcversion.h` is used for the new CPP definitions.

Reviewed By: ekmett, austin, #ghc

Differential Revision: https://phabricator.haskell.org/D66
.gitignore
aclocal.m4
compiler/ghc.mk
compiler/main/DriverPipeline.hs
docs/users_guide/phases.xml
ghc.mk
includes/ghc.mk
mk/project.mk.in