summaryrefslogtreecommitdiff
path: root/deps/npm/Makefile
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2011-11-21 09:48:45 -0800
committerRyan Dahl <ry@tinyclouds.org>2011-11-21 10:50:52 -0800
commitb488be127a8cf1e59eb257db3f8eaf6efdb0f275 (patch)
tree83436f4f84b9651ea66c3a0d304050252916c149 /deps/npm/Makefile
parent05de01d707cd9a80f34da23445f507f5f2e2c277 (diff)
downloadnode-b488be127a8cf1e59eb257db3f8eaf6efdb0f275.tar.gz
Include NPM, update .pkg to install it.
.msi update coming soon.
Diffstat (limited to 'deps/npm/Makefile')
-rw-r--r--deps/npm/Makefile125
1 files changed, 125 insertions, 0 deletions
diff --git a/deps/npm/Makefile b/deps/npm/Makefile
new file mode 100644
index 000000000..e10381baf
--- /dev/null
+++ b/deps/npm/Makefile
@@ -0,0 +1,125 @@
+SHELL = bash
+
+markdowns = $(shell find doc -name '*.md' | grep -v 'index') README.md
+
+cli_mandocs = $(shell find doc/cli -name '*.md' \
+ |sed 's|.md|.1|g' \
+ |sed 's|doc/cli/|man/man1/|g' ) \
+ man/man1/README.1 \
+ man/man1/index.1
+
+api_mandocs = $(shell find doc/api -name '*.md' \
+ |sed 's|.md|.3|g' \
+ |sed 's|doc/api/|man/man3/|g' )
+
+cli_htmldocs = $(shell find doc/cli -name '*.md' \
+ |grep -v 'index.md' \
+ |sed 's|.md|.html|g' \
+ |sed 's|doc/cli/|html/doc/|g' ) \
+ html/doc/README.html \
+ html/doc/index.html
+
+api_htmldocs = $(shell find doc/api -name '*.md' \
+ |sed 's|.md|.html|g' \
+ |sed 's|doc/api/|html/api/|g' )
+
+mandocs = $(api_mandocs) $(cli_mandocs)
+
+htmldocs = $(api_htmldocs) $(cli_htmldocs)
+
+all: submodules doc
+
+submodules:
+ ! [ -d .git ] || git submodule update --init --recursive
+
+latest: submodules
+ @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
+
+install: all
+ node cli.js install -g -f
+
+# backwards compat
+dev: install
+
+link: uninstall
+ node cli.js link -f
+
+clean: doc-clean uninstall
+ rm npmrc
+ node cli.js cache clean
+
+uninstall: submodules
+ node cli.js rm npm -g -f
+
+doc: $(mandocs) $(htmldocs)
+
+docclean: doc-clean
+doc-clean:
+ rm -rf \
+ node_modules/ronn \
+ node_modules/.bin/ronn \
+ .building_ronn \
+ doc/cli/index.md \
+ doc/api/index.md \
+ $(api_mandocs) \
+ $(cli_mandocs) \
+ $(api_htmldocs) \
+ $(cli_htmldocs) \
+ &>/dev/null || true
+
+# use `npm install ronn` for this to work.
+man/man1/README.1: README.md scripts/doc-build.sh package.json
+ 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/man3/%.3: doc/api/%.md scripts/doc-build.sh package.json
+ @[ -d man/man3 ] || mkdir -p man/man3
+ scripts/doc-build.sh $< $@
+
+html/doc/README.html: README.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
+ scripts/doc-build.sh $< $@
+
+html/doc/%.html: doc/cli/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
+ scripts/doc-build.sh $< $@
+
+html/api/%.html: doc/api/%.md html/dochead.html html/docfoot.html scripts/doc-build.sh package.json
+ scripts/doc-build.sh $< $@
+
+doc/cli/index.md: $(markdowns) scripts/index-build.js scripts/doc-build.sh package.json
+ node scripts/index-build.js > $@
+
+node_modules/ronn:
+ node cli.js install https://github.com/isaacs/ronnjs/tarball/master
+
+doc: man
+
+man: $(cli_docs) $(api_docs)
+
+test: submodules
+ node cli.js test
+
+version: link
+ git add package.json &&\
+ git ci -m v$(shell npm -v)
+
+publish: link
+ git tag -s -m v$(shell npm -v) v$(shell npm -v) &&\
+ git push origin master --tags &&\
+ npm publish &&\
+ make doc-publish
+
+docpublish: doc-publish
+doc-publish: doc
+ rsync -vazu --stats --no-implied-dirs --delete html/doc/ npmjs.org:/var/www/npmjs.org/public/doc
+ rsync -vazu --stats --no-implied-dirs --delete html/api/ npmjs.org:/var/www/npmjs.org/public/api
+
+sandwich:
+ @[ $$(whoami) = "root" ] && (echo "ok"; echo "ham" > sandwich) || echo "make it yourself"
+
+.PHONY: all latest install dev link doc clean uninstall test man doc-publish doc-clean docclean docpublish