forked from GitHub/gf-rgl
Makefile now works with: global runghc, stack-only runghc, and falls back to shell script.
This commit is contained in:
30
Makefile
30
Makefile
@@ -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
|
.PHONY: build copy install doc clean
|
||||||
|
|
||||||
default: build copy
|
default: build copy
|
||||||
|
|
||||||
build: src/*/*.gf
|
build: src/*/*.gf
|
||||||
$(RUNMAKE) build
|
ifneq (, $(RUNGHC))
|
||||||
|
$(RUNGHC) build
|
||||||
|
else
|
||||||
|
./Setup.sh
|
||||||
|
endif
|
||||||
|
|
||||||
copy:
|
copy:
|
||||||
$(RUNMAKE) copy
|
ifneq (, $(RUNGHC))
|
||||||
|
$(RUNGHC) copy
|
||||||
|
endif
|
||||||
|
|
||||||
install: build copy
|
install: build copy
|
||||||
|
|
||||||
@@ -18,4 +34,8 @@ doc: build
|
|||||||
make -C doc GF_LIB_PATH=../dist
|
make -C doc GF_LIB_PATH=../dist
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RUNMAKE) clean
|
ifneq (, $(RUNGHC))
|
||||||
|
$(RUNGHC) clean
|
||||||
|
else
|
||||||
|
rm -r dist
|
||||||
|
endif
|
||||||
|
|||||||
17
README.md
17
README.md
@@ -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`).
|
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`
|
## Using Make
|
||||||
|
|
||||||
This build method gives you most options.
|
|
||||||
You will need Haskell installed on your system.
|
|
||||||
|
|
||||||
### Basic
|
|
||||||
|
|
||||||
If you have `Make` installed and don't care about advanced settings,
|
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:
|
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`.
|
This is the same as `make build` followed by `make copy`.
|
||||||
There is also `make clean` available.
|
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 ...
|
runghc Setup.hs ...
|
||||||
|
|||||||
Reference in New Issue
Block a user