summaryrefslogtreecommitdiff
path: root/rules
Commit message (Collapse)AuthorAgeFilesLines
* Tweak the build system handling of shell wrappersIan Lynagh2012-09-272-18/+9
| | | | | | | Rather than having a separate foo_INSTALL_SHELL_WRAPPER variable, we just use foo_INSTALL && foo_SHELL_WRAPPER
* Remove a stray " in the build systemIan Lynagh2012-09-271-1/+1
|
* Make .t files when running haddockIan Lynagh2012-08-141-1/+2
| | | | | These files contain the "+RTS -t --machin-readable" output, so that we can spot performance regressions.
* Add missing flag for respecting EXTRA_LIBDIRGabor Pali2012-08-081-1/+1
|
* Tweak the HC_OPTS generationIan Lynagh2012-07-241-1/+1
| | | | | | | | | libraries/base/GHC/Base_HC_OPTS wasn't getting included, because we were using libraries/base/./GHC/Base.lhs as the path, and the ./ meant we got the wrong filename. I didn't use $(realpath ...) as the .hs file may be generated by hsc2hs or similar, so may not exist when the HC_OPTS are constructed.
* First batch of file additions for cross-compiler:Gabor Greif2012-07-181-0/+24
| | | | | | | | | | | | | | | | | | | | | | new file: ghc/ghc-cross.wrapper new file: includes/mkDerivedConstants.cross.awk new file: includes/mkSizeMacros.cross.awk new file: rules/cross-compiling.mk These are expected to sit quietly in the tree until the rest of the machinery matures on an (upcoming) branch. Reviews will begin to make sense as soon as that has happened. Anyway, comments are welcome. See <http://www.haskell.org/pipermail/cvs-ghc/2012-July/074456.html> for background. Disclaimer: these source files are not (yet) up to the quality standards set by the rest of the tree. Cleanups, move-arounds and rewrites (i.e. .awk -> .hs), as well as additional comments and documentation will happen as soon as the basic functionality of a cross-compiler is working reliably.
* Link the extra-libraries when making a .so for a package (#7062)Simon Marlow2012-07-111-0/+1
| | | | | I don't think I completely understand what's going on here, but this does seem to fix it, and morally it seems like the right thing.
* Build fixIan Lynagh2012-06-291-1/+1
|
* Build fixesIan Lynagh2012-06-291-2/+2
|
* Don't build the ghc DLL on Windows; works around trac #5987Ian Lynagh2012-06-291-1/+1
| | | | | We also don't build DLLs for the dph-lifted-* packages as they depend on ghc.
* On Windows, detect if DLLs have too many symbols; trac #5987Ian Lynagh2012-06-291-0/+3
| | | | | The test isn't very pretty; it involves trawling through the objdump -p output. I couldn't find an easier way, unfortuantely.
* Merge remote-tracking branch 'origin/pretty-build'Paolo Capriotti2012-06-089-43/+63
|\
| * Merge remote-tracking branch 'origin/master' into pretty-buildIavor S. Diatchki2012-04-272-2/+8
| |\
| * | A build-system tweak for more readable build output.Iavor S. Diatchki2012-04-279-43/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change reduces the (default) verbosity of the build system. This makes it easier to spot warnings in the output and, also, it makes it easier to estimate how far along are we in the build process by just glancing at the output. To get the traditional fully verbose output, set V=1, like this: make V=1
* | | Rename package-conf flags to package-db.Paolo Capriotti2012-05-152-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Enable and fix building dynlibs on Win64Ian Lynagh2012-05-051-1/+1
| | |
* | | Define _HOST_OS and _HOST_ARCH when calling hsc2hsIan Lynagh2012-05-011-0/+2
| |/ |/| | | | | | | | | In particular, old-time assumes that mingw32_HOST_OS is set when we are on Windows, and was going wrong on Win64 because it wasn't defined.
* | Add SRC_[CH]C_WARNING_OPTSIan Lynagh2012-04-262-2/+8
|/ | | | | | | | | | | 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)
* Merge remote-tracking branch 'origin/master' into type-natsIavor S. Diatchki2012-03-132-5/+5
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: compiler/coreSyn/CoreLint.lhs compiler/deSugar/DsBinds.lhs compiler/hsSyn/HsTypes.lhs compiler/iface/IfaceType.lhs compiler/rename/RnHsSyn.lhs compiler/rename/RnTypes.lhs compiler/stgSyn/StgLint.lhs compiler/typecheck/TcHsType.lhs compiler/utils/ListSetOps.lhs
| * typoGabor Greif2012-02-271-1/+1
| |
| * .cmm files need to depend on DerivedConstants.hSimon Marlow2012-02-131-4/+4
| |
* | Merge remote-tracking branch 'origin/master' into type-natsIavor S. Diatchki2012-02-124-4/+6
|\ \ | |/ | | | | | | Conflicts: compiler/coreSyn/CoreLint.lhs
| * Improve support for cross-compilationSimon Marlow2012-01-304-4/+4
| | | | | | | | Patchset from Stephen Blackheath <stephen.blackheath@ipwnstudios.com>
| * Pass alex and happy locations to ghc-cabal; fixes #5579Ian Lynagh2012-01-281-0/+2
| | | | | | | | | | | | We only use --with-alex / --with-happy if we know where alex / happy are. In particular, we don't need them when building from a source tarball.
* | Merge in more HEAD, fix stuff upSimon Peyton Jones2012-01-232-4/+4
|\ \ | |/
| * RefactoringIan Lynagh2012-01-082-4/+4
| | | | | | | | | | This is working towards being able to put ghcautoconf.h and ghcplatform.h in includes/dist
* | Remove tabs, so that I can push.Iavor S. Diatchki2011-12-181-17/+17
|/
* HEAD now requires GHC >= 7.0 to bootstrapIan Lynagh2011-12-131-4/+0
|
* Remove some unnecessary touch'sIan Lynagh2011-12-032-6/+3
| | | | | They made a dependency cycle in the rules used to build the touch program on Windows.
* Use touchy rather than touch when building on WindowsIan Lynagh2011-12-022-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With Windows 7 in a vitrual box VM on OS X, some very odd things happen with dates and time stamps when SSHing into cygwin. e.g. here the "Change" time is in the past: $ date; touch foo; stat foo Fri Dec 2 16:58:07 GMTST 2011 File: `foo' Size: 0 Blocks: 0 IO Block: 65536 regular empty file Device: 540aba0bh/1409989131d Inode: 562949953592977 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None) Access: 2011-12-02 16:58:07.414457900 +0000 Modify: 2011-12-02 16:58:07.414457900 +0000 Change: 2011-12-02 16:58:03.495141800 +0000 Birth: 2011-12-02 16:57:57.731469900 +0000 And if we copy such a file, then the copy is older (as determined by the "Modify" time) than the original: $ date; touch foo; stat foo; cp foo bar; stat bar Fri Dec 2 16:59:10 GMTST 2011 File: `foo' Size: 0 Blocks: 0 IO Block: 65536 regular empty file Device: 540aba0bh/1409989131d Inode: 1407374883725128 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None) Access: 2011-12-02 16:59:10.118457900 +0000 Modify: 2011-12-02 16:59:10.118457900 +0000 Change: 2011-12-02 16:59:06.189477700 +0000 Birth: 2011-12-02 16:57:57.731469900 +0000 File: `bar' Size: 0 Blocks: 0 IO Block: 65536 regular empty file Device: 540aba0bh/1409989131d Inode: 281474976882512 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None) Access: 2011-12-02 16:59:06.394555800 +0000 Modify: 2011-12-02 16:59:06.394555800 +0000 Change: 2011-12-02 16:59:06.395532400 +0000 Birth: 2011-12-02 16:58:40.921899600 +0000 This means that make thinks that things are out of date when it shouldn't, so reinvokes itself repeatedly until the MAKE_RESTARTS infinite-recursion test triggers. The touchy program, like most other programs, creates files with both Modify and Change in the past, which is still a little odd, but is consistent, so doesn't break make.
* Pass "--hash-size=31 --reduce-memory-overhead" to ld; fixes trac #5240Ian Lynagh2011-11-271-1/+1
| | | | These reduce the amount of memory that ld takes when linking.
* Time handling overhaulSimon Marlow2011-11-251-0/+4
| | | | | | | | | | | | | | | | | | | | | Terminology cleanup: the type "Ticks" has been renamed "Time", which is an StgWord64 in units of TIME_RESOLUTION (currently nanoseconds). The terminology "tick" is now used consistently to mean the interval between timer signals. The ticker now always ticks in realtime (actually CLOCK_MONOTONIC if we have it). Before it used CPU time in the non-threaded RTS and realtime in the threaded RTS, but I've discovered that the CPU timer has terrible resolution (at least on Linux) and isn't much use for profiling. So now we always use realtime. This should also fix The default tick interval is now 10ms, except when profiling where we drop it to 1ms. This gives more accurate profiles without affecting runtime too much (<1%). Lots of cleanups - the resolution of Time is now in one place only (Rts.h) rather than having calculations that depend on the resolution scattered all over the RTS. I hope I found them all.
* Improve the way we call "rm" in the build system; fixes trac #4916Ian Lynagh2011-11-198-13/+13
| | | | | | | | | | 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.
* Fix typoIan Lynagh2011-10-261-1/+1
|
* Fix Haddock dependency on library archiveManuel M T Chakravarty2011-10-251-1/+1
|
* Build system commentarySimon Marlow2011-10-051-16/+66
| | | | | | | | | Add documentation describing all the variables that contain options for Haskell compilations, what they mean and where they are (or can be) defined. In due course we should expand this to cover all the build system variables, and move it to the wiki, but this is a start.
* workaround for #5485: use -fno-full-laziness with 7.2.1Simon Marlow2011-10-051-0/+1
|
* Add some missing dependencies; should fix make after re-configureSimon Marlow2011-09-162-6/+10
| | | | | | | | | | | | | | | | | | | | Every Haskell compilation in a package should depend on the package-data.mk file for that package. Then, if a package's version number is bumped, we will recompile all the modules in the package so that their interface files get the new version number. This should mean that a simple 'make' will succeed in a couple of scenarios where it didn't before: 1. re-configuring bumps the version number of GHC, so everything in the ghc package (stages 1 & 2) must be recompiled. 2. bumping the version of one of the boot packages does not require a make clean any more. I have tested (1) but not (2). LAX_DEPENDENCIES=YES disabled these new dependencies too.
* By default, be lax about dependencies on GHCIan Lynagh2011-08-285-23/+23
| | | | | | | | | | | | There are a number of things which technically depend on GHC (e.g. if ghc changes then Haskell files may be compiled differently, or Cabal packages may be configured differently). However, in practice, having a real dependency on GHC is just a pain: We normally don't want to spend time recompiling other things while we're working on the compiler, and even if we did, GHC will normally decide compilation isn't needed anyway. So by default we use order-only dependencies on GHC, i.e. GHC must exist, but if it's newer than other targets then rebuilding is not necessary.
* Use the correct __GLASGOW_HASKELL__ value when invoking hsc2hs onSimon Marlow2011-08-081-1/+1
| | | | | source code to be compiled with the stage 0 compiler. (bug noticed by David Terei - thanks!)
* make sure libraries/dph/ghc.mk is included after the other DPH ghc.mkSimon Marlow2011-07-121-1/+5
| | | | | files, so that it can refer to variables defined there. (necessary, but perhaps not sufficient, to fix the DPH build bugs)
* Follow Cabal reorganisation, and improve build system a littleIan Lynagh2011-06-231-0/+2
|
* Fix building of optional packagesIan Lynagh2011-06-121-1/+1
| | | | The change to the packages file format broke it
* Add $$($1_$2_$3_ALL_HC_OPTS) when linking dynamic libraries. NotSimon Marlow2011-05-091-4/+4
| | | | | | having this meant we weren't getting -no-user-package-conf, which caused a build failure for me due to locally-installed packages being used instead of ones in the tree.
* Pass the right tool locations to Cabal when generating package.mk filesIan Lynagh2011-04-291-1/+6
|
* We no longer need to pass pgmc etc in the ghc.wrapper scriptIan Lynagh2011-04-291-1/+0
| | | | They can now be set in the settings file instead
* Add stage-specific AS variables to the build systemIan Lynagh2011-04-292-1/+2
|
* Build system: Tell hsc2hs where to find cabal_macros.hIan Lynagh2011-04-271-0/+2
|
* Whitespace only in rules/distdir-way-opts.mkIan Lynagh2011-04-271-3/+3
|
* Add stage-specific versions of more ar-related makefile varsIan Lynagh2011-04-232-3/+6
|