<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}" />
    <mkdir dir="${gwt.build.out}/samples-scripts/${dist.platform}"/>
    <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-dev-oophm.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.war" prefix="${project.distname}" />
      <tarfileset file="${gwt.build.lib}/gwt-soyc-vis.jar" prefix="${project.distname}" />
      <tarfileset file="${gwt.build.lib}/gwt-api-checker.jar" prefix="${project.distname}" />

      <!-- jni libs-->
      <tarfileset dir="${gwt.build.jni}/${dist.platform}" prefix="${project.distname}" />

      <!-- raw files -->
      <tarfileset dir="${dist.resources}" prefix="${project.distname}" mode="755">
        <patternset refid="chmod.executables" />
      </tarfileset>
      <tarfileset dir="${dist.resources}" 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/*/war/**" />
      </tarfileset>
      <tarfileset dir="${gwt.build.out}/samples-scripts/${dist.platform}" mode="755" prefix="${project.distname}/samples">
        <include name="*/*" />
      </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>
