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.
		
		
		
		
		
			
		
			
				
					
					
						
							182 lines
						
					
					
						
							4.8 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							182 lines
						
					
					
						
							4.8 KiB
						
					
					
				| # vim: set softtabstop=2 shiftwidth=2: | |
| SHELL = bash | |
| 
 | |
| PUBLISHTAG = $(shell node scripts/publish-tag.js) | |
| BRANCH = $(shell git rev-parse --abbrev-ref HEAD) | |
| 
 | |
| markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md | |
| 
 | |
| html_docdeps = html/dochead.html \ | |
|                html/docfoot.html \ | |
|                scripts/doc-build.sh \ | |
|                package.json | |
| 
 | |
| cli_mandocs = $(shell find doc/cli -name '*.md' \ | |
|                |sed 's|.md|.1|g' \ | |
|                |sed 's|doc/cli/|man/man1/|g' ) \ | |
|                man/man1/npm-README.1 | |
| 
 | |
| files_mandocs = $(shell find doc/files -name '*.md' \ | |
|                |sed 's|.md|.5|g' \ | |
|                |sed 's|doc/files/|man/man5/|g' ) \ | |
|                man/man5/npm-json.5 \ | |
|                man/man5/npm-global.5 | |
| 
 | |
| misc_mandocs = $(shell find doc/misc -name '*.md' \ | |
|                |sed 's|.md|.7|g' \ | |
|                |sed 's|doc/misc/|man/man7/|g' ) \ | |
|                man/man7/npm-index.7 | |
| 
 | |
| cli_htmldocs = $(shell find doc/cli -name '*.md' \ | |
|                 |sed 's|.md|.html|g' \ | |
|                 |sed 's|doc/cli/|html/doc/cli/|g' ) \ | |
|                 html/doc/README.html | |
| 
 | |
| files_htmldocs = $(shell find doc/files -name '*.md' \ | |
|                   |sed 's|.md|.html|g' \ | |
|                   |sed 's|doc/files/|html/doc/files/|g' ) \ | |
|                   html/doc/files/npm-json.html \ | |
|                   html/doc/files/npm-global.html | |
| 
 | |
| misc_htmldocs = $(shell find doc/misc -name '*.md' \ | |
|                  |sed 's|.md|.html|g' \ | |
|                  |sed 's|doc/misc/|html/doc/misc/|g' ) \ | |
|                  html/doc/index.html | |
| 
 | |
| mandocs = $(cli_mandocs) $(files_mandocs) $(misc_mandocs) | |
| 
 | |
| htmldocs = $(cli_htmldocs) $(files_htmldocs) $(misc_htmldocs) | |
| 
 | |
| all: doc | |
| 
 | |
| latest: | |
| 	@echo "Installing latest published npm" | |
| 	@echo "Use 'make install' or 'make link' to install the code" | |
| 	@echo "in this folder that you're looking at right now." | |
| 	node cli.js install -g -f npm ${NPMOPTS} | |
| 
 | |
| install: all | |
| 	node cli.js install -g -f ${NPMOPTS} | |
| 
 | |
| # backwards compat | |
| dev: install | |
| 
 | |
| link: uninstall | |
| 	node cli.js link -f | |
| 
 | |
| clean: markedclean marked-manclean doc-clean uninstall | |
| 	rm -rf npmrc | |
| 	node cli.js cache clean | |
| 
 | |
| uninstall: | |
| 	node cli.js rm npm -g -f | |
| 
 | |
| doc: $(mandocs) $(htmldocs) | |
| 
 | |
| markedclean: | |
| 	rm -rf node_modules/marked node_modules/.bin/marked .building_marked | |
| 
 | |
| marked-manclean: | |
| 	rm -rf node_modules/marked-man node_modules/.bin/marked-man .building_marked-man | |
| 
 | |
| docclean: doc-clean | |
| doc-clean: | |
| 	rm -rf \ | |
|     .building_marked \ | |
|     .building_marked-man \ | |
|     html/doc \ | |
|     man | |
| 
 | |
| # use `npm install marked-man` for this to work. | |
| man/man1/npm-README.1: README.md scripts/doc-build.sh package.json | |
| 	@[ -d man/man1 ] || mkdir -p man/man1 | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| man/man1/%.1: doc/cli/%.md scripts/doc-build.sh package.json | |
| 	@[ -d man/man1 ] || mkdir -p man/man1 | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| man/man5/npm-json.5: man/man5/package.json.5 | |
| 	cp $< $@ | |
| 
 | |
| man/man5/npm-global.5: man/man5/npm-folders.5 | |
| 	cp $< $@ | |
| 
 | |
| man/man5/%.5: doc/files/%.md scripts/doc-build.sh package.json | |
| 	@[ -d man/man5 ] || mkdir -p man/man5 | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| doc/misc/npm-index.md: scripts/index-build.js package.json | |
| 	node scripts/index-build.js > $@ | |
| 
 | |
| html/doc/index.html: doc/misc/npm-index.md $(html_docdeps) | |
| 	@[ -d html/doc ] || mkdir -p html/doc | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| man/man7/%.7: doc/misc/%.md scripts/doc-build.sh package.json | |
| 	@[ -d man/man7 ] || mkdir -p man/man7 | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| html/doc/README.html: README.md $(html_docdeps) | |
| 	@[ -d html/doc ] || mkdir -p html/doc | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| html/doc/cli/%.html: doc/cli/%.md $(html_docdeps) | |
| 	@[ -d html/doc/cli ] || mkdir -p html/doc/cli | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| html/doc/files/npm-json.html: html/doc/files/package.json.html | |
| 	cp $< $@ | |
| 
 | |
| html/doc/files/npm-global.html: html/doc/files/npm-folders.html | |
| 	cp $< $@ | |
| 
 | |
| html/doc/files/%.html: doc/files/%.md $(html_docdeps) | |
| 	@[ -d html/doc/files ] || mkdir -p html/doc/files | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| html/doc/misc/%.html: doc/misc/%.md $(html_docdeps) | |
| 	@[ -d html/doc/misc ] || mkdir -p html/doc/misc | |
| 	scripts/doc-build.sh $< $@ | |
| 
 | |
| 
 | |
| marked: node_modules/.bin/marked | |
| 
 | |
| node_modules/.bin/marked: | |
| 	node cli.js install marked --no-global | |
| 
 | |
| marked-man: node_modules/.bin/marked-man | |
| 
 | |
| node_modules/.bin/marked-man: | |
| 	node cli.js install marked-man --no-global | |
| 
 | |
| doc: man | |
| 
 | |
| man: $(cli_docs) | |
| 
 | |
| test: doc | |
| 	node cli.js test | |
| 
 | |
| tag: | |
| 	npm tag npm@$(PUBLISHTAG) latest | |
| 
 | |
| ls-ok: | |
| 	node . ls >/dev/null | |
| 
 | |
| gitclean: | |
| 	git clean -fd | |
| 
 | |
| publish: gitclean ls-ok link doc-clean doc | |
| 	@git push origin :v$(shell npm -v) 2>&1 || true | |
| 	git push origin $(BRANCH) &&\ | |
| 	git push origin --tags &&\ | |
| 	npm publish --tag=$(PUBLISHTAG) | |
| 
 | |
| release: gitclean ls-ok markedclean marked-manclean doc-clean doc | |
| 	node cli.js prune --production | |
| 	@bash scripts/release.sh | |
| 
 | |
| sandwich: | |
| 	@[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || (echo "make it yourself" && exit 13) | |
| 
 | |
| .PHONY: all latest install dev link doc clean uninstall test man doc-clean docclean release ls-ok realclean
 |