X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=mk%2Fconfig.mk.in;h=813a91220ad9e96dae93dc646ff3e9f66cf9359b;hb=d6d0a196363d44008a4850cddf727f06b42644f9;hp=e6140d234bb87a6bde69ca68c6ae66b140a73d79;hpb=d4f9480c7e7bf8167a97ff964f9d85400398c5c4;p=ghc-hetmet.git diff --git a/mk/config.mk.in b/mk/config.mk.in index e6140d2..813a912 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -12,9 +12,7 @@ # DO NOT EDIT THIS FILE! # # - config.mk is auto-generated from config.mk.in by configure. -# This may be triggered automatically by the build system (say -# if config.mk.in has changed more recently than config.mk), -# so if you edit config.mk your changes will be spammed. +# If you edit config.mk your changes will be spammed. # # - Settings in this file may be overriden by giving replacement # definitions in build.mk. See build.mk.sample for a good @@ -28,6 +26,7 @@ TOP = @hardtop@ include $(TOP)/mk/project.mk +include $(TOP)/mk/install.mk ################################################################################ # @@ -36,12 +35,9 @@ include $(TOP)/mk/project.mk ################################################################################ # BootingFromHc - build GHC and the libraries from .hc files? +# (unregisterised only) BootingFromHc = @BootingFromHc@ -# BootingFromUnregisterisedHc - treat .hc files as containing unregisterised -# rather than registerised code, i.e., disable the mangler? -BootingFromUnregisterisedHc = @BootingFromUnregisterisedHc@ - NO_INCLUDE_DEPS = NO NO_INCLUDE_PKGDATA = NO @@ -106,13 +102,9 @@ GhcProfiled=NO GhcDebugged=NO GhcLibProfiled=$(if $(filter p,$(GhcLibWays)),YES,NO) -# Build shared and/or static libs? +# Do we support shared libs? PlatformSupportsSharedLibs = $(if $(filter $(TARGETPLATFORM),i386-unknown-linux x86_64-unknown-linux),YES,NO) -ifeq "$(PlatformSupportsSharedLibs)" "YES" -BuildSharedLibs = YES -else -BuildSharedLibs = NO -endif + # ToDo later: # BuildStaticLibs=@BuildStaticLibs@ @@ -153,7 +145,7 @@ GhcWithNativeCodeGen=$(strip\ HaveLibDL = @HaveLibDL@ # ArchSupportsSMP should be set iff there is support for that arch in -# includes/SMP.h +# includes/stg/SMP.h ArchSupportsSMP=$(strip $(patsubst $(HostArch_CPP), YES, $(findstring $(HostArch_CPP), i386 x86_64 sparc powerpc))) # lazy test, because $(GhcUnregisterised) might be set in build.mk later. @@ -225,10 +217,13 @@ ifneq "$(BootingFromHc)" "YES" GhcLibWays += p endif -ifeq "$(BuildSharedLibs)" "YES" +ifeq "$(PlatformSupportsSharedLibs)" "YES" GhcLibWays += dyn endif +# Handy way to test whether we're building shared libs or not. +BuildSharedLibs=$(strip $(if $(findstring dyn,$(GhcLibWays)),YES,NO)) + # In addition, the RTS is built in some further variations. Ways that # make sense here: # @@ -242,7 +237,6 @@ endif # debug_t : debugging ticky-ticky profiling # l : event logging # thr_l : threaded and event logging -# thr_debug_l : threaded and debugging and event logging # GhcRTSWays=l @@ -251,15 +245,12 @@ ifeq "$(BootingFromHc)" "NO" GhcRTSWays += debug endif -ifeq "$(BuildSharedLibs)" "YES" -GhcRTSWays += dyn debug_dyn thr_dyn thr_debug_dyn -endif - # Want the threaded versions unless we're unregisterised # Defer the check until later by using $(if..), because GhcUnregisterised might # be set in build.mk, which hasn't been read yet. GhcRTSWays += $(if $(findstring NO, $(GhcUnregisterised)),thr thr_debug thr_l,) GhcRTSWays += $(if $(findstring p, $(GhcLibWays)),$(if $(findstring NO, $(GhcUnregisterised)),thr_p,),) +GhcRTSWays += $(if $(findstring dyn, $(GhcLibWays)), dyn debug_dyn $(if $(findstring NO, $(GhcUnregisterised)),thr_dyn thr_debug_dyn),) # We can only build GHCi threaded if we have a threaded RTS: GhcThreaded = $(if $(findstring thr,$(GhcRTSWays)),YES,NO) @@ -381,150 +372,6 @@ BIN_DIST_LIST=$(TOP)/bindist-list WINDOWS_INSTALLER_BASE = ghc-$(ProjectVersion)-i386-windows WINDOWS_INSTALLER = $(WINDOWS_INSTALLER_BASE)$(exeext) -# 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. -# 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@ -mandir := @mandir@ -dynlibdir := @libdir@ - -ifeq "$(RelocatableBuild)" "YES" - -# Hack: our directory layouts tend to be different on Windows, so -# hack around configure's bogus assumptions here. -datarootdir := $(prefix) -datadir := $(prefix)/lib -libdir := $(prefix)/lib - -docdir := $(prefix)/doc -htmldir := $(docdir) -dvidir := $(docdir) -pdfdir := $(docdir) -psdir := $(docdir) - -else - -# Unix: override libdir and datadir to put ghc-specific stuff in -# a subdirectory with the version number included. -# -# datadir is set to libdir here as GHC needs package.conf and unlit -# to be in the same place (and things like ghc-pkg need to agree on -# where package.conf is, so we just set it globally). -# -datarootdir := $(datadir0) -libdir := $(libdir0)/ghc-$(ProjectVersion) -datadir := $(libdir) - -# 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 := $(datarootdir)/doc/ghc -htmldir := $(docdir) -dvidir := $(docdir) -pdfdir := $(docdir) -psdir := $(docdir) - -endif # Windows - -headerdir := $(libdir)/include - -# Default place for putting interface files is $(libdir) -# (overriden for packages in package.mk) -ifacedir = $(libdir) - -# 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) - -#----------------------------------------------------------------------------- -# install configuration - -# -# Set this to have files installed with a specific owner -# -INSTALL_OWNER = - -# -# Set this to have files installed with a specific group -# -INSTALL_GROUP = - -# -# Invocations of `install' for the four different classes -# of targets: -# -CREATE_SCRIPT = create () { touch $$1 && chmod 755 $$1 ; } && create -CREATE_DATA = create () { touch $$1 && chmod 644 $$1 ; } && create -INSTALL_PROGRAM = $(INSTALL) -m 755 -INSTALL_SCRIPT = $(INSTALL) -m 755 -INSTALL_SHLIB = $(INSTALL) -m 755 -INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_HEADER = $(INSTALL) -m 644 -INSTALL_MAN = $(INSTALL) -m 644 -INSTALL_DOC = $(INSTALL) -m 644 -INSTALL_DIR = $(INSTALL) -m 755 -d - -# -# runhaskell and hsc2hs are special, in that other compilers besides -# GHC might provide them. Systems with a package manager often come -# with tools to manage this kind of clash, e.g. RPM's -# update-alternatives. When building a distribution for such a system, -# we recommend setting both of the following to 'YES'. -# -# NO_INSTALL_RUNHASKELL = YES -# NO_INSTALL_HSC2HS = YES -# -# NB. we use negative tests here because for binary-distributions we cannot -# test build-time variables at install-time, so they must default to on. - # ----------------------------------------------------------------------------- # Utilities programs: flags @@ -682,6 +529,7 @@ HaveGcc = @HaveGcc@ UseGcc = YES WhatGccIsCalled = @WhatGccIsCalled@ GccVersion = @GccVersion@ +GccLT34 = @GccLT34@ ifeq "$(strip $(HaveGcc))" "YES" ifneq "$(strip $(UseGcc))" "YES" CC = cc @@ -690,12 +538,13 @@ else endif endif -# default C compiler and linker flags -SRC_CC_OPTS = @SRC_CC_OPTS@ -SRC_LD_OPTS = @SRC_LD_OPTS@ +# C compiler and linker flags from configure (e.g. -m to select +# correct C compiler backend). +CONF_CC_OPTS = @CONF_CC_OPTS@ +CONF_LD_OPTS = @CONF_LD_OPTS@ ifeq "$(TARGETPLATFORM)" "ia64-unknown-linux" -SRC_CC_OPTS += -G0 +CONF_CC_OPTS += -G0 endif SRC_HSC2HS_OPTS += $(addprefix --cflag=,$(filter-out -O,$(SRC_CC_OPTS))) @@ -919,8 +768,7 @@ endif # # The ways currently defined. # -ALL_WAYS=v p t l s mp mg debug dyn thr thr_l debug_dyn thr_dyn thr_debug_dyn thr_p thr_debug thr_debug_l debug_p thr_debug_p -USER_WAYS=a b c d e f g h j k l m n o A B +ALL_WAYS=v p t l s mp mg debug dyn thr thr_l debug_dyn thr_dyn thr_debug_dyn thr_p thr_debug debug_p thr_debug_p # # The following ways currently have treated specially, p t mg, @@ -990,14 +838,9 @@ WAY_thr_debug_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG WAY_thr_debug_p_NAME=threaded debug profiling WAY_thr_debug_p_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -prof -# Way 'thr_debug_l': -WAY_thr_debug_l_NAME=threaded debug event logging -WAY_thr_debug_l_HC_OPTS=-optc-DTHREADED_RTS -optc-DDEBUG -eventlog - # Way 'dyn': build dynamic shared libraries WAY_dyn_NAME=dyn WAY_dyn_HC_OPTS=-fPIC -dynamic -WAY_dyn_LIB_TARGET=libHSrts-gcc661.so # Way 'thr_dyn': WAY_thr_dyn_NAME=thr_dyn @@ -1011,57 +854,6 @@ WAY_thr_debug_dyn_HC_OPTS=-fPIC -dynamic -optc-DTHREADED_RTS -optc-DDEBUG WAY_debug_dyn_NAME=thr_dyn WAY_debug_dyn_HC_OPTS=-fPIC -dynamic -optc-DDEBUG -# -# Add user-way configurations here: -# -WAY_A_NAME= -WAY_A_HC_OPTS= - -WAY_B_NAME= -WAY_B_HC_OPTS= - -WAY_a_NAME= -WAY_a_HC_OPTS= - -WAY_b_NAME= -WAY_b_HC_OPTS= - -WAY_c_NAME= -WAY_c_HC_OPTS= - -WAY_d_NAME= -WAY_d_HC_OPTS= - -WAY_e_NAME= -WAY_e_HC_OPTS= - -WAY_f_NAME= -WAY_f_HC_OPTS= - -WAY_g_NAME= -WAY_g_HC_OPTS= - -WAY_h_NAME= -WAY_h_HC_OPTS= - -WAY_j_NAME= -WAY_j_HC_OPTS= - -WAY_k_NAME= -WAY_k_HC_OPTS= - -WAY_l_NAME= -WAY_l_HC_OPTS= - -WAY_m_NAME= -WAY_m_HC_OPTS= - -WAY_n_NAME= -WAY_n_HC_OPTS= - -WAY_o_NAME= -WAY_o_HC_OPTS= - ################################################################################ # # 31-bit-Int Core files @@ -1091,6 +883,15 @@ CONFIGURE_ARGS = @CONFIGURE_ARGS@ ################################################################################ # +# To be passed to sub-builds +# +################################################################################ + +ICONV_INCLUDE_DIRS = @ICONV_INCLUDE_DIRS@ +ICONV_LIB_DIRS = @ICONV_LIB_DIRS@ + +################################################################################ +# # Bindist testing directory # ################################################################################