You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							250 lines
						
					
					
						
							7.2 KiB
						
					
					
				
			
		
		
		
			
			
				
					
				
				
					
				
			
		
		
	
	
							250 lines
						
					
					
						
							7.2 KiB
						
					
					
				
								################################################################################
							 | 
						|
								#
							 | 
						|
								#  Makefile for generalized web build
							 | 
						|
								#
							 | 
						|
								################################################################################
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								#===============================================================================
							 | 
						|
								#  Definitions  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
							 | 
						|
								#===============================================================================
							 | 
						|
								
							 | 
						|
								SRCDIR = .
							 | 
						|
								BUILDDIR = build
							 | 
						|
								
							 | 
						|
								PUG = pug
							 | 
						|
								PUGFLAGS = --pretty --path .
							 | 
						|
								PUGFLAGS_PROD = --path .
							 | 
						|
								PUGDIR = $(SRCDIR)
							 | 
						|
								TMPLDIR = $(SRCDIR)/assets/templates
							 | 
						|
								
							 | 
						|
								SASS = sassc
							 | 
						|
								SASSFLAGS = --line-numbers --style expanded
							 | 
						|
								SASSFLAGS_PROD = --style compressed
							 | 
						|
								SASSEXT = scss
							 | 
						|
								SASSDIR = $(SRCDIR)/assets/style
							 | 
						|
								CSSDIR = $(BUILDDIR)/assets/style
							 | 
						|
								
							 | 
						|
								JS = cp
							 | 
						|
								JSFLAGS =
							 | 
						|
								JSFLAGS_PROD =
							 | 
						|
								JSSRCDIR = $(SRCDIR)/assets/scripts
							 | 
						|
								JSDIR = $(BUILDDIR)/assets/scripts
							 | 
						|
								
							 | 
						|
								JSVENDOR = cp
							 | 
						|
								JSVENDORFLAGS =
							 | 
						|
								JSVENDORFLAGS_PROD =
							 | 
						|
								JSVENDORSRCDIR = $(SRCDIR)/assets/scripts/vendor
							 | 
						|
								JSVENDORDIR = $(BUILDDIR)/assets/scripts/vendor
							 | 
						|
								JQUERY_VERSION = 1.12.0
							 | 
						|
								
							 | 
						|
								IMG = cp
							 | 
						|
								IMGFLAGS =
							 | 
						|
								IMGFLAGS_PROD =
							 | 
						|
								IMGSRCDIR = $(SRCDIR)/assets/media/images
							 | 
						|
								IMGDIR = $(BUILDDIR)/assets/media/images
							 | 
						|
								
							 | 
						|
								VID = cp
							 | 
						|
								VIDFLAGS =
							 | 
						|
								VIDFLAGS_PROD =
							 | 
						|
								VIDSRCDIR = $(SRCDIR)/assets/media/video
							 | 
						|
								VIDDIR = $(BUILDDIR)/assets/media/video
							 | 
						|
								
							 | 
						|
								FONT = cp
							 | 
						|
								FONTFLAGS =
							 | 
						|
								FONTFLAGS_PROD =
							 | 
						|
								FONTSRCDIR = $(SRCDIR)/assets/fonts
							 | 
						|
								FONTDIR = $(BUILDDIR)/assets/fonts
							 | 
						|
								
							 | 
						|
								EXT = cp
							 | 
						|
								EXTFLAGS =
							 | 
						|
								EXTFLAGS_PROD =
							 | 
						|
								EXTDIR = $(SRCDIR)/assets/extras
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								#===============================================================================
							 | 
						|
								#  Files  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
							 | 
						|
								#===============================================================================
							 | 
						|
								
							 | 
						|
								PUGTEMPLATES = $(shell find $(TMPLDIR) -type f -name \*.pug -print)
							 | 
						|
								PUGFILES = $(shell find $(PUGDIR) -type d -path $(TMPLDIR) -prune -o -type f -name \*.pug -print)
							 | 
						|
								MDFILES = $(shell find $(PUGDIR) -type d -path $(TMPLDIR) -prune -o -type f -name \*.md -print)
							 | 
						|
								HTMLFILES = $(patsubst $(PUGDIR)/%.pug, $(BUILDDIR)/%.html, $(PUGFILES))
							 | 
						|
								
							 | 
						|
								SASSFILES = $(wildcard $(SASSDIR)/[^_]*.$(SASSEXT))
							 | 
						|
								SASSSTUBS = $(wildcard $(SASSDIR)/_*.$(SASSEXT))
							 | 
						|
								CSSFILES = $(patsubst $(SASSDIR)/%.$(SASSEXT), $(CSSDIR)/%.css, $(SASSFILES))
							 | 
						|
								
							 | 
						|
								JSFILES_SRC = $(wildcard $(JSSRCDIR)/*.js)
							 | 
						|
								JSFILES = $(patsubst $(JSSRCDIR)/%, $(JSDIR)/%, $(JSFILES_SRC))
							 | 
						|
								
							 | 
						|
								JSVENDORFILES_SRC = $(wildcard $(JSVENDORSRCDIR)/*.js)
							 | 
						|
								JSVENDORFILES = $(patsubst $(JSVENDORSRCDIR)/%, $(JSVENDORDIR)/%, $(JSVENDORFILES_SRC))
							 | 
						|
								
							 | 
						|
								IMGFILES_SRC = $(wildcard $(IMGSRCDIR)/*)
							 | 
						|
								IMGFILES = $(patsubst $(IMGSRCDIR)/%, $(IMGDIR)/%, $(IMGFILES_SRC))
							 | 
						|
								
							 | 
						|
								VIDFILES_SRC = $(wildcard $(VIDSRCDIR)/*)
							 | 
						|
								VIDFILES = $(patsubst $(VIDSRCDIR)/%, $(VIDDIR)/%, $(VIDFILES_SRC))
							 | 
						|
								
							 | 
						|
								FONTFILES_SRC = $(wildcard $(FONTSRCDIR)/*)
							 | 
						|
								FONTFILES = $(patsubst $(FONTSRCDIR)/%, $(FONTDIR)/%, $(FONTFILES_SRC))
							 | 
						|
								
							 | 
						|
								FEEDFILES_SRC = $(wildcard $(EXTDIR)/feed.*)
							 | 
						|
								TXTFILES_SRC = $(wildcard $(EXTDIR)/*.txt)
							 | 
						|
								PNGFILES_SRC = $(wildcard $(EXTDIR)/*.png)
							 | 
						|
								ICOFILES_SRC = $(wildcard $(EXTDIR)/*.ico)
							 | 
						|
								XMLFILES_SRC = $(wildcard $(EXTDIR)/*.xml)
							 | 
						|
								HTACCESS_SRC = $(wildcard $(EXTDIR)/.htaccess)
							 | 
						|
								CNAME_SRC = $(wildcard $(EXTDIR)/CNAME)
							 | 
						|
								
							 | 
						|
								FEEDFILES = $(patsubst $(EXTDIR)/%, $(BUILDDIR)/%, $(FEEDFILES_SRC))
							 | 
						|
								TXTFILES = $(patsubst $(EXTDIR)/%, $(BUILDDIR)/%, $(TXTFILES_SRC))
							 | 
						|
								PNGFILES = $(patsubst $(EXTDIR)/%, $(BUILDDIR)/%, $(PNGFILES_SRC))
							 | 
						|
								ICOFILES = $(patsubst $(EXTDIR)/%, $(BUILDDIR)/%, $(ICOFILES_SRC))
							 | 
						|
								XMLFILES = $(patsubst $(EXTDIR)/%, $(BUILDDIR)/%, $(XMLFILES_SRC))
							 | 
						|
								HTACCESS = $(patsubst $(EXTDIR)/%, $(BUILDDIR)/%, $(HTACCESS_SRC))
							 | 
						|
								CNAME = $(patsubst $(EXTDIR)/%, $(BUILDDIR)/%, $(CNAME_SRC))
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								#===============================================================================
							 | 
						|
								#  Rules  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
							 | 
						|
								#===============================================================================
							 | 
						|
								
							 | 
						|
								.PHONY: all html css js jsvendor img vid font extras feed production deploy clean
							 | 
						|
								
							 | 
						|
								all: html css js jsvendor img vid font extras feed
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								html: $(HTMLFILES)
							 | 
						|
								
							 | 
						|
								$(HTMLFILES): $(PUGTEMPLATES) $(MDFILES)
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/%.html: $(PUGDIR)/%.pug
							 | 
						|
									if [[ ! -d $(dir $@) ]]; then mkdir -p $(dir $@); fi
							 | 
						|
									$(PUG) $(PUGFLAGS) -o $(dir $@) $<
							 | 
						|
									if [[ `grep '{{JQUERY_VERSION}}' $@` ]]; then sed -i "s/{{JQUERY_VERSION}}/$(JQUERY_VERSION)/" $@; fi
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								css: $(CSSFILES)
							 | 
						|
								
							 | 
						|
								$(CSSFILES): $(SASSFILES) $(SASSSTUBS)
							 | 
						|
								
							 | 
						|
								$(CSSDIR)/%.css: $(SASSDIR)/%.$(SASSEXT)
							 | 
						|
									if [[ ! -d $(dir $@) ]]; then mkdir -p $(dir $@); fi
							 | 
						|
									$(SASS) $(SASSFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								js: $(JSFILES)
							 | 
						|
								
							 | 
						|
								$(JSFILES): $(JSFILES_SRC)
							 | 
						|
								
							 | 
						|
								$(JSDIR)/%.js: $(JSSRCDIR)/%.js
							 | 
						|
									if [[ ! -d $(dir $@) ]]; then mkdir -p $(dir $@); fi
							 | 
						|
									$(JS) $(JSFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								jsvendor: $(JSVENDORFILES)
							 | 
						|
								
							 | 
						|
								$(JSVENDORFILES): $(JSVENDORFILES_SRC)
							 | 
						|
								
							 | 
						|
								$(JSVENDORDIR)/%.js: $(JSVENDORSRCDIR)/%.js
							 | 
						|
									if [[ ! -d $(dir $@) ]]; then mkdir -p $(dir $@); fi
							 | 
						|
									$(JSVENDOR) $(JSVENDORFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								img: $(IMGFILES)
							 | 
						|
								
							 | 
						|
								$(IMGFILES): $(IMGFILES_SRC)
							 | 
						|
								
							 | 
						|
								$(IMGDIR)/%: $(IMGSRCDIR)/%
							 | 
						|
									if [[ ! -d $(dir $@) ]]; then mkdir -p $(dir $@); fi
							 | 
						|
									$(IMG) $(IMGFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								vid: $(VIDFILES)
							 | 
						|
								
							 | 
						|
								$(VIDFILES): $(VIDFILES_SRC)
							 | 
						|
								
							 | 
						|
								$(VIDDIR)/%: $(VIDSRCDIR)/%
							 | 
						|
									if [[ ! -d $(dir $@) ]]; then mkdir -p $(dir $@); fi
							 | 
						|
									$(VID) $(VIDFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								font: $(FONTFILES)
							 | 
						|
								
							 | 
						|
								$(FONTFILES): $(FONTFILES_SRC)
							 | 
						|
								
							 | 
						|
								$(FONTDIR)/%: $(FONTSRCDIR)/%
							 | 
						|
									if [[ ! -d $(dir $@) ]]; then mkdir -p $(dir $@); fi
							 | 
						|
									$(FONT) $(FONTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								extras: $(FEEDFILES) $(TXTFILES) $(PNGFILES) $(ICOFILES) $(XMLFILES) $(HTACCESS) $(CNAME)
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/feed.%: $(EXTDIR)/feed.%
							 | 
						|
									$(EXT) $(EXTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/%.txt: $(EXTDIR)/%.txt
							 | 
						|
									$(EXT) $(EXTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/%.png: $(EXTDIR)/%.png
							 | 
						|
									$(EXT) $(EXTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/%.ico: $(EXTDIR)/%.ico
							 | 
						|
									$(EXT) $(EXTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/%.xml: $(EXTDIR)/%.xml
							 | 
						|
									$(EXT) $(EXTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/.htaccess: $(EXTDIR)/.htaccess
							 | 
						|
									$(EXT) $(EXTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								$(BUILDDIR)/CNAME: $(EXTDIR)/CNAME
							 | 
						|
									$(EXT) $(EXTFLAGS) $< $@
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								feed: $(FEEDFILES_SRC)
							 | 
						|
								
							 | 
						|
								$(FEEDFILES_SRC): $(PUGFILES) $(MDFILES)
							 | 
						|
									./mkfeed.py feed.rss
							 | 
						|
									mv feed.rss extras/feed.rss
							 | 
						|
									./mkfeed.py feed.atom
							 | 
						|
									mv feed.atom extras/feed.atom
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								production: all
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								deploy: production
							 | 
						|
								
							 | 
						|
								#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
							 | 
						|
								
							 | 
						|
								clean:
							 | 
						|
									rm -v $(HTMLFILES)     \
							 | 
						|
									      $(CSSFILES)      \
							 | 
						|
									      $(JSFILES)       \
							 | 
						|
									      $(JSVENDORFILES) \
							 | 
						|
									      $(IMGFILES)      \
							 | 
						|
									      $(VIDFILES)      \
							 | 
						|
									      $(FONTFILES)     \
							 | 
						|
									      $(FEEDFILES)     \
							 | 
						|
									      $(TXTFILES)      \
							 | 
						|
									      $(PNGFILES)      \
							 | 
						|
									      $(ICOFILES)      \
							 | 
						|
									      $(XMLFILES)      \
							 | 
						|
									      $(HTACCESS)      \
							 | 
						|
									      $(CNAME)
							 | 
						|
								
							 |