X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=utils%2Fghc-pkg%2FMakefile;h=5afb448a22e4bcd271aaf038df24eca2e784fdc4;hb=36f7a29252e805a669ffb5437b6df6a90c1bc8dd;hp=9cb2a598e6072453cd9c37536d83e4da471d33a0;hpb=68f7cd160712d9666a492703f7d4a89ad7e9158c;p=ghc-hetmet.git diff --git a/utils/ghc-pkg/Makefile b/utils/ghc-pkg/Makefile index 9cb2a59..5afb448 100644 --- a/utils/ghc-pkg/Makefile +++ b/utils/ghc-pkg/Makefile @@ -4,18 +4,19 @@ include $(TOP)/mk/boilerplate.mk # ----------------------------------------------------------------------------- # ghc-pkg.bin -SRC_HC_OPTS += -cpp -Wall -fno-warn-name-shadowing -fno-warn-unused-matches +# Beyond stage 1, honour any Mac OS X depolyment target options. If we use +# these options in stage 1 we get a linker error if the bootstrap compiler is +# for a more recent OS version +ifeq "$(stage)" "2" +SRC_CC_OPTS += $(MACOSX_DEPLOYMENT_CC_OPTS) +SRC_HC_OPTS += $(addprefix -optc, $(MACOSX_DEPLOYMENT_CC_OPTS)) +SRC_LD_OPTS += $(addprefix -optl, $(MACOSX_DEPLOYMENT_LD_OPTS)) +endif -# This causes libghccompat.a to be used: -include $(GHC_COMPAT_DIR)/compat.mk +SRC_HC_OPTS += -cpp -Wall -fno-warn-name-shadowing -fno-warn-unused-matches SRC_HC_OPTS += $(PACKAGE_CABAL) -# This is required because libghccompat.a must be built with -# $(GhcHcOpts) because it is linked to the compiler, and hence -# we must also build with $(GhcHcOpts) here: -SRC_HC_OPTS += $(GhcHcOpts) $(GhcStage1HcOpts) - ifeq "$(Windows)" "NO" SRC_HC_OPTS += -package unix endif @@ -24,6 +25,8 @@ ifeq "$(ghc_ge_607)" "YES" SRC_HC_OPTS += -package containers endif +SRC_HC_OPTS += -package Cabal + # On Windows, ghc-pkg is a standalone program # ($bindir/ghc-pkg.exe), whereas on Unix it needs a wrapper script # to pass the appropriate flag to the real binary @@ -35,9 +38,23 @@ INSTALL_PROGS += $(HS_PROG) EXCLUDE_SRCS += CRT_noglob.c NOGLOB_O = CRT_noglob.o else + +# We have two version: the inplace version compiled by the bootstrap compiler +# and the install version compiled by the stage 1 compiler. +# When creating or using bindists we always want the final binary, as built +# by the stage 1 compiler. +ifeq "$(DOING_BIN_DIST)" "YES" +HS_PROG = ghc-pkg.bin +else +ifeq "$(stage)" "2" HS_PROG = ghc-pkg.bin +else +HS_PROG = ghc-pkg-inplace.bin +endif +endif INSTALL_LIBEXECS += $(HS_PROG) NOGLOB_O = + endif # -----------------------------------------------------------------------------