Skip to content
Newer
Older
100644 90 lines (66 sloc) 2.14 KB
64b4d65 explicitly set bash as the shell since the makefile uses bash-isms
gflarity authored
1 SHELL = bash
2
de338f9 @isaacs Support subfolders in the man/doc files
isaacs authored
3 docs = $(shell find doc -name '*.md' \
4 |sed 's|.md|.1|g' \
0e151fc @isaacs build submodules in make process
isaacs authored
5 |sed 's|doc/|man1/|g' )
6
30818ab @isaacs html docs
isaacs authored
7 htmldocs = $(shell find doc -name '*.md' \
8 |sed 's|.md|.html|g' \
9 |sed 's|doc/|html/doc/|g' ) html/doc/index.html
10
de338f9 @isaacs Support subfolders in the man/doc files
isaacs authored
11 doc_subfolders = $(shell find doc -type d \
0e151fc @isaacs build submodules in make process
isaacs authored
12 |sed 's|doc/|man1/|g' )
13
d7d8662 @isaacs Closes GH-609 `make install` installs current, not latest
isaacs authored
14 # This is the default make target.
15 # Since 'make' typically does non-installation build stuff,
16 # it seems appropriate.
0e151fc @isaacs build submodules in make process
isaacs authored
17 submodules:
007fedb @isaacs Update submodules recursively in make
isaacs authored
18 ! [ -d .git ] || git submodule update --init --recursive
86c296f @isaacs Add commands to make man files from the docs.
isaacs authored
19
d7d8662 @isaacs Closes GH-609 `make install` installs current, not latest
isaacs authored
20 latest: submodules
21 @echo "Installing latest published npm"
22 @echo "Use 'make install' or 'make link' to install the code"
23 @echo "in this folder that you're looking at right now."
4325dcc @isaacs fix make latest
isaacs authored
24 node cli.js install -g -f npm
743d387 @isaacs Improve install process.
isaacs authored
25
d7d8662 @isaacs Closes GH-609 `make install` installs current, not latest
isaacs authored
26 install: submodules
364dfc6 @isaacs Clobber in Makefile
isaacs authored
27 node cli.js install -g -f
743d387 @isaacs Improve install process.
isaacs authored
28
d7d8662 @isaacs Closes GH-609 `make install` installs current, not latest
isaacs authored
29 # backwards compat
30 dev: install
31
db9ee01 @isaacs clean when linking
isaacs authored
32 link: uninstall
364dfc6 @isaacs Clobber in Makefile
isaacs authored
33 node cli.js link -f
e0c6abb @isaacs Add 'clean' make target
isaacs authored
34
35 clean: uninstall
c7ec9b5 @isaacs No need to clean cache as often, makes search slow
isaacs authored
36 node cli.js cache clean
743d387 @isaacs Improve install process.
isaacs authored
37
0e151fc @isaacs build submodules in make process
isaacs authored
38 uninstall: submodules
94df8f3 @isaacs Support npm_debug env in install script
isaacs authored
39 node cli.js rm npm -g -f
86c296f @isaacs Add commands to make man files from the docs.
isaacs authored
40
dbee5c3 @isaacs Change the way npm help works, so that it will work with man programs…
isaacs authored
41 man: man1
42
43 man1: $(doc_subfolders)
4f0d334 @isaacs Less warning, better style
isaacs authored
44 [ -d man1 ] || mkdir -p man1
86c296f @isaacs Add commands to make man files from the docs.
isaacs authored
45
30818ab @isaacs html docs
isaacs authored
46 html/doc: $(doc_subfolders)
47 [ -d html/doc ] || mkdir -p html/doc
48
49 doc: $(docs) $(htmldocs)
c638e80 @isaacs Add a makefile to build the man page.
isaacs authored
50
f2ccd17 @isaacs Use ronnjs instead of the ronn rubygem to build docs
isaacs authored
51 # use `npm install ronn` for this to work.
30818ab @isaacs html docs
isaacs authored
52 man1/%.1: doc/%.md man1
7d44c11 @isaacs Don't install ronn for every doc
isaacs authored
53 @[ -x ./node_modules/.bin/ronn ] || node cli.js install ronn
8945848 @isaacs A make command that works
isaacs authored
54 ./node_modules/.bin/ronn --roff $< > $@
c638e80 @isaacs Add a makefile to build the man page.
isaacs authored
55
30818ab @isaacs html docs
isaacs authored
56 man1/%/: doc/%/ man1
57 @[ -d $@ ] || mkdir -p $@
58
59 # use `npm install ronn` for this to work.
60 html/doc/%.html: doc/%.md html/dochead.html html/docfoot.html html/doc
61 @[ -x ./node_modules/.bin/ronn ] || node cli.js install ronn
62 (cat html/dochead.html && \
63 ./node_modules/.bin/ronn -f $< && \
64 cat html/docfoot.html )\
65 | sed 's|@NAME@|$*|g' \
66 | sed 's|@DATE@|$(shell date -u +'%Y-%M-%d %H:%m:%S')|g' \
67 | perl -pi -e 's/npm-([^\)]+)\(1\)/<a href="\1.html">npm-\1(1)<\/a>/g' \
68 | perl -pi -e 's/npm\(1\)/<a href="index.html">npm(1)<\/a>/g' \
69 > $@
70
71 html/doc/index.html: html/doc/npm.html
72 cp $< $@
73
74 html/doc/%/: doc/%/ html/doc
4f0d334 @isaacs Less warning, better style
isaacs authored
75 @[ -d $@ ] || mkdir -p $@
de338f9 @isaacs Support subfolders in the man/doc files
isaacs authored
76
0e151fc @isaacs build submodules in make process
isaacs authored
77 test: submodules
176f12e @isaacs Move test command into package.json
isaacs authored
78 node cli.js test
90c9ec8 @isaacs Make test (quietly)
isaacs authored
79
5846adf @isaacs version bumper
isaacs authored
80 version: link
4f0d334 @isaacs Less warning, better style
isaacs authored
81 git add package.json &&\
82 git ci -m v$(shell npm -v)
5846adf @isaacs version bumper
isaacs authored
83
84 publish: link
4f0d334 @isaacs Less warning, better style
isaacs authored
85 git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
86 git push origin master &&\
87 npm publish
2d27e74 @isaacs Add a 'publish' make target
isaacs authored
88
d7d8662 @isaacs Closes GH-609 `make install` installs current, not latest
isaacs authored
89 .PHONY: latest install dev link doc clean uninstall test man
Something went wrong with that request. Please try again.