1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
# -----------------------------------------------------------------------------
#
# (c) 2009-2012 The University of Glasgow
#
# This file is part of the GHC build system.
#
# To understand how the build system works and how to modify it, see
# http://ghc.haskell.org/trac/ghc/wiki/Building/Architecture
# http://ghc.haskell.org/trac/ghc/wiki/Building/Modifying
#
# -----------------------------------------------------------------------------
utils/iserv-proxy_USES_CABAL = YES
utils/iserv-proxy_PACKAGE = iserv-proxy
utils/iserv-proxy_EXECUTABLE = iserv-proxy
ifeq "$(GhcDebugged)" "YES"
utils/iserv-proxy_stage2_MORE_HC_OPTS += -debug
utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -debug
utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -debug
endif
ifeq "$(GhcThreaded)" "YES"
utils/iserv-proxy_stage2_MORE_HC_OPTS += -threaded
utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -threaded
utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -threaded
endif
# Add -Wl,--export-dynamic enables GHCi to load dynamic objects that
# refer to the RTS. This is harmless if you don't use it (adds a bit
# of overhead to startup and increases the binary sizes) but if you
# need it there's no alternative.
ifeq "$(TargetElf)" "YES"
ifneq "$(TargetOS_CPP)" "solaris2"
# The Solaris linker does not support --export-dynamic option. It also
# does not need it since it exports all dynamic symbols by default
utils/iserv-proxy_stage2_MORE_HC_OPTS += -optl-Wl,--export-dynamic
utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -optl-Wl,--export-dynamic
utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -optl-Wl,--export-dynamic
endif
endif
# Override the default way, because we want a specific version of this
# program for each way. Note that it's important to do this even for
# the vanilla version, otherwise we get a dynamic executable when
# DYNAMIC_GHC_PROGRAMS=YES.
utils/iserv-proxy_stage2_PROGRAM_WAY = v
utils/iserv-proxy_stage2_p_PROGRAM_WAY = p
utils/iserv-proxy_stage2_dyn_PROGRAM_WAY = dyn
utils/iserv-proxy_stage2_PROGNAME = ghc-iserv
utils/iserv-proxy_stage2_p_PROGNAME = ghc-iserv-prof
utils/iserv-proxy_stage2_dyn_PROGNAME = ghc-iserv-dyn
utils/iserv-proxy_stage2_MORE_HC_OPTS += -no-hs-main
utils/iserv-proxy_stage2_p_MORE_HC_OPTS += -no-hs-main
utils/iserv-proxy_stage2_dyn_MORE_HC_OPTS += -no-hs-main
utils/iserv-proxy_stage2_INSTALL = YES
utils/iserv-proxy_stage2_p_INSTALL = YES
utils/iserv-proxy_stage2_dyn_INSTALL = YES
# Install in $(libexec), not in $(bindir)
utils/iserv-proxy_stage2_TOPDIR = YES
utils/iserv-proxy_stage2_p_TOPDIR = YES
utils/iserv-proxy_stage2_dyn_TOPDIR = YES
utils/iserv-proxy_stage2_INSTALL_INPLACE = YES
utils/iserv-proxy_stage2_p_INSTALL_INPLACE = YES
utils/iserv-proxy_stage2_dyn_INSTALL_INPLACE = YES
ifeq "$(CLEANING)" "YES"
NEED_iserv = YES
NEED_iserv_p = YES
NEED_iserv_dyn = YES
else
ifneq "$(findstring v, $(GhcLibWays))" ""
NEED_iserv = YES
else
NEED_iserv = NO
endif
ifneq "$(findstring p, $(GhcLibWays))" ""
NEED_iserv_p = YES
else
NEED_iserv_p = NO
endif
ifneq "$(findstring dyn, $(GhcLibWays))" ""
NEED_iserv_dyn = YES
else
NEED_iserv_dyn = NO
endif
endif
ifeq "$(NEED_iserv)" "YES"
$(eval $(call build-prog,utils/iserv-proxy,stage2,1))
endif
ifeq "$(NEED_iserv_p)" "YES"
$(eval $(call build-prog,utils/iserv-proxy,stage2_p,1))
endif
ifeq "$(NEED_iserv_dyn)" "YES"
$(eval $(call build-prog,utils/iserv-proxy,stage2_dyn,1))
endif
all_ghc_stage2 : $(iserv-proxy-stage2_INPLACE)
all_ghc_stage2 : $(iserv-proxy-stage2_p_INPLACE)
all_ghc_stage2 : $(iserv-proxy-stage2_dyn_INPLACE)
|