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
 | |
| ```
 | |
| 
 | |
| 
 |