<project name="Dialog.Project" default="help" basedir=".">


	<!-- common properties -->
	<property name="project.name" value="Dialog" />
	<property name="packagename" value="net.sit.dialog" />
	<property name="DestJava" value="classes" />
	<property name="Dist" value="dist" />
	<property name="Doc" value="doc" />
	<property name="Libraries" value="lib" />
	<property name="SrcJava" value="src" />
	<property name="build.compiler" value="modern" />
	<property name="user.name" value="Christoph Sandhaus" />
	<property name="app.version" value="V0.2" />

	<path id="libraries.class.path">
		<pathelement location="${Libraries}/log4j-1.2.8.jar" />
		<pathelement location="${Libraries}/sitcommon.jar" />
	</path>

	<!-- Sets the DSTAMP, TSTAMP, and TODAY properties -->
	<tstamp>
		<format property="touch.time" pattern="yyyyMMdd_hhmm" locale="de" />
	</tstamp>

	<!-- server properties -->
	<property name="srv.manifest" value="./server_manifest.mf" />
	<property name="srv.app.name" value="DialogServer" />
	<property name="srv.main.class" value="net.sit.dialog.srv.Server" />

	<!-- client properties -->
	<property name="cli.manifest" value="./client_manifest.mf" />
	<property name="cli.app.name" value="DialogClient" />
	<property name="cli.main.class" value="net.sit.dialog.cli.Client" />

	<patternset id="rmi.files">
		<!-- zum erzeugen eines stubs. -->
		<include name="**/DialogServer.class" />
	</patternset>

	<!-- display the projecthelp of this file -->
	<target name="help">
		<exec executable="ant">
			<arg line="-projecthelp -buildfile ${ant.file}" />
		</exec>
	</target>


	<target name="compileJava" description="alle Sourcen kompilieren, erst Server, dann Client">
		<mkdir dir="${DestJava}" />

		<!-- erst den Server kompilieren wegen stub -->
		<javac srcdir="${SrcJava}" destdir="${DestJava}" encoding="ISO8859_1" debug="yes">
			<classpath refid="libraries.class.path" />
			<include name="**/net/sit/dialog/cfg/*.java" />
			<include name="**/net/sit/dialog/srv/*.java" />
		</javac>
		<rmic base="${DestJava}">
			<patternset refid="rmi.files" />
			<classpath refid="libraries.class.path" />
		</rmic>

		<!-- jetzt den Client kompilieren -->
		<javac srcdir="${SrcJava}" destdir="${DestJava}" encoding="ISO8859_1" debug="yes">
			<classpath refid="libraries.class.path" />
			<include name="**/net/sit/dialog/cfg/*.java" />
			<include name="**/net/sit/dialog/cli/*.java" />
		</javac>
	</target>


	<target name="dist" depends="compileJava" description="erzeugen der jar Dateien, erst Server, dann Client">
		<mkdir dir="${Dist}" />
		<!-- Server.jar -->
		<manifest file="${srv.manifest}">
			<attribute name="Created-By" value="${user.name}" />
			<attribute name="Main-Class" value="${srv.main.class}" />
			<attribute name="Class-Path" value="log4j-1.2.8.jar sitcommon.jar" />
		</manifest>

		<jar destfile="${Dist}/${srv.app.name}.jar" manifest="${srv.manifest}" update="no">
			<fileset dir="${DestJava}" includes="**/net/sit/dialog/cfg/*.class" />
			<fileset dir="${DestJava}" includes="**/net/sit/dialog/srv/*.class" />
		</jar>
		<copy file="${Dist}/${srv.app.name}.jar" tofile="${Dist}/${srv.app.name}-${app.version}.jar" />

		<!-- Client.jar -->
		<manifest file="${cli.manifest}">
			<attribute name="Created-By" value="${user.name}" />
			<attribute name="Main-Class" value="${cli.main.class}" />
			<attribute name="Class-Path" value="log4j-1.2.8.jar sitcommon.jar" />
		</manifest>

		<jar destfile="${Dist}/${cli.app.name}.jar" manifest="${cli.manifest}" update="no">
			<fileset dir="${DestJava}" includes="**/net/sit/dialog/cfg/*.class" />
			<fileset dir="${DestJava}" includes="**/net/sit/dialog/cli/*.class" />
			<fileset dir="${DestJava}" includes="**/net/sit/dialog/srv/DialogServer_Stub.class" />
			<fileset dir="${DestJava}" includes="**/net/sit/dialog/srv/DialogServerIF.class" />
		</jar>
		<copy file="${Dist}/${cli.app.name}.jar" tofile="${Dist}/${cli.app.name}-${app.version}.jar" />

		<!-- benötigte Dateien kopieren -->
		<copy todir="${Dist}">
			<fileset dir="${Libraries}" includes="**/*" />
		</copy>
		<exec executable="chmod" os="Linux">
			<arg value="0755" />
			<arg value="${Dist}/startServer.sh" />
			<arg value="${Dist}/startClient.sh" />
			<arg value="${Dist}/syscall.sh" />
		</exec>
	</target>

	<!-- common tasks ============================================================================= -->
	<target name="clean" description="Clean up">
		<delete dir="${DestJava}" />
		<delete dir="${Dist}" />
		<delete dir="${Doc}" />
		<delete dir="classes" />
		<delete file="${cli.manifest}" />
		<delete file="${srv.manifest}" />
	</target>

	<target name="src" description="Creates Zipfiles for sources">
		<mkdir dir="${Dist}" />
		<zip zipfile="${Dist}/${project.name}-${app.version}.src.zip" basedir="${SrcJava}" />
	</target>

	<target name="doc" description="Creates documentation">
		<mkdir dir="${Doc}" />
		<javadoc packagenames="${packagename}.*" sourcepath="${SrcJava}" destdir="${Doc}" author="true" version="true" use="true" windowtitle="${app.name} API" doctitle="${app.name}" bottom="Copyright &#169; 2003 Christoph Sandhaus and Marcus Keller. All Rights Reserved.">
			<classpath>
				<path refid="libraries.class.path" />
			</classpath>
		</javadoc>
		<mkdir dir="${Dist}" />
		<zip zipfile="${Dist}/${srv.app.name}Doc.zip" basedir="${Doc}" excludes="**/*Test*" />
		<zip zipfile="${Dist}/${srv.app.name}TestDoc.zip" basedir="${Doc}" includes="**/*Test*" />
		<zip zipfile="${Dist}/${cli.app.name}Doc.zip" basedir="${Doc}" excludes="**/*Test*" />
		<zip zipfile="${Dist}/${cli.app.name}TestDoc.zip" basedir="${Doc}" includes="**/*Test*" />
	</target>

	<target name="all" depends="src, dist, doc" description="creates complete distribution">
	</target>

</project>

