Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
07d93083
Commit
07d93083
authored
Jun 08, 2011
by
Ian Lynagh
Browse files
Whitespace only in utils/Platform.hs
parent
35ce906d
Changes
1
Hide whitespace changes
Inline
Side-by-side
compiler/utils/Platform.hs
View file @
07d93083
-- | A description of the platform we're compiling for.
--
Used by the native code generator.
--
In the future, this module should be the only one that references
--
the evil #defines for each TARGET_ARCH and TARGET_OS
--
Used by the native code generator.
--
In the future, this module should be the only one that references
--
the evil #defines for each TARGET_ARCH and TARGET_OS
--
module
Platform
(
Platform
(
..
),
Arch
(
..
),
OS
(
..
),
Platform
(
..
),
Arch
(
..
),
OS
(
..
),
defaultTargetPlatform
,
osElfTarget
defaultTargetPlatform
,
osElfTarget
)
where
...
...
@@ -19,38 +19,38 @@ where
-- | Contains enough information for the native code generator to emit
--
code for this platform.
--
code for this platform.
data
Platform
=
Platform
{
platformArch
::
Arch
,
platformOS
::
OS
}
=
Platform
{
platformArch
::
Arch
,
platformOS
::
OS
}
-- | Architectures that the native code generator knows about.
--
TODO: It might be nice to extend these constructors with information
--
about what instruction set extensions an architecture might support.
--
TODO: It might be nice to extend these constructors with information
--
about what instruction set extensions an architecture might support.
--
data
Arch
=
ArchUnknown
|
ArchX86
|
ArchX86_64
|
ArchPPC
|
ArchPPC_64
|
ArchSPARC
deriving
(
Show
,
Eq
)
=
ArchUnknown
|
ArchX86
|
ArchX86_64
|
ArchPPC
|
ArchPPC_64
|
ArchSPARC
deriving
(
Show
,
Eq
)
-- | Operating systems that the native code generator knows about.
--
Having OSUnknown should produce a sensible default, but no promises.
--
Having OSUnknown should produce a sensible default, but no promises.
data
OS
=
OSUnknown
|
OSLinux
|
OSDarwin
|
OSSolaris2
|
OSMinGW32
|
OSFreeBSD
|
OSOpenBSD
deriving
(
Show
,
Eq
)
=
OSUnknown
|
OSLinux
|
OSDarwin
|
OSSolaris2
|
OSMinGW32
|
OSFreeBSD
|
OSOpenBSD
deriving
(
Show
,
Eq
)
-- | This predicates tells us whether the OS supports ELF-like shared libraries.
...
...
@@ -62,44 +62,44 @@ osElfTarget OSSolaris2 = True
osElfTarget
_
=
False
-- | This is the target platform as far as the #ifdefs are concerned.
--
These are set in includes/ghcplatform.h by the autoconf scripts
--
These are set in includes/ghcplatform.h by the autoconf scripts
defaultTargetPlatform
::
Platform
defaultTargetPlatform
=
Platform
defaultTargetArch
defaultTargetOS
=
Platform
defaultTargetArch
defaultTargetOS
-- | Move the evil TARGET_ARCH #ifdefs into Haskell land.
defaultTargetArch
::
Arch
#
if
i386_TARGET_ARCH
defaultTargetArch
=
ArchX86
defaultTargetArch
=
ArchX86
#
elif
x86_64_TARGET_ARCH
defaultTargetArch
=
ArchX86_64
defaultTargetArch
=
ArchX86_64
#
elif
powerpc_TARGET_ARCH
defaultTargetArch
=
ArchPPC
defaultTargetArch
=
ArchPPC
#
elif
powerpc64_TARGET_ARCH
defaultTargetArch
=
ArchPPC_64
defaultTargetArch
=
ArchPPC_64
#
elif
sparc_TARGET_ARCH
defaultTargetArch
=
ArchSPARC
defaultTargetArch
=
ArchSPARC
#
else
defaultTargetArch
=
ArchUnknown
defaultTargetArch
=
ArchUnknown
#
endif
-- | Move the evil TARGET_OS #ifdefs into Haskell land.
defaultTargetOS
::
OS
#
if
linux_TARGET_OS
defaultTargetOS
=
OSLinux
defaultTargetOS
=
OSLinux
#
elif
darwin_TARGET_OS
defaultTargetOS
=
OSDarwin
defaultTargetOS
=
OSDarwin
#
elif
solaris2_TARGET_OS
defaultTargetOS
=
OSSolaris2
defaultTargetOS
=
OSSolaris2
#
elif
mingw32_TARGET_OS
defaultTargetOS
=
OSMinGW32
defaultTargetOS
=
OSMinGW32
#
elif
freebsd_TARGET_OS
defaultTargetOS
=
OSFreeBSD
defaultTargetOS
=
OSFreeBSD
#
elif
openbsd_TARGET_OS
defaultTargetOS
=
OSOpenBSD
defaultTargetOS
=
OSOpenBSD
#
else
defaultTargetOS
=
OSUnknown
defaultTargetOS
=
OSUnknown
#
endif
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment