TOP = .. include $(TOP)/mk/boilerplate.mk INSTALLING=1 ghc_ge_504 := $(shell if (test $(GhcCanonVersion) -ge 504); then echo YES; else echo NO; fi) ghc_ge_603 := $(shell if (test $(GhcCanonVersion) -ge 603); then echo YES; else echo NO; fi) ghc_le_600 := $(shell if (test $(GhcCanonVersion) -le 600); then echo YES; else echo NO; fi) SRC_HC_OPTS += -fglasgow-exts -cpp # Use hierarchical libraries for GHC >= 5.04 ifeq "$(ghc_ge_504)" "YES" SRC_HC_OPTS += -package network # Monad transformers live in their own package for GHC >= 6.3 ifeq "$(ghc_ge_603)" "YES" SRC_HC_OPTS += -package mtl endif else SRC_HC_OPTS += -package data -package text -package util -package net endif ifeq "$(Windows)" "YES" HS_PROG_EXT = .exe else HS_PROG_EXT = .bin endif HS_PROG = haddock$(HS_PROG_EXT) ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" Main_HC_OPTS += -Dmingw32_HOST_OS=1 endif HsParser_HC_OPTS += -Onot HaddockParse_HC_OPTS += -Onot # <= 6.0.x (double-)quotes all arguments when invoking utils, hence # the need to escape the string quotes here. >= 6.2.x does add a # layer of quoting. ifeq "$(ghc_le_600)" "YES" HaddockVersion_HC_OPTS = -D'HADDOCK_VERSION=\"$(ProjectVersion)\"' else HaddockVersion_HC_OPTS = -D'HADDOCK_VERSION="$(ProjectVersion)"' endif HaddockVersion : ../mk/version.mk ifeq "$(INSTALLING)" "1" ifeq "$(BIN_DIST)" "1" HADDOCKLIB=$$\"\"datadir/haddock HADDOCKBIN=$$\"\"libexecdir/$(HS_PROG) else ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" # --mixed is only provided by newer versions of cygpath (1.2 doesn't have it, for instance.) #HADDOCKLIB=$(shell cygpath --mixed $(datadir)) HADDOCKLIB=$(shell cygpath -w $(datadir) | sed -e 's%\\%/%g') else HADDOCKLIB=$(datadir) endif # mingw HADDOCKBIN=$(libexecdir)/$(HS_PROG) endif # BIN_DIST else ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" # See above comment re: --mixed #HADDOCKLIB=$(shell cygpath --mixed $(FPTOOLS_TOP_ABS)/haddock/html) HADDOCKLIB=$(shell cygpath -w $(FPTOOLS_TOP_ABS)/haddock/html | sed -e 's%\\%/%g') else HADDOCKLIB=$(FPTOOLS_TOP_ABS)/haddock/html endif HADDOCKBIN=$(FPTOOLS_TOP_ABS)/haddock/src/$(HS_PROG) endif # INSTALLING HAPPY_OPTS += $(GHC_HAPPY_OPTS) INSTALLED_SCRIPT_PROG = haddock-$(ProjectVersion) INPLACE_SCRIPT_PROG = haddock-inplace ifeq "$(INSTALLING)" "1" TOP_PWD := $(prefix) SCRIPT_PROG = $(INSTALLED_SCRIPT_PROG) ifneq "$(TARGETPLATFORM)" "i386-unknown-mingw32" LINK = haddock endif else TOP_PWD := $(FPTOOLS_TOP_ABS) SCRIPT_PROG = $(INPLACE_SCRIPT_PROG) endif SCRIPT_OBJS=haddock.sh INTERP=$(SHELL) SCRIPT_SUBST_VARS = HADDOCKLIB HADDOCKBIN # The script isn't installed on Windows; we run the binary directly ifeq "$(Windows)" "NO" INSTALL_SCRIPTS += $(SCRIPT_PROG) endif INSTALL_LIBEXECS = $(HS_PROG) # don't recurse on 'make install' # ifeq "$(INSTALLING)" "1" all clean distclean maintainer-clean :: $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@ endif include $(TOP)/mk/target.mk