mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-10 05:39:31 +03:00
41 lines
1.7 KiB
Markdown
41 lines
1.7 KiB
Markdown
# Make
|
|
|
|
A Makefile is provided to make common developer tasks easy to remember,
|
|
and to insulate us a little from the ever-evolving Haskell tools ecosystem.
|
|
Using it is entirely optional, but recommended.
|
|
You'll need [GNU Make](https://www.gnu.org/software/make) installed.
|
|
|
|
The Makefile contains a fair amount of obsolete cruft and needs cleanup. Some tasks (docs, website) are now handled by the [Shake](#shake) file instead.
|
|
|
|
The Makefile is self-documenting. Run `make` to see a list of the main make rules:
|
|
|
|
```shell
|
|
$ make
|
|
Makefile:37: -------------------- hledger make rules --------------------
|
|
Makefile:39: make [help] -- list documented rules in this makefile. make -n RULE shows more detail.
|
|
Makefile:204: (INSTALLING:)
|
|
Makefile:206: make install -- download dependencies and install hledger executables to ~/.local/bin or equivalent (with stack)
|
|
Makefile:231: (BUILDING:)
|
|
Makefile:235: make build -- download dependencies and build hledger executables (with stack)
|
|
Makefile:304: make hledgerdev -- quickly build the hledger executable (with ghc and -DDEVELOPMENT)
|
|
...
|
|
```
|
|
|
|
To see what a make rule will do without actually doing it, use the `-n` flag:
|
|
|
|
```shell
|
|
$ make build -n
|
|
stack build
|
|
```
|
|
```shell
|
|
$ make test -n
|
|
(stack test \
|
|
&& echo pkgtest PASSED) || echo pkgtest FAILED
|
|
(stack exec hledger test \
|
|
&& echo builtintest PASSED) || echo builtintest FAILED
|
|
(COLUMNS=80 PATH=`pwd`/bin:/home/simon/src/hledger/bin:/home/simon/.local/bin:/home/simon/.cabal/bin:/opt/ghc/7.10.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/var/lib/gems/1.9.1/bin stack exec -- shelltest --execdir -- -j16 --hide-successes tests \
|
|
&& echo functest PASSED) || echo functest FAILED
|
|
```
|
|
|
|
|