experimental-legacy/java-libburnia/build.xml

289 lines
9.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
build.xml
Copyright (c) 2007 Vreixo Formoso
This library is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
See COPYING file for details.
-->
<project name="java-libburn" default="all" basedir=".">
<!-- === App properties ============================ -->
<property file="build.properties" />
<!-- === Compiler properties ====================== -->
<property name="build.compiler" value="modern" />
<property name="javac.debug" value="on" />
<property name="javac.optimize" value="off" />
<property name="javac.deprecation" value="on" />
<property name="javac.nowarn" value="on" />
<property name="cc.debug" value="on" />
<!-- === directories ====================== -->
<property name="src" value="src" />
<property name="src.java" value="${src}/java" />
<property name="src.test" value="${src}/test" />
<property name="src.jni" value="${src}/jni" />
<property name="build" value="build" />
<property name="build.object" value="${build}/.object" />
<property name="build.headers" value="${build}/.headers" />
<property name="build.classes" value="${build}/.classes" />
<property name="build.test" value="${build}/.test" />
<property name="doc" value="doc" />
<property name="doc.api" value="${doc}/api" />
<property name="libs" value="libs" />
<property name="dist.tar" value="${package}-${version}" />
<property name="dist.jar" value="${package}-${version}.jar" />
<!-- === CC tasks ====================== -->
<property name="cc.jar" value="${libs}/cpptasks.jar"/>
<taskdef resource="cpptasks.tasks"
classpath="${cc.jar}"
loaderRef="cctasks"/>
<typedef resource="cpptasks.types"
classpath="${cc.jar}"
loaderRef="cctasks"/>
<!-- == JavaDoc URLs ========================================= -->
<!-- JavaDoc bottom -->
<property name="javadoc.bottomline" value="${package} ${version}" />
<!-- == target "init" ================================================= -->
<target name="init">
<echo>
----------------------------------------------------
Building ${package}...
----------------------------------------------------
</echo>
</target>
<!-- == target "all" ================================================== -->
<target name="all" depends="init, jars, jni" />
<!-- == target "compile" ============================================== -->
<target name="compile" depends="init">
<mkdir dir="${build.classes}" />
<javac srcdir="${src.java}" destdir="${build.classes}"
debug="${javac.debug}"
optimize="${javac.optimize}" deprecation="${javac.deprecation}"
nowarn="${javac.nowarn}" />
</target>
<!-- == target "compile.test" ========================================== -->
<target name="compile.test" depends="init">
<mkdir dir="${build.test}" />
<javac srcdir="${src.test}" destdir="${build.test}"
classpath="${build.classes}" debug="${javac.debug}"
optimize="${javac.optimize}" deprecation="${javac.deprecation}"
nowarn="${javac.nowarn}" />
</target>
<!-- == target "headers" ============================================== -->
<target name="headers" depends="compile">
<mkdir dir="${build.headers}" />
<javah destdir="${build.headers}"
force="yes" classpath="${build.classes}">
<class name="org.pykix.libburnia.libisofs.IsoVolume"/>
<class name="org.pykix.libburnia.libisofs.IsoTreeNode"/>
<class name="org.pykix.libburnia.libisofs.IsoExclude"/>
<class name="org.pykix.libburnia.libisofs.IsoVolSet"/>
<class name="org.pykix.libburnia.libburn.Burn"/>
<class name="org.pykix.libburnia.libburn.Disc"/>
<class name="org.pykix.libburnia.libburn.Drive"/>
<class name="org.pykix.libburnia.libburn.DriveInfo"/>
<class name="org.pykix.libburnia.libburn.Message"/>
<class name="org.pykix.libburnia.libburn.Progress"/>
<class name="org.pykix.libburnia.libburn.ReadOpts"/>
<class name="org.pykix.libburnia.libburn.ScsiAdr"/>
<class name="org.pykix.libburnia.libburn.Session"/>
<class name="org.pykix.libburnia.libburn.Source"/>
<class name="org.pykix.libburnia.libburn.Track"/>
<class name="org.pykix.libburnia.libburn.WriteOpts"/>
</javah>
</target>
<!-- == target "jni" ================================================== -->
<target name="jni" depends="headers" >
<mkdir dir="${build.object}"/>
<cc debug="${cc.debug}"
link="shared" libtool="yes"
outfile="${build}/${package}-${version}"
objdir="${build.object}"
multithreaded="true"
exceptions="true" >
<defineset define="DEBUG"/>
<compiler name="gcc" />
<compilerarg value="-Wno-pointer-to-int-cast"/>
<compilerarg value="-Wno-int-to-pointer-cast"/>
<!-- A 64 bits off_t is needed for DVD -->
<compilerarg value="-D_FILE_OFFSET_BITS=64"/>
<compilerarg value="-D_LARGEFILE_SOURCE=1"/>
<fileset dir="${src.jni}"/>
<includepath location="${build.headers}" />
<sysincludepath location="${env.JAVA_HOME}/include" />
<sysincludepath location="${cflags.isofs}" />
<sysincludepath location="${cflags.burn}" />
<libset libs="isofs"/>
<libset libs="burn"/>
<linker name="gcc" />
</cc>
</target>
<!-- == target "jars" ================================================= -->
<target name="jars" depends="compile">
<mkdir dir="${build}" />
<jar destfile="${build}/${dist.jar}">
<manifest>
<attribute name="version" value="${version}" />
</manifest>
<fileset dir="${build.classes}" />
</jar>
</target>
<!-- == target "rebuild" ============================================== -->
<target name="rebuild" depends="init, clean, all" />
<!-- == target "distclean" ============================================ -->
<target name="distclean" depends="init">
<delete dir="${build}" />
<delete dir="${doc.api}" />
<delete file="build.properties" />
<delete >
<fileset dir="." includes="config.*" />
</delete>
</target>
<!-- ================ "maintainer-clean" target ======================= -->
<target name="maintainer-clean" depends="distclean" >
<echo>NOT IMPLEMENTED YET</echo>
</target>
<!-- == target "clean" ================================================ -->
<target name="clean" depends="init">
<delete dir="${build.classes}" />
<delete dir="${build.object}" />
<delete dir="${build.test}" />
<delete >
<fileset dir="." includes="hs_err_*" />
</delete>
</target>
<!-- == target "javadoc" ============================================== -->
<target name="doc" depends="compile">
<delete dir="${doc.api}" />
<mkdir dir="${doc.api}" />
<javadoc packagenames="org.*" sourcepath="${src.java}"
classpath="${build.classes}" destdir="${doc.api}" access="public"
windowtitle="${package}" doctitle="${package}"
header="${package}" bottom="${javadoc.bottomline}">
<!--
<link href="${j2se.javadocurl}"/>
-->
</javadoc>
</target>
<!-- ================= "run" target =================================== -->
<target name="run" depends="all, compile.test">
<!--
<java classname="org.pykix.libburnia.test.IsoFsMain" fork="true" >
<arg value="-R"/>
<arg value="-L"/>
<arg value="3"/>
<arg value="/home/metalpain/Projects/LibBurn"/>
<arg value="/home/metalpain/proba.iso"/>
<classpath location="${build.test}" />
<classpath location="${build.classes}"/>
<jvmarg value="-Djava.library.path=${build}" />
</java>
-->
<java classname="org.pykix.libburnia.test.Test" fork="true" >
<classpath location="${build.test}" />
<classpath location="${build.classes}"/>
<jvmarg value="-Djava.library.path=${build}" />
</java>
</target>
<!-- ================= "install" target =============================== -->
<target name="install" depends="all">
<echo>NOT IMPLEMENTED YET</echo>
<!--
It seems that these are default locations for java objects, at
least on Ubuntu:
jars to /usr/share/java
jni libs to /usr/lib/jni
-->
</target>
<!-- ========================= "dist" target ========================== -->
<target name="dist" depends="init, dist-tarZ" />
<target name="dist-tarZ" >
<mkdir dir="${build}"/>
<patternset id="tar.commonfiles" includes="java-libburn/**"
excludes="**/build/**, **/bin/**, **/*.back, **/*~,
**/*.sh, **/doc/api/**, **/autom4te.cache/**,
**/build.properties/**, **/.bzr**" />
<!--
.tar.gz distribution (with execution permissions for .sh files)
-->
<delete file="${build}/${dist.tar}.tar.gz"/>
<tar tarfile="${build}/${dist.tar}.tar.gz" longfile="gnu"
compression="gzip">
<tarfileset dir="..">
<patternset refid="tar.commonfiles"/>
</tarfileset>
<tarfileset dir=".." mode="755" includes="java-libburn/**/*.sh"/>
</tar>
</target>
<!-- ======================== "backup" target ========================= -->
<target name="backup" >
<mkdir dir="${build}"/>
<patternset id="tar.commonfiles" includes="java-libburn/**"
excludes="**/build/**, **/bin/**, **/*.back, **/*~,
**/*.sh, **/doc/api/**, **/autom4te.cache/**,
**/build.properties/**" />
<delete file="${build}/${dist.tar}.back.tar.gz"/>
<tar tarfile="${build}/${dist.tar}.back.tar.gz" longfile="gnu"
compression="gzip">
<tarfileset dir="..">
<patternset refid="tar.commonfiles"/>
</tarfileset>
<tarfileset dir=".." mode="755" includes="java-libburn/**/*.sh"/>
</tar>
</target>
</project>