"make heap" and "make coverage" rules, the latter untested
This commit is contained in:
		
							parent
							
								
									8c008072d6
								
							
						
					
					
						commit
						7dafeb9bd1
					
				
							
								
								
									
										24
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								Makefile
									
									
									
									
									
								
							| @ -22,6 +22,9 @@ BENCHEXES=hledger-0.4 hledger-0.5 ledger | |||||||
| # command to run during profiling
 | # command to run during profiling
 | ||||||
| PROFCMD=-f 1000x1000x10.ledger balance | PROFCMD=-f 1000x1000x10.ledger balance | ||||||
| 
 | 
 | ||||||
|  | # command to view postscript output
 | ||||||
|  | VIEWPSCMD=open | ||||||
|  | 
 | ||||||
| default: tag hledger | default: tag hledger | ||||||
| 
 | 
 | ||||||
| ######################################################################
 | ######################################################################
 | ||||||
| @ -36,6 +39,10 @@ hledger: setversion | |||||||
| hledgerp: setversion | hledgerp: setversion | ||||||
| 	ghc --make hledger.hs -prof -auto-all -o hledgerp #$(BUILDFLAGS)  | 	ghc --make hledger.hs -prof -auto-all -o hledgerp #$(BUILDFLAGS)  | ||||||
| 
 | 
 | ||||||
|  | # build the coverage-enabled binary (untested)
 | ||||||
|  | hledgercov: setversion | ||||||
|  | 	ghc --make hledger.hs -hpc -o hledgercov $(BUILDFLAGS)  | ||||||
|  | 
 | ||||||
| # build the fastest binary we can
 | # build the fastest binary we can
 | ||||||
| hledgeropt: setversion | hledgeropt: setversion | ||||||
| 	ghc --make hledger.hs -o hledgeropt -O2 -fvia-C $(BUILDFLAGS) | 	ghc --make hledger.hs -o hledgeropt -O2 -fvia-C $(BUILDFLAGS) | ||||||
| @ -63,7 +70,7 @@ generateledger: tools/generateledger.hs | |||||||
| ghci: | ghci: | ||||||
| 	ghci hledger.hs | 	ghci hledger.hs | ||||||
| 
 | 
 | ||||||
| # generate a standard profile, save in profs/ and display
 | # generate, save and display a standard profile
 | ||||||
| prof: sampleledgers hledgerp | prof: sampleledgers hledgerp | ||||||
| 	@echo "Profiling $(PROFCMD)" | 	@echo "Profiling $(PROFCMD)" | ||||||
| 	./hledgerp +RTS -p -RTS $(PROFCMD) >/dev/null | 	./hledgerp +RTS -p -RTS $(PROFCMD) >/dev/null | ||||||
| @ -72,6 +79,21 @@ prof: sampleledgers hledgerp | |||||||
| 	(cd profs; rm -f latest*.prof; ln -s $(TIME)-orig.prof latest-orig.prof; ln -s $(TIME).prof latest.prof) | 	(cd profs; rm -f latest*.prof; ln -s $(TIME)-orig.prof latest-orig.prof; ln -s $(TIME).prof latest.prof) | ||||||
| 	echo; cat profs/latest.prof | 	echo; cat profs/latest.prof | ||||||
| 
 | 
 | ||||||
|  | # generate, save and display a graphical heap profile
 | ||||||
|  | heap: sampleledgers hledgerp | ||||||
|  | 	@echo "Profiling heap with $(PROFCMD)" | ||||||
|  | 	./hledgerp +RTS -hc -RTS $(PROFCMD) >/dev/null | ||||||
|  | 	mv hledgerp.hp profs/$(TIME).hp | ||||||
|  | 	(cd profs; rm -f latest.hp; ln -s $(TIME).hp latest.hp; \
 | ||||||
|  | 		hp2ps $(TIME).hp; rm -f latest.ps; ln -s $(TIME).ps latest.ps) | ||||||
|  | 	$(VIEWPSCMD) profs/latest.ps | ||||||
|  | 
 | ||||||
|  | # generate, save and display a code coverage report (untested)
 | ||||||
|  | coverage: sampleledgers hledgercov | ||||||
|  | 	@echo "Generating coverage report with $(PROFCMD)" | ||||||
|  | 	./hledgercov $(PROFCMD) >/dev/null | ||||||
|  | 	hpc report hledgercov | ||||||
|  | 	#hpc markup hledgercov | ||||||
| 
 | 
 | ||||||
| ######################################################################
 | ######################################################################
 | ||||||
| # TESTING
 | # TESTING
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user