<project name="jfniki" default="jar">
  <property name="src" value="./src" />
  <property name="alien.src" value="./alien/src" />
  <property name="alien.libs" value="./alien/libs" />
  <property name="classes" value="./build/classes" />
  <property name="doc" value="./doc" />
  <property name="templates" value="./templates" />
  <property name="style" value="./style" />
  <property name="jars" value="./build/jar" />

  <target name="clean">
    <delete dir="${jars}"/>
    <delete dir="${classes}"/>
  </target>

  <!-- Build external dependencies from source, but keep them separate. -->
  <target name="compile.alien.src">
    <mkdir dir="${classes}"/>
    <javac srcdir="${alien.src}" destdir="${classes}" debug="true">
    <compilerarg line="-encoding utf8"/>
    </javac>
  </target>

  <target name="compile" depends="compile.alien.src">
    <mkdir dir="${classes}"/>
    <mkdir dir="${alien.libs}"/>
    <fail message="No freenet.jar! Copy freenet.jar into: ${alien.libs}">
      <condition>
        <not>
          <resourcecount count="1">
            <fileset id="fs" dir="${alien.libs}" includes="freenet.jar"/>
          </resourcecount>
        </not>
      </condition>
    </fail>
    <javac srcdir="${src}" destdir="${classes}" debug="true">
        <compilerarg line="-encoding utf8"/>
        <classpath>
        <pathelement location="${alien.libs}/freenet.jar"/>
        </classpath>
    </javac>
  </target>

  <!-- jfniki.jar contains both standalone and plugin code too. -->
  <target name="jar" depends="compile">
    <mkdir dir="${jars}"/>
    <jar destfile="${jars}/jfniki.jar" basedir="${classes}">
      <manifest>
        <attribute name="Main-Class" value="fniki.standalone.ServeHttp"/>
        <attribute name="Plugin-Main-Class" value="fniki.freenet.plugin.Fniki"/>
      </manifest>
      <fileset dir="${doc}" includes="quickstart.txt"/>
      <fileset dir="${templates}" includes="*.html"/>
      <!-- A place to stash snippets of .css -->
      <fileset dir="${style}" includes="*.css"/>
    </jar>
  </target>

  <target name="run" depends="jar">
    <java jar="${jars}/jfniki.jar" fork="true"/>
  </target>

</project>