Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 149 lines (127 sloc) 5.374 kb
34cc75e igfoo GHC new build system megapatch
igfoo authored
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
33 ################################################################################
34 #
35 # Platform variables
36 #
37 ################################################################################
38
39 # A "platform" is the GNU cpu-type/manufacturer/operating-system target machine
40 # specifier. E.g. sparc-sun-solaris2
41 #
42 # Build platform: the platform on which we are doing this build
43 # Host platform: the platform on which these binaries will run
44 # Target platform: the platform for which this compiler will generate code
45 #
46 # We don't support build & host being different, because the build
47 # process creates binaries that are run during the build, and also
48 # installed.
49 #
50 # If host & target are different, then we are building a compiler
51 # which will generate intermediate .hc files to port to the target
52 # architecture for bootstrapping. The libraries and stage 2 compiler
53 # will be built as HC files for the target system, and likely won't
54 # build on this host platform.
55 #
56 # An important invariant is that for any piece of source code, the
57 # platform on which the code is going to run is the HOST platform,
58 # and the platform on which we are building is the BUILD platform.
59 # Additionally for the compiler, the platform this compiler will
60 # generate code for is the TARGET. TARGET is not meaningful outside
61 # the compiler sources.
62 #
63 # Guidelines for when to use HOST vs. TARGET:
64 #
65 # - In the build system (Makefile, foo.mk), normally we should test
66 # $(HOSTPLATFORM). There are some cases (eg. installation), where
67 # we expect $(HOSTPLATFORM)==$(TARGETPLATFORM), so in those cases it
68 # doesn't matter which is used.
69 #
70 # - In the compiler itself, we should test HOST or TARGET depending
71 # on whether the conditional relates to the code being generated, or
72 # the platform on which the compiler is running. See the section
73 # on "Coding Style" in the commentary for more details.
74 #
75 # - In all other code, we should be testing HOST only.
76 #
77 # NOTE: cross-compiling is not well supported by the build system.
78 # You have to do a lot of work by hand to cross compile: see the
79 # section on "Porting GHC" in the Building Guide.
80
81 HOSTPLATFORM = @HostPlatform@
82 TARGETPLATFORM = @TargetPlatform@
83 BUILDPLATFORM = @BuildPlatform@
84
85 HostPlatform_CPP = @HostPlatform_CPP@
86 HostArch_CPP = @HostArch_CPP@
87 HostOS_CPP = @HostOS_CPP@
88 HostVendor_CPP = @HostVendor_CPP@
89
90 TargetPlatform_CPP = @TargetPlatform_CPP@
91 TargetArch_CPP = @TargetArch_CPP@
92 TargetOS_CPP = @TargetOS_CPP@
93 TargetVendor_CPP = @TargetVendor_CPP@
94
95 BuildPlatform_CPP = @BuildPlatform_CPP@
96 BuildArch_CPP = @BuildArch_CPP@
97 BuildOS_CPP = @BuildOS_CPP@
98 BuildVendor_CPP = @BuildVendor_CPP@
99
100 @HostPlatform_CPP@_HOST = 1
101 @TargetPlatform_CPP@_TARGET = 1
102 @BuildPlatform_CPP@_BUILD = 1
103
104 @HostArch_CPP@_HOST_ARCH = 1
105 @TargetArch_CPP@_TARGET_ARCH = 1
106 @BuildArch_CPP@_BUILD_ARCH = 1
107
108 @HostOS_CPP@_HOST_OS = 1
109 @TargetOS_CPP@_TARGET_OS = 1
110 @BuildOS_CPP@_BUILD_OS = 1
111
112 @HostVendor_CPP@_HOST_VENDOR = 1
113 @TargetVendor_CPP@_TARGET_VENDOR = 1
114 @BuildVendor_CPP@_BUILD_VENDOR = 1
115
116 ################################################################################
117 #
118 # Global configuration options
119 #
120 ################################################################################
121
122 # Leading underscores on symbol names in object files
123 # Valid options: YES/NO
124 #
125 LeadingUnderscore=@LeadingUnderscore@
126
127 # Pin a suffix on executables? If so, what (Windows only).
128 exeext=@exeext@
129 soext=@soext@
130
131 # Windows=YES if on a Windows platform
132 ifneq "$(findstring $(HostOS_CPP), mingw32 cygwin32)" ""
133 Windows=YES
134 else
135 Windows=NO
136 endif
137
5775d51 Add OSTYPE build-system variable, and use it
simonpj@microsoft.com authored
138 # Tell the build system what the host operating system is
139 # This distinguishes "msys" and "cygwin", which are not
140 # not distinguished by HOST_OS_CPP
141 OSTYPE=@OSTYPE@
e7f04c3 kgardas - disable shared lib support on Solaris 10 and older (fixes #4973)
kgardas authored
142
143 # In case of Solaris OS, does it provide broken shared libs
144 # linker or not?
145 SOLARIS_BROKEN_SHLD=@SOLARIS_BROKEN_SHLD@
6247b59 David Peixotto Add autoconf support to detect an LLVM-based C compiler
authored
146
147 # Do we have a C compiler using an LLVM back end?
148 CC_LLVM_BACKEND = @CC_LLVM_BACKEND@
Something went wrong with that request. Please try again.