Gitiles: Implement Buck driven build

Until extension system is released by Buck team [1], factor out
existing Buck building blocks as Bucklets in standalone git
repository and reuse it as Git submodule to implement Buck driven
build [2].

To build gitiles `gitiles` target is used:

  buck build gitiles

To build servlet, sources and javadoc in addition, `all` target is used:

  buck build all

that produces:

  buck-out/gen/gitiles.war
  buck-out/gen/servlet.jar
  buck-out/gen/src.jar
  buck-out/gen/javadoc.jar

To execute the tests:

  buck test --all

To generate eclipse project:

  bucklets/tools/eclipse.py

To fetch sources for all dependent libraries too:

  bucklets/tools/eclipse.py --src

To install gitiles-servlet into local Maven repository:

  buck build mvn_install

To deploy gitiles-servlet into remote Maven repository:

  buck build mvn_deploy

[1] http://stackoverflow.com/questions/16681527/buck-vs-gradle-pros-and-cons-for-android-build-systems
[2] https://gerrit.googlesource.com/bucklets

Change-Id: Ib824dac6423d69c298f9c30ed7a0c05b4d6447c0
diff --git a/gitiles-war/BUCK b/gitiles-war/BUCK
new file mode 100644
index 0000000..7b5dd36
--- /dev/null
+++ b/gitiles-war/BUCK
@@ -0,0 +1,21 @@
+include_defs('//bucklets/war.bucklet')
+
+war(
+  name = 'gitiles',
+  libs = ['//gitiles-servlet:servlet'],
+  context = [
+    '//gitiles-servlet:static-resources.zip',
+    ':web_xml.zip',
+  ],
+  visibility = ['PUBLIC'],
+)
+
+genrule(
+  name = 'web_xml',
+  cmd = 'mkdir -p $TMP/WEB-INF'
+    + ';cp -r $SRCDIR/src/main/webapp/WEB-INF/web.xml $TMP/WEB-INF'
+    + ';cd $TMP'
+    + ';zip -qr $OUT *',
+  srcs = ['src/main/webapp/WEB-INF/web.xml'],
+  out = 'web_xml.zip',
+)