Fix a CPP typo
[ghc.git] / rules / package-config.mk
1 # -----------------------------------------------------------------------------
2 #
3 # (c) 2009 The University of Glasgow
4 #
5 # This file is part of the GHC build system.
6 #
7 # To understand how the build system works and how to modify it, see
8 # http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture
9 # http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying
10 #
11 # -----------------------------------------------------------------------------
12
13
14 define package-config # args: $1 = dir, $2 = distdir, $3 = GHC stage
15 $(call trace, package-config($1,$2,$3))
16 $(call profStart, package-config($1,$2,$3))
17
18 $1_$2_HC = $$(GHC_STAGE$3)
19 $1_$2_CC = $$(CC_STAGE$3)
20 $1_$2_AS = $$(AS_STAGE$3)
21 $1_$2_AR = $$(AR_STAGE$3)
22 $1_$2_AR_OPTS = $$(AR_OPTS_STAGE$3)
23 $1_$2_EXTRA_AR_ARGS = $$(EXTRA_AR_ARGS_STAGE$3)
24 $1_$2_ArSupportsAtFile = $$(ArSupportsAtFile_STAGE$3)
25
26 # configuration stuff that depends on which GHC we're building with
27 ifeq "$3" "0"
28 $1_$2_HC_CONFIG = $$(GHC_STAGE0)
29 $1_$2_HC_CONFIG_DEP =
30 $1_$2_GHC_PKG = $$(GHC_PKG)
31 $1_$2_GHC_PKG_DEP =
32 $1_$2_HC_MK_DEPEND = $$($1_$2_HC)
33 # We can't make rules depend on the bootstrapping compiler, as then
34 # on cygwin we get a dep on c:/ghc/..., and make gets confused by the :
35 $1_$2_HC_MK_DEPEND_DEP =
36 $1_$2_HC_DEP =
37 $1_$2_HC_PKGCONF = -$(GHC_PACKAGE_DB_FLAG) $$(BOOTSTRAPPING_CONF)
38 $1_$2_GHC_PKG_OPTS = --$(GHC_PACKAGE_DB_FLAG)=$$(BOOTSTRAPPING_CONF)
39 $1_$2_CONFIGURE_OPTS += --package-db=$$(TOP)/$$(BOOTSTRAPPING_CONF)
40 $1_$2_MORE_HC_OPTS += -no-user-$(GHC_PACKAGE_DB_FLAG)
41 $1_$2_MORE_HC_OPTS += -rtsopts
42 else
43 $1_$2_HC_PKGCONF =
44 $1_$2_HC_CONFIG = $$(TOP)/$$(GHC_STAGE1)
45 $1_$2_HC_CONFIG_DEP = $$(GHC_STAGE1)
46 $1_$2_GHC_PKG = $$(TOP)/$$(GHC_PKG_INPLACE)
47 $1_$2_GHC_PKG_DEP = $$(GHC_PKG_INPLACE)
48 $1_$2_GHC_PKG_OPTS =
49 # If stage is not 0 then we always use stage1 for making .depend, as later
50 # stages aren't available early enough
51 $1_$2_HC_MK_DEPEND = $$(GHC_STAGE1)
52 $1_$2_HC_MK_DEPEND_DEP = $$($1_$2_HC_MK_DEPEND)
53 $1_$2_HC_DEP = $$($1_$2_HC)
54 $1_$2_MORE_HC_OPTS += -no-user-package-db
55 $1_$2_MORE_HC_OPTS += -rtsopts
56 endif
57
58 # Used by pretty_commands.mk
59 label_$1_$2_CC=CC
60 label_$1_$2_AS=AS
61 label_$1_$2_AR=AR
62 label_$1_$2_HC=HC [stage $3]
63 label_$1_$2_GHC_PKG=GHC PKG
64
65 # Useful later
66 $1_$2_SLASH_MODS = $$(subst .,/,$$($1_$2_MODULES))
67
68 $(call profEnd, package-config($1,$2,$3))
69 endef