127 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| # Binaries
 | |
| ECHO=echo
 | |
| KODEV=kodev
 | |
| MKDIR=mkdir -p
 | |
| COPY=cp
 | |
| RM=rm -f
 | |
| SPP=spp
 | |
| CD=cd
 | |
| AWK=awk
 | |
| GREP=grep
 | |
| SORT=sort
 | |
| 
 | |
| # Config
 | |
| chroot_dir=kore_chroot/
 | |
| mirror=http://dl-cdn.alpinelinux.org/alpine/
 | |
| arch=aarch64
 | |
| version=2.10.5-r0
 | |
| certbot_email=--register-unsafely-without-email
 | |
| #certbot_email=-m you@cock.li
 | |
| user=robin
 | |
| port=8888
 | |
| domain=test.monster:$(port)
 | |
| 
 | |
| SPPFLAGS=-D port=$(port) -D kore_chroot=$(chroot_dir) -D chuser=$(user) -D domain=$(domain)
 | |
| # squelch prints, flip to print verbose information
 | |
| Q=@
 | |
| #Q= 
 | |
| 
 | |
| # Probably don't change stuff past here if you're just using smr
 | |
| lua_in_files=$(shell find src/lua/*.in -type f)
 | |
| lua_files=$(shell find src/lua/*.lua -type f) $(shell find src/lua/endpoints -type f) $(lua_in_files:%.in=%)
 | |
| src_files=$(shell find src -type f) $(shell find conf -type f)
 | |
| sql_files=$(shell find src/sql -type f)
 | |
| test_files=$(shell find spec -type f)
 | |
| built_tests=$(test_files:%=$(chroot_dir)%)
 | |
| built_files=$(lua_files:src/lua/%.lua=$(chroot_dir)%.lua)
 | |
| in_page_files=$(shell find src/pages/*.in -type f)
 | |
| in_part_files=$(shell find src/pages/parts/*.in -type f)
 | |
| page_files=$(in_page_files:%.in=%)
 | |
| part_files=$(in_part_files:%.in=%) $(shell find src/pages/parts/*.etlua -type f)
 | |
| built_pages=$(page_files:src/pages/%.etlua=$(chroot_dir)pages/%.etlua)
 | |
| built_sql=$(sql_files:src/sql/%.sql=$(chroot_dir)sql/%.sql)
 | |
| built=$(built_files) $(built_sql) $(built_pages) $(built_tests)
 | |
| asset_in_files=$(wildcard assets/*.in -type f)
 | |
| asset_files=$(asset_in_files:%.in=%)
 | |
| 
 | |
| help: ## Print this help
 | |
| 	$(Q)$(GREP) -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | $(SORT) | $(AWK) 'BEGIN {FS = ":.*?## "}; {printf "%-30s %s\n", $$1, $$2}'
 | |
| 
 | |
| all: $(chroot_dir) smr.so $(built_files) $(built_pages) $(built_sql) ## Build and run smr in a chroot
 | |
| 	$(Q)$(ECHO) "[running] $@"
 | |
| 	$(Q)$(KODEV) run
 | |
| 
 | |
| conf/smr.conf : conf/smr.conf.in Makefile
 | |
| 	$(Q)$(ECHO) "[preprocess] $@"
 | |
| 	$(Q)$(SPP) -o $@ $(SPPFLAGS) $<
 | |
| 
 | |
| apk-tools-static-$(version).apk:
 | |
| 	# wget -q $(mirror)latest-stable/main/$(arch)/apk-tools-static-$(version).apk
 | |
| 
 | |
| clean: ## clean up all the files generated by this makefile
 | |
| 	$(Q)$(ECHO) "[clean] $@"
 | |
| 	$(Q)$(KODEV) clean
 | |
| 	$(Q)$(RM) $(page_files)
 | |
| 	$(Q)$(RM) conf/smr.conf
 | |
| 	$(Q)$(RM) src/pages/parts/story_breif.etlua
 | |
| 	$(Q)$(RM) src/lua/config.lua
 | |
| 	$(Q)$(RM) $(asset_files)
 | |
| 
 | |
| cloc: ## calculate source lines of code in smr
 | |
| 	cloc --force-lang="HTML",etlua.in src assets
 | |
| 
 | |
| $(chroot_dir): apk-tools-static-$(version).apk
 | |
| 	$(Q)$(MKDIR) $(chroot_dir)
 | |
| 	$(Q)$(MKDIR) $(chroot_dir)/pages
 | |
| 	$(Q)$(MKDIR) $(chroot_dir)/sql
 | |
| 	$(Q)$(MKDIR) $(chroot_dir)/data
 | |
| 	$(Q)$(MKDIR) $(chroot_dir)/data/archive
 | |
| 	$(Q)$(MKDIR) $(chroot_dir)/endpoints
 | |
| 
 | |
| code : $(built_files)
 | |
| 
 | |
| $(built_files): $(chroot_dir)%.lua : src/lua/%.lua
 | |
| 	$(Q)$(ECHO) "[copy] $@"
 | |
| 	$(Q)$(COPY) $^ $@
 | |
| 
 | |
| $(built_pages): $(chroot_dir)pages/%.etlua : src/pages/%.etlua
 | |
| 	$(Q)$(ECHO) "[copy] $@"
 | |
| 	$(Q)$(COPY) $^ $@
 | |
| 
 | |
| src/lua/config.lua : src/lua/config.lua.in Makefile
 | |
| 	$(Q)$(ECHO) "[preprocess] $@"
 | |
| 	$(Q)$(SPP) $(SPPFLAGS) -o $@ $<
 | |
| 
 | |
| $(page_files) : % : %.in $(part_files)
 | |
| 	$(Q)$(ECHO) "[preprocess] $@"
 | |
| 	$(Q)$(SPP) $(SPPFLAGS) -o $@ $<
 | |
| 
 | |
| src/pages/parts/story_breif.etlua : src/pages/parts/story_breif.etlua.in
 | |
| 	$(Q)$(ECHO) "[preprocess] $@"
 | |
| 	$(Q)$(SPP) $(SPPFLAGS) -o $@ $<
 | |
| 
 | |
| $(built_sql): $(chroot_dir)sql/%.sql : src/sql/%.sql
 | |
| 	$(Q)$(ECHO) "[copy] $@"
 | |
| 	$(Q)$(COPY) $^ $@
 | |
| 
 | |
| $(built_tests) : $(chroot_dir)% : %
 | |
| 	$(Q)$(ECHO) "[copy] $@"
 | |
| 	$(Q)$(COPY) $^ $@
 | |
| 
 | |
| $(asset_files) : % : %.in
 | |
| 	$(Q)$(ECHO) "[preprocess] $@"
 | |
| 	$(Q)$(SPP) $(SPPFLAGS) -o $@ $<
 | |
| 
 | |
| smr.so : $(src_files) conf/smr.conf conf/build.conf $(asset_files)
 | |
| 	$(Q)$(ECHO) "[build] $@"
 | |
| 	$(Q)$(KODEV) build
 | |
| 
 | |
| test : $(built) ## run the unit tests
 | |
| 	$(Q)$(CD) kore_chroot && busted -v --no-keep-going #--exclude-tags slow
 | |
| 
 | |
| cov : $(built) ## code coverage (based on unit tests)
 | |
| 	$(Q)$(RM) kore_chroot/luacov.stats.out
 | |
| 	$(Q)$(CD) kore_chroot && busted -v -c --no-keep-going #--exclude-tags slow
 | |
| 	$(Q)$(CD) kore_chroot && luacov endpoints/
 | |
| 	$(Q)$(ECHO) "open kore_chroot/luacov.report.out to view coverage results."
 |