From 4f3c8b397215f96e29b314c661e469f9afa58d64 Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Wed, 3 Aug 2011 17:01:30 -0700 Subject: [PATCH] WIP --- .gitignore | 6 + Makefile | 348 ------------------------------------ deps/http_parser/.gitignore | 3 + gyp/all.gyp | 141 +++++++++++++++ 4 files changed, 150 insertions(+), 348 deletions(-) delete mode 100644 Makefile create mode 100644 gyp/all.gyp diff --git a/.gitignore b/.gitignore index 2e53dd35e0..022aabb49e 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,9 @@ node_g .benchmark_reports /.project /.cproject + +gyp-mac-tool +gyp/all.Makefile +gyp/js2c.host.mk +gyp/node.target.mk +out/ diff --git a/Makefile b/Makefile deleted file mode 100644 index 450775870d..0000000000 --- a/Makefile +++ /dev/null @@ -1,348 +0,0 @@ -WAF=python tools/waf-light - -web_root = ryan@nodejs.org:~/web/nodejs.org/ - -# -# Because we recursively call make from waf we need to make sure that we are -# using the correct make. Not all makes are GNU Make, but this likely only -# works with gnu make. To deal with this we remember how the user invoked us -# via a make builtin variable and use that in all subsequent operations -# -export NODE_MAKE := $(MAKE) - -all: program - @-ls -lh build/default/node - @-ls -lh build/debug/node_g || echo "" - -all-progress: - @$(WAF) -p build - -program: - @$(WAF) --product-type=program build - -staticlib: - @$(WAF) --product-type=cstaticlib build - -dynamiclib: - @$(WAF) --product-type=cshlib build - -install: - @$(WAF) install - -uninstall: - @$(WAF) uninstall - -test: all - python tools/test.py --mode=release simple message - -test-http1: all - python tools/test.py --mode=release --use-http1 simple message - -test-valgrind: all - python tools/test.py --mode=release --valgrind simple message - -test-all: all - python tools/test.py --mode=debug,release - -test-all-http1: all - python tools/test.py --mode=debug,release --use-http1 - -test-all-valgrind: all - python tools/test.py --mode=debug,release --valgrind - -test-release: all - python tools/test.py --mode=release - -test-debug: all - python tools/test.py --mode=debug - -test-message: all - python tools/test.py message - -test-simple: all - python tools/test.py simple - -test-pummel: all - python tools/test.py pummel - -test-internet: all - python tools/test.py internet - -UVTEST += simple/test-assert -UVTEST += simple/test-buffer -UVTEST += simple/test-c-ares -UVTEST += simple/test-chdir -UVTEST += simple/test-delayed-require -UVTEST += simple/test-eio-race2 -UVTEST += simple/test-eio-race4 -UVTEST += simple/test-event-emitter-add-listeners -UVTEST += simple/test-event-emitter-modify-in-emit -UVTEST += simple/test-event-emitter-num-args -UVTEST += simple/test-event-emitter-once -UVTEST += simple/test-event-emitter-remove-all-listeners -UVTEST += simple/test-event-emitter-remove-listeners -UVTEST += simple/test-exception-handler -UVTEST += simple/test-exception-handler2 -UVTEST += simple/test-exception-handler -UVTEST += simple/test-executable-path -UVTEST += simple/test-file-read-noexist -UVTEST += simple/test-file-write-stream -UVTEST += simple/test-fs-fsync -UVTEST += simple/test-fs-open -UVTEST += simple/test-fs-readfile-empty -UVTEST += simple/test-fs-read-file-sync -UVTEST += simple/test-fs-read-file-sync-hostname -UVTEST += simple/test-fs-sir-writes-alot -UVTEST += simple/test-fs-write -UVTEST += simple/test-fs-write-buffer -UVTEST += simple/test-fs-write-file -UVTEST += simple/test-fs-write-file-buffer -UVTEST += simple/test-fs-write-stream -UVTEST += simple/test-fs-write-stream-end -UVTEST += simple/test-fs-write-sync -UVTEST += simple/test-global -UVTEST += simple/test-http -UVTEST += simple/test-http-1.0 -UVTEST += simple/test-http-abort-client -UVTEST += simple/test-http-allow-req-after-204-res -UVTEST += simple/test-http-blank-header -UVTEST += simple/test-http-buffer-sanity -UVTEST += simple/test-http-cat -UVTEST += simple/test-http-chunked -UVTEST += simple/test-http-client-abort -UVTEST += simple/test-http-client-parse-error -UVTEST += simple/test-http-client-race -UVTEST += simple/test-http-client-race-2 -UVTEST += simple/test-http-client-upload -UVTEST += simple/test-http-client-upload-buf -UVTEST += simple/test-http-contentLength0 -UVTEST += simple/test-http-default-encoding -UVTEST += simple/test-http-dns-fail -UVTEST += simple/test-http-eof-on-connect -UVTEST += simple/test-http-exceptions -UVTEST += simple/test-http-expect-continue -UVTEST += simple/test-http-extra-response -UVTEST += simple/test-http-head-request -UVTEST += simple/test-http-head-response-has-no-body -UVTEST += simple/test-http-keep-alive -UVTEST += simple/test-http-keep-alive-close-on-header -UVTEST += simple/test-http-malformed-request -UVTEST += simple/test-http-many-keep-alive-connections -UVTEST += simple/test-http-mutable-headers -UVTEST += simple/test-http-parser -UVTEST += simple/test-http-proxy -UVTEST += simple/test-http-request-end -UVTEST += simple/test-http-response-close -UVTEST += simple/test-http-response-readable -UVTEST += simple/test-http-unix-socket -UVTEST += simple/test-http-server -UVTEST += simple/test-http-server-multiheaders -UVTEST += simple/test-http-set-cookies -UVTEST += simple/test-http-set-timeout -UVTEST += simple/test-http-set-trailers -UVTEST += simple/test-http-upgrade-agent -UVTEST += simple/test-http-upgrade-client -UVTEST += simple/test-http-upgrade-client2 -UVTEST += simple/test-http-upgrade-server -UVTEST += simple/test-http-upgrade-server2 -UVTEST += simple/test-http-wget -UVTEST += simple/test-http-write-empty-string -UVTEST += simple/test-http-wget -UVTEST += simple/test-mkdir-rmdir -UVTEST += simple/test-net-binary -UVTEST += simple/test-net-pingpong -UVTEST += simple/test-net-can-reset-timeout -UVTEST += simple/test-net-connect-buffer -UVTEST += simple/test-net-connect-timeout -UVTEST += simple/test-net-create-connection -UVTEST += simple/test-net-eaddrinuse -UVTEST += simple/test-net-isip -UVTEST += simple/test-net-keepalive -UVTEST += simple/test-net-pingpong -UVTEST += simple/test-net-reconnect -UVTEST += simple/test-net-remote-address-port -UVTEST += simple/test-net-server-bind -UVTEST += simple/test-net-server-max-connections -UVTEST += simple/test-net-server-try-ports -UVTEST += simple/test-net-stream -UVTEST += simple/test-net-socket-timeout -UVTEST += simple/test-next-tick -UVTEST += simple/test-next-tick-doesnt-hang -UVTEST += simple/test-next-tick-errors -UVTEST += simple/test-next-tick-ordering -UVTEST += simple/test-next-tick-ordering2 -UVTEST += simple/test-next-tick-starvation -UVTEST += simple/test-module-load-list -UVTEST += simple/test-path -UVTEST += simple/test-pipe-stream -UVTEST += simple/test-pump-file2tcp -UVTEST += simple/test-pump-file2tcp-noexist -UVTEST += simple/test-punycode -UVTEST += simple/test-querystring -UVTEST += simple/test-readdir -UVTEST += simple/test-readdouble -UVTEST += simple/test-readfloat -UVTEST += simple/test-readint -UVTEST += simple/test-readuint -UVTEST += simple/test-regress-GH-819 -UVTEST += simple/test-regress-GH-897 -UVTEST += simple/test-regression-object-prototype -UVTEST += simple/test-require-cache -UVTEST += simple/test-require-cache-without-stat -UVTEST += simple/test-require-exceptions -UVTEST += simple/test-require-resolve -UVTEST += simple/test-script-context -UVTEST += simple/test-script-new -UVTEST += simple/test-script-static-context -UVTEST += simple/test-script-static-new -UVTEST += simple/test-script-static-this -UVTEST += simple/test-script-this -UVTEST += simple/test-stream-pipe-cleanup -UVTEST += simple/test-stream-pipe-error-handling -UVTEST += simple/test-stream-pipe-event -UVTEST += simple/test-stream-pipe-multi -UVTEST += simple/test-string-decoder -UVTEST += simple/test-sys -UVTEST += simple/test-tcp-wrap -UVTEST += simple/test-tcp-wrap-connect -UVTEST += simple/test-tcp-wrap-listen -UVTEST += simple/test-timers-linked-list -UVTEST += simple/test-tty-stdout-end -UVTEST += simple/test-url -UVTEST += simple/test-utf8-scripts -UVTEST += simple/test-vm-create-context-circular-reference -UVTEST += simple/test-writedouble -UVTEST += simple/test-writefloat -UVTEST += simple/test-writeint -UVTEST += simple/test-writeuint -UVTEST += simple/test-zerolengthbufferbug -UVTEST += pummel/test-http-client-reconnect-bug -UVTEST += pummel/test-http-upload-timeout -UVTEST += pummel/test-net-many-clients -UVTEST += pummel/test-net-pause -UVTEST += pummel/test-net-pingpong-delay -UVTEST += pummel/test-net-timeout -UVTEST += pummel/test-timers -UVTEST += pummel/test-timer-wrap -UVTEST += pummel/test-timer-wrap2 -UVTEST += pummel/test-vm-memleak -UVTEST += internet/test-dns -UVTEST += simple/test-tls-client-abort -UVTEST += simple/test-tls-client-verify -UVTEST += simple/test-tls-connect -#UVTEST += simple/test-tls-ext-key-usage # broken -UVTEST += simple/test-tls-junk-closes-server -UVTEST += simple/test-tls-npn-server-client -UVTEST += simple/test-tls-request-timeout -#UVTEST += simple/test-tls-securepair-client # broken -UVTEST += simple/test-tls-securepair-server -#UVTEST += simple/test-tls-server-verify # broken -UVTEST += simple/test-tls-set-encoding - -# child_process -UVTEST += simple/test-child-process-exit-code -UVTEST += simple/test-child-process-buffering -UVTEST += simple/test-child-process-exec-cwd -UVTEST += simple/test-child-process-cwd -UVTEST += simple/test-child-process-env -UVTEST += simple/test-child-process-stdin -UVTEST += simple/test-child-process-ipc -UVTEST += simple/test-child-process-deprecated-api - - -test-uv: all - NODE_USE_UV=1 python tools/test.py $(UVTEST) - -test-uv-debug: all - NODE_USE_UV=1 python tools/test.py --mode=debug $(UVTEST) - - -build/default/node: all - -apidoc_sources = $(wildcard doc/api/*.markdown) -apidocs = $(addprefix build/,$(apidoc_sources:.markdown=.html)) - -apidoc_dirs = build/doc build/doc/api/ build/doc/api/assets - -apiassets = $(subst api_assets,api/assets,$(addprefix build/,$(wildcard doc/api_assets/*))) - -website_files = \ - build/doc/index.html \ - build/doc/v0.4_announcement.html \ - build/doc/cla.html \ - build/doc/sh_main.js \ - build/doc/sh_javascript.min.js \ - build/doc/sh_vim-dark.css \ - build/doc/logo.png \ - build/doc/sponsored.png \ - build/doc/favicon.ico \ - build/doc/pipe.css - -doc: build/default/node $(apidoc_dirs) $(website_files) $(apiassets) $(apidocs) - -$(apidoc_dirs): - mkdir -p $@ - -build/doc/api/assets/%: doc/api_assets/% build/doc/api/assets/ - cp $< $@ - -build/doc/%: doc/% - cp $< $@ - -build/doc/api/%.html: doc/api/%.markdown build/default/node $(apidoc_dirs) $(apiassets) tools/doctool/doctool.js - build/default/node tools/doctool/doctool.js doc/template.html $< > $@ - -build/doc/%: - -website-upload: doc - scp -r build/doc/* $(web_root) - -docopen: build/doc/api/all.html - -google-chrome build/doc/api/all.html - -docclean: - -rm -rf build/doc - -clean: - $(WAF) clean - -find tools -name "*.pyc" | xargs rm -f - -distclean: docclean - -find tools -name "*.pyc" | xargs rm -f - -rm -rf build/ node node_g - -check: - @tools/waf-light check - -VERSION=$(shell git describe) -TARNAME=node-$(VERSION) - -#dist: doc/node.1 doc/api -dist: doc - git archive --format=tar --prefix=$(TARNAME)/ HEAD | tar xf - - mkdir -p $(TARNAME)/doc - cp doc/node.1 $(TARNAME)/doc/node.1 - cp -r build/doc/api $(TARNAME)/doc/api - rm -rf $(TARNAME)/deps/v8/test # too big - rm -rf $(TARNAME)/doc/logos # too big - tar -cf $(TARNAME).tar $(TARNAME) - rm -rf $(TARNAME) - gzip -f -9 $(TARNAME).tar - -bench: - benchmark/http_simple_bench.sh - -bench-idle: - ./node benchmark/idle_server.js & - sleep 1 - ./node benchmark/idle_clients.js & - -jslint: - PYTHONPATH=tools/closure_linter/ python tools/closure_linter/closure_linter/gjslint.py --unix_mode --strict --nojsdoc -r lib/ -r src/ -r test/ - -cpplint: - @python tools/cpplint.py $(wildcard src/*.cc src/*.h src/*.c) - -lint: jslint cpplint - -.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install all program staticlib dynamiclib test test-all website-upload diff --git a/deps/http_parser/.gitignore b/deps/http_parser/.gitignore index 04b7a1fee6..55978652b7 100644 --- a/deps/http_parser/.gitignore +++ b/deps/http_parser/.gitignore @@ -3,3 +3,6 @@ tags test test_g test_fast +http_parser.Makefile +http_parser.target.mk +test.target.mk diff --git a/gyp/all.gyp b/gyp/all.gyp new file mode 100644 index 0000000000..56ca175df9 --- /dev/null +++ b/gyp/all.gyp @@ -0,0 +1,141 @@ +{ + 'targets': [ + { + 'target_name': 'node', + 'type': 'executable', + 'dependencies': [ +# '../deps/http_parser/http_parser.gyp:http_parser', + '../deps/v8/tools/gyp/v8.gyp:v8_snapshot', + 'node_js2c#host' + ], + 'include_dirs': [ 'src' ], + 'sources': [ + '../src/cares_wrap.cc', + '../src/handle_wrap.cc', + '../src/node.cc', + '../src/node_buffer.cc', + '../src/node_constants.cc', + '../src/node_crypto.cc', + '../src/node_dtrace.cc', + '../src/node_extensions.cc', + '../src/node_file.cc', + '../src/node_http_parser.cc', + '../src/node_javascript.cc', + '../src/node_main.cc', + '../src/node_os.cc', + '../src/node_script.cc', + '../src/node_string.cc', + '../src/pipe_wrap.cc', + '../src/stdio_wrap.cc', + '../src/stream_wrap.cc', + '../src/tcp_wrap.cc', + '../src/timer_wrap.cc', + ], + + 'conditions': [ + [ 'OS=="win"', { + 'defines': [ + 'PTW32_STATIC_LIB' + ], + 'libraries': [ + '-lws2_32', + '-lwinmm', + '../deps/pthread-win32/libpthreadGC2.a', + ], + 'sources': [ + '../src/platform_win32.cc', + '../src/node_stdio_win32.cc' + ] + },{ # POSIX + 'sources': [ + '../src/node_cares.cc', + '../src/node_net.cc', + '../src/node_signal_watcher.cc', + '../src/node_stat_watcher.cc', + '../src/node_io_watcher.cc', + '../src/node_stdio.cc', + '../src/node_child_process.cc', + '../src/node_timer.cc' + ] + }], + [ 'OS=="mac"', { + 'sources': [ + '../src/platform_darwin.cc', + '../src/platform_darwin_proctitle.cc' + ] + }] + ] + }, + + { + 'target_name': 'node_js2c', + 'type': 'none', + 'toolsets': ['host'], + 'variables': { + 'library_files': [ + '../src/node.js', + '../lib/_debugger.js', + '../lib/_linklist.js', + '../lib/assert.js', + '../lib/buffer.js', + '../lib/buffer_ieee754.js', + '../lib/child_process_legacy.js', + '../lib/child_process_uv.js', + '../lib/console.js', + '../lib/constants.js', + '../lib/crypto.js', + '../lib/dgram.js', + '../lib/dns_legacy.js', + '../lib/dns_uv.js', + '../lib/events.js', + '../lib/freelist.js', + '../lib/fs.js', + '../lib/http.js', + '../lib/http2.js', + '../lib/https.js', + '../lib/https2.js', + '../lib/module.js', + '../lib/net_legacy.js', + '../lib/net_uv.js', + '../lib/os.js', + '../lib/path.js', + '../lib/punycode.js', + '../lib/querystring.js', + '../lib/readline.js', + '../lib/repl.js', + '../lib/stream.js', + '../lib/string_decoder.js', + '../lib/sys.js', + '../lib/timers_legacy.js', + '../lib/timers_uv.js', + '../lib/tls.js', + '../lib/tty.js', + '../lib/tty_posix.js', + '../lib/tty_win32.js', + '../lib/url.js', + '../lib/util.js', + '../lib/vm.js', + ], + }, + 'actions': [ + { + 'action_name': 'node_js2c', + 'inputs': [ + '../tools/js2c.py', + '<@(library_files)', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/node_natives.h', + ], + 'action': [ + 'python', + '../tools/js2c.py', + '<@(_outputs)', + '<@(library_files)' + ], + }, + ], + }, # end node_js2c + ] # end targets +} +