summaryrefslogtreecommitdiff
path: root/mk/package.mk
Commit message (Collapse)AuthorAgeFilesLines
* Rework the build system a bitIan Lynagh2007-05-311-6/+0
| | | | | | Key changes: * Always build as if BIN_DIST is 1. BIN_DIST is thus removed. * Libraries are configured with prefix set to $$topdir rather than $(prefix)
* Use a sensible set of compiler options for building dynamic libraries on Mac ↵wolfgang.thaller@gmx.net2007-03-271-11/+22
| | | | | | | | | | OS X The official options to use for building a dylib on Mac OS X are now -undefined dynamic_lookup -single_module -Wl,-macosx_version_min -Wl,10.3 ... which should work on all arches (10.3 or later). MERGE TO STABLE
* x86_64: support PIC and therefore, Mac OS X in the NCGwolfgang.thaller@gmx.net2006-12-071-1/+4
| | | | | | | | | | Supporting x86_64-apple-darwin in the NCG basically boils down to supporting position-independent code in the NCG. PIC code works almost exactly the same as on x86_64-linux, while position-dependent code is not supported at all. This patch implements -fPIC for x86_64-linux, too, but that is untested.
* Remove STANDALONE_PACKAGE bits that had escaped the removalIan Lynagh2006-11-101-17/+0
|
* use the right $(HC) for stage 3Simon Marlow2006-11-091-0/+2
|
* remove unused STANDALONE_PACKAGE stuffSimon Marlow2006-11-091-26/+0
|
* Add source code links to Haddock docsSimon Marlow2006-09-081-0/+7
| | | | | | | | | | | | | | | | | | | | | Right now we can only manage to add a source code link for the module, but that's better than nothing. I had to put the list of core packages in a Makefile variable, $(CorePackages), so we'll have to be careful to keep this up to date. (I could have slurped it out of libraries/core-packages with $(shell), but that's ugly and really slow on Windows). There are a couple of new tweakables: CorePackageSourceURL and ExtraPackageSourceURL in config.mk.in, set these to the appropriate patterns for generating source links. (when we merge this patch onto the HEAD we'll have to tweak these settings). Unfortunately it still doesn't work for all the modules, because modules compiled without -cpp don't get any #line directives. More hackery required...
* use ghc-pkg --force-files, and update command-line syntaxSimon Marlow2006-09-181-2/+2
|
* Remove the -optP-P from .raw-hs generationSimon Marlow2006-09-071-2/+2
| | | | | | | | | We need the #line directives left in, so that Haddock can figure out what the name of the original source file was called, which is necessary for generating source links. You probably now need an updated Haddock to generate HTML from the libraries, but a release will be forthcoming shortly.
* Now that we have an "html" package, put the Haddock docs somewhere elsesven.panne@aedion.de2006-08-111-1/+1
|
* Use -package-name rather than -ignore-packageSimon Marlow2006-07-251-4/+4
|
* fix quoting around ${FPTOOLS_TOP_ABS} (fixes #749)Simon Marlow2006-04-281-1/+1
|
* Reorganisation of the source treeSimon Marlow2006-04-071-7/+2
| | | | | | | | | | | | | | | Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.
* primop-docsDinko Tenev2006-01-221-1/+1
|
* [project @ 2005-05-13 10:05:32 by krasimir]krasimir2005-05-131-10/+6
| | | | Fixed install-docs
* [project @ 2005-04-29 13:09:27 by krasimir]krasimir2005-04-291-6/+10
| | | | | Small fixes that adds chm and HxS targets to the build system. The former is used to build all documentation in HtmlHelp format while the letter uses HtmlHelp2 format.
* [project @ 2005-04-15 18:13:34 by sof]sof2005-04-151-1/+5
| | | | LIBRARY, GHCI_LIBRARY: permit settings of these to be overridden in Makefiles; Merge to STABLE
* [project @ 2005-03-29 14:06:02 by simonmar]simonmar2005-03-291-14/+12
| | | | Simplify the -ignore-package/-package-name logic a bit
* [project @ 2005-03-29 14:02:06 by simonmar]simonmar2005-03-291-4/+5
| | | | Old GHCs used -package-name instead of -ignore-package.
* [project @ 2005-03-24 18:44:16 by sof]sof2005-03-241-1/+12
| | | | | | | | SRC_HC_OPTS: only add -ignore-package if supported by underlying GHC. (reqd to be able to compile greencard/lib, hdirect/(com)lib with non-cutting edge GHCen.) Merge to STABLE.
* [project @ 2005-03-03 21:01:49 by wolfgang]wolfgang2005-03-031-2/+2
| | | | | | | Install dynamic libraries even when they're not part of a package, but honor NO_INSTALL_LIBRARY instead. MERGE TO STABLE
* [project @ 2005-02-10 13:38:35 by simonmar]simonmar2005-02-101-5/+9
| | | | | Fix library installation: we now install libraries *unless* NO_INSTALL_LIBRARY=YES.
* [project @ 2005-02-09 10:11:36 by simonmar]simonmar2005-02-091-6/+14
| | | | | oops, fix building of GHCi libraries. We only want to avoid the *install* if this isn't a package.
* [project @ 2005-02-08 10:21:36 by simonmar]simonmar2005-02-081-7/+15
| | | | | Only build GHCi libs, install libs, and make Haddock docs for packages (not ordinary libraries, like libghccompat.a).
* [project @ 2005-01-23 17:05:31 by panne]panne2005-01-231-2/+2
| | | | | In the installed package.conf, all includeDirs were empty, so no GHC/package headers were found. This commit fixes that (in a hopefully correct way).
* [project @ 2005-01-20 14:22:19 by simonmar]simonmar2005-01-201-13/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fill in the haddock-interfaces and haddock-html fields in the package.conf files. To do this I had to make some changes: - haddock-interfaces requires the value of $(datadir). We can't just plug this in, because $(datadir) might change at install-time (eg. a Windows installer can be placed anywhere, as can a Unix binary .tar.gz distribution). The current trick is for the compiler to splice in the value of $libdir in package.conf at runtime. So we could extend this mechanism and tell the compiler the value of $datadir via a command-line option, but that seems ugly. On Windows, $datadir==$libdir, so we don't need any changes: package.conf still uses $libdir, and a Windows installation is independent of its absolute location. Even 'make install' on Windows should have this property. On Unix: - for 'make install' and in-place execution, we just use absolute paths in package.conf - for a binary dist, we generate a package.conf that refers to $libdir and $datadir, and splice in the values at install-time (distrib/Makefile-bin.in). - Also, I renamed $libdir to $topdir to more closely reflect its actual meaning. This is somewhat malicious in that it will flush out all those clients using $libdir when they really shouldn't be :-)
* [project @ 2005-01-14 08:01:26 by wolfgang]wolfgang2005-01-141-1/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dynamic Linking, Part 2: Hack the Makefiles to build dynamic libraries. This allows you to actually use dynamic libraries to greatly reduce binary sizes on Darwin/PowerPC and on powerpc64-linux (for now). To use this, add the following to your build.mk SplitObjs=NO GhcBuildDylibs=YES GhcStage2HcOpts=-dynamic GhcLibHcOpts+=-fPIC -dynamic GhcRtsHcOpts+=-fPIC -dynamic GHC_CC_OPTS+=-fPIC (You can leave out the last three lines on powerpc64-linux). Then, to compile a program using dynamic libraries, pass the -dynamic option to GHC. To make GHCi use the dynamic libraries instead of .o files, just delete the HS*.o files. The dynamic library files are named libHSfoo_dyn.dylib or libHSfoo_dyn.so. Note that the dynamic and static libraries are build from the same .o files, but we really want to build the static libraries with SplitObjs and without -fPIC -dynamic to achieve better code size and performance. ghc/compiler/ghci/Linker.lhs: When looking for a library, look for HSfoo.o first (as before), then look for libHSfoo_dyn.[so/dylib] before looking for libHSfoo.[so/dylib]. ghc/compiler/main/DriverPipeline.hs: Main.dll_o and PrelMain.dll_o are dead, at least for now. ghc/compiler/main/Packages.lhs: When -dynamic is specified, add "_dyn" to all libraries specified in hs-libraries (not to the extra-libs). ghc/lib/compat/Makefile: Never build libghccompat as a dynamic lib. mk/package.mk: if GhcBuildDylibs is set to YES, build dynamic libraries. mk/target.mk: When installing .dylibs (Darwin only), update the install_name to point to the final location. (Somebody please read Apple's documentation on what install_names are, and then comment on whether this is a useful feature or whether it should be done the "normal" unix way).
* [project @ 2004-11-26 16:19:45 by simonmar]simonmar2004-11-261-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Further integration with the new package story. GHC now supports pretty much everything in the package proposal. - GHC now works in terms of PackageIds (<pkg>-<version>) rather than just package names. You can still specify package names without versions on the command line, as long as the name is unambiguous. - GHC understands hidden/exposed modules in a package, and will refuse to import a hidden module. Also, the hidden/eposed status of packages is taken into account. - I had to remove the old package syntax from ghc-pkg, backwards compatibility isn't really practical. - All the package.conf.in files have been rewritten in the new syntax, and contain a complete list of modules in the package. I've set all the versions to 1.0 for now - please check your package(s) and fix the version number & other info appropriately. - New options: -hide-package P sets the expose flag on package P to False -ignore-package P unregisters P for this compilation For comparison, -package P sets the expose flag on package P to True, and also causes P to be linked in eagerly. -package-name is no longer officially supported. Unofficially, it's a synonym for -ignore-package, which has more or less the same effect as -package-name used to. Note that a package may be hidden and yet still be linked into the program, by virtue of being a dependency of some other package. To completely remove a package from the compiler's internal database, use -ignore-package. The compiler will complain if any two packages in the transitive closure of exposed packages contain the same module. You *must* use -ignore-package P when compiling modules for package P, if package P (or an older version of P) is already registered. The compiler will helpfully complain if you don't. The fptools build system does this. - Note: the Cabal library won't work yet. It still thinks GHC uses the old package config syntax. Internal changes/cleanups: - The ModuleName type has gone away. Modules are now just (a newtype of) FastStrings, and don't contain any package information. All the package-related knowledge is in DynFlags, which is passed down to where it is needed. - DynFlags manipulation has been cleaned up somewhat: there are no global variables holding DynFlags any more, instead the DynFlags are passed around properly. - There are a few less global variables in GHC. Lots more are scheduled for removal. - -i is now a dynamic flag, as are all the package-related flags (but using them in {-# OPTIONS #-} is Officially Not Recommended). - make -j now appears to work under fptools/libraries/. Probably wouldn't take much to get it working for a whole build.
* [project @ 2004-11-23 12:35:06 by ross]ross2004-11-231-3/+3
| | | | | | | Make the X11 and HGL packages more independent, and pass configuration parameters to package.conf.in via header files. Also removed residual traces of OpenGL/GLUT/OpenAL from mk/config.mk.in
* [project @ 2004-11-03 12:31:42 by ross]ross2004-11-031-2/+2
| | | | standalone packages: eliminate the extraneous final comma on PACKAGE_DEPS
* [project @ 2004-10-02 15:12:48 by wolfgang]wolfgang2004-10-021-1/+3
| | | | | | | | | | | Deal with Apple's broken cpp 3.3 (you know, the one that inserts useless #pragma lines into it's output) by filtering it's output through grep -v. This shouldn't be a problem for other platforms, and it's much simpler than to make the parsers for ghc-pkg, genprimopcode and happy ignore those lines. MERGE TO STABLE
* [project @ 2004-03-27 09:57:57 by panne]panne2004-03-271-2/+2
| | | | Added the new-born haddock.js to the build process and the documentation.
* [project @ 2004-02-24 15:51:33 by simonmar]simonmar2004-02-241-2/+4
| | | | only set WAYS if it isn't already set
* [project @ 2004-02-07 14:08:57 by panne]panne2004-02-071-3/+3
| | | | | Fixed ingenious sed magic for package configuration files. Do we really need any sed mangling with gcc's -P option???
* [project @ 2004-01-23 13:37:40 by simonmar]simonmar2004-01-231-12/+14
| | | | Some tweaks for standalone packages
* [project @ 2004-01-09 12:43:37 by simonmar]simonmar2004-01-091-2/+2
| | | | | | Interesting - I'm not sure why the .lhs -> .raw-hs rule had an explicit -cpp option in it, but the .hs -> .raw-hs rule didn't. Remove it.
* [project @ 2004-01-09 12:42:15 by simonmar]simonmar2004-01-091-3/+3
| | | | Use gcc's -P option to avoid CPP #line droppings in the .hs -> .raw-hs rule.
* [project @ 2003-12-18 21:37:56 by panne]panne2003-12-181-3/+3
| | | | | | Patch from Andres Loeh: Generate the *.raw-hs files with the inplace GHC, otherwise one runs into a "fixed-point" problem where only documentation known to the bootstrapping GHC could be built.
* [project @ 2003-11-11 11:50:52 by simonmar]simonmar2003-11-111-6/+8
| | | | | | | | Convert to use Haddock 0.6's combined contents/index functionality for the hierarchical library docs. HEADS UP: you need Haddock 0.6 in order to run 'make html' in fptools/libraries now.
* [project @ 2003-06-04 12:37:09 by reid]reid2003-06-041-4/+12
| | | | All changes in this commit are standalone changes only but could usefully be used inplace as well: Don't store package.conf.installed; use a pipe to avoid problems from using stale package.confs. Also, use PACKAGE, PACKAGE_DEPS, LIBRARY and LIBDIR settings from Makefile when installing pkg. This requires some ugly sed hackery to overcome ghc-pkg not allowing trailing commas in a list: [a,b,c,]
* [project @ 2003-05-29 14:47:05 by reid]reid2003-05-291-2/+2
| | | | Use --force which ghc-pkg'ing standalone libs because ghc-pkg is run before the libs have actually been installed. It would be better to delay running ghc-pkg.
* [project @ 2003-05-29 13:36:39 by simonmar]simonmar2003-05-291-1/+3
| | | | Also clean the Haddock interface file.
* [project @ 2003-05-23 10:00:04 by simonmar]simonmar2003-05-231-2/+6
| | | | | | | For STANDALONE_PACKAGE: Let the package configuration file refer to $(libdir) as ${pkglibdir}. Note we can't use ${libdir} because ghc-pkg already redefines it to point to GHC's libdir (bug or feature?).
* [project @ 2003-05-22 15:36:08 by simonmar]simonmar2003-05-221-7/+39
| | | | | | | | | | | | | | | | | | | | | | First hack at supporting standalone packages. What this means is that a non-GHC fptools project which sets $(PACKAGE) in a Makefile should do something reasonable. It works by testing whether $(ProjectNameShort) == "ghc", and if it isn't, then: - it turns off all the machinery that deals with installing the package for use with the in-place compiler and a (future) installation of GHC. - instead, it enables a rule that installs the package using the installed $(GHC_PKG). The configure script still needs updating to detect this, so 'make install' won't work yet. - $(GHC) is used instead of $(GHC_INPLACE) for compiling Haskell code. Apart from the detection of ghc-pkg in configure, this should be all that's needed to get source distributions and 'make install' going.
* [project @ 2003-05-17 00:11:27 by ross]ross2003-05-171-7/+7
| | | | | | Rename per-package configuration files from $(PACKAGE).conf.* to package.conf.*, making them easier to find (since each package is in a separate directory anyway).
* [project @ 2003-05-16 10:14:20 by simonmar]simonmar2003-05-161-2/+6
| | | | | | | | | | Now that we have auto packages, it makes sense to keep all the interfaces for hierarchical libraries in the same directory tree. So now, instead of putting interfaces for package P in $libdir/imports/P, we put them all in $libdir/imports. Interfaces for old non-auto non-hierarchical packages now go in $libdir/hslibs-imports/P for package P.
* [project @ 2003-03-31 12:42:04 by simonmar]simonmar2003-03-311-1/+3
| | | | | | Booting from HC fixes (slightly tweaked for the HEAD) Submitted by: Urban Boquist <boquist@crt.se>
* [project @ 2003-01-14 13:43:11 by simonmar]simonmar2003-01-141-2/+2
| | | | Fix to previous commit
* [project @ 2003-01-14 13:17:43 by simonmar]simonmar2003-01-141-1/+6
| | | | Clean up properly after generating Haddock docs.
* [project @ 2002-12-12 13:28:35 by simonmar]simonmar2002-12-121-1/+2
| | | | Also install <package>.haddock when we install the docs.