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

<!--
 Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.

 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions
 are met:

   - Redistributions of source code must retain the above copyright
     notice, this list of conditions and the following disclaimer.

   - Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

   - Neither the name of Sun Microsystems nor the names of its
     contributors may be used to endorse or promote products derived
     from this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->

<project name="make" basedir="..">
    
    <target name="-make.init" depends="-init,-pre-init.linux,-pre-init.solaris,-pre-init.windows">
        <property name="make.options" value=""/> <!-- default, can be overridden per user or per project -->
    </target>
    
    <target name="-pre-init.linux" if="os.linux">
        <property name="platform" value="linux"/>
        <property name="make" value="make"/>
    </target>

    <target name="-pre-init.solaris" if="os.solaris">
        <property name="platform" value="solaris"/>
        <property name="make" value="gmake"/>
    </target>

    <target name="-pre-init.windows" if="os.windows">
        <property name="platform" value="windows"/>
        <property name="make" value="c:/cygwin/bin/make"/>
    </target>
    
    <macrodef name="make-run">
            <attribute name="target"/>
            <attribute name="dir"/>
            <attribute name="opts" default=""/>
            <sequential>
                <echo message="Entering directory `@{dir}'"/>
                <exec executable="${make}" dir="@{dir}" failonerror="true">
                    <arg value="@{target}"/>
                    <arg line="@{opts}"/>
                    <arg line="${make.options}"/>
                    <!-- Unset key variables -->
                    <env key="JAVA_HOME" value=""/>
                    <env key="LANG" value=""/>
                    <env key="LD_LIBRARY_PATH" value=""/>
                </exec>
                <echo message="Leaving directory `@{dir}'"/>
            </sequential>
        </macrodef>
</project>
