# Original author: Maciej Barć # Copyright (c) 2021-2023, Maciej Barć # Licensed under the GNU GPL v2 License EGENCACHE := egencache EIX-UPDATE := eix-update GIT := git PKGCHECK := pkgcheck PKGDEV := pkgdev RACKET := racket SH := sh MANIFEST := $(PKGDEV) manifest SCAN := $(PKGCHECK) scan PWD := $(shell pwd) DOC_SOURCE_DIR := $(PWD)/scribblings DOC_ECLASS_DIR := $(DOC_SOURCE_DIR)/eclass DOC_BUILT_DIR := $(DOC_SOURCE_DIR)/doc DOC_PUBLIC_DIR := $(PWD)/public METADATA := $(PWD)/metadata EXCLUDES := $(PWD)/excludes.rktd MODS := $(PWD)/modifications.rkt SCAN_CONFIG := $(METADATA)/pkgcheck.conf NPROC := $(shell nproc || echo 1) COLLECTOR2_FLAGS := --create --directory $(PWD) --excludes-file $(EXCLUDES) --modifications-file $(MODS) --verbose CLEAN-VERSIONS_FLAGS := --max 4 --only-category dev-racket --repository $(PWD) --verbose MANIFEST_FLAGS := --verbose EGENCACHE_FLAGS := --jobs $(NPROC) --load-average $(NPROC) --update --repo racket-overlay --verbose SCAN_FLAGS := --config $(SCAN_CONFIG) --jobs=$(NPROC) --verbose .PHONY: all all: regen test # Regenerate .PHONY: ebuilds ebuilds: $(RACKET) -l collector2 -- $(COLLECTOR2_FLAGS) # WARNING: Not a "cleanup" rule. Removes files registered by git. .PHONY: clean-versions clean-versions: $(RACKET) -l ebuild/tools/clean-versions-exe -- $(CLEAN-VERSIONS_FLAGS) .PHONY: manifests manifests: $(MANIFEST) $(MANIFEST_FLAGS) $(PWD) .PHONY: regen regen: ebuilds clean-versions manifests # Test .PHONY: test test: $(SCAN) $(SCAN_FLAGS) $(PWD) # Documentation $(DOC_ECLASS_DIR)/%.scrbl: $(RACKET) -l eclass2scrbl -- \ --output $(DOC_ECLASS_DIR)/$(*).scrbl $(PWD)/eclass/$(*).eclass .PHONY: eclass-scribblings eclass-scribblings: $(MAKE) -B \ $(DOC_ECLASS_DIR)/gh.scrbl \ $(DOC_ECLASS_DIR)/racket-common.scrbl \ $(DOC_ECLASS_DIR)/racket.scrbl $(DOC_BUILT_DIR): cd $(DOC_SOURCE_DIR) && $(SH) $(DOC_SOURCE_DIR)/build.sh $(DOC_PUBLIC_DIR): $(MAKE) -B $(DOC_BUILT_DIR) cp -r $(PWD)/scribblings/doc/gentoo-racket-overlay $(PWD)/public .PHONY: public public: $(MAKE) -B $(DOC_PUBLIC_DIR) # Support # Regenerate metadata/md5-cache on demand. .PHONY: egencache egencache: PORTAGE_REPOSITORIES="[racket-overlay] location = $(PWD)" \ $(EGENCACHE) $(EGENCACHE_FLAGS) # Regenerate the system eix cache database. .PHONY: eix-update eix-update: eix-update --repo-name $(PWD) racket-overlay .PHONY: submodules submodules: $(SH) $(PWD)/3rd_party/scripts/src/update-submodules .PHONY: autocommit autocommit: $(GIT) add $(PWD) $(GIT) commit --all --signoff --message="dev-racket: autoupdate" # Cleanup .PHONY: clean-md5-cache clean-md5-cache: rm -r $(PWD)/metadata/md5-cache .PHONY: clean clean: clean-md5-cache