| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
This follows a similar change in
4905b83a2d448c65ccced385343d4e8124548a3b, where binaries are installed
in libexecdir/bin instead of libexecdir.
This fixes a problem with ghc not able to find ghc-split, when
SplitObjs=YES.
|
|
|
|
|
|
| |
Reviewed by: bgamari
Differential Revision: https://phabricator.haskell.org/D1209
|
|
|
|
|
|
|
| |
The default (perf) build, which sets SplitObjs=YES, was broken with
commit 5dd02864a844bcf6fe0018755ff261affdef3fea.
I accidently removed the wrong `endif`. This should fix it.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All these checks that CLEANING/=YES are no longer needed, because
nowadays $1_$2_PROGNAME is always set explicitly, and $1_$2_PROG isn't.
They were once introduce to allow `make clean` before `./configure`. I
checked, and it still works.
Remove the checks to make the build system a tiny bit shorter, and to
no longer wonder why they are there.
Differential Revision: https://phabricator.haskell.org/D941
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The comment "INPLACE_BIN might be empty if we're distcleaning" is no
longer true, and the check that CLEANING isn't YES isn't necessary.
It was introduced in cd12c32de77ac18a69ed1733a558095567ec5ba8, to
"make repeated 'make distclean' not fail", and and later revised in
39253008705e3ca590afdfa1b87bfbb5a16da7e7. It was needed because
INPLACE_BIN was defined in config.mk.
Commit 6793a033e1ce41f77316675e8f7aa83196a9b211 however, two days
later, introduced a better solution to this problem: "Move the fixed
paths out of config.mk, so cleaning works without configuring"
So here we remove the original comment and check. One less thing to
worry about when trying to understand the build system.
Differential Revision: https://phabricator.haskell.org/D940
|
|
|
|
|
|
|
| |
To check if we're cleaning, always check the $CLEANING variable, instead
of sometimes $CLEANING, sometimes $MAKECMDGOALS.
[skip ci]
|
|
|
|
|
|
|
|
|
| |
The rules weren't correctly setting INSTALL_TOPDIRS, and on top of that
the dependencies were wrong when BINDIST=YES.
Authored-by: Evan Hauck <khyperia@live.com>
Authored-by: Austin Seipp <austin@well-typed.com>
Signed-off-by: Austin Seipp <austin@well-typed.com>
|
| |
|
|
|
|
|
|
|
| |
We now define _PROGNAME, and _PROG is automatically defined with
$(exeext). This will shortly automatically use the right exeext
depending on what stage it is being compiled with (exeext may be
different for different stages when cross-compiling).
|
|
|
|
| |
and use them for split
|
|
|
|
|
| |
It doesn't seem to do anything that _INSTALL and _INSTALL_INPLACE
can't do.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We avoid calling "rm -rf" with no file arguments; this fixes cleaning
on Solaris, where that fails.
We also check for suspicious arguments: anything containing "..",
starting "/", or containing a "*" (you need to call $(wildcard ...)
yourself now if you really want globbing). This should make things
a little safer.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
From
http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering
Phase 0:
Includes: package-data.mk files for things built by the
bootstrapping compiler.
Builds: the dependency files for hsc2hs and genprimopcode. We need
to do this now, as hsc2hs needs to be buildable in phase 1's
includes (so that we can make the hpc library's .hs source
files, which in turn is necessary for making its dependency
files), and genprimopcode needs to be buildable in phase 1's
includes (so that we can make the primop-*.hs-incl files,
which are sources for the stage1 compiler library, and thus
necessary for making its dependency files).
Phase 1:
Includes: dependency files for things built by the bootstrapping
compiler.
Builds: package-data.mk files for everything else. Note that this
requires configuring the packages, which means telling cabal
which ghc to use, and thus the stage1 compiler gets built
during this phase.
Phase "":
Includes: dependency files for everything else.
Builds: Everything else.
|
|
|
|
|
|
|
|
|
| |
We no longer use dummy-ghc; instead we don't configure most packages
until the stage1 compiler is available.
We also now use Cabal for building the ghc-bin package.
There are a couple more sanity checks too.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cygwin's /bin/install doesn't set file modes correctly if the
destination path is a C: style path:
$ /bin/install -c -m 644 foo /cygdrive/c/cygwin/home/ian/foo2
$ /bin/install -c -m 644 foo c:/cygwin/home/ian/foo3
$ ls -l foo*
-rw-r--r-- 1 ian None 0 2011-01-06 18:28 foo
-rw-r--r-- 1 ian None 0 2011-01-06 18:29 foo2
-rwxrwxrwx 1 ian None 0 2011-01-06 18:29 foo3
This causes problems for bindisttest/checkBinaries.sh which then
thinks that e.g. the userguide HTML files are binaries.
We therefore use a /cygdrive path if we are on cygwin
|
|
|
|
|
|
|
|
|
| |
saying
make TRACE=1
prints most of the macro calls and their arguments. It's easy to
trace new macros; see rules/trace.mk.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was done as part of an honours thesis at UNSW, the paper describing the
work and results can be found at:
http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf
A Homepage for the backend can be found at:
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM
Quick summary of performance is that for the 'nofib' benchmark suite, runtimes
are within 5% slower than the NCG and generally better than the C code
generator. For some code though, such as the DPH projects benchmark, the LLVM
code generator outperforms the NCG and C code generator by about a 25%
reduction in run times.
|
|
|
|
|
| |
We now regenerate them when installing, which means the path for perl
doesn't get baked in
|
| |
|
|
|
|
| |
There are now 104 calls to mkdirhier, down from 1201, when validating.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
I've also added some missing $s to some makefiles. These aren't
technically necessary, but it's nice to be consistent.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
# -----------------------------------------------------------------------------
#
# (c) 2009 The University of Glasgow
#
# This file is part of the GHC build system.
#
# To understand how the build system works and how to modify it, see
# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
# http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
#
# -----------------------------------------------------------------------------
|
|
|