<!--
  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.
-->
<project name="ldapstudio-complete" default="bundle">
    <property name="project.name" value="ldapstudio-complete" />
    <property name="project.version" value="1.0.0" />
    <property name="ldapstudio-complete.output" value="${basedir}/target" />
    <property name="ldapstudio-complete.userguides" value="${ldapstudio-complete.output}/userguides" />    
    
    <!-- Setting up OS Name-->
    <condition property="ldapstudio-rcp.os.name" value="macosx" >
            <os name="Mac OS X"/>
    </condition>
    <condition property="ldapstudio-rcp.os.name" value="linux" >
            <os family="unix" />
    </condition>
    <condition property="ldapstudio-rcp.os.name" value="win32">
            <os family="windows" />
    </condition>

    <!-- Setting up OS Extension-->
    <condition property="ldapstudio-rcp.os.extension" value=".app" >
        <equals arg1="${ldapstudio-rcp.os.name}" arg2="macosx"/>
    </condition>
    <condition property="ldapstudio-rcp.os.extension" value="" >
        <equals arg1="${ldapstudio-rcp.os.name}" arg2="linux"/>
    </condition>
    <condition property="ldapstudio-rcp.os.extension" value=".exe">
        <equals arg1="${ldapstudio-rcp.os.name}" arg2="win32"/>
    </condition>

	<!-- Setting up build folder -->
	<condition property="ldapstudio-complete.build" value="${ldapstudio-complete.output}/LDAP Studio" >
        <or>
            <equals arg1="${ldapstudio-rcp.os.name}" arg2="macosx"/>
            <equals arg1="${ldapstudio-rcp.os.name}" arg2="win32"/>
        </or>
    </condition>
    <condition property="ldapstudio-complete.build" value="${ldapstudio-complete.output}/ldapstudio" >
            <equals arg1="${ldapstudio-rcp.os.name}" arg2="linux"/>
    </condition>
	
    <!-- Setting up a special property if target OS is Mac OS X-->
    <condition property="isTargetMacOSX" value="true" >
            <equals arg1="${ldapstudio-rcp.os.name}" arg2="macosx"/>
    </condition>

    <!-- ================================== -->
    <!--                HELP                -->
    <!-- ================================== -->
    <target name="help" description="Shows help">
        <echo>Available commands:</echo>
	<echo>  bundle - Generate and bundles a complete version of LDAP Studio</echo>
	<echo>      When bundling you can specify the target operating system using this option:</echo>
	<echo>          o -Dldapstudio-rcp.os.name=macosx for Mac OS X</echo>
	<echo>          o -Dldapstudio-rcp.os.name=linux for Linux</echo>
	<echo>          o -Dldapstudio-rcp.os.name=win32 for Windows</echo>
	<echo>      and the target architecture using this option:</echo>
	<echo>          o -Dldapstudio-rcp.os.arch=i386 for i386 architecture (Linux and Mac OS X)</echo>
	<echo>          o -Dldapstudio-rcp.os.arch=x86 for x86 architecture (Windows only)</echo>
	<echo>          o -Dldapstudio-rcp.os.arch=ppc for PowerPC architecture</echo>
	<echo>          o -Dldapstudio-rcp.os.arch=amd64 for AMD64 architecture</echo>
        <echo>  clean - Delete any generated file (javadoc, classes, jars, distribution)</echo>
        <echo>  javadoc - Generate Javadoc files</echo>
        <echo>  userguides - Generate HTML and PDF user guides</echo>
	<echo>  resolve - Resolves the library dependencies using Ivy</echo>
    </target>

    <!-- ================================== -->
    <!--               BUNDLE               -->
    <!-- ================================== -->
    <target name="bundle" description="Bundles the complete application">
        <!-- Creation of the folders -->
        <mkdir dir="${ldapstudio-complete.build}" />

        <!-- Creation of the LDAP Studio RCP application -->
        <ant dir="ldapstudio-rcp" inheritAll="no" />
        <!-- Copy of the RCP app -->
        <copy todir="${ldapstudio-complete.build}">
            <fileset dir="${basedir}/ldapstudio-rcp/target/ldapstudio">
                <include name="**" />
            </fileset>
        </copy>

        <!-- Creation of the LDAP Studio RCP Help application -->
        <ant dir="ldapstudio-rcp-help" inheritAll="no" />
        <!-- Copy of the LDAP Studio RCP Help Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-rcp-help/target/">
                <include name="*.jar" />
            </fileset>
        </copy>

	    <!-- Creation of the New Version Plugin -->
        <ant dir="ldapstudio-new-version" inheritAll="no" />
        <!-- Copy of the New Version Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-new-version/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Schemas Editor Plugin -->
        <ant dir="ldapstudio-schemas-plugin" inheritAll="no" />
        <!-- Copy of the Schemas Editor Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-schemas-plugin/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Schemas Editor Help Plugin -->
        <ant dir="ldapstudio-schemas-help" inheritAll="no" />
        <!-- Copy of the Schemas Editor Help Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-schemas-help/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Browser Core Plugin -->
        <ant dir="ldapstudio-browser-core" inheritAll="no" />
        <!-- Copy of the Browser Core Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-browser-core/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Browser Common Plugin -->
        <ant dir="ldapstudio-browser-common" inheritAll="no" />
        <!-- Copy of the Browser Common Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-browser-common/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the LDIF Editor Plugin -->
        <ant dir="ldapstudio-ldifeditor" inheritAll="no" />
        <!-- Copy of the LDIF Editor Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-ldifeditor/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Browser UI Plugin -->
        <ant dir="ldapstudio-browser-ui" inheritAll="no" />
        <!-- Copy of the Browser UI Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-browser-ui/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Browser Help Plugin -->
        <ant dir="ldapstudio-browser-help" inheritAll="no" />
        <!-- Copy of the Browser Help Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-browser-help/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Value Editors Plugin -->
        <ant dir="ldapstudio-valueeditors" inheritAll="no" />
        <!-- Copy of the Value Editors Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-valueeditors/target">
                <include name="*.jar" />
            </fileset>
        </copy>
        	
        <!-- Creation of the ACI Item Editor Plugin -->
        <ant dir="ldapstudio-aciitemeditor" inheritAll="no" />
        <!-- Copy of the ACI Item Edtior Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-aciitemeditor/target">
                <include name="*.jar" />
            </fileset>
        </copy>

	    <!-- Creation of the Jars Plugin -->
        <ant dir="ldapstudio-jars" inheritAll="no" />
        <!-- Copy of the Jars Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-jars/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Apache DS Configuration Plugin -->
        <ant dir="ldapstudio-apacheds-configuration" inheritAll="no" />
        <!-- Copy of the Jars Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-apacheds-configuration/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Creation of the Apache DS Configuration Help Plugin -->
        <ant dir="ldapstudio-apacheds-configuration-help" inheritAll="no" />
        <!-- Copy of the Jars Plugin in the "plugins" folder of the RCP app -->
        <copy todir="${ldapstudio-complete.build}/plugins">
            <fileset dir="${basedir}/ldapstudio-apacheds-configuration-help/target">
                <include name="*.jar" />
            </fileset>
        </copy>

        <!-- Property for the features -->
		<property name="project.features" value="${ldapstudio-complete.build}/features" />

        <!-- Copy of the LDAP Studio RCP Feature in the "features" folder -->
		<property name="ldapstudio-rcp-feature.project" value="${basedir}/ldapstudio-rcp-feature" />
		<property name="ldapstudio-rcp-feature.name" value="org.apache.directory.ldapstudio.rcp.feature" />
		<property name="ldapstudio-rcp-feature.version" value="0.7.1" />
        <mkdir dir="${project.features}/${ldapstudio-rcp-feature.name}_${ldapstudio-rcp-feature.version}" />
		<copy todir="${project.features}/${ldapstudio-rcp-feature.name}_${ldapstudio-rcp-feature.version}">
			<fileset dir="${ldapstudio-rcp-feature.project}">
				<include name="feature.xml" />
				<include name="ldapstudio.png" />
				<include name="META-INF/**" />
			</fileset>
		</copy>
		
        <!-- Copy of the Schemas Editor Feature in the "features" folder -->
		<property name="ldapstudio-schemas-feature.project" value="${basedir}/ldapstudio-schemas-feature" />
		<property name="ldapstudio-schemas-feature.name" value="org.apache.directory.ldapstudio.schemas.feature" />
		<property name="ldapstudio-schemas-feature.version" value="0.8.1" />
		<mkdir dir="${project.features}/${ldapstudio-schemas-feature.name}_${ldapstudio-schemas-feature.version}" />
		<copy todir="${project.features}/${ldapstudio-schemas-feature.name}_${ldapstudio-schemas-feature.version}">
			<fileset dir="${ldapstudio-schemas-feature.project}">
				<include name="feature.xml" />
				<include name="ldapstudio.png" />
				<include name="META-INF/**" />
			</fileset>
		</copy>
		
	    <!-- Copy of the Browser Feature in the "features" folder -->
		<property name="ldapstudio-browser-feature.project" value="${basedir}/ldapstudio-browser-feature" />
		<property name="ldapstudio-browser-feature.name" value="org.apache.directory.ldapstudio.browser.feature" />
		<property name="ldapstudio-browser-feature.version" value="0.8.1" />
		<mkdir dir="${project.features}/${ldapstudio-browser-feature.name}_${ldapstudio-browser-feature.version}" />
		<copy todir="${project.features}/${ldapstudio-browser-feature.name}_${ldapstudio-browser-feature.version}">
			<fileset dir="${ldapstudio-browser-feature.project}">
				<include name="feature.xml" />
				<include name="ldapstudio.png" />
				<include name="META-INF/**" />
			</fileset>
		</copy>

        <!-- Copy of the Apache DS Configuration Feature in the "features" folder -->
		<property name="ldapstudio-apacheds-configuration-feature.project" value="${basedir}/ldapstudio-apacheds-configuration-feature" />
		<property name="ldapstudio-apacheds-configuration-feature.name" value="org.apache.directory.ldapstudio.apacheds.configuration.feature" />
		<property name="ldapstudio-apacheds-configuration-feature.version" value="0.8.1" />
		<mkdir dir="${project.features}/${ldapstudio-apacheds-configuration-feature.name}_${ldapstudio-apacheds-configuration-feature.version}" />
		<copy todir="${project.features}/${ldapstudio-apacheds-configuration-feature.name}_${ldapstudio-apacheds-configuration-feature.version}">
			<fileset dir="${ldapstudio-apacheds-configuration-feature.project}">
				<include name="feature.xml" />
				<include name="ldapstudio.png" />
				<include name="META-INF/**" />
			</fileset>
		</copy>

    	<!-- Copy the legal stuff -->
        <copy todir="${ldapstudio-complete.build}">
          <fileset dir="${basedir}/docs">
               <include name="LICENSE.txt"/>
               <include name="NOTICE.txt"/>
               <include name="Release Notes.txt"/>
          </fileset>
        </copy>
    	
        <!-- Setting Permissions -->
        <antcall target="setPermission_${ldapstudio-rcp.os.name}" />
        
        <!-- Special repackaging for Mac OS X -->
        <antcall target="repackage_MacOSX" />
    </target>
	
    <!-- ================================== -->
    <!--        Set Right Permissions       -->
    <!-- ================================== -->
    <target name="setPermission_macosx" description="Sets the right permissions on Mac OS X">
        <chmod file="${ldapstudio-complete.build}/LDAP Studio.app/Contents/MacOS/LDAPStudio" perm="755"/>
    </target>
    
    <target name="setPermission_linux" description="Sets the right permissions on Linux">
        <chmod file="${ldapstudio-complete.build}/ldapstudio" perm="755"/>
    </target>

    <target name="setPermission_win32" description="Sets the right permissions on Windows">
        <chmod file="${ldapstudio-complete.build}/LDAP Studio.exe" perm="755" />
    </target>
    
    <!-- ================================== -->
    <!--         Repackage Mac OS X         -->
    <!-- ================================== -->
    <target name="repackage_MacOSX" description="Special repackage for Mac OS X" if="isTargetMacOSX">        <property name="app.dir" location="${ldapstudio-complete.build}/LDAP Studio.app" />        <property name="java.dir" location="${app.dir}/Contents/Resources/Java" />
        <mkdir dir="${java.dir}"/>        <move todir="${java.dir}">          <fileset dir="${ldapstudio-complete.build}">               <exclude name="LDAP Studio.app/**"/>          </fileset>        </move>
    </target>

    <!-- ================================== -->
    <!--             USERGUIDES             -->
    <!-- ================================== -->
    <target name="userguides" description="Generates the user guides">
        <!-- Creation of the folders -->
        <mkdir dir="${ldapstudio-complete.userguides}" />

        <!-- Creation of the LDAP Studio RCP user guides -->
        <ant dir="ldapstudio-rcp-help" inheritAll="no" target="static-html" />
        <ant dir="ldapstudio-rcp-help" inheritAll="no" target="static-pdf" />
        <!-- Copy of the RCP user guides -->
        <mkdir dir="${ldapstudio-complete.userguides}/ldap_studio" />
        <copy todir="${ldapstudio-complete.userguides}/ldap_studio">
            <fileset dir="${basedir}/ldapstudio-rcp-help/target/html">
                <include name="**" />
            </fileset>
        </copy>
        <copy todir="${ldapstudio-complete.userguides}">
            <fileset dir="${basedir}/ldapstudio-rcp-help/target/pdf">
                <include name="**/*.pdf" />
            </fileset>
        </copy>

        <!-- Creation of the LDAP Studio Browser user guides -->
        <ant dir="ldapstudio-browser-help" inheritAll="no" target="static-html" />
        <ant dir="ldapstudio-browser-help" inheritAll="no" target="static-pdf" />
        <!-- Copy of the browser user guides -->
        <mkdir dir="${ldapstudio-complete.userguides}/ldap_browser" />
        <copy todir="${ldapstudio-complete.userguides}/ldap_browser">
            <fileset dir="${basedir}/ldapstudio-browser-help/target/html">
                <include name="**" />
            </fileset>
        </copy>
        <copy todir="${ldapstudio-complete.userguides}">
            <fileset dir="${basedir}/ldapstudio-browser-help/target/pdf">
                <include name="**/*.pdf" />
            </fileset>
        </copy>

        <!-- Creation of the LDAP Studio Schemas Editor user guides -->
        <ant dir="ldapstudio-schemas-help" inheritAll="no" target="static-html" />
        <ant dir="ldapstudio-schemas-help" inheritAll="no" target="static-pdf" />
        <!-- Copy of the schemas user guides -->
        <mkdir dir="${ldapstudio-complete.userguides}/schemas_editor" />
        <copy todir="${ldapstudio-complete.userguides}/schemas_editor">
            <fileset dir="${basedir}/ldapstudio-schemas-help/target/html">
                <include name="**" />
            </fileset>
        </copy>
        <copy todir="${ldapstudio-complete.userguides}">
            <fileset dir="${basedir}/ldapstudio-schemas-help/target/pdf">
                <include name="**/*.pdf" />
            </fileset>
        </copy>
    </target>

    <!-- ================================== -->
    <!--              JAVADOC               -->
    <!-- ================================== -->
    <target name="javadoc" description="Generate Javadoc files">
        <ant dir="ldapstudio-rcp" inheritAll="no" target="javadoc" />
        <ant dir="ldapstudio-schemas-plugin" inheritAll="no" target="javadoc" />
        <ant dir="ldapstudio-dsml-parser" inheritAll="no" target="javadoc" />
        <ant dir="ldapstudio-browser-core" inheritAll="no" target="javadoc" />
        <ant dir="ldapstudio-browser-ui" inheritAll="no" target="javadoc" />
        <ant dir="ldapstudio-aciitemeditor" inheritAll="no" target="javadoc" />
    </target>

    <!-- ================================== -->
    <!--              RESOLVE               -->
    <!-- ================================== -->
    <target name="resolve" description="Resolves the library dependencies using Ivy">
        <ant dir="ldapstudio-rcp" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-rcp-help" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-schemas-plugin" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-schemas-help" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-dsml-parser" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-browser-core" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-browser-common" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-ldifeditor" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-browser-ui" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-browser-help" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-valueeditors" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-aciitemeditor" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-jars" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-apacheds-configuration" inheritAll="no" target="resolve" />
        <ant dir="ldapstudio-apacheds-configuration-help" inheritAll="no" target="resolve" />
    </target>

    <!-- ================================== -->
    <!--               CLEAN                -->
    <!-- ================================== -->
    <target name="clean" description="Deletes any generated file (javadoc, classes, jars, distribution)">
        <ant dir="ldapstudio-rcp" inheritAll="no" target="clean"/>
        <ant dir="ldapstudio-rcp-feature" inheritAll="no" target="clean"/>
        <ant dir="ldapstudio-rcp-help" inheritAll="no" target="clean"/>
        <ant dir="ldapstudio-schemas-plugin" inheritAll="no" target="clean"/>
        <ant dir="ldapstudio-schemas-help" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-schemas-feature" inheritAll="no" target="clean"/>
        <ant dir="ldapstudio-browser-core" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-browser-common" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-ldifeditor" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-browser-ui" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-browser-help" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-browser-feature" inheritAll="no" target="clean"/>
        <ant dir="ldapstudio-valueeditors" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-aciitemeditor" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-jars" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-apacheds-configuration" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-apacheds-configuration-help" inheritAll="no" target="clean" />
        <ant dir="ldapstudio-updatesite" inheritAll="no" target="clean" />
        <delete dir="${ldapstudio-complete.output}" />
    </target>

    <target name="release" description="Releases">
        <!-- Setting some properties -->
        <property name="packages-folder" value="${basedir}/packages" />
        <property name="packages-folder.macosx" value="${packages-folder}/MacOSX" />
        <property name="packages-folder.windows" value="${packages-folder}/Windows" />
        <property name="packages-folder.linux-i386" value="${packages-folder}/Linuxi386" />
        <property name="packages-folder.linux-ppc" value="${packages-folder}/LinuxPPC" />
        <property name="packages-folder.linux-amd64" value="${packages-folder}/LinuxAMD64" />
        <property name="packages-folder.updatesite" value="${packages-folder}/updatesite" />

        <!-- Cleaning the 'packages' folder (just in case) -->
        <delete includeemptydirs="true" failonerror="no">
			<fileset dir="${packages-folder}" />
		</delete>

        <!-- Cleaning latest build (just in case) -->
        <antcall target="clean" inheritall="false"/>
        <!-- Generating LDAP Studio for Mac OS X -->
        <antcall target="bundle" inheritall="false">
            <param name="ldapstudio-rcp.os.name" value="macosx"/>
            <param name="ldapstudio-rcp.os.arch" value="i386"/>
            <param name="ldapstudio-rcp.os.extension" value=".app"/>
        </antcall>
        <move todir="${packages-folder.macosx}">          <fileset dir="${ldapstudio-complete.output}"/>        </move>

        <!-- Cleaning latest build -->
        <antcall target="clean" inheritall="false"/>
        <!-- Generating LDAP Studio for Windows -->
        <antcall target="bundle" inheritall="false">
            <param name="ldapstudio-rcp.os.name" value="win32"/>
            <param name="ldapstudio-rcp.os.arch" value="x86"/>
            <param name="ldapstudio-rcp.os.extension" value=".exe"/>
        </antcall>
        <move todir="${packages-folder.windows}">          <fileset dir="${ldapstudio-complete.output}"/>        </move>

        <!-- Cleaning latest build -->
        <antcall target="clean" inheritall="false"/>
        <!-- Generating LDAP Studio for Linux i386 -->
        <antcall target="bundle" inheritall="false">
            <param name="ldapstudio-rcp.os.name" value="linux"/>
            <param name="ldapstudio-rcp.os.arch" value="i386"/>
            <param name="ldapstudio-rcp.os.extension" value=""/>
        </antcall>
		<mkdir dir="${packages-folder.linux-i386}" />
        <tar compression="gzip" destfile="${packages-folder.linux-i386}/LDAP_Studio_Linux_i386.tar.gz">
            <tarfileset dir="${ldapstudio-complete.output}" mode="755">
				<include name="ldapstudio/ldapstudio" />
			</tarfileset>
            <tarfileset dir="${ldapstudio-complete.output}">
				<include name="**" />
				<exclude name="ldapstudio/ldapstudio" />
			</tarfileset>
        </tar>

        <!-- Cleaning latest build-->
        <antcall target="clean" inheritall="false"/>
        <!-- Generating LDAP Studio for Linux PPC -->
        <antcall target="bundle" inheritall="false">
            <param name="ldapstudio-rcp.os.name" value="linux"/>
            <param name="ldapstudio-rcp.os.arch" value="ppc"/>
            <param name="ldapstudio-rcp.os.extension" value=""/>
        </antcall>
		<mkdir dir="${packages-folder.linux-ppc}" />
        <tar compression="gzip" destfile="${packages-folder.linux-ppc}/LDAP_Studio_Linux_PPC.tar.gz">
            <tarfileset dir="${ldapstudio-complete.output}" mode="755">
				<include name="ldapstudio/ldapstudio" />
			</tarfileset>
            <tarfileset dir="${ldapstudio-complete.output}">
				<include name="**" />
				<exclude name="ldapstudio/ldapstudio" />
			</tarfileset>
        </tar>
        
        <!-- Cleaning latest build-->
        <antcall target="clean" inheritall="false"/>
        <!-- Generating LDAP Studio for Linux AMD64 -->
        <antcall target="bundle" inheritall="false">
            <param name="ldapstudio-rcp.os.name" value="linux"/>
            <param name="ldapstudio-rcp.os.arch" value="amd64"/>
            <param name="ldapstudio-rcp.os.extension" value=""/>
        </antcall>
		<mkdir dir="${packages-folder.linux-amd64}" />
        <tar compression="gzip" destfile="${packages-folder.linux-amd64}/LDAP_Studio_Linux_AMD64.tar.gz">
            <tarfileset dir="${ldapstudio-complete.output}" mode="755">
				<include name="ldapstudio/ldapstudio" />
			</tarfileset>
            <tarfileset dir="${ldapstudio-complete.output}">
				<include name="**" />
				<exclude name="ldapstudio/ldapstudio" />
			</tarfileset>
        </tar>
        
        <!-- Cleaning latest build-->
        <antcall target="clean" inheritall="false"/>
        <!-- Generating LDAP Studio's update site -->
        <ant dir="ldapstudio-updatesite" inheritAll="no"/>
		<mkdir dir="${packages-folder.updatesite}" />
		<move todir="${packages-folder.updatesite}">            <fileset dir="ldapstudio-updatesite">
                <include name="features/**"/>
                <include name="plugins/**"/>
                <include name="site--xml.html"/>
            </fileset>        </move>
    </target>
</project>
