Makefile now works with: global runghc, stack-only runghc, and falls back to shell script.

This commit is contained in:
John J. Camilleri
2020-11-27 00:47:09 +01:00
parent 9594ee9cf2
commit 2f3146441b
2 changed files with 34 additions and 13 deletions

View File

@@ -1,16 +1,32 @@
# A simple wrapper over the Haskell-based RGL build script
# A wrapper over the Haskell and Bash build scripts
# Will try and fallback in order:
# - runghc Setup.hs
# - stack runghc Setup.hs
# - ./Setup.sh
RUNMAKE=runghc Setup.hs
ifneq (, $(shell which runghc))
RUNGHC=runghc Setup.hs
else ifneq (, $(shell which stack))
RUNGHC=stack runghc Setup.hs
else
RUNGHC=
endif
.PHONY: build copy install doc clean
default: build copy
build: src/*/*.gf
$(RUNMAKE) build
ifneq (, $(RUNGHC))
$(RUNGHC) build
else
./Setup.sh
endif
copy:
$(RUNMAKE) copy
ifneq (, $(RUNGHC))
$(RUNGHC) copy
endif
install: build copy
@@ -18,4 +34,8 @@ doc: build
make -C doc GF_LIB_PATH=../dist
clean:
$(RUNMAKE) clean
ifneq (, $(RUNGHC))
$(RUNGHC) clean
else
rm -r dist
endif

View File

@@ -47,12 +47,7 @@ This file should be kept up-to-date and all build methods should read this confi
If default is `y` then anything other than `n`, including the empty string, is treated as true (and vice versa when default is `n`).
## Haskell script: `Setup.hs`
This build method gives you most options.
You will need Haskell installed on your system.
### Basic
## Using Make
If you have `Make` installed and don't care about advanced settings,
you can compile the RGL and install it to the default location with:
@@ -64,9 +59,15 @@ make install
This is the same as `make build` followed by `make copy`.
There is also `make clean` available.
### Advanced
The Makefile will try to use the Haskell install script,
falling back to the shell script if you do not have Haskell installed.
For more fine-grained control over the build process, you can run the build script directly:
## Haskell script: `Setup.hs`
This build method gives you most options.
You will need Haskell installed on your system.
Run the build script with:
```
runghc Setup.hs ...