Skip to content

Conversation

angerman
Copy link

This commit introduces a comprehensive cabal-based build infrastructure to support multi-target and cross-compilation scenarios for GHC. The new build system provides a clean separation between different build stages and better modularity for toolchain components.

Key changes:

  • Add Makefile with stage1, stage2, and stage3 build targets
  • Create separate cabal.project files for each build stage
  • Update configure.ac for new build system requirements
  • Adapt hie.yaml to support cabal-based builds
  • Update GitHub CI workflow for new build process

Build stages explained:

  • Stage 1: Bootstrap compiler built with system GHC
  • Stage 2: Intermediate compiler built with Stage 1
  • Stage 3: Final compiler built with Stage 2 (for validation)

This modular approach enables:

  • Clean cross-compilation support
  • Better dependency management
  • Simplified build process for different targets
  • Improved build reproducibility

Contributors:

  • Andrea Bedini: Build system design and Makefile implementation
  • Moritz Angermann: Cross-compilation infrastructure

The new build system maintains compatibility with existing workflows while providing a more maintainable foundation for future enhancements.

@angerman angerman mentioned this pull request Sep 10, 2025
@angerman angerman force-pushed the wip/angerman/new-build-system branch from 529e9e8 to bcbe8c7 Compare September 10, 2025 06:45
This commit introduces a comprehensive cabal-based build infrastructure
to support multi-target and cross-compilation scenarios for GHC. The new
build system provides a clean separation between different build stages
and better modularity for toolchain components.

Key changes:
- Add Makefile with stage1, stage2, and stage3 build targets
- Create separate cabal.project files for each build stage
- Update configure.ac for new build system requirements
- Adapt hie.yaml to support cabal-based builds
- Update GitHub CI workflow for new build process

Build stages explained:
- Stage 1: Bootstrap compiler built with system GHC
- Stage 2: Intermediate compiler built with Stage 1
- Stage 3: Final compiler built with Stage 2 (for validation)

This modular approach enables:
- Clean cross-compilation support
- Better dependency management
- Simplified build process for different targets
- Improved build reproducibility

Contributors:
- Andrea Bedini: Build system design and Makefile implementation
- Moritz Angermann: Cross-compilation infrastructure

The new build system maintains compatibility with existing workflows
while providing a more maintainable foundation for future enhancements.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants