<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
/*******************************************************************************
 * Copyright (c) 2009, 2015
 * 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:
 *    
 *******************************************************************************/

	$pageTitle 		= "TCF Downloads";

	$html  = <<<EOHTML
<div id="midcolumn">
<h1>$pageTitle</h1>
<p>All downloads are provided under the terms and conditions of the
 <a href="/legal/epl/notice.php">Eclipse Foundation Software User Agreement</a>
  unless otherwise specified.</p>

<h2>TCF 1.3 (Mars)</h2>
<p>Compatible with Eclipse 3.8.2 and later. See the <a href="https://wiki.eclipse.org/TCF/NewIn13">New &amp; Noteworthy</a> (released 24-Jun-2015).</p>
<ul>
<li>p2 software repository: <a href="http://download.eclipse.org/tools/tcf/releases/1.3">
   http://download.eclipse.org/tools/tcf/releases/1.3</a>
<li>Zipped Repo: <a href="/downloads/download.php?file=/tools/tcf/releases/1.3/org.eclipse.tcf-1.3.0.zip">org.eclipse.tcf-1.3.0.zip</a> (10 MiB)
<li>C Agent: <a href="/downloads/download.php?file=/tools/tcf/releases/1.3/org.eclipse.tcf.agent-1.3.0.zip">org.eclipse.tcf.agent-1.3.0.zip</a> (1 MiB)
</ul>

<h2>TCF 1.2 (Luna SR2)</h2>
<p>Compatible with Eclipse 3.8.2 and later. See the <a href="https://wiki.eclipse.org/TCF/NewIn12">New &amp; Noteworthy</a> (released 24-Jun-2014).</p>
<p><b>p2 software repository:</b> <a href="http://download.eclipse.org/tools/tcf/releases/1.2">
   http://download.eclipse.org/tools/tcf/releases/1.2</a><br/>
Zipped Repo: <a href="/downloads/download.php?file=/tools/tcf/releases/1.2/r/org.eclipse.tcf-1.2.0.zip">org.eclipse.tcf-1.2.0.zip</a> (12 MiB)<br/>
C Agent: <a href="/downloads/download.php?file=/tools/tcf/releases/1.2/org.eclipse.tcf.agent-1.2.1.zip">org.eclipse.tcf.agent-1.2.1.zip</a> (1 MiB)</p>

<!--
<h3>Kepler and Juno - TCF 1.1 Milestones</h3>
<p>The TCF 1.1 Release is compatible with Eclipse 3.8 Juno and later.</p>
<p><b>Update site:</b> <a href="http://download.eclipse.org/tools/tcf/builds/development/milestones/">
   http://download.eclipse.org/tools/tcf/builds/development/milestones/</a><br/>
<b>ZIP file: </b><a href="/downloads/download.php?file=/tools/tcf/builds/development/milestones/20130316/org.eclipse.tcf.repo.zip">org.eclipse.tcf.repo.zip</a> (11 MiB)</p>

<h3>Juno and Indigo - TCF 1.0</h3>
<p>The TCF 1.0 Release is compatible with Eclipse 3.7 Indigo and later.</p>
<p><b>Update site:</b> <a href="http://download.eclipse.org/tools/tcf/releases/1.0/">
   http://download.eclipse.org/tools/tcf/releases/1.0/</a><br/>
<b>ZIP file: </b><a href="/downloads/download.php?file=/tools/tcf/releases/1.0/dist/tcf-master-1.0.2.zip">tcf-master-1.0.2.zip</a> (12 MiB)</p>
-->

<hr/>

<h3>Developer Builds from Hudson</h3>
<p><b>Update site:</b> <a href="http://download.eclipse.org/tools/tcf/builds/development/nightly/">
   http://download.eclipse.org/tools/tcf/builds/development/nightly/</a><br/>
<b>ZIP file: </b><a href="/downloads/download.php?file=/tools/tcf/builds/development/nightly/org.eclipse.tcf.repo.zip">org.eclipse.tcf.repo.zip</a> (11 MiB)</p>   
<p>See also the <a href="http://hudson.eclipse.org/tcf">TCF Hudson Build Server</a></p>

</div>
EOHTML;
	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>