<!--
    Copyright (c) 2009 IBM Corporation and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
   
    Contributors:
        IBM Corporation - initial API and implementation
 -->
<project name="Launcher Build" basedir="." default="build">
	<property name="cvsLogin" value=":pserver:anonymous" />
	<property name="cvsRoot" value="${cvsLogin}@dev.eclipse.org:/cvsroot/rt" />
	<property name="cvsrsh" value="ssh" />
	<property name="cvsExecutablePath" value="org.eclipse.equinox/framework/bundles/org.eclipse.equinox.executable" />
	<property name="cvsTag" value="HEAD" />
	
	<!-- Macro for execing scp -->
	<macrodef name="SCP">
		<attribute name="dir" />
		<attribute name="source"/>
		<attribute name="destination" />
		<attribute name="failonerror" default="true" />
		<sequential>
			<echo message="Copying @{source} to @{destination}."/>
			<exec dir="@{dir}" executable="scp" failonerror="@{failonerror}">
				<arg value="-q"/>
				<arg line="@{source}" />
				<arg value="@{destination}" />
			</exec>
		</sequential>
	</macrodef>
	
	<!-- macro to resolve properties because we can't do ${${prop}} -->
	<macrodef name="resolveProperty">
		<attribute name="name" />
		<attribute name="value" />
		<sequential>
			<condition property="@{name}" value="${@{value}}" >
				<isset property="@{value}"/>
			</condition>
		</sequential>
	</macrodef>
	
	<target name="init_exeFolder" >
		<!-- set to "bin" or "contributed" according to which folder under org.eclipse.equinox.executable to store the built eclipse -->
		<condition property="exeFolder" value="contributed" else="bin">
			<or>
				<equals arg1="s390" arg2="${arch}" />
				<equals arg1="s390x" arg2="${arch}" />
				<equals arg1="motif.sparc" arg2="${ws}.${arch}" />
				<equals arg1="win32.ia64" arg2="${ws}.${arch}" />
			</or>
		</condition>
	</target>
	
	<target name="init_fragment" >
		<!-- set to "contributed" or "fragments" according to which folder under org.eclipse.equinox.launcher to find the fragment -->
		<condition property="subFolder" value="contributed" else="fragments">
			<or>
				<equals arg1="s390" arg2="${arch}" />
				<equals arg1="s390x" arg2="${arch}" />
				<equals arg1="solaris.x86" arg2="${os}.${arch}" />
			</or>
		</condition>
		<!-- mac only has arch in fragment name for x86_64 -->
		<condition property="fragmentFolder" value="${subFolder}/org.eclipse.equinox.launcher.${ws}.${os}.${arch}" 
											 else="${subFolder}/org.eclipse.equinox.launcher.${ws}.${os}" >
			<not>
				<and>
					<equals arg1="macosx" arg2="${os}"/>
					<not> <equals arg1="x86_64" arg2="${arch}"/> </not>
				</and>
			</not>
		</condition>
	</target>

	<target name="fetchExecutableSource" >
		<!-- fetch the source and put it in a folder unique to this platform so we don't interfere with other
		     compiles if the working folder is shared accross multiple machines -->
		<delete dir="${basedir}/${os}.${ws}.${arch}/library" failonerror="false"/> 
		<cvs command="export -d ${os}.${ws}.${arch}/library" tag="${cvsTag}" cvsrsh="${cvsrsh}" package="${cvsExecutablePath}/library" cvsRoot="${cvsRoot}" dest="${basedir}" quiet="true" failonerror="true"/>
	</target>
	
	<target name="buildNix" if="buildNix">
		<!-- exec the build.sh for flavors of unix -->
		<exec dir="${libraryFolder}/${ws}" executable="sh" failonerror="true">
				<arg value="build.sh"/>
				<arg line="-ws ${ws} -os ${os} -arch ${arch}"/>
				<arg line="-java ${javaHome}"/>
				<arg value="clean all" />
				<env key="PATH" value="/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin" />
		</exec>	
		
		<!-- copy the resulting executable and .so -->
		<SCP dir="${libraryFolder}/${ws}" source="eclipse" destination="${resultsBaseFolder}/org.eclipse.equinox.executable/${exeFolder}/${ws}/${os}/${arch}" />
		<SCP dir="${libraryFolder}/${ws}" source="eclipse_${maj_ver}${min_ver}.so" destination="${resultsBaseFolder}/org.eclipse.equinox.launcher/${fragmentFolder}" />
		
		<condition property="copyMotifLib" >
			<equals arg1="aix.motif" arg2="${os}.${ws}" />
		</condition>
		<antcall target="copyMotifLib" />
	</target>
			
	<target name="copyMotifLib" if="copyMotifLib" >
		<SCP dir="${libraryFolder}/${ws}" source="libeclipse-motif.so" destination="${resultsBaseFolder}/org.eclipse.equinox.launcher/${fragmentFolder}" failonerror="false" />
	</target>
	
	<target name="buildWindows" if="buildWindows">
		<!-- exec the batch file to build on windows -->
		<exec dir="${libraryFolder}/${ws}" executable="cmd" failonerror="true">
			<arg value="/c" />
			<arg value="build.bat" />
			<arg line="${arch}"/>
			<arg value="-java"/>
			<arg value="${javaHome}"/>
			<arg line="clean all" />
		</exec>
		
		<SCP dir="${libraryFolder}/${ws}" source="eclipse.exe eclipsec.exe" destination="${resultsBaseFolder}/org.eclipse.equinox.executable/${exeFolder}/${ws}/${os}/${arch}" />
		<SCP dir="${libraryFolder}/${ws}" source="eclipse_${maj_ver}${min_ver}.dll" destination="${resultsBaseFolder}/org.eclipse.equinox.launcher/${fragmentFolder}" />
		<condition property="copyWPF">
			<equals arg1="${ws}" arg2="wpf" />
		</condition>
		<antcall target="copyWPF" />
	</target>
	
	<target name="copyWPF" if="copyWPF" >
		<SCP dir="${libraryFolder}/${ws}" source="com_${maj_ver}${min_ver}.dll" destination="${resultsBaseFolder}/org.eclipse.equinox.launcher/${fragmentFolder}" failonerror="false" />
	</target>
	
	<target name="buildMac" if="buildMac">
		<exec dir="${libraryFolder}/carbon" executable="sh" failonerror="true">
			<arg value="build.sh"/>
			<arg line="-ws ${ws} -arch ${arch}"/>
			<arg value="clean all" />
			<env key="PATH" value="/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:${extraPath}" />
		</exec>	
			
		<SCP dir="${libraryFolder}/carbon" source="eclipse" destination="${resultsBaseFolder}/org.eclipse.equinox.executable/${exeFolder}/${ws}/${os}/${arch}/Eclipse.app/Contents/MacOS" />
		<SCP dir="${libraryFolder}/carbon" source="eclipse_${maj_ver}${min_ver}.so" destination="${resultsBaseFolder}/org.eclipse.equinox.launcher/${fragmentFolder}" />
		<!-- x86 and ppc are the same universal binary, copy to both under the executable feature -->
		<condition property="copyMacPPC">
			<equals arg1="${arch}" arg2="x86" />
		</condition>
		<antcall target="copyMacPPC" />
	</target>
	
	<target name="copyMacPPC" if="copyMacPPC" >
		<SCP dir="${libraryFolder}/carbon" source="eclipse" destination="${resultsBaseFolder}/org.eclipse.equinox.executable/${exeFolder}/${ws}/${os}/ppc/Eclipse.app/Contents/MacOS" />
	</target>
	
	<target name="determineBuild" >
		<condition property="buildWindows" >
			<equals arg1="${os}" arg2="win32"/>
		</condition>
		<condition property="buildMac" >
			<equals arg1="${os}" arg2="macosx" />
		</condition>
		<condition property="buildNix" >
			<not><or>
				<isset property="buildWindows" />
				<isset property="buildMac" />
			</or></not>
		</condition>
	</target>
	
	<target name="initProperties" >
		<property name="ws" value="${env.ws}"/>
		<property name="os" value="${env.os}" />	
		<property name="arch" value="${env.arch}" />
		
		<resolveProperty name="machine" value="m_${os}.${arch}" />
		<resolveProperty name="javaArg" value="j_${os}.${arch}" />
		<resolveProperty name="userName" value="u_${os}.${arch}" />
		
		<!-- windows is built locally, everything else is remote -->
		<condition property="local" >
			<equals arg1="${os}" arg2="win32"/>
		</condition>
		<condition property="remote" >
			<not> <isset property="local"/> </not>
		</condition>
		
		<!-- working directory defaults for our machines.  Others should
		     pass in workspace as a property on the command line  -->
		<condition property="workspace" value="/Users/swtbuild/build/equinox" >
			<equals arg1="${os}" arg2="macosx"/>
		</condition>
		<condition property="workspace" value="~/equinox" >
			<equals arg1="${os}.${arch}" arg2="solaris.x86" />
		</condition>
		<property name="workspace" value="/bluebird/teamswt/equinox" />
	</target>
	
	
	<!-- 
		Main entry point.  We expect the following properties:
			 os, ws, arch  - to be passed as ant properties or set as environment variables.
			 resultsBaseFolder - location to scp the resulting binaries to, usually a workspace containing the executable & launcher projects (eg: user@machine:~/workspace)
			 m_<os>.<arch> - name of a machine to ssh to for this os & arch
			 u_<os>.<arch> - optional user on the machine for this platform
			 j_<os>.<arch> - location of a jdk we can compile against
		We expect ssh keys to be set up so that we don't need passwords
		
		The j_<os>.<arch> properties work together with remote.sh, and are either
		   -javaHome /path/to/jdk
		or -java relative/path/to/jdk
	-->
	<target name="build" depends="initProperties">
		<echo message="Building for ${os}, ${ws}, ${arch}"/>
		<antcall target="buildLocal" />
		<antcall target="buildRemote" />
	</target>
	
	<target name="buildLocal" if="local" >
		<condition property="javaHome" value="${j_win32}" else="${java.home}" >
			<isset property="j_win32"/>
		</condition>
		<antcall target="buildConfig" />
	</target>
	
	<target name="buildRemote" if="remote">
		<echo message="Machine: ${machine}" />
		<condition property="scpDest" value="${userName}@${machine}" else="${machine}" >
			<isset property="userName" />
		</condition>
		<condition property="sshUser" value="-l ${userName}" else="" >
			<isset property="userName" />
		</condition>
		<SCP dir="${basedir}" source="remote.sh build.xml" destination="${scpDest}:${workspace}" />
		<echo message="Execing ssh ${machine}" />
		<exec executable="ssh" failonerror="true" >
			<arg line="${sshUser} ${machine}" />
			<arg line="sh ${workspace}/remote.sh" />
			<arg line="${javaArg}" />
			<arg line="-Dos=${os} -Dws=${ws} -Darch=${arch} -DcvsLogin=${cvsLogin} -DcvsTag=${cvsTag}" />
			<arg value="-DresultsBaseFolder=${resultsBaseFolder}" />
		</exec>
	</target>

	<target name="buildConfig" depends="init_exeFolder,init_fragment,determineBuild" >
		<antcall target="fetchExecutableSource" />
		<property name="javaHome" value="${java.home}/.." />
		<property name="libraryFolder" value="${basedir}/${os}.${ws}.${arch}/library" />
		<property file="${libraryFolder}/make_version.mak" />
		
		<antcall target="buildNix" />
		<antcall target="buildWindows" />
		<antcall target="buildMac" />
	</target>
	
</project>




