mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-04 12:18:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# PARAMETER (with default values)
 | 
						|
 | 
						|
# Directory which cointains the Makefile
 | 
						|
SPHINX_EXEC_DIR			?= .
 | 
						|
 | 
						|
# Directory from which the sources will be read
 | 
						|
SPHINX_SOURCE_DIR  		?= ../
 | 
						|
 | 
						|
# Directory which contains the builded files
 | 
						|
SPHINX_OUTPUT_DIR   	?= ./output
 | 
						|
 | 
						|
# Args parsed to the sphinx-build command
 | 
						|
SPHINXOPTS         		?= -c $(SPHINX_EXEC_DIR)
 | 
						|
 | 
						|
# CONSTANTS
 | 
						|
 | 
						|
# Sphinx build command
 | 
						|
SPHINX_BUILD_COMMAND    = sphinx-build
 | 
						|
 | 
						|
# Directory which contains the auto generated files
 | 
						|
SPHINX_GENERATED_DIR 	= $(SPHINX_OUTPUT_DIR)/../generated
 | 
						|
 | 
						|
# Directory which contains the extracted requirement files
 | 
						|
SPHINX_REQUIREMENTS_DIR = $(SPHINX_EXEC_DIR)/requirements
 | 
						|
 | 
						|
.PHONY: help install copy-images apidoc remove-generated html generate extract-requirements Makefile
 | 
						|
 | 
						|
extract-requirements:
 | 
						|
	@echo "Creating requirement files"
 | 
						|
	bash ./scripts/extract-requirements.sh "$(SPHINX_EXEC_DIR)/requirements.yml" "$(SPHINX_REQUIREMENTS_DIR)/apt.txt" "$(SPHINX_REQUIREMENTS_DIR)/pip.txt"
 | 
						|
 | 
						|
# Copy images before running any Sphinx command (except for help)
 | 
						|
copy-images:
 | 
						|
	@echo "Copying images from ../assets/img/ to ./assets/img/..."
 | 
						|
	cp -vr ../assets/img/* ./assets/img/
 | 
						|
 | 
						|
# Generate reStructuredText files from Python modules using sphinx-apidoc
 | 
						|
generate-apidoc:
 | 
						|
	@echo "Running sphinx-apidoc..."
 | 
						|
	sphinx-apidoc -f -o $(SPHINX_GENERATED_DIR)/modules $(SPHINX_SOURCE_DIR)
 | 
						|
 | 
						|
generate-yaml-index:
 | 
						|
	@echo "Generating YAML index..."
 | 
						|
	python generators/yaml_index.py --source-dir $(SPHINX_SOURCE_DIR) --output-file $(SPHINX_GENERATED_DIR)/yaml_index.rst
 | 
						|
 | 
						|
generate-ansible-roles:
 | 
						|
	@echo "Generating Ansible roles documentation..."
 | 
						|
	python generators/ansible_roles.py --roles-dir $(SPHINX_SOURCE_DIR)/roles --output-dir $(SPHINX_GENERATED_DIR)/roles
 | 
						|
	@echo "Generating Ansible roles index..."
 | 
						|
	python generators/index.py --roles-dir generated/roles --output-file $(SPHINX_SOURCE_DIR)/roles/ansible_role_glosar.rst --caption "Ansible Role Glosar"
 | 
						|
	
 | 
						|
generate-readmes:	
 | 
						|
	@echo "Create required README.md's for index..."
 | 
						|
	python generators/readmes.py --generated-dir ./$(SPHINX_GENERATED_DIR)
 | 
						|
 | 
						|
generate: generate-apidoc generate-yaml-index generate-ansible-roles generate-readmes
 | 
						|
 | 
						|
 | 
						|
remove-generated:
 | 
						|
	@echo "Removing generated files..."
 | 
						|
	- find $(SPHINX_GENERATED_DIR)/ -type f ! -name '.gitkeep' -delete
 | 
						|
 | 
						|
help:
 | 
						|
	@$(SPHINX_BUILD_COMMAND) -M help "$(SPHINX_SOURCE_DIR)" "$(SPHINX_OUTPUT_DIR)" $(SPHINXOPTS) $(O)
 | 
						|
 | 
						|
html: copy-images generate
 | 
						|
	@echo "Building Sphinx documentation..."
 | 
						|
	$(SPHINX_BUILD_COMMAND) -M html "$(SPHINX_SOURCE_DIR)" "$(SPHINX_OUTPUT_DIR)" $(SPHINXOPTS)
 | 
						|
 | 
						|
just-html:
 | 
						|
	@$(SPHINX_BUILD_COMMAND) -M html "$(SPHINX_SOURCE_DIR)" "$(SPHINX_OUTPUT_DIR)" $(SPHINXOPTS)
 | 
						|
 | 
						|
 | 
						|
clean: remove-generated
 | 
						|
	@$(SPHINX_BUILD_COMMAND) -M clean "$(SPHINX_SOURCE_DIR)" "$(SPHINX_OUTPUT_DIR)" $(SPHINXOPTS) $(O)
 | 
						|
 | 
						|
# Catch-all target: route all unknown targets to Sphinx using the new
 | 
						|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
 | 
						|
%: Makefile
 | 
						|
	@$(SPHINX_BUILD_COMMAND) -M $@ "$(SPHINX_SOURCE_DIR)" "$(SPHINX_OUTPUT_DIR)" $(SPHINXOPTS) $(O)
 |