292 lines
9.5 KiB
XML
292 lines
9.5 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="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="**"
|
|
excludes="**/build/**, **/bin/**, **/*.back, **/*~,
|
|
**/*.sh, **/doc/api/**, **/autom4te.cache/**,
|
|
**/build.properties/**, **/.bzr**, configure" />
|
|
<!--
|
|
.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 prefix="${dist.tar}" dir=".">
|
|
<patternset refid="tar.commonfiles"/>
|
|
</tarfileset>
|
|
<tarfileset prefix="${dist.tar}" mode="755" dir=".">
|
|
<patternset includes="**/*.sh" />
|
|
<patternset includes="configure" />
|
|
</tarfileset>
|
|
</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>
|