<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -3,11 +3,21 @@ benchmark/runall.sh
 build
 site/index.html
 src/Makefile
-src/ebb.o
 src/ebb_ffi.bundle
 src/ebb_ffi.so
 src/ebb_ffi.o
 src/mkmf.log
+src/*.o
+
+src/ebb.c
+src/ebb.h
+
+src/rbtree.c
+src/rbtree.h
+
 src/ebb_request_parser.c
-src/ebb_request_parser.o
-test/parser_test
+src/ebb_request_parser.rl
+src/ebb_request_parser.h
+
+libev*
+.libebb</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -3,38 +3,71 @@ require 'rake/testtask'
 require 'rake/gempackagetask'
 require 'rake/clean'
 
-def dir(path)
-  File.expand_path File.join(File.dirname(__FILE__), path)
+class String
+  def /(other)
+    File.join(self, other)
+  end
 end
 
-require dir('lib/ebb')
+require 'lib/ebb'
 
-DISTFILES = FileList.new('lib/**/*.rb', 'src/**/*.{rb,rl,c,h}', 'bin/*', 'README', 'Rakefile')
+libev_dist = &quot;http://dist.schmorp.de/libev/&quot;
+libev_release = &quot;libev-3.43.tar.gz&quot;
+libev_url = File.join(libev_dist, libev_release)
 
-CLEAN.add [&quot;**/*.{o,bundle,so,obj,pdb,lib,def,exp}&quot;, &quot;benchmark/*.dump&quot;, 'site/index.html', ]
+LIBEBBFILES = ['ebb.c', 'ebb.h',
+               'ebb_request_parser.rl', 'ebb_request_parser.c', 'ebb_request_parser.h', 
+               'rbtree.c', 'rbtree.h']
+SRCEBBFILES = LIBEBBFILES.map { |f| &quot;src&quot; / f }
 
-CLOBBER.add ['src/Makefile', 'src/ebb_request_parser.c', 'src/mkmf.log']
+DISTFILES = FileList.new('libev', 'lib/**/*.rb', 'src/*.{rb,rl,c,h}', 'bin/*', 'README', 'Rakefile') + SRCEBBFILES
+CLEAN.add [&quot;**/*.{o,bundle,so,obj,pdb,lib,def,exp}&quot;, &quot;benchmark/*.dump&quot;, 'site/index.html']
+CLOBBER.add ['src/Makefile', 'libev', 'src/mkmf.log', libev_release, '.libebb'] + SRCEBBFILES
 
 Rake::TestTask.new do |t|
   t.test_files = FileList.new(&quot;test/*.rb&quot;)
   t.verbose = true
 end
 
+LIBEBBFILES.each do |f|
+  file(&quot;.libebb&quot;/f =&gt; &quot;.libebb&quot;) 
+  file(&quot;src&quot;/f =&gt; &quot;.libebb&quot;/f) do |t|
+    sh &quot;cp .libebb/#{f} src/#{f}&quot;
+  end
+end
+
 task(:default =&gt; [:compile])
 
-task(:compile =&gt; ['src/Makefile','src/ebb_request_parser.c'] + DISTFILES) do
-  sh &quot;cd #{dir('src')} &amp;&amp; make&quot;
+task(:compile =&gt; ['src/Makefile','libev'] + SRCEBBFILES) do
+  sh &quot;cd src &amp;&amp; make&quot;
 end
 
-file('src/Makefile' =&gt; 'src/extconf.rb') do
-    sh &quot;cd #{dir('src')} &amp;&amp; ruby extconf.rb&quot;
+file libev_release do
+  puts &quot;downloading libev&quot;
+  sh &quot;wget #{libev_url}&quot; do |ok, res|
+    if ! ok
+      puts &quot;Couldn't download libev. Please put #{libev_url} in here and try again&quot;
+      exit 1
+    end
+  end
 end
 
-file('src/ebb_request_parser.c' =&gt; 'src/ebb_request_parser.rl') do
-  sh 'ragel -s -G2 src/ebb_request_parser.rl'
+file &quot;libev&quot; =&gt; libev_release do
+  sh &quot;tar -zxf #{libev_release}&quot;
+  sh &quot;mv #{libev_release.sub('.tar.gz', '')} libev&quot;
 end
 
-task(:wc) { sh &quot;wc -l ruby_lib/*.rb src/ebb*.{c,h}&quot; }
+file &quot;.libebb&quot; do
+  sh &quot;git clone git://github.com/ry/libebb.git .libebb&quot;
+end
+
+file('src/Makefile' =&gt; 'src/extconf.rb') do
+  sh &quot;cd src &amp;&amp; ruby extconf.rb&quot;
+end
+
+file_create(&quot;.libebb/ebb_request_parser.c&quot; =&gt; '.libebb/ebb_request_parser.rl') do
+  sh 'ragel -s -G2 .libebb/ebb_request_parser.rl'
+end
 
 task(:test =&gt; DISTFILES)
 Rake::TestTask.new do |t|</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -31,14 +31,13 @@ if have_header('sys/inotify.h')
 end
 
 dir = File.dirname(__FILE__)
-libev_dir = File.expand_path(dir + '/libev')
+libev_dir = File.expand_path(dir + '/../libev')
 
-$LDFLAGS &lt;&lt; &quot; -lefence &quot;
+#$LDFLAGS &lt;&lt; &quot; -lefence &quot;
 $CFLAGS &lt;&lt; &quot; -I#{libev_dir} &quot; &lt;&lt; flags.join(' ')
 $defs &lt;&lt; &quot;-DRUBY_VERSION_CODE=#{RUBY_VERSION.gsub(/\D/, '')}&quot;
 
-
-$srcs = ['ebb_ffi.c', 'ebb.c', &quot;ebb_request_parser.c&quot;, &quot;rbtree.c&quot;]
+$srcs = ['ebb_ffi.c', &quot;ebb.c&quot;, &quot;ebb_request_parser.c&quot;, &quot;rbtree.c&quot;]
 $objs = ['ebb_ffi.o', &quot;ebb.o&quot;, &quot;ebb_request_parser.o&quot;, &quot;rbtree.o&quot;]
 
 dir_config('ebb_ffi')</diff>
      <filename>src/extconf.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>libev/ev.c</filename>
    </removed>
    <removed>
      <filename>libev/ev.h</filename>
    </removed>
    <removed>
      <filename>libev/ev_epoll.c</filename>
    </removed>
    <removed>
      <filename>libev/ev_kqueue.c</filename>
    </removed>
    <removed>
      <filename>libev/ev_poll.c</filename>
    </removed>
    <removed>
      <filename>libev/ev_port.c</filename>
    </removed>
    <removed>
      <filename>libev/ev_select.c</filename>
    </removed>
    <removed>
      <filename>libev/ev_vars.h</filename>
    </removed>
    <removed>
      <filename>libev/ev_win32.c</filename>
    </removed>
    <removed>
      <filename>libev/ev_wrap.h</filename>
    </removed>
    <removed>
      <filename>src/ebb.c</filename>
    </removed>
    <removed>
      <filename>src/ebb.h</filename>
    </removed>
    <removed>
      <filename>src/ebb_request_parser.h</filename>
    </removed>
    <removed>
      <filename>src/ebb_request_parser.rl</filename>
    </removed>
    <removed>
      <filename>src/libev/ev.c</filename>
    </removed>
    <removed>
      <filename>src/libev/ev.h</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_epoll.c</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_kqueue.c</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_poll.c</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_port.c</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_select.c</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_vars.h</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_win32.c</filename>
    </removed>
    <removed>
      <filename>src/libev/ev_wrap.h</filename>
    </removed>
    <removed>
      <filename>src/rbtree.c</filename>
    </removed>
    <removed>
      <filename>src/rbtree.h</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>b59e58fc78e335e26755b93011397bdf8e8cefe7</id>
    </parent>
  </parents>
  <author>
    <name>Ryan</name>
    <email>ry@tinyclouds.org</email>
  </author>
  <url>http://github.com/ry/ebb/commit/05a68d1c4ce186145adc8ee46e93a4c6f3b11af8</url>
  <id>05a68d1c4ce186145adc8ee46e93a4c6f3b11af8</id>
  <committed-date>2008-08-03T06:20:11-07:00</committed-date>
  <authored-date>2008-08-03T06:20:11-07:00</authored-date>
  <message>make build system download externals</message>
  <tree>b33eea946dd2c6bb05906525ad853c06590d635b</tree>
  <committer>
    <name>Ryan</name>
    <email>ry@tinyclouds.org</email>
  </committer>
</commit>
