X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=Makefile;h=157fd31482b68b180e103aa5d988f48be5d906f1;hp=2e0bbe1dc8f5e8cb99276c8a5154c6e46410921f;hb=27de38efce6d73d2a0209f803cfa98c82773e773;hpb=0ed2626c9ff2660fee60a94688d2021c23e3006f diff --git a/Makefile b/Makefile index 2e0bbe1..157fd31 100644 --- a/Makefile +++ b/Makefile @@ -37,6 +37,14 @@ # binary-dist # Builds a binary distribution # +# framework-pkg [MacOS only] +# Builds /Library/Frameworks/GHC.framework wrapped into a Mac +# installer package +# +# framework-binary-dist [MacOS only] +# Builds GHC.framework encapsulating a binary distribution +# (to give a relocatable framework) +# # hc-file-bundle # Builds an HC-file bundle, for bootstrapping # @@ -59,20 +67,31 @@ include $(TOP)/mk/boilerplate.mk # We can't 'make boot' in libraries until stage1 is built ifeq "$(BootingFromHc)" "YES" -SUBDIRS_BUILD = gmp includes rts compat compiler docs utils driver +SUBDIRS_BUILD = includes compiler docs utils driver else -SUBDIRS_BUILD = gmp includes compat utils driver docs compiler rts +SUBDIRS_BUILD = includes utils driver docs compiler libraries/Cabal/doc endif -SUBDIRS = gmp includes compat utils driver docs rts libraries compiler libraries/Cabal/doc +SUBDIRS = gmp libffi includes utils driver docs rts compiler ghc libraries libraries/Cabal/doc + +check-all: check-tools check-packages + +check-tools: + @: +ifeq "$(HADDOCK_DOCS)" "YES" +ifeq "$(HADDOCK)" "" + echo "Couldn't find haddock" >&2 + exit 1 +endif +endif # Sanity check that all the boot libraries are in the tree, to catch # failure to run darcs-all. check-packages : - @ds=`cat libraries/boot-packages`;\ + @ds=`grep "^[^# ][^ ]* *[^ ][^ ]*$$" packages | sed "s/ .*//"`;\ for d in $$ds; do \ - if test ! -d libraries/$$d; then \ - echo "Looks like you're missing libraries/$$d,"; \ + if test ! -d $$d; then \ + echo "Looks like you're missing $$d,"; \ echo "maybe you haven't done './darcs-all get'?"; \ exit 1; \ fi \ @@ -89,8 +108,12 @@ GCC_LIB_DEP = stamp.inplace-gcc-lib endif endif -stage1 : $(GCC_LIB_DEP) check-packages +stage1 : $(GCC_LIB_DEP) check-all + $(MAKE) -C libraries boot + $(MAKE) -C gmp all + $(MAKE) -C libffi all $(MAKE) -C utils/mkdependC boot + $(MAKE) -C utils with-bootstrapping-compiler @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \ for i in $(SUBDIRS_BUILD); do \ echo "------------------------------------------------------------------------"; \ @@ -108,16 +131,34 @@ stage1 : $(GCC_LIB_DEP) check-packages $(MAKE) --no-print-directory -C $$i $(MFLAGS) all; \ if [ $$? -eq 0 -o $$x_on_err -eq 0 ] ; then true; else exit 1; fi; \ done - $(MAKE) -C libraries boot + $(MAKE) -C ghc stage=1 boot + $(MAKE) -C ghc stage=1 + $(MAKE) -C rts boot + $(MAKE) -C rts $(MAKE) -C libraries all - -stage2 : check-packages - $(MAKE) -C compiler boot stage=2 + $(MAKE) -C utils with-stage-1 + +# When making distributions (i.e., whether with binary-dist or using the +# vanilla install target to create an installer package), we can have problems +# if some things (e.g. ghc-pkg) are compiled with the bootstrapping compiler +# and some (e.g. the stage 2 compiler) with the stage1 compiler. See #1860 for +# an example. Thus, we explicitly build a second version with the stage 1 +# compiler of all utils that get installed and of all extra support binaries +# includes in binary dists. +stage2 : check-all + $(MAKE) -C compiler stage=2 boot $(MAKE) -C compiler stage=2 +ifeq "$(HADDOCK_DOCS)" "YES" + $(MAKE) -C compiler stage=2 doc +endif + $(MAKE) -C ghc stage=2 boot + $(MAKE) -C ghc stage=2 -stage3 : check-packages - $(MAKE) -C compiler boot stage=3 +stage3 : check-all + $(MAKE) -C compiler stage=3 boot $(MAKE) -C compiler stage=3 + $(MAKE) -C ghc stage=3 boot + $(MAKE) -C ghc stage=3 bootstrap : bootstrap2 @@ -138,13 +179,13 @@ all :: stamp.inplace-gcc-lib # tree somewhere, and then have install copy it from there rather than # from the filesystem. stamp.inplace-gcc-lib: - $(RM) -r compiler/gcc-lib - mkdir compiler/gcc-lib - cp $(LD) compiler/gcc-lib + $(RM) -r ghc/gcc-lib + mkdir ghc/gcc-lib + cp $(LD) ghc/gcc-lib touch $@ clean :: - $(RM) -r compiler/gcc-lib + $(RM) -r ghc/gcc-lib $(RM) -f inplace-gcc-lib endif endif @@ -162,6 +203,9 @@ else INSTALL_STAGE = endif +install-strip: + $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' install + # Same as default rule, but we pass $(INSTALL_STAGE) to $(MAKE) too install :: check-packages @case '${MFLAGS}' in *-[ik]*) x_on_err=0;; *-r*[ik]*) x_on_err=0;; *) x_on_err=1;; esac; \ @@ -246,7 +290,7 @@ install-docs :: binary-dist:: -rm -rf $(BIN_DIST_DIR) - -$(RM) $(BIN_DIST_DIR).tar.gz + -$(RM) $(BIN_DIST_TARBALL) ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32" @@ -255,7 +299,7 @@ binary-dist:: $(MAKE) prefix=$(BIN_DIST_DIR) install-docs binary-dist:: - cd $(BIN_DIST_DIR) && ../distrib/prep-bin-dist-mingw + cd $(BIN_DIST_DIR) && $(SHELL) ../distrib/prep-bin-dist-mingw binary-dist:: $(MKDIRHIER) $(BIN_DIST_DIR)/icons @@ -263,91 +307,108 @@ binary-dist:: else -BinDistDirs = includes compiler docs rts - -BIN_DIST_TOP= distrib/Makefile \ - distrib/configure-bin.ac \ - distrib/INSTALL \ - distrib/README \ - ANNOUNCE \ - LICENSE \ - install-sh \ - extra-gcc-opts.in \ - config.guess \ - config.sub \ - aclocal.m4 +.PHONY: binary-dist -ifeq "$(darwin_TARGET_OS)" "1" -BIN_DIST_TOP+=mk/fix_install_names.sh -endif +BIN_DIST_VARFILE=$(BIN_DIST_PREP)/Makefile-vars.in -.PHONY: binary-dist-pre% binary-dist binary-pack - -binary-dist:: binary-dist-pre - -binary-dist-pre:: - $(MKDIRHIER) $(BIN_DIST_DIR)/mk - echo 'include $$(TOP)/Makefile-vars' > $(BIN_DIST_DIR)/mk/boilerplate.mk - echo 'include $$(TOP)/mk/package.mk' > $(BIN_DIST_DIR)/mk/target.mk - echo 'include $$(TOP)/mk/install.mk' >> $(BIN_DIST_DIR)/mk/target.mk - echo 'include $$(TOP)/mk/recurse.mk' >> $(BIN_DIST_DIR)/mk/target.mk - echo '' > $(BIN_DIST_DIR)/mk/compat.mk - cp mk/package.mk $(BIN_DIST_DIR)/mk/ - cp mk/install.mk $(BIN_DIST_DIR)/mk/ - cp mk/recurse.mk $(BIN_DIST_DIR)/mk/ - cp mk/fptools.css $(BIN_DIST_DIR)/mk/ - $(MKDIRHIER) $(BIN_DIST_DIR)/lib/$(TARGETPLATFORM) - $(MKDIRHIER) $(BIN_DIST_DIR)/share - -binary-dist:: - $(MAKE) -C gmp binary-dist DOING_BIN_DIST=YES - $(MAKE) -C includes binary-dist DOING_BIN_DIST=YES - $(MAKE) -C compiler binary-dist DOING_BIN_DIST=YES $(INSTALL_STAGE) - $(MAKE) -C rts binary-dist DOING_BIN_DIST=YES - $(MAKE) -C driver binary-dist DOING_BIN_DIST=YES - $(MAKE) -C utils binary-dist DOING_BIN_DIST=YES - $(MAKE) -C docs binary-dist DOING_BIN_DIST=YES - $(MAKE) -C libraries binary-dist DOING_BIN_DIST=YES - $(MAKE) -C libraries/Cabal/doc binary-dist DOING_BIN_DIST=YES - -VARFILE=$(BIN_DIST_DIR)/Makefile-vars.in +WHERE_AM_I = $(BIN_DIST_NAME) binary-dist:: - @for i in $(BIN_DIST_TOP); do \ - if test -f "$$i"; then \ - echo cp $$i $(BIN_DIST_DIR); \ - cp $$i $(BIN_DIST_DIR); \ - fi; \ - done; - @echo "Configuring the Makefile for this project..." - echo > $(VARFILE) - echo "package = ghc" >> $(VARFILE) - echo "version = $(ProjectVersion)" >> $(VARFILE) - echo "ProjectVersion = $(ProjectVersion)" >> $(VARFILE) - echo "HaveLibGmp = $(HaveLibGmp)" >> $(VARFILE) - echo "GhcLibsWithUnix = $(GhcLibsWithUnix)" >> $(VARFILE) - echo "GhcWithInterpreter = $(GhcWithInterpreter)" >> $(VARFILE) - echo "GhcHasReadline = $(GhcHasReadline)" >> $(VARFILE) - echo "BootingFromHc = $(BootingFromHc)" >> $(VARFILE) - echo "XMLDocWays = $(XMLDocWays)" >> $(VARFILE) - # We won't actually use xsltproc, but we need to know if it's "" or not - echo "XSLTPROC = $(XSLTPROC)" >> $(VARFILE) - echo "TARGETPLATFORM = $(TARGETPLATFORM)" >> $(VARFILE) - echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(VARFILE) - - cat distrib/Makefile-bin-vars.in >> $(VARFILE) - @echo "Generating a shippable configure script.." - $(MV) $(BIN_DIST_DIR)/configure-bin.ac $(BIN_DIST_DIR)/configure.ac - ( cd $(BIN_DIST_DIR); autoreconf ) +# For the most part we will be putting filenames in $(BIN_DIST_LIST), +# and telling tar to tar all of those files up. So to start with we +# remove $(BIN_DIST_LIST) so that we can start with an empty slate + $(RM) -f $(BIN_DIST_LIST) +# Now we add a few files from mk/ to $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/mk/package.mk >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/mk/install.mk >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/mk/recurse.mk >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/mk/cabal.mk >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/mk/cabal-flags.mk >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/mk/fptools.css >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/ANNOUNCE >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/LICENSE >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/install-sh >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/extra-gcc-opts.in >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/config.guess >> $(BIN_DIST_LIST) + echo $(WHERE_AM_I)/config.sub >> $(BIN_DIST_LIST) +# Now we recurse into various subdirectories and tell them to add and +# files that they want into $(BIN_DIST_LIST) +# XXX Ug, this duplication of "-C foo WHERE_AM_I=.../foo" isn't nice. + $(MAKE) -C gmp binary-dist WHERE_AM_I=$(WHERE_AM_I)/gmp + $(MAKE) -C includes binary-dist WHERE_AM_I=$(WHERE_AM_I)/includes + $(MAKE) -C compiler binary-dist WHERE_AM_I=$(WHERE_AM_I)/compiler $(INSTALL_STAGE) + $(MAKE) -C ghc binary-dist WHERE_AM_I=$(WHERE_AM_I)/ghc $(INSTALL_STAGE) + $(MAKE) -C rts binary-dist WHERE_AM_I=$(WHERE_AM_I)/rts + $(MAKE) -C driver binary-dist WHERE_AM_I=$(WHERE_AM_I)/driver + $(MAKE) -C utils binary-dist WHERE_AM_I=$(WHERE_AM_I)/utils + $(MAKE) -C docs binary-dist WHERE_AM_I=$(WHERE_AM_I)/docs + $(MAKE) -C libraries binary-dist WHERE_AM_I=$(WHERE_AM_I)/libraries + $(MAKE) -C libraries/Cabal/doc binary-dist WHERE_AM_I=$(WHERE_AM_I)/libraries/Cabal/doc +# Now thinks get messier. Some files we need to move around, rename or +# generate. We do this under $(BIN_DIST_PREP). + $(RM) -rf $(BIN_DIST_PREP_DIR) + $(MKDIRHIER) $(BIN_DIST_PREP)/mk + echo 'include $$(TOP)/Makefile-vars' > $(BIN_DIST_PREP)/mk/boilerplate.mk + echo 'include $$(TOP)/mk/package.mk' > $(BIN_DIST_PREP)/mk/target.mk + echo 'include $$(TOP)/mk/install.mk' >> $(BIN_DIST_PREP)/mk/target.mk + echo 'include $$(TOP)/mk/recurse.mk' >> $(BIN_DIST_PREP)/mk/target.mk + touch $(BIN_DIST_PREP)/mk/bindist.mk +ifeq "$(darwin_TARGET_OS)" "1" + cp mk/fix_install_names.sh $(BIN_DIST_PREP)/mk endif -# Tar up the distribution and build a manifest -binary-dist :: tar-binary-dist + cp distrib/Makefile $(BIN_DIST_PREP) + cp distrib/INSTALL $(BIN_DIST_PREP) + cp distrib/README $(BIN_DIST_PREP) + cp distrib/configure-bin.ac $(BIN_DIST_PREP)/configure.ac +# We can't just list aclocal.m4 in $(BIN_DIST_LIST), as it needs to be +# next to configure.ac when we run autoreconf + cp aclocal.m4 $(BIN_DIST_PREP) + cd $(BIN_DIST_PREP) && autoreconf +# We need to copy the pwd program that was built with stage1 to where +# the build system expects to find it, i.e. the location the pwd built +# with the bootstrapping compiler normally occupies + $(MKDIRHIER) $(BIN_DIST_PREP)/utils/pwd + cp utils/pwd/dist-install/build/pwd/pwd $(BIN_DIST_PREP)/utils/pwd +# And likewise the installPackage program + $(MKDIRHIER) $(BIN_DIST_PREP)/utils/installPackage/install-inplace/bin + cp utils/installPackage/dist-install/build/installPackage/installPackage \ + $(BIN_DIST_PREP)/utils/installPackage/install-inplace/bin + + echo "package = ghc" >> $(BIN_DIST_VARFILE) + echo "version = $(ProjectVersion)" >> $(BIN_DIST_VARFILE) + echo "ProjectVersion = $(ProjectVersion)" >> $(BIN_DIST_VARFILE) + echo "HaveLibGmp = $(HaveLibGmp)" >> $(BIN_DIST_VARFILE) + echo "GhcLibsWithUnix = $(GhcLibsWithUnix)" >> $(BIN_DIST_VARFILE) + echo "GhcWithInterpreter = $(GhcWithInterpreter)" >> $(BIN_DIST_VARFILE) + echo "GhcHasEditline = $(GhcHasEditline)" >> $(BIN_DIST_VARFILE) + echo "BootingFromHc = $(BootingFromHc)" >> $(BIN_DIST_VARFILE) + echo "XMLDocWays = $(XMLDocWays)" >> $(BIN_DIST_VARFILE) +# We won't actually use xsltproc, but we need to know if it's "" or not + echo "XSLTPROC = $(XSLTPROC)" >> $(BIN_DIST_VARFILE) + echo "TARGETPLATFORM = $(TARGETPLATFORM)" >> $(BIN_DIST_VARFILE) + echo "HADDOCK_DOCS = $(HADDOCK_DOCS)" >> $(BIN_DIST_VARFILE) + echo "INTEGER_LIBRARY = $(INTEGER_LIBRARY)" >> $(BIN_DIST_VARFILE) + cat distrib/Makefile-bin-vars.in >> $(BIN_DIST_VARFILE) + +# With that done, we can now build the actual tarball + + $(RM) -f $(BIN_DIST_NAME) + ln -s . $(BIN_DIST_NAME) + tar cf $(BIN_DIST_TAR) -T $(BIN_DIST_LIST) + cd $(BIN_DIST_PREP_DIR) && tar rf $(BIN_DIST_TAR) $(BIN_DIST_NAME) + bzip2 < $(BIN_DIST_TAR) > $(BIN_DIST_TAR_BZ2) + tar tf $(BIN_DIST_TAR) | sort > bin-manifest-$(ProjectVersion) +endif -.PHONY: tar-binary-dist -tar-binary-dist: - ( cd $(BIN_DIST_TOPDIR_ABS); tar cf - $(BIN_DIST_NAME) | bzip2 >$(BIN_DIST_TARBALL) ) - ( cd $(BIN_DIST_TOPDIR_ABS); bunzip2 -c $(BIN_DIST_TARBALL) | tar tf - | sed "s/^ghc-$(ProjectVersion)/fptools/" | sort >bin-manifest-$(ProjectVersion) ) +# XXX Presumably we still need to do this for Windows? +## Tar up the distribution and build a manifest +#binary-dist :: tar-binary-dist +# +#.PHONY: tar-binary-dist +#tar-binary-dist: +# ( cd $(BIN_DIST_TOPDIR_ABS); tar cf - $(BIN_DIST_NAME) | bzip2 >$(BIN_DIST_TARBALL) ) +# ( cd $(BIN_DIST_TOPDIR_ABS); bunzip2 -c $(BIN_DIST_TARBALL) | tar tf - | sed "s/^ghc-$(ProjectVersion)/fptools/" | sort >$(FPTOOLS_TOP_ABS)/bin-manifest-$(ProjectVersion) ) PUBLISH_FILES = $(BIN_DIST_TARBALL) @@ -367,21 +428,21 @@ endif # Upload the distribution and documentation ifneq "$(PublishLocation)" "" -publish :: publish-binary-dist +publish :: + make publish-binary-dist 'prefix=$(BIN_DIST_INST_DIR)' endif +nTimes = set -e; for i in `seq 1 $(1)`; do echo Try "$$i: $(2)"; if $(2); then break; fi; done + .PHONY: publish-binary-dist publish-binary-dist :: - @for f in $(PUBLISH_FILES); do \ - for i in 0 1 2 3 4 5 6 7 8 9; do \ - echo "Try $$i: $(PublishCp) $$f $(PublishLocation)/dist"; \ - if $(PublishCp) $$f $(PublishLocation)/dist; then break; fi; \ - done \ + @for f in $(PUBLISH_FILES); \ + do $(call nTimes,10,$(PublishCp) $$f $(PublishLocation)/dist); \ done -# You need to first make binddisttest, and then run -# make publish 'prefix=$(BIN_DIST_INST_DIR)' -# for this to find the right place. +# You need to "make binddisttest" before publishing the docs, as it +# works by publish setting $(prefix) to inside the binddisttest +# directory so $(docdir) points to the right place. # We assume that Windows means Cygwin, as we can't just use docdir # unchanged or rsync (really SSH?) thinks that c:/foo means /foo on @@ -394,12 +455,35 @@ PUBLISH_DOCDIR = $(docdir) endif publish-binary-dist :: - $(PublishCp) -r $(PUBLISH_DOCDIR)/* $(PublishLocation)/docs + $(call nTimes,10,$(PublishCp) -r "$(PUBLISH_DOCDIR)"/* $(PublishLocation)/docs) binary-dist:: @echo "Mechanical and super-natty! Inspect the result and *if* happy; freeze, sell and get some sleep!" # ----------------------------------------------------------------------------- +# Building MacOS installer packages +# +# 'framework-pkg' +# Create an installer package for /Library/Frameworks/GHC.framework +# +# 'framework-binary-dist' +# Create an installer package for GHC.framework encapsulating a +# binary-dist to make it relocatable +# FIXME: This is only partially implemented so far + +ifeq "$(darwin_TARGET_OS)" "1" + +.PHONY: framework-pkg, framework-binary-dist + +framework-pkg: + $(MAKE) -C distrib/MacOS framework-pkg + +framework-binary-dist: + $(MAKE) -C distrib/MacOS framework-binary-dist + +endif + +# ----------------------------------------------------------------------------- # Building source distributions # # Do it like this: @@ -425,7 +509,7 @@ SRC_DIST_DIRS += mk docs distrib bindisttest $(filter-out docs distrib libraries SRC_DIST_FILES += \ configure.ac config.guess config.sub configure \ aclocal.m4 README ANNOUNCE HACKING LICENSE Makefile install-sh \ - ghc.spec.in extra-gcc-opts.in VERSION boot + ghc.spec.in ghc.spec extra-gcc-opts.in VERSION boot # ----------------------------------------------------------------------------- # Source distributions @@ -458,7 +542,7 @@ dist :: && for i in $(SRC_DIST_DIRS); do mkdir $$i; (cd $$i && lndir $(FPTOOLS_TOP_ABS)/$$i ); done \ && for i in $(SRC_DIST_FILES); do $(LN_S) $(FPTOOLS_TOP_ABS)/$$i .; done \ && $(MAKE) distclean \ - && if test -f $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then $(CP) $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; fi \ + && if test -f $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs; then $(CP) $(FPTOOLS_TOP_ABS)/libraries/haskell-src/dist/build/Language/Haskell/Parser.hs libraries/haskell-src/Language/Haskell/ ; mv libraries/haskell-src/Language/Haskell/Parser.ly libraries/haskell-src/Language/Haskell/Parser.ly.source ; fi \ && $(RM) -rf compiler/stage[123] mk/build.mk \ && $(FIND) $(SRC_DIST_DIRS) \( -name _darcs -o -name SRC -o -name "autom4te*" -o -name "*~" -o -name ".cvsignore" -o -name "\#*" -o -name ".\#*" -o -name "log" -o -name "*-SAVE" -o -name "*.orig" -o -name "*.rej" \) -print | xargs $(RM) -rf \ ) @@ -489,7 +573,6 @@ hc-file-bundle : $(LN_S) . ghc-$(ProjectVersion) $(FIND) ghc-$(ProjectVersion)/compiler \ ghc-$(ProjectVersion)/utils \ - ghc-$(ProjectVersion)/compat \ ghc-$(ProjectVersion)/libraries -follow \ \( -name "*.hc" -o -name "*_hsc.[ch]" -o -name "*_stub.[ch]" \) -print > hc-files-to-go for f in `$(FIND) ghc-$(ProjectVersion)/compiler ghc-$(ProjectVersion)/utils ghc-$(ProjectVersion)/libraries -name "*.hsc" -follow -print` ""; do \ @@ -515,7 +598,7 @@ hc-file-bundle : CLEAN_FILES += hc-files-to-go *-hc.tar.gz DIST_CLEAN_FILES += config.cache config.status mk/config.h mk/stamp-h \ - ghc.spec docs/users_guide/ug-book.xml extra-gcc-opts + docs/users_guide/ug-book.xml extra-gcc-opts # don't clean config.mk: it's needed when cleaning stuff later on LATE_DIST_CLEAN_FILES += mk/config.mk @@ -527,6 +610,9 @@ extraclean:: $(RM) -rf autom4te.cache clean distclean :: + $(RM) -rf inplace-datadir + +clean distclean :: $(MAKE) -C bindisttest $@ if test -d testsuite; then $(MAKE) -C testsuite $@; fi