Add makefile to tangle all the dotfiles
This commit is contained in:
		
							
								
								
									
										29
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,25 +1,4 @@
 | 
			
		||||
cache_dir := .cache
 | 
			
		||||
orgs := $(wildcard dotfiles/*.org)
 | 
			
		||||
 | 
			
		||||
tangle_el := elisp/tangle.el
 | 
			
		||||
 | 
			
		||||
^el = $(filter %.el,$^)
 | 
			
		||||
EMACS.funcall = emacs --batch --no-init-file $(addprefix --load ,$(^el)) --funcall
 | 
			
		||||
 | 
			
		||||
all: tangle
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
		rm -rf $(cache_dir)
 | 
			
		||||
 | 
			
		||||
tangle: $(basename $(orgs))
 | 
			
		||||
		$(cache_dir)/%.out: %.org $(tangle_el) $(cache_dir)/
 | 
			
		||||
		$(EMACS.funcall) literate-dotfiles-tangle $< > $@
 | 
			
		||||
 | 
			
		||||
%/:
 | 
			
		||||
		mkdir -p $@
 | 
			
		||||
 | 
			
		||||
%: %.org $(cache_dir)/%.out
 | 
			
		||||
		@$(NOOP)
 | 
			
		||||
 | 
			
		||||
.PHONY: all clean test
 | 
			
		||||
.PRECIOUS: $(cache_dir)/ $(cache_dir)/%.out
 | 
			
		||||
test: *.org
 | 
			
		||||
	for f in *.org; do emacsclient -e "(progn (find-file \"$$f\") (org-babel-tangle))"; done
 | 
			
		||||
tangle: *.org
 | 
			
		||||
	for f in ./dotfiles/*.org; do emacsclient -e "(progn (find-file \"$$f\") (org-babel-tangle))"; done
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user