# http://sigil.codecauldron.org

This example shows how to build the felix log service, using Ant/Ivy,
instead of Maven.

sigil.properties has been constructed to produce an identical bundle to the
one produced by Maven.

The Felix dependencies are obtained from an OBR index of
http://repo1.maven.org/maven2/org/apache/felix, Maven repos can't be searched
directly for package import dependencies.

1. checkout felix log code
  $ cd felix-log
  $ svn co http://svn.apache.org/repos/asf/felix/trunk/log

2. set ivy.jar location in common/build.properties

3. build
  $ cd log
  $ ant

