Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 233 lines (175 sloc) 6.584 kb
e493b29 Ben Noordhuis build: respect --debug configure switch
bnoordhuis authored
1 -include config.mk
2
14b04b0 ry Remove SCONS deprecate WAF
ry authored
3 BUILDTYPE ?= Release
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
4 PYTHON ?= python
90ab079 ry Use --jobs=1 with WAF
ry authored
5
f89beaf Ben Noordhuis build: compile release build too if BUILDTYPE=Debug
bnoordhuis authored
6 # BUILDTYPE=Debug builds both release and debug builds. If you want to compile
7 # just the debug build, run `make -C out BUILDTYPE=Debug` instead.
10d92b3 ry saner targets
ry authored
8 ifeq ($(BUILDTYPE),Release)
9 all: out/Makefile node
10 else
f89beaf Ben Noordhuis build: compile release build too if BUILDTYPE=Debug
bnoordhuis authored
11 all: out/Makefile node node_g
10d92b3 ry saner targets
ry authored
12 endif
13
bb8f734 ry Fix make targets so they detect changes
ry authored
14 # The .PHONY is needed to ensure that we recursively use the out/Makefile
15 # to check for changes.
16 .PHONY: node node_g
10d92b3 ry saner targets
ry authored
17
21dd53f ry Makefile: Don't force user to run ./configure first
ry authored
18 node: config.gypi
10d92b3 ry saner targets
ry authored
19 $(MAKE) -C out BUILDTYPE=Release
bb8f734 ry Fix make targets so they detect changes
ry authored
20 ln -fs out/Release/node node
10d92b3 ry saner targets
ry authored
21
21dd53f ry Makefile: Don't force user to run ./configure first
ry authored
22 node_g: config.gypi
bb8f734 ry Fix make targets so they detect changes
ry authored
23 $(MAKE) -C out BUILDTYPE=Debug
24 ln -fs out/Debug/node node_g
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
25
21dd53f ry Makefile: Don't force user to run ./configure first
ry authored
26 config.gypi: configure
27 ./configure
28
10d92b3 ry saner targets
ry authored
29 out/Debug/node:
30 $(MAKE) -C out BUILDTYPE=Debug
e5a0fbe Rasmus Added support for cross compilation and also fixed DEST_CPU to represent...
rsms authored
31
624f70e ry GYP: rename options.gypi to config.gypi
ry authored
32 out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp deps/v8/build/common.gypi deps/v8/tools/gyp/v8.gyp node.gyp config.gypi
eda1538 build: regenerate out/Makefile from within the main Makefile
eddy_me08@yahoo.com authored
33 tools/gyp_node -f make
e5a0fbe Rasmus Added support for cross compilation and also fixed DEST_CPU to represent...
rsms authored
34
be23c51 Fedor Indutny Implement make install
indutny authored
35 install: all
7cb0f5f Nathan Rajlich install: update install.js to use `process.config`
TooTallNate authored
36 out/Release/node tools/installer.js install
be23c51 Fedor Indutny Implement make install
indutny authored
37
38 uninstall:
7cb0f5f Nathan Rajlich install: update install.js to use `process.config`
TooTallNate authored
39 out/Release/node tools/installer.js uninstall
1db9a2a Ben Noordhuis build: print "not yet implemented" warning on `make install`
bnoordhuis authored
40
14b04b0 ry Remove SCONS deprecate WAF
ry authored
41 clean:
7abbda8 isaacs Make rules for release blog post and email message
isaacs authored
42 -rm -rf out/Makefile node node_g out/$(BUILDTYPE)/node blog.html email.md
02c1cb5 isaacs Makefile: Don't use ** in globs
isaacs authored
43 -find out/ -name '*.o' -o -name '*.a' | xargs rm -rf
bf0d278 ry Improve "make dist" remove generated doc from repo.
ry authored
44
14b04b0 ry Remove SCONS deprecate WAF
ry authored
45 distclean:
48d21dd ry Force makefile generation in gyp
ry authored
46 -rm -rf out
0787287 Nathan Rajlich build: remove 'config.mk' during `make distclean`
TooTallNate authored
47 -rm -f config.gypi
48 -rm -f config.mk
7abbda8 isaacs Make rules for release blog post and email message
isaacs authored
49 -rm -rf node node_g blog.html email.md
15594ea ry Replace WAF with make/autoconf
ry authored
50
97c9745 ry Back to WAF
ry authored
51 test: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
52 $(PYTHON) tools/test.py --mode=release simple message
bae4018 isaacs Run jslint after tests, not before
isaacs authored
53 PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ --exclude_files lib/punycode.js
bf0d278 ry Improve "make dist" remove generated doc from repo.
ry authored
54
38f948a Ben Noordhuis http: make http2 the default, legacy backend is available with --use-htt...
bnoordhuis authored
55 test-http1: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
56 $(PYTHON) tools/test.py --mode=release --use-http1 simple message
e1bb241 Ben Noordhuis test: add targets `test-http2` and `test-all-http2`
bnoordhuis authored
57
d02131d ry Add 'make test-valgrind'
ry authored
58 test-valgrind: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
59 $(PYTHON) tools/test.py --mode=release --valgrind simple message
d02131d ry Add 'make test-valgrind'
ry authored
60
97c9745 ry Back to WAF
ry authored
61 test-all: all
861f28f ry Don't unnecessarily output the makefile from the configure script.
ry authored
62 python tools/test.py --mode=debug,release
f7f8af8 ry Merge remote branch 'origin/v0.6'
ry authored
63 $(MAKE) test-npm
861f28f ry Don't unnecessarily output the makefile from the configure script.
ry authored
64
38f948a Ben Noordhuis http: make http2 the default, legacy backend is available with --use-htt...
bnoordhuis authored
65 test-all-http1: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
66 $(PYTHON) tools/test.py --mode=debug,release --use-http1
e1bb241 Ben Noordhuis test: add targets `test-http2` and `test-all-http2`
bnoordhuis authored
67
d02131d ry Add 'make test-valgrind'
ry authored
68 test-all-valgrind: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
69 $(PYTHON) tools/test.py --mode=debug,release --valgrind
d02131d ry Add 'make test-valgrind'
ry authored
70
97c9745 ry Back to WAF
ry authored
71 test-release: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
72 $(PYTHON) tools/test.py --mode=release
6670154 ry 'make test' only runs the simple test
ry authored
73
97c9745 ry Back to WAF
ry authored
74 test-debug: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
75 $(PYTHON) tools/test.py --mode=debug
861f28f ry Don't unnecessarily output the makefile from the configure script.
ry authored
76
97c9745 ry Back to WAF
ry authored
77 test-message: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
78 $(PYTHON) tools/test.py message
125b868 ry Add message tests
ry authored
79
97c9745 ry Back to WAF
ry authored
80 test-simple: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
81 $(PYTHON) tools/test.py simple
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
82
97c9745 ry Back to WAF
ry authored
83 test-pummel: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
84 $(PYTHON) tools/test.py pummel
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
85
97c9745 ry Back to WAF
ry authored
86 test-internet: all
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
87 $(PYTHON) tools/test.py internet
04fac19 Arlo Breault Split tests.
arlolra authored
88
f7f8af8 ry Merge remote branch 'origin/v0.6'
ry authored
89 test-npm: node
d75de86 isaacs add 'make test-npm'
isaacs authored
90 ./node deps/npm/test/run.js
91
f7f8af8 ry Merge remote branch 'origin/v0.6'
ry authored
92 test-npm-publish: node
d75de86 isaacs add 'make test-npm'
isaacs authored
93 npm_package_config_publishtest=true ./node deps/npm/test/run.js
15286c8 ry Start 'make test-uv' command
ry authored
94
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
95 apidoc_sources = $(wildcard doc/api/*.markdown)
7d6d5e2 isaacs Use new doc generation tool
isaacs authored
96 apidocs = $(addprefix out/,$(apidoc_sources:.markdown=.html)) \
97 $(addprefix out/,$(apidoc_sources:.markdown=.json))
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
98
a7af84f isaacs docs: Move images out of the dist tarball
isaacs authored
99 apidoc_dirs = out/doc out/doc/api/ out/doc/api/assets out/doc/about out/doc/community out/doc/logos out/doc/images
2392775 ry Fix make doc
ry authored
100
a7300c8 ry WAF builds in out/ instead of build/
ry authored
101 apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
320e002 ry fix 'make doc'
ry authored
102
a7af84f isaacs docs: Move images out of the dist tarball
isaacs authored
103 doc_images = $(addprefix out/,$(wildcard doc/images/* doc/*.jpg doc/*.png))
104
90d1e47 ry make doc improvements
ry authored
105 website_files = \
a7300c8 ry WAF builds in out/ instead of build/
ry authored
106 out/doc/index.html \
107 out/doc/v0.4_announcement.html \
108 out/doc/cla.html \
109 out/doc/sh_main.js \
110 out/doc/sh_javascript.min.js \
111 out/doc/sh_vim-dark.css \
5c0d11b isaacs doc: Add images to makefile
isaacs authored
112 out/doc/sh.css \
ae17e2d ry Fix doc generation for new website
ry authored
113 out/doc/favicon.ico \
114 out/doc/pipe.css \
115 out/doc/about/index.html \
116 out/doc/community/index.html \
5c0d11b isaacs doc: Add images to makefile
isaacs authored
117 out/doc/logos/index.html \
e066074 isaacs Fix #3089 Build changelog.html for website
isaacs authored
118 out/doc/changelog.html \
a7af84f isaacs docs: Move images out of the dist tarball
isaacs authored
119 $(doc_images)
a7300c8 ry WAF builds in out/ instead of build/
ry authored
120
06bf070 isaacs makefile: Fix 'make doc'
isaacs authored
121 doc: program $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) tools/doc/
320e002 ry fix 'make doc'
ry authored
122
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
123 $(apidoc_dirs):
124 mkdir -p $@
2392775 ry Fix make doc
ry authored
125
a7300c8 ry WAF builds in out/ instead of build/
ry authored
126 out/doc/api/assets/%: doc/api_assets/% out/doc/api/assets/
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
127 cp $< $@
128
e066074 isaacs Fix #3089 Build changelog.html for website
isaacs authored
129 out/doc/changelog.html: ChangeLog doc/changelog-head.html doc/changelog-foot.html tools/build-changelog.sh
130 bash tools/build-changelog.sh
131
4637688 isaacs Remove hard-coded version number from docs
isaacs authored
132 out/doc/%.html: doc/%.html
133 cat $< | sed -e 's|__VERSION__|'$(VERSION)'|g' > $@
134
a7300c8 ry WAF builds in out/ instead of build/
ry authored
135 out/doc/%: doc/%
a7af84f isaacs docs: Move images out of the dist tarball
isaacs authored
136 cp -r $< $@
90d1e47 ry make doc improvements
ry authored
137
7d6d5e2 isaacs Use new doc generation tool
isaacs authored
138 out/doc/api/%.json: doc/api/%.markdown
139 out/Release/node tools/doc/generate.js --format=json $< > $@
140
141 out/doc/api/%.html: doc/api/%.markdown
142 out/Release/node tools/doc/generate.js --format=html --template=doc/template.html $< > $@
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
143
7abbda8 isaacs Make rules for release blog post and email message
isaacs authored
144 email.md: ChangeLog tools/email-footer.md
145 bash tools/changelog-head.sh > $@
146 cat tools/email-footer.md | sed -e 's|__VERSION__|'$(VERSION)'|g' >> $@
147
148 blog.html: email.md
3ba9519 isaacs Makefile: minor nit
isaacs authored
149 cat $< | ./node tools/doc/node_modules/.bin/marked > $@
7abbda8 isaacs Make rules for release blog post and email message
isaacs authored
150
861f28f ry Don't unnecessarily output the makefile from the configure script.
ry authored
151 website-upload: doc
ee73132 ry use rsync instead of scp to upload website
ry authored
152 rsync -r out/doc/ node@nodejs.org:~/web/nodejs.org/
ade8cf9 Micheil Smith Build API page into build/doc; simplify doctool.
miksago authored
153
a7300c8 ry WAF builds in out/ instead of build/
ry authored
154 docopen: out/doc/api/all.html
155 -google-chrome out/doc/api/all.html
861f28f ry Don't unnecessarily output the makefile from the configure script.
ry authored
156
2c016ba ry 'make distclean' should not call 'waf clean'
ry authored
157 docclean:
a7300c8 ry WAF builds in out/ instead of build/
ry authored
158 -rm -rf out/doc
2c016ba ry 'make distclean' should not call 'waf clean'
ry authored
159
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
160 VERSION=v$(shell $(PYTHON) tools/getnodeversion.py)
bf0d278 ry Improve "make dist" remove generated doc from repo.
ry authored
161 TARNAME=node-$(VERSION)
317ba9f ry Fix 'make dist'
ry authored
162 TARBALL=$(TARNAME).tar.gz
163 PKG=out/$(TARNAME).pkg
164 packagemaker=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
bf0d278 ry Improve "make dist" remove generated doc from repo.
ry authored
165
317ba9f ry Fix 'make dist'
ry authored
166 dist: doc $(TARBALL) $(PKG)
5bc1809 ry Add 'make dist-upload'
ry authored
167
9d1bdbc ry Fixes #2084. Makeify tools/osx-dist.sh
ry authored
168 PKGDIR=out/dist-osx
169
170 pkg: $(PKG)
171
5bc1809 ry Add 'make dist-upload'
ry authored
172 $(PKG):
e60b18b Nathan Rajlich Make a fat binary for the OS X `make pkg`.
TooTallNate authored
173 rm -rf $(PKGDIR)
174 rm -rf out/deps out/Release
175 ./configure --prefix=$(PKGDIR)/32/usr/local --without-snapshot --dest-cpu=ia32
317ba9f ry Fix 'make dist'
ry authored
176 $(MAKE) install
e60b18b Nathan Rajlich Make a fat binary for the OS X `make pkg`.
TooTallNate authored
177 rm -rf out/deps out/Release
178 ./configure --prefix=$(PKGDIR)/usr/local --without-snapshot --dest-cpu=x64
179 $(MAKE) install
180 lipo $(PKGDIR)/32/usr/local/bin/node \
181 $(PKGDIR)/usr/local/bin/node \
182 -output $(PKGDIR)/usr/local/bin/node-universal \
183 -create
184 mv $(PKGDIR)/usr/local/bin/node-universal $(PKGDIR)/usr/local/bin/node
185 rm -rf $(PKGDIR)/32
9d1bdbc ry Fixes #2084. Makeify tools/osx-dist.sh
ry authored
186 $(packagemaker) \
187 --id "org.nodejs.NodeJS-$(VERSION)" \
188 --doc tools/osx-pkg.pmdoc \
189 --out $(PKG)
5bc1809 ry Add 'make dist-upload'
ry authored
190
317ba9f ry Fix 'make dist'
ry authored
191 $(TARBALL): node out/doc
349cab0 isaacs Check the version before building tarball
isaacs authored
192 @if [ $(shell ./node --version) = "$(VERSION)" ]; then \
193 exit 0; \
194 else \
195 echo "" >&2 ; \
196 echo "$(shell ./node --version) doesn't match $(VERSION)." >&2 ; \
197 echo "Did you remember to update src/node_version.cc?" >&2 ; \
198 echo "" >&2 ; \
199 exit 1 ; \
200 fi
a1138c6 Micheil Smith Cleanup Makefile for JSLint, CPPLint
miksago authored
201 git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf -
bf0d278 ry Improve "make dist" remove generated doc from repo.
ry authored
202 mkdir -p $(TARNAME)/doc
203 cp doc/node.1 $(TARNAME)/doc/node.1
a7300c8 ry WAF builds in out/ instead of build/
ry authored
204 cp -r out/doc/api $(TARNAME)/doc/api
ce2d5ad ry Change the 'make dist' to remove v8 test dir
ry authored
205 rm -rf $(TARNAME)/deps/v8/test # too big
a7af84f isaacs docs: Move images out of the dist tarball
isaacs authored
206 rm -rf $(TARNAME)/doc/images # too big
ce2d5ad ry Change the 'make dist' to remove v8 test dir
ry authored
207 tar -cf $(TARNAME).tar $(TARNAME)
208 rm -rf $(TARNAME)
bf0d278 ry Improve "make dist" remove generated doc from repo.
ry authored
209 gzip -f -9 $(TARNAME).tar
861f28f ry Don't unnecessarily output the makefile from the configure script.
ry authored
210
716f5bc ry Add make dist-upload
ry authored
211 dist-upload: $(TARBALL) $(PKG)
212 ssh node@nodejs.org mkdir -p web/nodejs.org/dist/$(VERSION)
213 scp $(TARBALL) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARBALL)
214 scp $(PKG) node@nodejs.org:~/web/nodejs.org/dist/$(VERSION)/$(TARNAME).pkg
215
ff456b3 ry Add 'make bench' script
ry authored
216 bench:
217 benchmark/http_simple_bench.sh
218
3cf4827 ry Add idle connection test
ry authored
219 bench-idle:
220 ./node benchmark/idle_server.js &
221 sleep 1
222 ./node benchmark/idle_clients.js &
223
ac58d3a ry Import cpplint.py
ry authored
224 jslint:
b073989 Maciej Małecki makefile: ignore `lib/punycode.js` while linting
mmalecki authored
225 PYTHONPATH=tools/closure_linter/ $(PYTHON) tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/ --exclude_files lib/punycode.js
3cf4827 ry Add idle connection test
ry authored
226
ac58d3a ry Import cpplint.py
ry authored
227 cpplint:
472a72d Ben Noordhuis build: honour the PYTHON environment variable
bnoordhuis authored
228 @$(PYTHON) tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c)
ac58d3a ry Import cpplint.py
ry authored
229
230 lint: jslint cpplint
a128451 ry Import Google's closure_linter
ry authored
231
317ba9f ry Fix 'make dist'
ry authored
232 .PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all program staticlib dynamiclib test test-all website-upload pkg
Something went wrong with that request. Please try again.