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 /boot | |
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 'boot')
-rwxr-xr-x | boot | 83 |
1 files changed, 0 insertions, 83 deletions
@@ -56,70 +56,6 @@ def check_boot_packages(): Maybe you haven't run 'git submodule update --init'? """ % license_path) -# Create libraries/*/{ghc.mk,GNUmakefile} -def boot_pkgs(): - library_dirs = [] - - for package in glob.glob("libraries/*/"): - packages_file = os.path.join(package, 'ghc-packages') - print(package) - if os.path.isfile(packages_file): - for subpkg in open(packages_file, 'r'): - library_dirs.append(os.path.join(package, subpkg.strip())) - elif package in EXCEPTIONS: - library_dirs.append(EXCEPTIONS[package]) - else: - library_dirs.append(package) - - for package in library_dirs: - if package[-1] == '/': - # drop trailing '/' - package = package[:-1] - - dir_ = os.path.relpath(package, 'libraries') - cabals = glob.glob(os.path.join(package, '*.cabal.in')) - if len(cabals) == 0: - cabals = glob.glob(os.path.join(package, '*.cabal')) - - if len(cabals) > 1: - die('Too many .cabal files in %s' % package) - elif len(cabals) == 1: - cabal = cabals[0] - - if os.path.isfile(cabal): - # strip both .cabal and .in - pkg = os.path.splitext(os.path.splitext(os.path.basename(cabal))[0])[0] - top = os.path.join(*['..'] * len(os.path.normpath(package).split(os.path.sep))) - - ghc_mk = os.path.join(package, 'ghc.mk') - if os.path.exists(ghc_mk): - print('Skipping %s which already exists' % ghc_mk) - continue - print('Creating %s' % ghc_mk) - with open(ghc_mk, 'w') as f: - f.write(dedent( - """\ - {package}_PACKAGE = {pkg} - {package}_dist-install_GROUP = libraries - $(if $(filter {dir},$(PACKAGES_STAGE0)),$(eval $(call build-package,{package},dist-boot,0))) - $(if $(filter {dir},$(PACKAGES_STAGE1)),$(eval $(call build-package,{package},dist-install,1))) - $(if $(filter {dir},$(PACKAGES_STAGE2)),$(eval $(call build-package,{package},dist-install,2))) - """.format(package = package, - pkg = pkg, - dir = dir_))) - - makefile = os.path.join(package, 'GNUmakefile') - with open(makefile, 'w') as f: - f.write(dedent( - """\ - dir = {package} - TOP = {top} - include $(TOP)/mk/sub-makefile.mk - FAST_MAKE_OPTS += stage=0 - """.format(package = package, top = top) - )) - - def autoreconf(): # Run autoreconf on everything that needs it. processes = {} @@ -154,24 +90,5 @@ def autoreconf(): if fail: sys.exit(1) -def check_build_mk(): - if not args.validate and not os.path.isfile("mk/build.mk"): - print(dedent( - """ - WARNING: You don't have a mk/build.mk file. - - By default a standard GHC build will be done, which uses optimisation - and builds the profiling libraries. This will take a long time, so may - not be what you want if you are developing GHC or the libraries, rather - than simply building it to use it. - - For information on creating a mk/build.mk file, please see: - https://gitlab.haskell.org/ghc/ghc/wikis/building/using#build-configuration - """)) - check_boot_packages() -if not args.hadrian: - boot_pkgs() autoreconf() -if not args.hadrian: - check_build_mk() |