<?xml version="1.0" encoding="UTF-8" ?>
<!--

    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.

-->

<!-- arguments below are taken form the upper ANT task -->

<!-- basedir == directory, where the localizable files are -->
<!-- destdir == directory, where will be saved final JAR file -->
<!-- locale  == a locale ... files with these locale will be added to the archive (JAR file) -->

<!-- idedir  == part in the IDE, where will be stored final file -->


<project name="Sub_debuggerjpda" default="sub_debuggerjpda" basedir="${dir}">

	<!-- setup the destination directory -->
	<property name="idedir" value="modules/locale" />

	<target name="sub_debuggerjpda">
                <!-- create full destination directory -->
                <mkdir dir="${destdir}/${idedir}" />
                <!-- create final jar file -->
                <jar jarfile="${destdir}/${idedir}/debuggerjpda_${locale}.jar" basedir="${basedir}/src" includes="**/*_${locale}.*" />
        </target>

</project>
