<?xml version="1.0" encoding="ISO-8859-1"?>

<project name="Netzprogrammierung" default="echo" basedir=".">

	<!-- Globale Variablen-->
	<property name="projectpath" value="de/np"/>
	<property name="project" value="1"/>
	<property name="group" value="04"/>
	
	<property name="src" value="src"/>
	<property name="build" value="build"/>
	<property name="dist" value="dist"/>
	<property name="lib" value="lib"/>
	<property name="doc" value="doc"/>
	<property name="conf" value="conf"/>
	
	<property name="exec" value="de.np.server.ServerMain"/>
   
	<path id="project.class.path">
		<pathelement path="${java.class.path}"/>
		<!--
			<fileset dir="${lib}">
				<include name="**/*.jar"/>
			</fileset>
			-->
	</path>
	
	<target name="echo">
		<echo>
Usage:
	ant
	
		echo      - schreibt diese Meldung auf den Schirm
		compile - Kompiliert die Java Dateien
		dist        - erzeugt das Programm
		run         - testet die class Dateien auf Funktion
		clean     - Saeubert den Code baum"
		zip         - Erzeugt aus dem Quellcode ein Zipfile
		rmic       - Erzeugt aus allen Klassen die mit Remote anfangen das dazugehörige Skelett und Stub
		</echo>
	</target>
	
	<target name="init">
		<!-- Create the time stamp -->
		<tstamp/>
		<!-- Create the build directory structure used by compile -->
		<mkdir dir="${build}"/>
	</target>

	<target name="copyfiles">
		<copy todir="${build}/${projectpath}/${conf}">
		    <fileset dir="${src}/${projectpath}/${conf}"/>
	    </copy>
	</target>

	<target name="compile" depends="init,copyfiles" description="Compiliert den Quellcode und kopiert die konfigurationsdateien ins Build Verzeichnis">
		<!-- Compile the java code from ${src} into ${build} -->
		<javac srcdir="${src}" destdir="${build}" debug="on">
			<classpath refid="project.class.path"/>
		</javac>
	</target>
	
	<target name="clean" description="Räumt das Projekt auf (Entfernt build-Dateien und die Jars)">
		<!-- Delete the ${build} directory trees -->
			<delete includeEmptyDirs="true">
				<fileset dir="${build}" includes="**/*"/>
			</delete>
			<delete dir="${doc}"/>
		<delete dir="${dist}"/>
	</target>
	
	<target name="rmic" depends="compile" description="Erzeugt aus allen .class Dateien die mit remote anfangen die Skeletor und Stubs Klasse">
		<rmic base="${build}" includes="**/Remote*.class"/>
	</target>
	
	<target name="run" depends="compile" description="Startet das Programm">
		<java classname="${exec}" fork="yes">
			<classpath>
				<path refid="project.class.path"/>
				<pathelement path="${build}"/>
			</classpath>
			<!-- Starte java immer mit der Debug Option - dann sieht man die
				 Zeilennummern, immer wenn ein Fehler auftritt -->
			<jvmarg value="-Djava.compiler="/>
			<jvmarg value="-Xint"/>
		</java>
	</target>
	
	<target name="dist" depends="compile" description="Erstellt ein ausführbares JAR File">
		<mkdir dir="${dist}"/>
		<jar jarfile="${dist}/${project}-${group}.jar" basedir="${build}">
			<manifest>
				<attribute name="Main-Class" value="${exec}"/> 
			</manifest>
		</jar>
	</target>
	
	
	<target name="doc" description="Erzeugt die Javadoc Dateien aus dem Quellcode">
		<delete dir="${doc}"/>
		<mkdir dir="${doc}"/>
		<javadoc packagenames="de.*"
						 sourcepath="src"
		 				 destdir="${doc}"
						 classpathref="project.class.path"
						 author="true"
						 version="true"
						 private="true"
						 use="true"
						 splitindex="true"
						 windowtitle="Netzprogrammierung"
						 doctitle="Netzprogrammierung">
		</javadoc>
	</target>

	<target name="zip" depends="dist,doc" description="Zipped den Quellcode, die Jars und die Dokumentation">
<!--		<mkdir dir="${dist}"/> -->
		<zip destfile="${dist}/${project}-${group}.zip"
				basedir="."
				excludes="${build}/**, CVS/**, .externalToolBuilders/**, .classpath, .project, ${dist}/*.zip"
		/>
	</target>
	
</project>
