users_guide: Various spelling fixes
[ghc.git] / mk / project.mk.in
1 # WARNING: mk/project.mk is automatically generated from mk/project.mk.in by
2 # ./configure. Make sure you are editing mk/project.mk.in, not mk/project.mk.
3
4 ################################################################################
5 #
6 # GHC Version
7 #
8
9 # ProjectVersion is treated as a *string*
10 # ProjectVersionInt is treated as an *integer* (for cpp defines)
11
12 # Versioning scheme: A.B.C
13 # A: major version, decimal, any number of digits
14 # B: minor version, decimal, any number of digits
15 # C: patchlevel, one digit, omitted if zero.
16 #
17 # ProjectVersionInt does *not* contain the patchlevel (rationale: this
18 # figure is used for conditional compilations, and library interfaces
19 # etc. are not supposed to change between patchlevels).
20 #
21 # The ProjectVersionInt is included in interface files, and GHC
22 # checks that it's reading interface generated by the same ProjectVersion
23 # as itself. It does this even though interface file syntax may not
24 # change between versions. Rationale: calling conventions or other
25 # random .o-file stuff might change even if the .hi syntax doesn't
26
27 ProjectName = @ProjectName@
28 ProjectTags =
29 ProjectVersion = @ProjectVersion@$(ProjectTags)
30 ProjectVersionInt = @ProjectVersionInt@
31 ProjectPatchLevel = @ProjectPatchLevel@
32 ProjectPatchLevel1 = @ProjectPatchLevel1@
33 ProjectPatchLevel2 = @ProjectPatchLevel2@
34 ProjectGitCommitId = @ProjectGitCommitId@
35
36 ################################################################################
37 #
38 # Platform variables
39 #
40 ################################################################################
41
42 # A "platform" is the GNU cpu-type/manufacturer/operating-system target machine
43 # specifier. E.g. sparc-sun-solaris2
44 #
45 # Build platform: the platform on which we are doing this build
46 # Host platform: the platform on which these binaries will run
47 # Target platform: the platform for which this compiler will generate code
48 #
49 # We don't support build & host being different, because the build
50 # process creates binaries that are run during the build, and also
51 # installed.
52 #
53 # If host & target are different, then we are building a compiler
54 # which will generate intermediate .hc files to port to the target
55 # architecture for bootstrapping. The libraries and stage 2 compiler
56 # will be built as HC files for the target system, and likely won't
57 # build on this host platform.
58 #
59 # An important invariant is that for any piece of source code, the
60 # platform on which the code is going to run is the HOST platform,
61 # and the platform on which we are building is the BUILD platform.
62 # Additionally for the compiler, the platform this compiler will
63 # generate code for is the TARGET. TARGET is not meaningful outside
64 # the compiler sources.
65 #
66 # Guidelines for when to use HOST vs. TARGET:
67 #
68 # - In the build system (Makefile, foo.mk), normally we should test
69 # $(HOSTPLATFORM). There are some cases (eg. installation), where
70 # we expect $(HOSTPLATFORM)==$(TARGETPLATFORM), so in those cases it
71 # doesn't matter which is used.
72 #
73 # - In the compiler itself, we should test HOST or TARGET depending
74 # on whether the conditional relates to the code being generated, or
75 # the platform on which the compiler is running. See the section
76 # on "Coding Style" in the commentary for more details.
77 #
78 # - In all other code, we should be testing HOST only.
79 #
80 # NOTE: cross-compiling is not well supported by the build system.
81 # You have to do a lot of work by hand to cross compile: see the
82 # section on "Porting GHC" in the Building Guide.
83
84 HOSTPLATFORM = @HostPlatform@
85 TARGETPLATFORM = @TargetPlatform@
86 BUILDPLATFORM = @BuildPlatform@
87
88 HostPlatform_CPP = @HostPlatform_CPP@
89 HostArch_CPP = @HostArch_CPP@
90 HostOS_CPP = @HostOS_CPP@
91 HostVendor_CPP = @HostVendor_CPP@
92
93 TargetPlatform_CPP = @TargetPlatform_CPP@
94 TargetArch_CPP = @TargetArch_CPP@
95 TargetOS_CPP = @TargetOS_CPP@
96 TargetVendor_CPP = @TargetVendor_CPP@
97
98 BuildPlatform_CPP = @BuildPlatform_CPP@
99 BuildArch_CPP = @BuildArch_CPP@
100 BuildOS_CPP = @BuildOS_CPP@
101 BuildVendor_CPP = @BuildVendor_CPP@
102
103 @HostPlatform_CPP@_HOST = 1
104 @TargetPlatform_CPP@_TARGET = 1
105 @BuildPlatform_CPP@_BUILD = 1
106
107 @HostArch_CPP@_HOST_ARCH = 1
108 @TargetArch_CPP@_TARGET_ARCH = 1
109 @BuildArch_CPP@_BUILD_ARCH = 1
110
111 @HostOS_CPP@_HOST_OS = 1
112 @TargetOS_CPP@_TARGET_OS = 1
113 @BuildOS_CPP@_BUILD_OS = 1
114
115 @HostVendor_CPP@_HOST_VENDOR = 1
116 @TargetVendor_CPP@_TARGET_VENDOR = 1
117 @BuildVendor_CPP@_BUILD_VENDOR = 1
118
119 ################################################################################
120 #
121 # Global configuration options
122 #
123 ################################################################################
124
125 # Leading underscores on symbol names in object files
126 # Valid options: YES/NO
127 #
128 LeadingUnderscore=@LeadingUnderscore@
129
130 # Pin a suffix on executables? If so, what (Windows only).
131 exeext0=@exeext_host@
132 exeext1=@exeext_target@
133 exeext2=@exeext_target@
134 exeext3=@exeext_target@
135 soext=@soext_target@
136
137 # Windows_Host=YES if on a Windows platform
138 ifneq "$(findstring $(HostOS_CPP), mingw32 cygwin32)" ""
139 Windows_Host=YES
140 else
141 Windows_Host=NO
142 endif
143
144 # Windows_Target=YES if we are targetting a Windows platform
145 ifneq "$(findstring $(TargetOS_CPP), mingw32 cygwin32)" ""
146 Windows_Target=YES
147 else
148 Windows_Target=NO
149 endif
150
151 # Tell the build system what the host operating system is
152 # This distinguishes "msys" and "cygwin", which are not
153 # not distinguished by HOST_OS_CPP
154 OSTYPE=@OSTYPE@
155
156 # In case of Solaris OS, does it provide broken shared libs
157 # linker or not?
158 SOLARIS_BROKEN_SHLD=@SOLARIS_BROKEN_SHLD@
159
160 # Do we have a C compiler using an LLVM back end?
161 CC_LLVM_BACKEND = @CC_LLVM_BACKEND@
162 CC_CLANG_BACKEND = @CC_CLANG_BACKEND@
163
164 # Is the stage0 compiler affected by Bug #9439?
165 GHC_LLVM_AFFECTED_BY_9439 = @GHC_LLVM_AFFECTED_BY_9439@