WIP
authorRyan Dahl <ry@tinyclouds.org>
Thu, 4 Aug 2011 00:01:30 +0000 (17:01 -0700)
committerRyan Dahl <ry@tinyclouds.org>
Sat, 6 Aug 2011 10:11:33 +0000 (03:11 -0700)
.gitignore
Makefile [deleted file]
deps/http_parser/.gitignore
gyp/all.gyp [new file with mode: 0644]

index 2e53dd3..022aabb 100644 (file)
@@ -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 (file)
index 4507758..0000000
--- 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
index 04b7a1f..5597865 100644 (file)
@@ -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 (file)
index 0000000..56ca175
--- /dev/null
@@ -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
+}
+