<?php
/*******************************************************************************
 * Copyright(c) 2015 Eclipse Foundation 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://eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Nathan Gervais(Eclipse Foundation) - Initial implementation
 *    Eric Poirier(Eclipse Foundation)
 *******************************************************************************/
 ?>

<h1>Getting Started with Eclipse Callisto</h1>
<img width="100%" src="callisto_slice.jpg">

<center>
  <a href="java.php"><img src="/callisto/images/buildJava.gif"></a> <a
    href="plugin-dev.php"><img src="/callisto/images/buildPlugin.gif"></a> <a
    href="c-dev.php"><img src="/callisto/images/buildC.gif"></a>
</center>
