Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: lstoll
Fetching contributors…

Cannot retrieve contributors at this time

317 lines (269 sloc) 11.68 kb
<?xml version="1.0" encoding="UTF-8" ?>
<project name="jdee" default="bindist">
<!--
For compilation and installation instructions, see doc/install.html
-->
<!-- add in the contribs (add ant-contrib-VERSION.jar) to CLASSPATH -->
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
<!-- basic properties, the rest are taken from ${config.dir}/build. -->
<property name="project.dir" location="./"/>
<property name="project.version" value="2.4.1"/>
<property name="config.dir" location="./config"/>
<!-- everything depends on this initialization target -->
<target name="init">
<tstamp/>
<!-- developers will usually have the following config file (i.e. source
installed libs) -->
<property name="config.devel.build.file"
location="${user.home}/.jdee-config.properties"/>
<property file="${config.devel.build.file}"/>
<property file="${config.dir}/project.properties"/>
<property file="${config.build.file}"/>
<path id="compile.classpath">
<fileset dir="${lib.java.dir}"/>
</path>
<condition property="build.bin.emacs"
value="/Applications/Emacs.app/Contents/MacOS/Emacs">
<and>
<os family="mac"/>
<available file="/Applications/Emacs.app" type="dir"/>
</and>
</condition>
<condition property="build.bin.emacs"
value="${user.home}/Applications/Emacs.app/Contents/MacOS/Emacs">
<and>
<os family="mac"/>
<available file="${user.home}/Applications/Emacs.app" type="dir"/>
</and>
</condition>
<uptodate property="config.uptodate" srcfile="${config.build.file}"
targetfile="${config.build.file}"/>
<mkdir dir="${build.dir}"/>
</target>
<!-- determine whether or not we need to compile emacs lisp/autoload files -->
<target name="prepare-lisp-build">
<mkdir dir="${build.lisp.dir}"/>
<condition property="lisp.uptodate">
<and>
<available file="${build.lisp.autoload.file}"/>
<uptodate>
<srcfiles dir="${build.lisp.dir}" includes="*.el"/>
<mapper type="glob" from="*.el" to="*.elc"/>
</uptodate>
</and>
</condition>
</target>
<target name="configure" depends="init,prepare-lisp-build"
unless="config.uptodate"
description="create the configuration file the user edits for builds">
<!-- defaults -->
<property name="build.bin.emacs" value="emacs"/>
<!-- end defaults -->
<mkdir dir="${build.config.dir}"/>
<!-- project specific defaults (not user or instance specific) -->
<property file="${config.dir}/default.properties"/>
<propertyfile file="${config.build.file}"
comment="user editable build configuration parameters (this is generated by and overridden by ${config.devel.build.file} when it exists)">
<entry key="config.time" type="date" value="now"/>
<entry key="cedet.dir" value="${cedet.dir}"/>
<entry key="elib.dir" value="${elib.dir}"/>
<entry key="prefix.dir" value="${prefix.dir}"/>
<entry key="build.bin.emacs" value="${build.bin.emacs}"/>
</propertyfile>
</target>
<!-- configure (create/build) the emacs lisp build configuration files -->
<target name="configure-ebuild" depends="configure,init"
unless="lisp.uptodate">
<!-- copy the lisp to the build directory -->
<copy todir="${build.lisp.dir}">
<fileset dir="${src.lisp.dir}">
<include name="*.el"/>
<exclude name=".dir-locals.el"/>
</fileset>
</copy>
<exec outputproperty="build.lisp.is-xemacs"
executable="${build.bin.emacs}" failonerror="true">
<arg value="--no-site-file"/>
<arg value="--batch"/>
<arg value="--eval"/>
<arg value="(message &quot;%S&quot; (if (featurep 'xemacs) 'true 'false))"/>
</exec>
<if>
<equals arg1="${build.lisp.is-xemacs}" arg2="true"/>
<then>
<copy todir="${build.lisp.dir}">
<fileset dir="${src.xelisp.dir}">
<include name="*.el"/>
<exclude name=".dir-locals.el"/>
</fileset>
</copy>
</then>
</if>
<!-- make windows paths "mixed" dos paths (cygwin term) -->
<mixed-path property="cedet.escaped.dir" value="${cedet.dir}"/>
<mixed-path property="elib.escaped.dir" value="${elib.dir}"/>
<mixed-path property="src.lisp.escaped.dir" value="${src.lisp.dir}"/>
<mixed-path property="build.lisp.escaped.dir" value="${build.lisp.dir}"/>
<mixed-path property="build.lisp.dst.escaped.file" value="${build.lisp.dst.file}"/>
<!-- create the file used to compile the emacs lisp code -->
<copy file="${build.lisp.src.file}" tofile="${build.lisp.dst.file}"/>
<replace file="${build.lisp.dst.file}">
<replacefilter token="@{cedet.dir}" value="${cedet.escaped.dir}"/>
<replacefilter token="@{elib.dir}" value="${elib.escaped.dir}"/>
<replacefilter token="@{src.lisp.dir}" value="${src.lisp.escaped.dir}"/>
<replacefilter token="@{build.lisp.dir}" value="${build.lisp.escaped.dir}"/>
<replacefilter token="@{build.lisp.autoload.libname}" value="${build.lisp.autoload.libname}"/>
</replace>
<replace file="${build.lisp.dir}/jde.el">
<replacefilter token="@@{project.version}@@" value="${project.version}"/>
</replace>
</target>
<target name="build-lisp" depends="configure-ebuild" unless="lisp.uptodate"
description="compile the JDEE Emacs lisp code">
<!-- invoke Emacs in batch mode to create autoloads and compile emacs lisp
-->
<exec dir="${build.lisp.escaped.dir}"
executable="${build.bin.emacs}" failonerror="true">
<arg value="--no-site-file"/>
<arg value="--batch"/>
<arg value="--load"/>
<arg value="${build.lisp.dst.escaped.file}"/>
</exec>
</target>
<target name="build-java" depends="init"
description="compile the JDEE Java source code">
<mkdir dir="${build.java.dir}"/>
<javac srcdir="${src.java.dir}" destdir="${build.java.dir}"
debug="true" classpathref="compile.classpath"/>
</target>
<target name="build" depends="build-lisp,build-java"
description="compile all JDEE source code"/>
<target name="bindist" depends="build"
description="create the &quot;binary&quot; distribution, which only includes what you need to run the JDEE">
<!-- create dist java lib directory -->
<mkdir dir="${dist.lisp.dir}"/>
<!-- keep mod times to avoid .el being newer than .elc -->
<copy todir="${dist.lisp.dir}" preservelastmodified="true">
<fileset dir="${build.lisp.dir}"/>
<fileset file="${src.lisp.dir}/jtags*"/>
</copy>
<chmod perm="ugo+x">
<fileset dir="${dist.lisp.dir}">
<include name="jtags*"/>
</fileset>
</chmod>
<!-- this subdir contains all things Java -->
<mkdir dir="${dist.java.lib.dir}"/>
<!-- third party libraries -->
<copy todir="${dist.java.lib.dir}">
<fileset dir="${lib.java.dir}"/>
</copy>
<!-- create the JDE jar file -->
<jar destfile="${dist.jar.jde.file}"
basedir="${build.java.dir}"
includes="**/*.class"/>
</target>
<target name="release-info" depends="init">
<taskdef resource="org/apache/ant/svn/antlib.xml"/>
<xslt in="${build.release.xml}"
out="${build.release.properties.xml}"
style="${build.release.properties.xsl}">
<param name="version" expression="${project.version}"/>
</xslt>
<xmlproperty file="${build.release.properties.xml}"/>
<mkdir dir="${build.etc.dir}"/>
<echo message="creating change log for revisions ${release.revision.start} - ${release.revision.end}"/>
<changelog dir="." destfile="${build.hist.changelog.xml}"
start="${release.revision.start}"
end="${release.revision.end}"/>
<xslt in="${build.hist.changelog.xml}"
out="${build.hist.changelog.html}"
style="${build.hist.changelog.xsl}">
<param name="title" expression="JDEE ChangeLog"/>
<param name="repo" expression="https://jdee.svn.sourceforge.net/svnroot/jdee/"/>
</xslt>
<xslt in="${build.release.xml}"
out="${build.hist.release.html}"
style="${build.release.notes.xsl}">
<param name="title" expression="JDEE ${project.version} Release Notes"/>
<param name="version" expression="${project.version}"/>
</xslt>
<mkdir dir="${dist.etc.dir}"/>
<copy todir="${dist.etc.dir}">
<fileset dir="${build.etc.dir}" includes="*.html"/>
</copy>
<copy todir="${dist.etc.dir}">
<fileset dir="${build.doc.dir}/flat"/>
</copy>
</target>
<target name="source-doc" depends="init">
<!-- user guide docs -->
<mkdir dir="${dist.doc.html.dir}"/>
<copy todir="${dist.doc.html.dir}">
<!-- use the checked in generated docs for now -->
<fileset dir="./doc/html" includes="**"/>
</copy>
<!-- JDEE Java api docs -->
<javadoc sourcepath="${src.java.dir}"
destdir="${dist.doc.java.api.dir}"
classpathref="compile.classpath"
author="true" version="true" use="true"
windowtitle="JDEE ${project.version} Java API"/>
</target>
<target name="srcdist" depends="bindist,source-doc,release-info"
description="create the &quot;source&quot; distribution, which includes binaries, the docs, and the Java source">
<!-- for those who want to look at the Java source -->
<mkdir dir="${dist.java.src.dir}"/>
<copy todir="${dist.java.src.dir}">
<fileset dir="${src.java.dir}"/>
</copy>
</target>
<target name="package" depends="srcdist"
description="create distribution zip, gzip and bzip2 tarballs that are put on the dist site">
<mkdir dir="${build.package.dir}"/>
<mkdir dir="${package.dir}"/>
<package-dist type="src"/>
<package-dist type="bin" includes="${package.prefix}/java/lib/**,${package.prefix}/etc/**,${package.prefix}/lisp/**"/>
</target>
<target name="install" depends="bindist"
description="install the derived objects (the entire dist)">
<mkdir dir="${prefix.dir}"/>
<copy todir="${prefix.dir}" preservelastmodified="true">
<fileset dir="${dist.dir}"/>
</copy>
</target>
<target name="warnings" depends="build-lisp">
<antcall target="clean"/>
</target>
<target name="clean" depends="init"
description="delete all derived objects EXCEPT the user edited configuration file">
<delete dir="${build.dir}"/>
<delete dir="${dist.base.dir}"/>
</target>
<target name="clean-all" depends="clean"
description="delete all derived objects">
<delete file="${config.build.file}"/>
</target>
<!-- macros -->
<!-- make windows paths "mixed" dos paths (cygwin term) -->
<macrodef name="mixed-path">
<attribute name="property"/>
<attribute name="value"/>
<sequential>
<propertyregex property="@{property}" input="@{value}" regexp="\\"
defaultValue="@{value}" replace="/" global="true"/>
</sequential>
</macrodef>
<!-- create distribution zip, gzip and bzip2 tarballs -->
<macrodef name="package-dist">
<attribute name="includes" default="${package.prefix}/**"/>
<attribute name="type"/>
<sequential>
<tar destfile="${build.package.dir}/jdee-@{type}-${project.version}.tar" basedir="${dist.base.dir}" includes="@{includes}"/>
<zip destfile="${package.dir}/jdee-@{type}-${project.version}.zip" basedir="${dist.base.dir}" includes="@{includes}"/>
<checksum file="${package.dir}/jdee-@{type}-${project.version}.zip" forceOverwrite="yes" fileext=".md5"/>
<bzip2 destfile="${package.dir}/jdee-@{type}-${project.version}.tar.bz2" src="${build.package.dir}/jdee-@{type}-${project.version}.tar"/>
<checksum file="${package.dir}/jdee-@{type}-${project.version}.tar.bz2" forceOverwrite="yes" fileext=".md5"/>
</sequential>
</macrodef>
</project>
Jump to Line
Something went wrong with that request. Please try again.