diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-08-05 22:29:57 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-08-25 20:05:31 -0400 |
commit | 6fd9b0a1c6b076ef1977db1a2ce8b9505b9a3254 (patch) | |
tree | 862b1a0b8ac78ebddea1cbc4eee597ca4acbb241 /mk | |
parent | 822b0302f3406bb5e916d72c36566322ba900e76 (diff) | |
download | haskell-6fd9b0a1c6b076ef1977db1a2ce8b9505b9a3254.tar.gz |
Drop make build system
Here we at long last remove the `make`-based build system, it having
been replaced with the Shake-based Hadrian build system. Users are
encouraged to refer to the documentation in `hadrian/doc` and this [1]
blog post for details on using Hadrian.
Closes #17527.
[1] https://www.haskell.org/ghc/blog/20220805-make-to-hadrian.html
Diffstat (limited to 'mk')
-rw-r--r-- | mk/compiler-ghc.mk | 58 | ||||
-rw-r--r-- | mk/custom-settings.mk | 14 | ||||
-rw-r--r-- | mk/flavours/bench-cross-ncg.mk | 15 | ||||
-rw-r--r-- | mk/flavours/bench-cross.mk | 15 | ||||
-rw-r--r-- | mk/flavours/bench-llvm.mk | 10 | ||||
-rw-r--r-- | mk/flavours/bench.mk | 10 | ||||
-rw-r--r-- | mk/flavours/devel-cross-ncg.mk | 18 | ||||
-rw-r--r-- | mk/flavours/devel1.mk | 16 | ||||
-rw-r--r-- | mk/flavours/devel2.mk | 16 | ||||
-rw-r--r-- | mk/flavours/dwarf.mk | 14 | ||||
-rw-r--r-- | mk/flavours/perf-cross-ncg.mk | 14 | ||||
-rw-r--r-- | mk/flavours/perf-cross.mk | 14 | ||||
-rw-r--r-- | mk/flavours/perf-llvm.mk | 8 | ||||
-rw-r--r-- | mk/flavours/perf.mk | 8 | ||||
-rw-r--r-- | mk/flavours/prof-llvm.mk | 12 | ||||
-rw-r--r-- | mk/flavours/prof.mk | 11 | ||||
-rw-r--r-- | mk/flavours/quick-cross-ncg.mk | 15 | ||||
-rw-r--r-- | mk/flavours/quick-cross.mk | 15 | ||||
-rw-r--r-- | mk/flavours/quick-llvm.mk | 10 | ||||
-rw-r--r-- | mk/flavours/quick.mk | 10 | ||||
-rw-r--r-- | mk/flavours/quickest.mk | 10 | ||||
-rw-r--r-- | mk/flavours/validate.mk | 56 | ||||
-rw-r--r-- | mk/sub-makefile.mk | 67 | ||||
-rw-r--r-- | mk/tree.mk | 73 | ||||
-rw-r--r-- | mk/validate.mk.sample | 4 | ||||
-rw-r--r-- | mk/warnings.mk | 155 | ||||
-rw-r--r-- | mk/ways.mk | 105 |
27 files changed, 0 insertions, 773 deletions
diff --git a/mk/compiler-ghc.mk b/mk/compiler-ghc.mk deleted file mode 100644 index 739f6157d5..0000000000 --- a/mk/compiler-ghc.mk +++ /dev/null @@ -1,58 +0,0 @@ -# ----------------------------------------------------------------------------- -# -# (c) 2009 The University of Glasgow -# -# This file is part of the GHC build system. -# -# To understand how the build system works and how to modify it, see -# https://gitlab.haskell.org/ghc/ghc/wikis/building/architecture -# https://gitlab.haskell.org/ghc/ghc/wikis/building/modifying -# -# ----------------------------------------------------------------------------- - -TOP = .. -SPEC_TARGETS = 1 2 3 re1 re2 re3 -include $(TOP)/mk/sub-makefile.mk - -FAST_MAKE_OPTS += compiler_stage1_NO_BUILD_DEPS=YES \ - compiler_stage2_NO_BUILD_DEPS=YES \ - compiler_stage3_NO_BUILD_DEPS=YES \ - ghc_stage1_NO_BUILD_DEPS=YES \ - ghc_stage2_NO_BUILD_DEPS=YES \ - ghc_stage3_NO_BUILD_DEPS=YES - -.PHONY: 1 2 3 - -1: - +$(TOPMAKE) stage=1 all_ghc_stage1 $(FAST_MAKE_OPTS) ONLY_DEPS_FOR="compiler_stage1 ghc_stage1" - -2: - +$(TOPMAKE) stage=2 all_ghc_stage2 $(FAST_MAKE_OPTS) ONLY_DEPS_FOR="compiler_stage2 ghc_stage2" NO_STAGE2_DEPS=YES - -3: - +$(TOPMAKE) stage=3 all_ghc_stage3 $(FAST_MAKE_OPTS) ONLY_DEPS_FOR="compiler_stage3 ghc_stage3" NO_STAGE3_DEPS=YES - - -# 'make re2' rebuilds stage2, removing the old executable first. Useful for -# something like 'make re2 GhcDebugged=YES'. - -.PHONY: re1 re2 re3 -re1: - $(RM) $(TOP)/ghc/stage1/build/tmp/ghc-stage1 - $(MAKE) 1 -re2: - $(RM) $(TOP)/ghc/stage2/build/tmp/ghc-stage2 - $(MAKE) 2 -re3: - $(RM) $(TOP)/ghc/stage3/build/tmp/ghc-stage3 - $(MAKE) 3 - -.PHONY: extra-help -help : extra-help -extra-help : - @echo " make 1" - @echo " make 2" - @echo " make 3" - @echo - @echo " Build the stage 1, 2 or 3 GHC respectively, omitting dependencies" - @echo " and initial phases for speed." diff --git a/mk/custom-settings.mk b/mk/custom-settings.mk deleted file mode 100644 index 2b4b127102..0000000000 --- a/mk/custom-settings.mk +++ /dev/null @@ -1,14 +0,0 @@ - --include mk/are-validating.mk - -ifeq "$(Validating)" "YES" -include mk/flavours/validate.mk --include mk/validate.mk -else --include $(firstword $(wildcard mk/$(TargetPlatformFull)-build.mk) mk/build.mk) -endif - -ifeq "$(BINDIST)" "YES" --include bindist.mk -endif - diff --git a/mk/flavours/bench-cross-ncg.mk b/mk/flavours/bench-cross-ncg.mk deleted file mode 100644 index d52eb1ca80..0000000000 --- a/mk/flavours/bench-cross-ncg.mk +++ /dev/null @@ -1,15 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O2 -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO -WITH_TERMINFO = NO - -BIGNUM_BACKEND = native -Stage1Only = YES -DYNAMIC_GHC_PROGRAMS = NO diff --git a/mk/flavours/bench-cross.mk b/mk/flavours/bench-cross.mk deleted file mode 100644 index 98f0531bc7..0000000000 --- a/mk/flavours/bench-cross.mk +++ /dev/null @@ -1,15 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O -GhcStage2HcOpts = -O0 -fllvm -GhcLibHcOpts = -O2 -fllvm -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO -WITH_TERMINFO = NO - -BIGNUM_BACKEND = native -Stage1Only = YES -DYNAMIC_GHC_PROGRAMS = NO diff --git a/mk/flavours/bench-llvm.mk b/mk/flavours/bench-llvm.mk deleted file mode 100644 index 58fb92df21..0000000000 --- a/mk/flavours/bench-llvm.mk +++ /dev/null @@ -1,10 +0,0 @@ -SRC_HC_OPTS = -O -H64m -fllvm -GhcStage1HcOpts = -O -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O2 -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO diff --git a/mk/flavours/bench.mk b/mk/flavours/bench.mk deleted file mode 100644 index ecfc535178..0000000000 --- a/mk/flavours/bench.mk +++ /dev/null @@ -1,10 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O2 -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO diff --git a/mk/flavours/devel-cross-ncg.mk b/mk/flavours/devel-cross-ncg.mk deleted file mode 100644 index 0d5325dd25..0000000000 --- a/mk/flavours/devel-cross-ncg.mk +++ /dev/null @@ -1,18 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -GhcStage1HcOpts = -O2 -DDEBUG -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO -WITH_TERMINFO = NO - -BIGNUM_BACKEND = native -Stage1Only = YES -DYNAMIC_BY_DEFAULT = NO -DYNAMIC_GHC_PROGRAMS = NO - -libraries/Cabal_dist-install_HC_OPTS += -O0 diff --git a/mk/flavours/devel1.mk b/mk/flavours/devel1.mk deleted file mode 100644 index 1c03aff10b..0000000000 --- a/mk/flavours/devel1.mk +++ /dev/null @@ -1,16 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O0 -DDEBUG -GhcStage2HcOpts = -O -GhcLibHcOpts = -O -dcore-lint -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO - -LAX_DEPENDENCIES = YES - -# Reduce optimisation when building Cabal; this makes a significant difference -# in overall build time. See #16817. -libraries/Cabal_dist-install_HC_OPTS += -O0 diff --git a/mk/flavours/devel2.mk b/mk/flavours/devel2.mk deleted file mode 100644 index 2d7d3b3884..0000000000 --- a/mk/flavours/devel2.mk +++ /dev/null @@ -1,16 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O0 -DDEBUG -GhcLibHcOpts = -O -dcore-lint -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO - -LAX_DEPENDENCIES = YES - -# Reduce optimisation when building Cabal; this makes a significant difference -# in overall build time. See #16817. -libraries/Cabal_dist-install_HC_OPTS += -O0 diff --git a/mk/flavours/dwarf.mk b/mk/flavours/dwarf.mk deleted file mode 100644 index 15f16e2c37..0000000000 --- a/mk/flavours/dwarf.mk +++ /dev/null @@ -1,14 +0,0 @@ -# Build flavour which produces a compiler, RTS, and core libraries with DWARF -# debug information. For best results run ./configure with -# --enable-dwarf-unwind. - -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O2 -g3 -GhcRtsHcOpts = -O2 -g3 -GhcLibHcOpts = -O2 -g3 -BUILD_PROF_LIBS = YES -#SplitObjs -#HADDOCK_DOCS -#BUILD_SPHINX_HTML -#BUILD_SPHINX_PDF diff --git a/mk/flavours/perf-cross-ncg.mk b/mk/flavours/perf-cross-ncg.mk deleted file mode 100644 index 61db9b5d43..0000000000 --- a/mk/flavours/perf-cross-ncg.mk +++ /dev/null @@ -1,14 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O2 -GhcLibHcOpts = -O2 -BUILD_PROF_LIBS = YES -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO -WITH_TERMINFO = NO - -BIGNUM_BACKEND = native -Stage1Only = YES -DYNAMIC_GHC_PROGRAMS = NO diff --git a/mk/flavours/perf-cross.mk b/mk/flavours/perf-cross.mk deleted file mode 100644 index 7b85cc6979..0000000000 --- a/mk/flavours/perf-cross.mk +++ /dev/null @@ -1,14 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O2 -fllvm -GhcLibHcOpts = -O2 -fllvm -BUILD_PROF_LIBS = YES -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO -WITH_TERMINFO = NO - -BIGNUM_BACKEND = native -Stage1Only = YES -DYNAMIC_GHC_PROGRAMS = NO diff --git a/mk/flavours/perf-llvm.mk b/mk/flavours/perf-llvm.mk deleted file mode 100644 index 2598f4a40d..0000000000 --- a/mk/flavours/perf-llvm.mk +++ /dev/null @@ -1,8 +0,0 @@ -SRC_HC_OPTS = -O -H64m -fllvm -GhcStage1HcOpts = -O -GhcStage2HcOpts = -O2 -GhcLibHcOpts = -O2 -BUILD_PROF_LIBS = YES -#HADDOCK_DOCS -#BUILD_SPHINX_HTML -#BUILD_SPHINX_PDF diff --git a/mk/flavours/perf.mk b/mk/flavours/perf.mk deleted file mode 100644 index ee856626ad..0000000000 --- a/mk/flavours/perf.mk +++ /dev/null @@ -1,8 +0,0 @@ -SRC_HC_OPTS = -O -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O2 -GhcLibHcOpts = -O2 -BUILD_PROF_LIBS = YES -#HADDOCK_DOCS -#BUILD_SPHINX_HTML -#BUILD_SPHINX_PDF diff --git a/mk/flavours/prof-llvm.mk b/mk/flavours/prof-llvm.mk deleted file mode 100644 index 9c284432aa..0000000000 --- a/mk/flavours/prof-llvm.mk +++ /dev/null @@ -1,12 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -fllvm -GhcStage1HcOpts = -O -GhcStage2HcOpts = -O -GhcLibHcOpts = -O -BUILD_PROF_LIBS = YES -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO - -GhcProfiled = YES diff --git a/mk/flavours/prof.mk b/mk/flavours/prof.mk deleted file mode 100644 index 6c4a6baac3..0000000000 --- a/mk/flavours/prof.mk +++ /dev/null @@ -1,11 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O -GhcLibHcOpts = -O -BUILD_PROF_LIBS = YES -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO - -GhcProfiled = YES diff --git a/mk/flavours/quick-cross-ncg.mk b/mk/flavours/quick-cross-ncg.mk deleted file mode 100644 index 748720f01c..0000000000 --- a/mk/flavours/quick-cross-ncg.mk +++ /dev/null @@ -1,15 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO -WITH_TERMINFO = NO - -BIGNUM_BACKEND = native -Stage1Only = YES -DYNAMIC_GHC_PROGRAMS = NO diff --git a/mk/flavours/quick-cross.mk b/mk/flavours/quick-cross.mk deleted file mode 100644 index 4e3f47fd67..0000000000 --- a/mk/flavours/quick-cross.mk +++ /dev/null @@ -1,15 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -GhcStage1HcOpts = -O -GhcStage2HcOpts = -O0 -fllvm -GhcLibHcOpts = -O -fllvm -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO -WITH_TERMINFO = NO - -BIGNUM_BACKEND = native -Stage1Only = YES -DYNAMIC_GHC_PROGRAMS = NO diff --git a/mk/flavours/quick-llvm.mk b/mk/flavours/quick-llvm.mk deleted file mode 100644 index 9869041012..0000000000 --- a/mk/flavours/quick-llvm.mk +++ /dev/null @@ -1,10 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -fllvm -GhcStage1HcOpts = -O -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO diff --git a/mk/flavours/quick.mk b/mk/flavours/quick.mk deleted file mode 100644 index 286cb2ed23..0000000000 --- a/mk/flavours/quick.mk +++ /dev/null @@ -1,10 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO diff --git a/mk/flavours/quickest.mk b/mk/flavours/quickest.mk deleted file mode 100644 index 5583748eb9..0000000000 --- a/mk/flavours/quickest.mk +++ /dev/null @@ -1,10 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -GhcStage1HcOpts = -O2 -GhcStage2HcOpts = -O0 -GhcLibHcOpts = -O0 -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = NO -BUILD_SPHINX_HTML = NO -BUILD_SPHINX_PDF = NO -BUILD_MAN = NO diff --git a/mk/flavours/validate.mk b/mk/flavours/validate.mk deleted file mode 100644 index eddd22fb82..0000000000 --- a/mk/flavours/validate.mk +++ /dev/null @@ -1,56 +0,0 @@ -SRC_HC_OPTS = -O0 -H64m -SRC_HC_OPTS_STAGE1 = -fllvm-fill-undef-with-garbage # See #11487 -GhcStage1HcOpts = -O2 -DDEBUG -GhcStage2HcOpts = -O -dcore-lint -dno-debug-output -GhcLibHcOpts = -O -dcore-lint -dno-debug-output -BUILD_PROF_LIBS = NO -SplitSections = NO -HADDOCK_DOCS = YES -BUILD_SPHINX_HTML ?= YES -BUILD_SPHINX_PDF ?= NO - -ifeq "$(ValidateHpc)" "YES" -GhcStage2HcOpts += -fhpc -hpcdir $(TOP)/testsuite/hpc_output/ -endif - -ifeq "$(ValidateSpeed)" "SLOW" -GhcStage2HcOpts += -DDEBUG -endif - -ifeq "$(ValidateSpeed)" "SLOW" -BUILD_PROF_LIBS = YES -endif - -ifneq "$(ValidateSpeed)" "FAST" -BUILD_EXTRA_PKGS = YES -endif - -WERROR = -Werror - -# Reduce optimisation when building Cabal; this makes a significant difference -# in overall build time. See #16817. -libraries/Cabal_dist-install_HC_OPTS += -O0 - -# DO NOT EDIT THIS FILE! Instead, create a file mk/validate.mk, whose settings -# will override these. See also mk/custom-settings.mk. -# -# -# (Note: these comments are at the end of this file, to make it easier to diff -# this file with other build flavours.) -# -# -# Note [validate build settings] -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Using GhcStage2HcOpts=-O (rather than -O0) here bringes my validate down from -# 22mins to 16 mins. Compiling stage2 takes longer, but we gain a faster -# haddock, faster running of the tests, and faster building of the utils to be -# installed -# -# dblatex with miktex under msys/mingw can't build the PS and PDF docs, -# and just building the HTML docs is sufficient to check that the -# markup is correct, so we turn off PS and PDF doc building when -# validating. -# -# We set BUILD_EXTRA_PKGS=YES to build the "extra" packages (see ./packages), -# so that we can test them. diff --git a/mk/sub-makefile.mk b/mk/sub-makefile.mk deleted file mode 100644 index 73d98c992c..0000000000 --- a/mk/sub-makefile.mk +++ /dev/null @@ -1,67 +0,0 @@ -# This file is included by all the "stub makefiles" in every directory -# in the tree except the root. Its job is to invoke $(MAKE) on the -# top-level Makefile, but modifying the target so that it applies to -# the current directory only. -# -# eg. -# make foo.o ==> make -C $(TOP) dir/foo.o -# make all ==> make -C $(TOP) all_dir -# make clean ==> make -C $(TOP) clean_dir -# - -# Eliminate use of the built-in implicit rules, and clear out the default list -# of suffixes for suffix rules. Speeds up make quite a bit. Both are needed -# for the shortest `make -d` output. -# Don't set --no-builtin-variables; some rules might stop working if you do -# (e.g. 'make clean' in testsuite/ currently relies on an implicit $RM). -MAKEFLAGS += --no-builtin-rules -.SUFFIXES: - -TOPMAKE = $(MAKE) -C $(TOP) - -default: all - -fast: all - -FAST_MAKE_OPTS =\ - $(dir)_dist_NO_BUILD_DEPS=YES \ - $(dir)_dist-boot_NO_BUILD_DEPS=YES \ - $(dir)_dist-install_NO_BUILD_DEPS=YES \ - NO_GENERATED_MAKEFILE_RULES=YES \ - OMIT_PHASE_0=YES OMIT_PHASE_1=YES - -ifneq "$(filter fast,$(MAKECMDGOALS))" "" -EXTRA_MAKE_OPTS += $(FAST_MAKE_OPTS) -else -ifeq "$(FAST)" "YES" -EXTRA_MAKE_OPTS += $(FAST_MAKE_OPTS) -endif -endif - -# We must not execute multiple recursive invocations of make in parallel. -.NOTPARALLEL: - -STD_TARGETS = all clean distclean maintainer_clean install html ps pdf -DIRECTORY_INDEPENDENT_TARGETS = show show! - -# The + tells make that we're recursively invoking make, otherwise 'make -j2' -# goes wrong. -$(STD_TARGETS): - +$(TOPMAKE) $@_$(dir) $(EXTRA_MAKE_OPTS) - -$(DIRECTORY_INDEPENDENT_TARGETS): - +$(TOPMAKE) $@ $(EXTRA_MAKE_OPTS) - -OTHERTARGETS=$(filter-out fast help $(DIRECTORY_INDEPENDENT_TARGETS) $(STD_TARGETS) $(SPEC_TARGETS),$(MAKECMDGOALS)) -.PHONY: $(OTHERTARGETS) -$(OTHERTARGETS): - +$(TOPMAKE) $(dir)/$@ $(EXTRA_MAKE_OPTS) - -.PHONY: help -help : sub-help - -.PHONY: sub-help -sub-help : - @echo "You are in subdirectory \"$(dir)\"." - @echo "Useful targets in this directory:" - @sed '1,/Using `make` in subdirectories/d' $(TOP)/MAKEHELP.md diff --git a/mk/tree.mk b/mk/tree.mk deleted file mode 100644 index a8925d60c3..0000000000 --- a/mk/tree.mk +++ /dev/null @@ -1,73 +0,0 @@ - -################################################################################ -# -# Layout of the source tree -# -################################################################################ - -# Here we provide defines for the various directories in the source tree, -# so we can move things around more easily. A define $(GHC_FOO_DIR) -# indicates a directory relative to the top of the source tree. - -GHC_UTILS_DIR = utils -GHC_RTS_DIR = rts -GHC_DRIVER_DIR = driver - -INPLACE = inplace -INPLACE_BIN = $(INPLACE)/bin -INPLACE_LIB = $(INPLACE)/lib -INPLACE_TOPDIR = $(INPLACE)/lib -INPLACE_MINGW = $(INPLACE)/mingw - -################################################################################ -# -# Bindist testing directory -# -################################################################################ - -# See Note [Spaces in TEST_HC]. -# Directory contains multiple spaces, to test that multiple spaces aren't -# getting collapsed into a single space. -BIN_DIST_INST_SUBDIR = "install dir" -BIN_DIST_INST_DIR = bindisttest/$(BIN_DIST_INST_SUBDIR) - -################################################################################ -# -# rm -# -################################################################################ - -# These are here, rather than in config.mk, as they need to exist in an -# unconfigured tree so that the various clean targets can be used -# without configuring: -ifeq "$(ONLY_SHOW_CLEANS)" "YES" -RM = utils/testremove/wouldrm -RM_OPTS = CLEAN_FILES -RM_OPTS_REC = CLEAN_REC -else -RM = rm -RM_OPTS = -f -RM_OPTS_REC = -rf -endif - -# If $1 is empty then we don't do anything (as "rm -rf" fails on -# Solaris; trac #4916). -# If $1 contains a * then we fail; globbing needs to be done at the call -# site using $(wildcard ...). This makes it a little safer, as it's -# harder to accidentally delete something you didn't mean to. -# Similarly, we fail if any argument contains ".." or starts with a "/". - -removeFiles = $(call removeHelper,removeFiles,"$(RM)",$(RM_OPTS),$1) -removeTrees = $(call removeHelper,removeTrees,"$(RM)",$(RM_OPTS_REC),$1) - -removeHelper = $(if $(strip $4),\ - $(if $(findstring *,$4),\ - $(error $1: Got a star: $4),\ - $(if $(findstring ..,$4),\ - $(error $1: Got dot-dot: $4),\ - $(if $(filter /%,$4),\ - $(error $1: Got leading slash: $4),\ - $2 $3 $4\ - )))\ - ) - diff --git a/mk/validate.mk.sample b/mk/validate.mk.sample deleted file mode 100644 index 83c2c40afd..0000000000 --- a/mk/validate.mk.sample +++ /dev/null @@ -1,4 +0,0 @@ -# These settings override mk/flavours/validate.mk (see -# mk/custom-settings.mk). -#HADDOCK_DOCS = NO -#BUILD_SPHINX_HTML = NO diff --git a/mk/warnings.mk b/mk/warnings.mk deleted file mode 100644 index bdbdc79213..0000000000 --- a/mk/warnings.mk +++ /dev/null @@ -1,155 +0,0 @@ -# See Note [Order of warning flags]. -SRC_CC_OPTS += -Wall $(WERROR) -SRC_HC_OPTS += -Wall -# Don't add -Werror to SRC_HC_OPTS_STAGE0 (or SRC_HC_OPTS), because otherwise -# validate may unnecessarily fail when booting with an older compiler. -# It would be better to only exclude certain warnings from becoming errors -# (e.g. '-Werror -Wno-error=unused-imports -Wno-error=...'), but -Wno-error -# isn't supported yet (https://gitlab.haskell.org/ghc/ghc/wikis/design/warnings). -# -# See Note [Stage number in build variables] in mk/config.mk.in. -SRC_HC_OPTS_STAGE1 += $(WERROR) -SRC_HC_OPTS_STAGE2 += $(WERROR) - -# Enable -Wcpp-undef for GHC components only, as we don't (currently) expect -# core libraries to build in this configuration (see #13636). -GhcRtsHcOpts += -Wcpp-undef -GhcStage1HcOpts += -Wcpp-undef -GhcStage2HcOpts += -Wcpp-undef -Wincomplete-uni-patterns -Wincomplete-record-updates - -ifneq "$(CcLlvmBackend)" "YES" - -# Debian doesn't turn -Werror=unused-but-set-variable on by default, so -# we turn it on explicitly for consistency with other users -# Never set the flag on Windows as the host gcc may be too old. -ifneq "$(HostOS_CPP)" "mingw32" -SRC_CC_WARNING_OPTS += -Werror=unused-but-set-variable -endif - -# Suppress the warning about __sync_fetch_and_nand (#9678). -libraries/ghc-prim/cbits/atomic_CC_OPTS += -Wno-sync-nand -# gcc 4.6 gives 3 warnings for giveCapabilityToTask not being inlined -# gcc 4.4 gives 2 warnings for lockClosure not being inlined -SRC_CC_WARNING_OPTS += -Wno-error=inline - -else - -# Don't warn about unknown GCC pragmas when using clang -SRC_CC_WARNING_OPTS += -Wno-unknown-pragmas - -endif - -SRC_HC_WARNING_OPTS_STAGE1 += -Wnoncanonical-monad-instances -SRC_HC_WARNING_OPTS_STAGE2 += -Wnoncanonical-monad-instances - - -###################################################################### -# Disable some warnings in packages we use - -# NB: The GHC version used for bootstrapping may not support the -# `-W`-aliases for `-f(no-)warn` flags introduced in GHC 8.0, so in -# some cases (watch out for make-variables with a name containing -# "boot") we need to pass the legacy `-f(no-)warn`-flags instead. - -# Libraries that have dubious RULES -libraries/bytestring_dist-install_EXTRA_HC_OPTS += -Wno-inline-rule-shadowing - -# Turn off import warnings for bad unused imports -utils/haddock_dist_EXTRA_HC_OPTS += -Wno-unused-imports -libraries/vector_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports -libraries/directory_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports - -# haddock's attoparsec uses deprecated `inlinePerformIO` -utils/haddock_dist_EXTRA_HC_OPTS += -Wno-deprecations -# binary too -libraries/binary_dist-install_EXTRA_HC_OPTS += -Wno-deprecations - -# On Windows, there are/were some unused import warnings -ifeq "$(HostOS_CPP)" "mingw32" -libraries/time_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports -Wno-identities -endif - -# On Windows, the pattern for CallConv is already exhaustive. Ignore the warning -ifeq "$(HostOS_CPP)" "mingw32" -libraries/ghci_dist-install_EXTRA_HC_OPTS += -Wno-overlapping-patterns -endif - -# haskeline has warnings about deprecated use of block/unblock -libraries/haskeline_dist-install_EXTRA_HC_OPTS += -Wno-deprecations -libraries/haskeline_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports -libraries/haskeline_dist-install_EXTRA_HC_OPTS += -Wno-redundant-constraints -libraries/haskeline_dist-install_EXTRA_HC_OPTS += -Wno-simplifiable-class-constraints - - -# temporarily turn off unused-imports warnings for pretty -libraries/pretty_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports - -# primitive has a warning about deprecated use of GHC.IOBase -libraries/primitive_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports -# primitive uses deprecated Control.Monad.Trans.Error -libraries/primitive_dist-install_EXTRA_HC_OPTS += -Wno-deprecations - -# See https://github.com/haskell/random/pull/20 -libraries/random_dist-install_EXTRA_HC_OPTS += -Wno-redundant-constraints - -# temporarily turn off unused-imports warnings for terminfo -libraries/terminfo_dist-boot_EXTRA_HC_OPTS += -fno-warn-unused-imports -libraries/terminfo_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports - -# vector has some unused match warnings -libraries/vector_dist-install_EXTRA_HC_OPTS += -Wwarn - -# temporarily turn off unused-imports warnings for xhtml -libraries/xhtml_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports -libraries/xhtml_dist-install_EXTRA_HC_OPTS += -Wno-tabs - -libraries/dph/dph-base_dist-install_EXTRA_HC_OPTS += -Wwarn -libraries/dph/dph-prim-interface_dist-install_EXTRA_HC_OPTS += -Wwarn -libraries/dph/dph-prim-seq_dist-install_EXTRA_HC_OPTS += -Wwarn -libraries/dph/dph-prim-par_dist-install_EXTRA_HC_OPTS += -Wwarn -libraries/dph/dph-lifted-common-install_EXTRA_HC_OPTS += -Wwarn - -# transformers has unused function parameters warnings -libraries/transformers_dist-boot_EXTRA_HC_OPTS += -fno-warn-unused-matches -fno-warn-unused-imports -libraries/transformers_dist-install_EXTRA_HC_OPTS += -Wno-unused-matches -Wno-unused-imports -libraries/transformers_dist-install_EXTRA_HC_OPTS += -Wno-redundant-constraints -libraries/transformers_dist-install_EXTRA_HC_OPTS += -Wno-orphans - -# parsec has various warnings -libraries/parsec_dist-install_EXTRA_HC_OPTS += -Wno-name-shadowing -Wno-unused-matches -libraries/parsec_dist-install_EXTRA_HC_OPTS += -Wno-unused-do-bind -Wno-missing-signatures -libraries/parsec_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports -Wno-type-defaults - -# text warns with integer-simple -libraries/text_dist-install_EXTRA_HC_OPTS += -Wno-unused-imports - -# Turn of trustworthy-safe warning -libraries/base_dist-install_EXTRA_HC_OPTS += -Wno-trustworthy-safe -libraries/ghc-prim_dist-install_EXTRA_HC_OPTS += -Wno-trustworthy-safe -libraries/Win32_dist-install_EXTRA_HC_OPTS += -Wno-trustworthy-safe - -# We need -Wno-deprecated-flags to avoid failure with -Werror -GhcLibExtraHcOpts += -Wno-deprecated-flags -GhcBootLibExtraHcOpts += -fno-warn-deprecated-flags - -# Note [Order of warning flags] -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# In distdir-way-opts, build flags are added in the following order (this -# list is not exhaustive): -# -# * SRC_HC_OPTS(_STAGE$4) -# * ghc-options from .cabal files ($1_$2_HC_OPTS) -# * SRC_HC_WARNING_OPTS(_STAGE$4) -# -# Considerations: -# -# * Most .cabal files specify -Wall. But not all, and not all building we -# do relies on .cabal files. So we have to add -Wall ourselves somewhere. -# -# * Some .cabal also specify warning suppression flags. Because -Wall -# overrides any warning suppression flags that come before it, we have to -# make sure -Wall comes before any warning suppression flags. So we add it -# to SRC_HC_OPTS. -# -# * Similarly, our own warning suppression should come after the -Wall from -# the .cabal files, so we do *not* add them to SRC_HC_OPTS. diff --git a/mk/ways.mk b/mk/ways.mk deleted file mode 100644 index 53f900f80e..0000000000 --- a/mk/ways.mk +++ /dev/null @@ -1,105 +0,0 @@ -# -# Options for compiling in different `ways'. -# -# To configure up your own way, have a look at some of the standard ways -# such as profiling, and create your own set of WAY_*_OPTS defs below. -# After having done that, add your way string to WAYS, and after having -# run the configure script, the different projects will add the new way -# to the list of ways they support. -# - -# -# Definitions of the different ways: -# -# * their name: -# - tag, e.g., p -# - description, e.g., profiling -# * what they mean to the driver: -# - WAY_p_HC_OPTS gives the list of command-line options -# to the driver. -# -# For consistency, the way name should be formed from the tags in the following -# order (the same ordering defined in DynFlags.Way), -# -# - thr: threaded -# - debug: debugging -# - p: profiled -# - dyn: dynamically-linked - -# -# The ways currently defined. -# -ALL_WAYS=v debug dyn thr p_dyn p debug_dyn thr_dyn thr_p_dyn thr_debug_dyn thr_debug debug_p thr_debug_p thr_p - -# -# The following ways currently are treated specially, -# as the driver script treats these guys specially and needs to carefully be told -# about the options for these. Hence, we hide the required command line options -# for these in the driver, as this is the only place they are needed. -# -# If you want to add to these default options, fill in the variables below: - -# Way 'v': -WAY_v_NAME=vanilla -WAY_v_HC_OPTS= -static - -# Way 'p': -WAY_p_NAME=profiling -WAY_p_HC_OPTS= -static -prof - -# -# These ways apply to the RTS only: -# - -# Way 'thr': -WAY_thr_NAME=threaded -WAY_thr_HC_OPTS= -static -optc-DTHREADED_RTS - -# Way 'thr_p': -WAY_thr_p_NAME=threaded profiling -WAY_thr_p_HC_OPTS= -static -prof -optc-DTHREADED_RTS - -# Way 'debug': -WAY_debug_NAME=debug -WAY_debug_HC_OPTS= -static -optc-DDEBUG -ticky -DTICKY_TICKY -optc-DTICKY_TICKY - -# Way 'debug_p': -WAY_debug_p_NAME=debug profiled -WAY_debug_p_HC_OPTS= -static -optc-DDEBUG -prof - -# Way 'p': -WAY_p_NAME=profiling -WAY_p_HC_OPTS= -static -prof - -# Way 'thr_debug': -WAY_thr_debug_NAME=threaded debug -WAY_thr_debug_HC_OPTS= -static -optc-DTHREADED_RTS -optc-DDEBUG - -# Way 'thr_debug_p': -WAY_thr_debug_p_NAME=threaded debug profiling -WAY_thr_debug_p_HC_OPTS= -static -optc-DTHREADED_RTS -optc-DDEBUG -prof - -# Way 'dyn': build dynamic shared libraries -WAY_dyn_NAME=dyn -WAY_dyn_HC_OPTS=-fPIC -dynamic - -# Way 'p_dyn': -WAY_p_dyn_NAME=p_dyn -WAY_p_dyn_HC_OPTS=-fPIC -dynamic -prof - -# Way 'thr_p_dyn': -WAY_thr_p_dyn_NAME=thr_p_dyn -WAY_thr_p_dyn_HC_OPTS=-fPIC -dynamic -prof -optc-DTHREADED_RTS - -# Way 'thr_dyn': -WAY_thr_dyn_NAME=thr_dyn -WAY_thr_dyn_HC_OPTS=-fPIC -dynamic -optc-DTHREADED_RTS - -# Way 'thr_debug_dyn': -WAY_thr_debug_dyn_NAME=thr_debug_dyn -WAY_thr_debug_dyn_HC_OPTS=-fPIC -dynamic -optc-DTHREADED_RTS -optc-DDEBUG - -# Way 'debug_dyn': -WAY_debug_dyn_NAME=debug_dyn -WAY_debug_dyn_HC_OPTS=-fPIC -dynamic -optc-DDEBUG -ticky -DTICKY_TICKY -optc-DTICKY_TICKY - |