[project @ 2000-05-25 12:41:14 by simonpj]
[ghc-hetmet.git] / ghc / mk / version.mk
1 #
2 # Project-specific version information.
3 #
4 # Note:
5 #   this config file is intended to centralise all
6 #   project version information. To bump up the version
7 #   info on your package, edit this file and recompile
8 #   all the dependents. This file lives in the source tree.
9 #
10 # In the case of the ghc/ project, if you make changes
11 # to this file, you'll *have to* to rebuild the driver
12 # in your build tree(s). The ghc/driver/Makefile has got
13 # a dependency that will force such rebuilding to happen,
14 # but it does require you to do a 'make' in ghc/driver.
15
16 #
17 # Ghc project settings:
18
19 # ProjectVersion    is treated as a *string*
20 # ProjectVersionInt is treated as an *integer* (for cpp defines)
21
22 # Versioning scheme: A.BB.C
23 #         A: major version, any number of digits
24 #         B: minor version, two digits padded with leading zeros
25 #         C: patchlevel, one digit, omitted if zero.
26 #
27 # ProjectVersionInt does *not* contain the patchlevel (rationale: this
28 # figure is used for conditional compilations, and library interfaces
29 # etc. are not supposed to change between patchlevels).
30 #
31 # The ProjectVersionInt is included in interface files, and GHC
32 # checks that it's reading interface generated by the same ProjectVersion
33 # as itself. It does this even though interface file syntax may not 
34 # change between versions.  Rationale: calling conventions or other 
35 # random .o-file stuff might change even if the .hi syntax doesn't
36
37 ProjectName       = The Glorious Glasgow Haskell Compilation System
38 ProjectNameShort  = ghc
39 ProjectVersion    = 4.07
40 ProjectVersionInt = 407
41
42 #
43 # Optionally, you can get the compiler driver to check the
44 # version consistency between the object files being linked.
45
46 # Major numbers must always agree, minor disagreements yield a warning.
47 #
48 # These version numbers are currently separate from the project
49 # version - one (semi-valid) reason for having them separate is that
50 # object files produced by different versions of the compiler need
51 # not be incompatible..
52 HscMajorVersion=40
53 HscMinorVersion=0
54 CcMajorVersion=36
55 CcMinorVersion=1
56
57 # Interface file version (hi-boot files only)
58 #
59 # A GHC built with HscIfaceFileVersion=n will look for 
60 #       M.hi-boot-n, and only then for 
61 #       M.hi-boot.
62 # (It'll be happy with the latter if the former doesn't exist.)
63 #
64 # This variable is used ONLY for hi-boot files.
65 # Its only purpose is to allow you to have a single directory
66 # with multiple .hi-boot files for the same module, each 
67 # corresponding to a different version of GHC.  
68 #
69 # It is propagated to hsc like this:
70 #       * This file is included in ghc/Makefile
71 #       * ghc/Makefile has a main/Constants.lhs-specific flag
72 #               -DHscIfaceFileVersion=$(HscIfaceFileVersion)
73 #       * main/Constants.lhs defines 
74 #               interfaceFileFormatVersion = HscIfaceFileVersion
75 # So there!
76
77 HscIfaceFileVersion=5