SUBDIRS += $(wildcard HUnit)
SUBDIRS += $(wildcard mtl)
SUBDIRS += $(wildcard fgl)
-SUBDIRS += $(wildcard X11)
SUBDIRS += $(wildcard time)
-ifeq "$(Windows)" "NO"
-# HGL is not working on Win32, so omit it for now. Better not to ship it
-# at all than to ship a broken version.
-SUBDIRS += $(wildcard HGL)
-endif
SUBDIRS += $(wildcard OpenGL)
SUBDIRS += $(wildcard GLUT)
SUBDIRS += $(wildcard OpenAL)
SUBDIRS += $(wildcard stm)
SUBDIRS += $(wildcard xhtml)
SUBDIRS += $(wildcard cgi)
-SUBDIRS += $(wildcard arrows)
ifeq "$(GhcLibsWithObjectIO)" "YES"
SUBDIRS += $(wildcard ObjectIO)
endif
ilibdir = $$topdir
ilibexecdir = $$topdir
idatadir = $$topdir
-idocdir = $$topdir/doc/libraries/$$pkgid
-iinterfacedir = $$topdir/doc/libraries/$$pkgid
-ihtmldir = $$httptopdir/doc/libraries/$$pkgid
+idocdir = $$topdir/doc/libraries/$$pkg
+iinterfacedir = $$topdir/doc/libraries/$$pkg
+ihtmldir = $$httptopdir/doc/libraries/$$pkg
html_installed_root = $(prefix)/doc/libraries
else
# On non-Windows we can just give absolute paths all the time, and
ilibdir = $(libdir)
ilibexecdir = $(libexecdir)
idatadir = $(datadir)
-idocdir = $(docdir)/libraries/$$pkgid
-iinterfacedir = $(htmldir)/libraries/$$pkgid
-ihtmldir = $(htmldir)/libraries/$$pkgid
+idocdir = $(docdir)/libraries/$$pkg
+iinterfacedir = $(htmldir)/libraries/$$pkg
+ihtmldir = $(htmldir)/libraries/$$pkg
html_installed_root = $(htmldir)/libraries
endif
CONFIGURE_STAMP_EXTRAS := $(CONFIGURE_STAMP_EXTRAS)-splitting
endif
+ifneq "$(HSCOLOUR)" ""
+CONFIGURE_OPTS += --with-hscolour=$(HSCOLOUR)
+endif
+
BOOTSTRAP_LIBS = Cabal filepath
BOOTSTRAP_STAMPS = $(addprefix stamp/bootstrapping.,$(BOOTSTRAP_LIBS))
BOOTSTRAP_INC_1_UP = -DCABAL_VERSION=1,3 $(addprefix -i../bootstrapping.,$(BOOTSTRAP_LIBS))
# build dies!
# Build the library using 'make'
+# We re-run 'setup makefile' each time, just in case any preprocessing
+# needs to be done. However, we're careful not to overwrite GNUmakefile
+# if it hasn't changed, so that dependency-generation isn't forced
+# every time.
$(foreach SUBDIR,$(SUBDIRS),make.library.$(SUBDIR)):\
make.library.%: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
- %/GNUmakefile \
%/setup/Setup ifBuildable/ifBuildable
if ifBuildable/ifBuildable $*; then \
cd $* && \
+ cmp -s ../Makefile.local Makefile.local || cp ../Makefile.local .; \
+ mv GNUmakefile GNUmakefile.tmp; \
+ setup/Setup makefile -f GNUmakefile; \
+ cmp -s GNUmakefile GNUmakefile.tmp && mv GNUmakefile.tmp GNUmakefile; \
$(MAKE) $(MFLAGS) && \
setup/Setup register --inplace; \
fi
setup/Setup build $(addprefix --ghc-option=,$(GhcLibHcOpts)); \
fi
-$(foreach SUBDIR,$(SUBDIRS),$(SUBDIR)/GNUmakefile):\
-%/GNUmakefile: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
- %/setup/Setup ifBuildable/ifBuildable
- $(RM) $*/GNUmakefile
- cp Makefile.local $*
- if ifBuildable/ifBuildable $*; then \
- cd $* && setup/Setup makefile -f GNUmakefile; \
- fi
+.PHONY: doc html
-.PHONY: doc
+html: doc
doc: $(foreach SUBDIR,$(SUBDIRS),doc.library.$(SUBDIR))
sh gen_contents_index --inplace
+# Making hyperlinked source only works if we have hscolour
+ifneq "$(HSCOLOUR)" ""
+CABAL_HADDOCK_FLAGS=--hyperlink-source
+endif
+
$(foreach SUBDIR,$(SUBDIRS),doc.library.$(SUBDIR)):\
doc.library.%: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
%/setup/Setup ifBuildable/ifBuildable
if ifBuildable/ifBuildable $*; then \
- cd $* && setup/Setup haddock --html-location='../$$pkgid'; \
+ cd $* && setup/Setup haddock --html-location='../$$pkg' \
+ $(CABAL_HADDOCK_FLAGS); \
fi
.PHONY: distclean clean clean.library.%
cp doc-index*.html $(BIN_DIST_LIBDIR)
endif
cp -pR stamp $(BIN_DIST_LIBDIR)
- # This gets used in the compiler directory to see if GHC should
- # depend on the readline package or not
- $(MKDIRHIER) $(BIN_DIST_LIBDIR)/readline
- cp readline/config.mk $(BIN_DIST_LIBDIR)/readline
$(foreach SUBDIR,$(SUBDIRS),binary-dist.library.$(SUBDIR)): \
binary-dist.library.%:
cp LICENSE $(BIN_DIST_LIBDIR)/$* && \
cp -R dist $(BIN_DIST_LIBDIR)/$* && \
$(FIND) . -name "*.buildinfo" -exec cp {} $(BIN_DIST_LIBDIR)/$* \; && \
+ $(FIND) . -name unbuildable -exec cp {} $(BIN_DIST_LIBDIR)/$* \; && \
(cp -RL include $(BIN_DIST_LIBDIR)/$* || true) && \
$(FIND) $(BIN_DIST_LIBDIR)/$*/dist \
\( -name "*_split" -o -name "autogen" \) | xargs rm -rf && \
\( \( -name "*.o" -o -name "*.p_o" \) -a ! -name "HS*" \) \
-exec rm {} \; ; \
fi
+
+# Ignore some doc targets that we don't support
+# The root recurses into us when these targets are made
+.PHONY: html-no-chunks chm HxS fo dvi ps pdf
+html-no-chunks chm HxS fo dvi ps pdf:
+ @:
+