Remove make-based build system
I couldn't find an issue tracking the removal of the make
-based build system, so here it is.
If you are still using it, why? Are there still things unsupported by Hadrian?
What needs to be supported/done according to the answers:
-
reuse validate
build artifacts:sh validate --no-clean
and thenmake TEST=T2324 WAY=normal stage=1
-
cwd-aware Hadrian (#16667, !999) -
link with a modified RTS without recompiling. Tamar's use cases: - out-of-tree RTS: relink the stage=2 compiler with a different RTS without recompiling (especially without recompiling Hadrian):
make re2 GhcDebugged=YES -j11 -C \~/ghc/ghc/
- in-tree RTS: build stage2 ghc; modify RTS;
build stage2:lib:rts
; how to link current stage2:ghc-bin artifacts against latest RTS? "build stage2:exe:ghc-bin
sounds like it'll build the transitive dependencies as well. In which casebase
will get rebuilt followed by the entire stage=2 compiler again."
- out-of-tree RTS: relink the stage=2 compiler with a different RTS without recompiling (especially without recompiling Hadrian):
-
only recreate a single file: make stage=2 -W libraries/Win32/dist-install/build/System/Win32/Info/Computer.o && make re2 \~/ghc/ghc/
-
introspection (#17637) -
query the build system to check what dependencies a file has: make stage=2 -n -W rts/linker/CacheFlush.c
-
Ask the build system how a particular file was created: make stage=2 -n libraries/Win32/dist-install/build/System/Win32/Info/Computer.o
-
-
Docs: Put the documentation from Hadrian's github wiki in the tree (#16165 (closed)) -
Docs: Up to date documentation (especially transition from the legacy build system)