pthbs

Packaging Through Hashed Build Scripts
git clone https://ccx.te2000.cz/git/pthbs
Log | Files | Refs | Submodules | README

pthbs.mk (1573B)


      1 # default to homedir if not root
      2 versions?=$(patsubst /root/%,/%,$(HOME)/versions)
      3 pthbs?=.
      4 packages?=packages
      5 work?=work
      6 cache?=cache
      7 index?=index
      8 
      9 export PATH:=$(abspath $(pthbs))/command:$(PATH)
     10 export pthbs_versions:=$(versions)
     11 export pthbs_pkgdir:=$(abspath $(packages))
     12 export pthbs_workdir:=$(abspath $(work))
     13 export pthbs_indexdir:=$(abspath $(index))
     14 export pthbs_cache:=$(abspath $(cache))
     15 export pthbs_source:=$(abspath $(pthbs))
     16 
     17 no_default:
     18 	@echo "pthbs has no default target to build"
     19 
     20 .PHONY: check
     21 check:
     22 	'$(pthbs_source)/util/verify-external-resources'
     23 
     24 $(versions)/environment.%/.env:
     25 	@echo mkdir "$$(dirname '$@')"
     26 	@echo touch '$@'
     27 
     28 
     29 %/.exists:
     30 	mkdir -p '$*'
     31 	touch '$@'
     32 
     33 
     34 $(cache)/link/file-%/.local: $(index)/filelist.% $(cache)/link/file-%/.exists
     35 	pthbs-link-from-index '$(cache)/link/file-$*/' '$(index)/filelist.$*'
     36 
     37 $(cache)/link/git-commit-%/.local: $(index)/commitlist.% $(cache)/link/git-commit-%/.exists
     38 	pthbs-link-from-index '$(cache)/link/git-commit-$*/' '$(index)/commitlist.$*'
     39 
     40 $(cache)/make/package.%.mk: $(packages)/% $(cache)/make/.exists $(pthbs)/command/pthbs-makegen
     41 	pthbs-makegen '$(packages)/$*' >'$@.new'
     42 	mv '$@.new' '$@'
     43 
     44 $(cache)/make/downloads.%.mk: downloadlist.% $(cache)/make/.exists $(pthbs)/command/pthbs-makegen-downloads
     45 	pthbs-makegen-downloads '$*' 'downloadlist.$*' >'$@.new'
     46 	mv '$@.new' '$@'
     47 
     48 include $(cache)/make/downloads.sha256.mk
     49 
     50 pkg_files=$(wildcard $(packages)/*)
     51 #env_files=$(wildcard environments/*)
     52 mk_files=$(patsubst $(packages)/%,$(cache)/make/package.%.mk,$(pkg_files))
     53 include $(mk_files)