X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=utils%2Fghc-pkg%2FMakefile;h=9cb2a598e6072453cd9c37536d83e4da471d33a0;hb=9e3757d1db9c14f45fd59376c2cd594893bad5b3;hp=3f3d3746586b5aa0e8dc93b34c24c876c2db3a00;hpb=f2e6827708047873bc36004712655502d4602e8f;p=ghc-hetmet.git diff --git a/utils/ghc-pkg/Makefile b/utils/ghc-pkg/Makefile index 3f3d374..9cb2a59 100644 --- a/utils/ghc-pkg/Makefile +++ b/utils/ghc-pkg/Makefile @@ -16,6 +16,10 @@ SRC_HC_OPTS += $(PACKAGE_CABAL) # we must also build with $(GhcHcOpts) here: SRC_HC_OPTS += $(GhcHcOpts) $(GhcStage1HcOpts) +ifeq "$(Windows)" "NO" +SRC_HC_OPTS += -package unix +endif + ifeq "$(ghc_ge_607)" "YES" SRC_HC_OPTS += -package containers endif @@ -24,12 +28,16 @@ endif # ($bindir/ghc-pkg.exe), whereas on Unix it needs a wrapper script # to pass the appropriate flag to the real binary # ($libexecdir/ghc-pkg.bin) so that it can find package.conf. +# on Windows, we need to take control of filename globbing ourselves ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" HS_PROG = ghc-pkg.exe INSTALL_PROGS += $(HS_PROG) +EXCLUDE_SRCS += CRT_noglob.c +NOGLOB_O = CRT_noglob.o else HS_PROG = ghc-pkg.bin INSTALL_LIBEXECS += $(HS_PROG) +NOGLOB_O = endif # ----------------------------------------------------------------------------- @@ -65,12 +73,12 @@ INPLACE_HS=ghc-pkg-inplace.hs INPLACE_PROG=ghc-pkg-inplace EXCLUDED_SRCS+=$(INPLACE_HS) -$(INPLACE_HS): Makefile $(FPTOOLS_TOP)/mk/config.mk +$(INPLACE_HS): Makefile $(FPTOOLS_TOP)/mk/config.mk $(NOGLOB_O) echo "import System.Cmd; import System.Environment; import System.Exit" > $@ echo "main = do args <- getArgs; rawSystem \"$(FPTOOLS_TOP_ABS)/$(GHC_PKG_DIR_REL)/$(HS_PROG)\" (\"--global-conf\":\"$(FPTOOLS_TOP_ABS)/driver/package.conf.inplace\":args) >>= exitWith" >> $@ $(INPLACE_PROG): $(INPLACE_HS) - $(HC) --make $< -o $@ + $(HC) --make $< -o $@ $(LD_OPTS) $(NOGLOB_O) all :: $(INPLACE_PROG)