X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=utils%2Fghc-pkg%2FMakefile;h=560fa4adcff80af7a51b33557a94d94607d3f1bb;hb=5c9f239daf46aaa73e12c8b948659fa5cd7e77fb;hp=19d5a12affae6b38a42345179baea966ec6e524d;hpb=373b03fe979abe898a387e02ca22007b768e343e;p=ghc-hetmet.git diff --git a/utils/ghc-pkg/Makefile b/utils/ghc-pkg/Makefile index 19d5a12..560fa4a 100644 --- a/utils/ghc-pkg/Makefile +++ b/utils/ghc-pkg/Makefile @@ -1,121 +1,20 @@ -TOP=../.. -include $(TOP)/mk/boilerplate.mk - -# hack for ghci-inplace script, see below -INSTALLING=1 - -# ----------------------------------------------------------------------------- -# ghc-pkg.bin - -SRC_HC_OPTS += -cpp -Wall -fno-warn-name-shadowing -fno-warn-unused-matches - -# This causes libghccompat.a to be used: -include $(GHC_COMPAT_DIR)/compat.mk - -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 "$(ghc_ge_504)" "NO" -SRC_HC_OPTS += -package lang -package util -package text -endif - -# 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 -# ($libexecdir/ghc-pkg.bin) so that it can find package.conf. -ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" -HS_PROG = ghc-pkg.exe -INSTALL_PROGS += $(HS_PROG) -else -HS_PROG = ghc-pkg.bin -INSTALL_LIBEXECS += $(HS_PROG) -endif - -# ----------------------------------------------------------------------------- -# Create the Version.hs file -VERSION_HS = Version.hs -EXTRA_SRCS += $(VERSION_HS) - -boot :: $(VERSION_HS) - -Version.hs : Makefile $(TOP)/mk/config.mk - @$(RM) -f $(VERSION_HS) - @echo "Creating $(VERSION_HS) ... " - @echo "module Version where" >>$(VERSION_HS) - @echo "version, targetOS, targetARCH :: String" >>$(VERSION_HS) - @echo "version = \"$(ProjectVersion)\"" >> $(VERSION_HS) - @echo "targetOS = \"$(TargetOS_CPP)\"" >> $(VERSION_HS) - @echo "targetARCH = \"$(TargetArch_CPP)\"" >> $(VERSION_HS) - -DIST_CLEAN_FILES += $(VERSION_HS) - -# ----------------------------------------------------------------------------- -# ghc-pkg script - -ifeq "$(INSTALLING)" "1" -ifeq "$(BIN_DIST)" "1" -GHCPKGBIN=$$\"\"libexecdir/$(HS_PROG) -PKGCONF=$$\"\"libdir/package.conf -else -GHCPKGBIN=$(libexecdir)/$(HS_PROG) -PKGCONF=$(libdir)/package.conf -endif # BIN_DIST -else -GHCPKGBIN=$(FPTOOLS_TOP_ABS)/utils/ghc-pkg/$(HS_PROG) -PKGCONF=$(FPTOOLS_TOP_ABS_PLATFORM)/driver/package.conf.inplace -endif - -ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32" -INSTALLED_SCRIPT_PROG = ghc-pkg-$(ProjectVersion) -endif -INPLACE_SCRIPT_PROG = ghc-pkg-inplace - -SCRIPT_OBJS = ghc-pkg.sh -INTERP = $(SHELL) -SCRIPT_SUBST_VARS = GHCPKGBIN PKGCONFOPT -ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32" -INSTALL_SCRIPTS += $(SCRIPT_PROG) -endif -PKGCONFOPT = --global-conf $(PKGCONF) - -ifeq "$(INSTALLING)" "1" -SCRIPT_PROG = $(INSTALLED_SCRIPT_PROG) -ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32" -LINK = ghc-pkg -endif -else -SCRIPT_PROG = $(INPLACE_SCRIPT_PROG) -endif - -# ----------------------------------------------------------------------------- -# don't recurse on 'make install' -# -ifeq "$(INSTALLING)" "1" -all :: $(HS_PROG) - $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@ -clean distclean maintainer-clean :: - $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@ -endif +TOP=../.. +ENABLE_SHELL_WRAPPERS = YES +EXTRA_CLEAN = Version.hs +EXTRA_INPLACE_CONFIGURE_FLAGS = $(INPLACE_GHC_DATADIR_CONFIGURE_FLAGS) -ifeq "$(INSTALLING)$(HOSTPLATFORM)" "0i386-unknown-mingw32" -all :: $(INPLACE_SCRIPT_PROG).bat +include $(TOP)/mk/boilerplate.mk +include $(TOP)/mk/cabal.mk -$(INPLACE_SCRIPT_PROG).bat : - echo '@call $(subst /,\\,$(FPTOOLS_TOP_ABS)/utils/ghc-pkg/$(HS_PROG)) --global-conf $(PKGCONF) %*' >> $@ - chmod 755 $@ -endif +with-bootstrapping-compiler: Version.hs +with-stage-1: Version.hs -# ghc-pkg is needed to boot in rts/ and library dirs -# Do a recursive 'make all' after generating dependencies, because this -# will work with 'make -j'. -ifneq "$(BootingFromHc)" "YES" -boot :: depend - $(MAKE) all -endif +Version.hs: Makefile $(TOP)/mk/config.mk + $(RM) -f Version.hs + echo "module Version where" >> Version.hs + echo "version, targetOS, targetARCH :: String" >> Version.hs + echo "version = \"$(ProjectVersion)\"" >> Version.hs + echo "targetOS = \"$(TargetOS_CPP)\"" >> Version.hs + echo "targetARCH = \"$(TargetArch_CPP)\"" >> Version.hs -include $(TOP)/mk/target.mk