X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=ea2f5d6dee6de31f88cb4ee8cae68292c69c2bcc;hp=f019ab6deb7f67cdd8a99d6eb7c0123c4752fce2;hb=ec155f69d231ac54f108d417be060b21414ff21d;hpb=d5febf91342eba207d872ac3979f7537d95ea797 diff --git a/mk/config.mk.in b/mk/config.mk.in index f019ab6..ea2f5d6 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -291,6 +291,18 @@ else GhcEnableTablesNextToCode=YES endif +# On Windows we normally want to make a relocatable bindist, to we +# ignore flags like libdir +ifeq "$(Windows)" "YES" +RelocatableBuild = YES +else +RelocatableBuild = NO +endif + +# When building bindists we set this to yes so that the binaries are as +# portable as possible. +BeConservative = NO + # # Building various ways? # (right now, empty if not). @@ -357,11 +369,7 @@ endif GhcRTSWays += $(if $(findstring NO, $(GhcUnregisterised)),thr thr_p thr_debug,) # We can only build GHCi threaded if we have a threaded RTS: -ifneq "$(findstring thr, $(GhcRTSWays))" "" -GhcThreaded=YES -else -GhcThreaded=NO -endif +GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO) # Option flags to pass to GHC when it's compiling modules in # fptools/libraries. Typically these are things like -O or @@ -501,120 +509,113 @@ ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" DEFAULT_TMPDIR = /C/TEMP endif -# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path. (POSIX / unix-style path). +# FPTOOLS_TOP: the top of the fptools hierarchy, absolute path. +# On Windows this is a c:/foo/bar style path. FPTOOLS_TOP_ABS = @hardtop@ -# The platform specific version of 'hardtop'. -FPTOOLS_TOP_ABS_PLATFORM = @hardtop_plat@ - -# This gets used in the default docdir -PACKAGE_TARNAME = @PACKAGE_TARNAME@ BIN_DIST_NAME=ghc-$(ProjectVersion) -BIN_DIST_TOPDIR=$(FPTOOLS_TOP_ABS) -BIN_DIST_DIR=$(BIN_DIST_TOPDIR)/$(BIN_DIST_NAME) -BIN_DIST_TARBALL=$(BIN_DIST_TOPDIR)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2 - -# -# Installation directories, we don't use half of these, -# but since the configure script has them on offer while -# passing through, we might as well set them. - -prefix = @prefix@ +BIN_DIST_TOPDIR_REL=$(FPTOOLS_TOP) +BIN_DIST_TOPDIR_ABS=$(FPTOOLS_TOP_ABS) +BIN_DIST_DIR=$(BIN_DIST_TOPDIR_ABS)/$(BIN_DIST_NAME) +BIN_DIST_TARBALL=$(BIN_DIST_TOPDIR_REL)/$(BIN_DIST_NAME)-$(TARGETPLATFORM).tar.bz2 + +BIN_DIST_INST_DIR = $(FPTOOLS_TOP_ABS)/bindisttest/installed + +# Definition of installation directories, we don't use half of these, but since +# the configure script has them on offer while passing through, we might as well +# set them. Note that we have to be careful, because the GNU coding standards +# have changed a bit over the course of time, and autoconf development reflects +# this. +# +# A little bit of history regarding autoconf and GNU coding standards, use this +# as a cheat-sheet for the stuff below: +# +# variable | default < 2.60 | default >= 2.60 +# ------------+--------------------+-------------------------------------- +# exec_prefix | ${prefix} | ${prefix} +# libdir | ${exec_prefix}/lib | ${exec_prefix}/lib +# datarootdir | NONE! | ${prefix}/share +# datadir | ${prefix}/share | ${datarootdir} +# infodir | ${prefix}/info | ${datarootdir}/info +# mandir | ${prefix}/man | ${datarootdir}/man +# docdir | NONE! | ${datarootdir}/doc/${PACKAGE_TARNAME} +# htmldir | NONE! | ${docdir} +# dvidir | NONE! | ${docdir} +# pdfdir | NONE! | ${docdir} +# psdir | NONE! | ${docdir} +# +# NOTE: The default e.g. ${docdir} above means that autoconf substitutes the +# string "${docdir}", not the value of docdir! This is crucial for the GNU +# coding standards. + +# This gets used in the default docdir when autoconf >= 2.60 is used +PACKAGE_TARNAME := @PACKAGE_TARNAME@ + +prefix := @prefix@ # New autoconf (>= 2.60?) make a configure with a --datarootdir=DIR flag. # However, in order to support older autoconf's we don't use it. # datarootdir is set lower down instead. -# datarootdir = @datarootdir@ +# But, as datadir is defined in terms of datarootdir, we also need to +# set it to the value (if any) that configure gives it here. +datarootdir := @datarootdir@ -exec_prefix = @exec_prefix@ -bindir = @bindir@ -datadir0 = @datadir@ -libdir0 = @libdir@ -includedir = @includedir@ -oldincludedir = @oldincludedir@ -mandir = @mandir@ +exec_prefix := @exec_prefix@ +bindir := @bindir@ +datadir0 := @datadir@ +libdir0 := @libdir@ +includedir := @includedir@ +mandir := @mandir@ ifeq "$(Windows)" "YES" -ifeq "$(strip $(prefix))" "" -prefix = /c/ghc -endif - # Hack: our directory layouts tend to be different on Windows, so # hack around configure's bogus assumptions here. -datarootdir = $(prefix) -datadir = $(prefix) -libdir = $(prefix) +datarootdir := $(prefix) +datadir := $(prefix) +libdir := $(prefix) else -# # Unix: override libdir and datadir to put ghc-specific stuff in # a subdirectory with the version number included. -# -datarootdir = $(datadir0) -datadir = $(datadir0)/ghc-$(ProjectVersion) -libdir = $(libdir0)/ghc-$(ProjectVersion) +datarootdir := $(datadir0) +datadir := $(datadir0)/ghc-$(ProjectVersion) +libdir := $(libdir0)/ghc-$(ProjectVersion) endif # Windows -headerdir = $(libdir)/include +headerdir := $(libdir)/include # New autoconf (>= 2.60?) make a configure with --docdir=DIR etc flags. # However, in order to support older autoconf's we don't use them. -#docdir = @docdir@ -#htmldir = @htmldir@ -#dvidir = @dvidir@ -#pdfdir = @pdfdir@ -#psdir = @psdir@ +#docdir := @docdir@ +#htmldir := @htmldir@ +#dvidir := @dvidir@ +#pdfdir := @pdfdir@ +#psdir := @psdir@ -docdir = $(datarootdir)/doc/ghc -htmldir = $(docdir) -dvidir = $(docdir) -pdfdir = $(docdir) -psdir = $(docdir) +docdir := $(datarootdir)/doc/ghc +htmldir := $(docdir) +dvidir := $(docdir) +pdfdir := $(docdir) +psdir := $(docdir) # Default place for putting interface files is $(libdir) # (overriden for packages in package.mk) ifacedir = $(libdir) -# -# Default values for most of the above are only set if -# they weren't configured to anything in particular -# via the configure script. (i.e., we make no assumption -# that the autoconf-generated script will assign defaults -# to all of the above). -# -ifeq "$(strip $(exec_prefix))" "" -exec_prefix = $(prefix) -endif -ifeq "$(strip $(bindir))" "" -bindir = $(exec_prefix)/bin -endif - -# # NOTE: by intention, libexecdir and libdir point to # the same place. # => Only way to override this is to set libexecdir= on the command line. # (NOTE: configure script setting is ignored). libexecdir = $(libdir) -ifeq "$(strip $(datadir))" "" -datadir = $(prefix)/share -endif -ifeq "$(strip $(libdir))" "" -libdir = $(exec_prefix)/lib -endif -ifeq "$(strip $(includedir))" "" -includedir = $(prefix)/include -endif -ifeq "$(strip $(oldincludedir))" "" -oldincludedir = /usr/include -endif -ifeq "$(strip $(mandir))" "" -mandir = $(prefix)/man -endif +# This is a bit of a lie, as this is a wrapper rather than the program +# itself. However, it means that we don't have to worry about Windows +# and non-Windows having different extensions. +GHC_PKG_PROG = $(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)/ghc-pkg-inplace #----------------------------------------------------------------------------- # install configuration