<project name="dist-linux" default="build" basedir=".">
  <property name="dist.platform" value="linux" />
  <import file="../common.ant.xml" />
  <property name="project.dist" location="${gwt.build.dist}/${project.distname}.tar.bz2" />

  <target name="build" depends="filter" description="Packages the distro">
    <!-- TODO: figure out how to share most of this across platforms -->
    <mkdir dir="${gwt.build.dist}" />
    <gwt.tgz.cat destfile="${project.dist}" compression="bzip2">
      <!-- jars -->
      <tarfileset file="${gwt.build.lib}/gwt-dev-${dist.platform}.jar" prefix="${project.distname}" />
      <tarfileset file="${gwt.build.lib}/gwt-user.jar" prefix="${project.distname}" />
      <tarfileset file="${gwt.build.lib}/gwt-servlet.jar" prefix="${project.distname}" />
      <tarfileset file="${gwt.build.lib}/gwt-benchmark-viewer.jar" prefix="${project.distname}" />

      <!-- jni libs-->
      <tarfileset dir="${gwt.build.jni}/${dist.platform}" prefix="${project.distname}" />
      <tarfileset dir="${gwt.tools.lib}/eclipse" prefix="${project.distname}">
        <include name="libswt-*gtk-3235.so" />
      </tarfileset>

      <!-- raw files -->
      <tarfileset dir="${project.build}" prefix="${project.distname}" mode="755">
        <patternset refid="chmod.executables" />
      </tarfileset>
      <tarfileset dir="${project.build}" prefix="${project.distname}">
        <patternset refid="chmod.not.executables" />
      </tarfileset>
      <tarfileset dir="src" prefix="${project.distname}" mode="755">
        <patternset refid="chmod.executables" />
      </tarfileset>
      <tarfileset dir="src" prefix="${project.distname}">
        <patternset refid="chmod.not.executables" />
      </tarfileset>

      <!-- doc -->
      <tarfileset dir="${gwt.build.out}" prefix="${project.distname}">
        <include name="doc" />
        <include name="doc/html/**" />
        <include name="doc/css/**" />
        <include name="doc/javadoc/**" />
      </tarfileset>

      <!-- samples -->
      <tarfileset dir="${gwt.build.out}" prefix="${project.distname}">
        <include name="samples" />
        <include name="samples/*" />
        <include name="samples/*/src/**" />
        <include name="samples/*/bin/**" />
        <include name="samples/*/www/**" />
        <exclude name="samples/*/www/.*/**" />
      </tarfileset>
      <tarfileset dir="${gwt.build.out}/samples-scripts/${dist.platform}" mode="755" prefix="${project.distname}/samples">
        <include name="*/*-compile" />
        <include name="*/*-shell" />
      </tarfileset>

      <includetar src="${gwt.tools.redist}/mozilla/mozilla-1.7.12.tar.gz" compression="gzip" prefix="${project.distname}" />
    </gwt.tgz.cat>

    <if>
      <isset property="build.host.islinux" />
      <then>
        <!--
          Untar distro into the staging directory.  Must use GNU tar
          to handle permissions and symlinks correctly.
        -->
        <mkdir dir="${gwt.build.staging}" />
        <exec executable="tar" failonerror="true">
          <arg value="-xpjf" />
          <arg file="${project.dist}" />
          <arg value="-C" />
          <arg file="${gwt.build.staging}" />
        </exec>
      </then>
    </if>
  </target>
</project>
