<?xml version="1.0"?>

<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->

<document>

 <properties>
   <title>Misc. Build Instructions</title>
   <author email="jon@latchkey.com">Jon S. Stevens</author>
 </properties>

 <body>

 <section name="TurbineResources.properties">
  <p>
    To build a new TurbineResources.properties file from the
    TurbineResources.master template:
    <ol>
    <li>Go to the turbine/conf directory.</li>
    <li>Edit any of the properties in turbine/conf/master/meta.properties,
        or alternatively set those properties in your own .ant.properties.</li>
    <li>Run ./build.sh.</li>
    <li>
      Or you can run <strong>ant</strong> if you have
      an installed version of Ant.
    </li>
    </ol>
  </p>
 </section>
 </body>
</document>
