| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We have two cases:
1. building a cross-compiler
2. compiling GHC to run on a foreign platform
These two are done with almost the same setup: (1) is the stage 1
compiler, and (2) is the stage 2 compiler, when CrossCompiling=YES.
The only difference between (1) and (2) is that you if you set up the
build for (1), then it stops before stage 2 and you can 'make install'
to install stage 1.
Unfortunately, (2) didn't work, and the build system code needed some
tidying up.
Change to the way the build is set up:
Before
------
To build a cross-compiler:
./configure --target=<..>
To compile a foreign GHC:
./configure --host=<..> --target=<..>
Now
---
To build a cross-compiler:
./configure --target=<..>
And set "Stage1Only=YES" in mk/build.mk
To compile a foreign GHC:
./configure --target=<..>
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
In particular, this fixes it if we are using dynamic libraries by
default and don't build the vanilla way.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We used to say
$ ghc-pkg list blargle
/usr/local/lib/ghc-7.4.1/package.conf.d
which may imply that blargle was found in
/usr/local/lib/ghc-7.4.1/package.conf.d
|
|
|
|
|
|
|
| |
Rather than having a separate
foo_INSTALL_SHELL_WRAPPER
variable, we just use
foo_INSTALL && foo_SHELL_WRAPPER
|
| |
|
|
|
|
| |
-sf'?)
|
| |
|
| |
|
|
|
|
|
| |
Really we ought to support all the old flags, but warn that they
are deprecated.
|
| |
|
|
|
|
|
|
|
|
| |
Rename package database flags in both GHC and ghc-pkg so that they are
consistent with Cabal nomenclature.
Add a version check to the build system so that the correct set of
package db flags are used when the bootstrapping GHC has version < 7.5.
|
|
|
|
|
|
|
|
|
|
|
| |
This allows you to say things like
SRC_HC_WARNING_OPTS += -fno-warn-unsupported-calling-conventions
in mk/validate.mk.
Unfortunately, we can't just use SRC_HC_OPTS, as that gets put before
the more specific options (e.g. ghc-options in a .cabal file), many of
which include -Wall. So now we have:
ghc $(SRC_HC_OPTS) ... options from .cabal etc ... $(SRC_HC_WARNING_OPTS)
|
| |
|
| |
|
|
|
|
| |
Patchset from Stephen Blackheath <stephen.blackheath@ipwnstudios.com>
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
We now make use of the ghc-packages file when making the haddock index.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
It was only working when followed by something, e.g. "$topdir/base".
|
| |
|
|
|
|
|
| |
I'd naively assumed that the haddock-html field would only use the
$httptopdir variable. Hopefully this will fix the windows build.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tools handling installed packages need to be able to interpret the
paths which are relative to the ${pkgroot} which means they need to
know the value of ${pkgroot}. With ghc-pkg this is not always obvious
since ghc-pkg does not currently have any way machine interface for
reporting the location of its package dbs (global, user). The solution
we have arrived at is simply to emit the pkgroot as an extra field
when it is needed.
There are two cases:
* --no-expand-pkgroot: ghc-pkg dump/describe will not expand the
${pkgroot} var, so it will appear literally in the output and the
pkgroot field will be generated so that tools know what value to
use for the ${pkgroot}.
* --expand-pkgroot: ghc-pkg dump/describe will expand the ${pkgroot}
and ${pkgrooturl} vars and will not generate the pkgroot field.
The defaults are:
* ghc-pkg dump/describe --no-expand-pkgroot
* ghc-pkg field --expand-pkgroot
|
|
|
|
|
|
|
| |
The haddock-html and haddock-interface fields are now checked
as well. Had to fix up ghc-cabal as it used relative paths for
the inplace package's haddock-html. It turns out that these
were never used so it could simply be omitted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Historically ghc implemented relocatable packages by allowing
"$topdir" in the package registration info and having ghc expand
this with its notion of $topdir. The topdir refers to where ghc
itself is installed (specifically the libdir).
The ${pkgroot} spec takes this idea and makes it portable.
(http://www.haskell.org/pipermail/libraries/2009-May/011772.html)
Instead of paths relative to where ghc is installed, they can be
relative to the package database itself. Thus it is no longer a
ghc-specific idea and can work for package collections other than
the global package db.
|
|
|
|
|
|
| |
It was never a universal solution. It only worked with the GNU linker.
It has not been used by Cabal for ages. GHCi can now load .a files so
it will not be needed in future.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For shell-based build systems the feature is still available as:
ghc-pkg register --expand-env-vars
Historically, ghc-pkg allowed environment variables to appear in the
input files for ghc-pkg register. They are not stored in the package
database but are expanded upon registration. This feature helped for
build systems based on makefiles and shell scripts. These days the
vast majority of such files are generated by Cabal and we don't want
any ${name} strings (e.g. perhaps in a package description) getting
accidentally interpreted as an environment variable.
|
| |
|
|
|
|
| |
otherwise we repeatedly try to rebuild ghc-pkg if ghc-cabal is newer.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
|
|
|
|
| |
GHCi libs are no longer necessary, as we can use the .a or .so versions
instead.
|
| |
|
| |
|
| |
|
| |
|