Skip to content

Commit 3256923

Browse files
committed
Update
1 parent 1fb4fa2 commit 3256923

File tree

3 files changed

+32
-18
lines changed

3 files changed

+32
-18
lines changed

.github/workflows/ci.yml

+2-5
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,10 @@ jobs:
7070
dist-newstyle
7171
7272
- name: Build patched cabal
73-
run: |
74-
cabal build --project-dir libraries/Cabal cabal-install:exe:cabal
75-
CABAL=$(cabal list-bin -v0 --project-dir libraries/Cabal cabal-install:exe:cabal)
76-
echo "CABAL=${CABAL}" >> $GITHUB_ENV
73+
run: make cabal
7774

7875
- name: Build stage1
79-
run: ${CABAL} build --project-file cabal.project.stage0 ghc-bin:exe:ghc
76+
run: make stage1-ghc
8077

8178
- name: Save GHCup cache
8279
uses: actions/cache/save@v4

Makefile

+30-13
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,45 @@ SHELL := bash
55
MAKEFLAGS += --warn-undefined-variables
66
MAKEFLAGS += --no-builtin-rules
77

8-
export CABAL := $(shell cabal list-bin -v0 --project-dir libraries/Cabal cabal-install:exe:cabal)
9-
export CABAL_ARGS_STAGE1 =--project-file cabal.project.stage1
10-
export GHC_STAGE1 := $(shell cabal list-bin -v0 $(CABAL_ARGS_STAGE1) ghc-bin:exe:ghc)
8+
GHC ?= ghc
9+
GHC_VERSION=$(shell $(GHC) --numeric-version)
1110

12-
all: $(GHC_STAGE1)
11+
STAGE ?= stage1
12+
13+
BUILD_DIR = _build/$(STAGE)/build
14+
STORE_DIR = _build/$(STAGE)/store
15+
16+
GHC = _build/$(STAGE)/bin/ghc
17+
18+
CABAL := _build/cabal/bin/cabal
19+
20+
.PHONY: all
21+
all: stage1-ghc
1322

1423
cabal: $(CABAL)
15-
24+
1625
$(CABAL):
17-
cabal build --project-dir libraries/Cabal cabal-install:exe:cabal
26+
echo "Building cabal for $(STAGE)"
27+
mkdir -p $(@D)
28+
cabal build --builddir $(abspath _build/cabal/build) --project-dir libraries/Cabal cabal-install:exe:cabal
29+
BIN=$$(cabal list-bin -v0 --builddir $(abspath _build/cabal/build) --project-dir libraries/Cabal cabal-install:exe:cabal)
30+
ln -svf $$BIN $@
1831

19-
CONFIG_SCRIPTS := $(wildcard libraries/*/configure.ac)
32+
all-config-scripts: $(CONFIG_SCRIPTS)
2033

21-
$(CONFIG_SCRIPTS:%.ac=%) : % : %.ac
34+
CONFIG_SCRIPTS := $(patsubst %.ac,%,$(wildcard libraries/*/configure.ac))
35+
36+
$(CONFIG_SCRIPTS) : % : %.ac
2237
autoreconf -i -f $(@D)
2338

24-
$(GHC_STAGE1): $(CABAL) $(CONFIG_SCRIPTS)
25-
$(CABAL) build $(CABAL_ARGS_STAGE1) ghc-bin:exe:ghc
39+
stage1-ghc: STAGE=stage1
40+
stage1-ghc: $(GHC)
41+
42+
$(GHC): $(CABAL) $(CONFIG_SCRIPTS)
43+
echo "Building GHC ($(GHC)) for $(STAGE)"
44+
mkdir -p $(@D)
45+
$(CABAL) --store-dir $(STORE_DIR) build --builddir $(BUILD_DIR) --project-file cabal.project.$(STAGE) ghc-bin:exe:ghc
2646

2747
clean:
2848
rm -rf _build
29-
30-
clean-submodules:
3149
git submodule foreach git clean -dxf
32-
File renamed without changes.

0 commit comments

Comments
 (0)