<?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>