Hello Stephen, Am 03.12.2008 um 20:35 schrieb Stephen C. Gilardi:
Can we make clojure-contrib/build.xml work such that if you specify a location for a clojure.jar as a property, it compiles (the stand-alone compilable parts of ) clojure-contrib into clojure-contrib.jar, but if you don't specify the location it just jars up the clojure-contrib sources?That would be one flexible way to handle needing clojure.jar in order to compile, but not wanting an absolute dependency. Alternatively, perhaps clojure/build.xml should build clojure-contrib.jar if it's told where to find the clojure-contrib source directory. Any thoughts?
Hmm.. having clojure/build.xml compile clojure-contrib is somehow contrary to the "not an absolute dependency" idea. I think your initial suggestion, is a good idea. I changed the build.xml file to look for a property called clojure.jar. If it exists, we use it and compile the libraries. Otherwise - well - we don't... Invocation: ant -Dclojure.jar=/path/to/clojure.jar Sincerely Meikel
<project name="clojure-contrib" default="jar"> <description> Pack all clojure-contrib sources into a JAR. </description> <property name="src" location="src"/> <property name="build" location="classes"/> <available property="hasclojure" file="${clojure.jar}"/> <!-- The JAR file to create. --> <property name="jarfile" location="clojure-contrib.jar"/> <target name="init"> <tstamp/> <mkdir dir="${build}"/> </target> <target name="clean" description="Remove generated files and directories."> <delete file="${jarfile}"/> <delete dir="${build}"/> </target> <target name="compile_clojure" depends="init" description="Compile Clojure sources." if="hasclojure"> <java classname="clojure.lang.Compile"> <classpath> <path location="${build}"/> <path location="${src}"/> <path location="${clojure.jar}"/> </classpath> <sysproperty key="clojure.compile.path" value="${build}"/> <arg value="clojure.contrib.command-line"/> <arg value="clojure.contrib.cond"/> <arg value="clojure.contrib.def"/> <arg value="clojure.contrib.duck-streams"/> <arg value="clojure.contrib.except"/> <arg value="clojure.contrib.fcase"/> <arg value="clojure.contrib.import-static"/> <arg value="clojure.contrib.javadoc"/> <arg value="clojure.contrib.lazy-seqs"/> <arg value="clojure.contrib.memoize"/> <arg value="clojure.contrib.mmap"/> <arg value="clojure.contrib.ns-utils"/> <arg value="clojure.contrib.pred"/> <arg value="clojure.contrib.repl-ln"/> <arg value="clojure.contrib.seq-utils"/> <arg value="clojure.contrib.sql.internal"/> <arg value="clojure.contrib.sql"/> <arg value="clojure.contrib.str-utils"/> <arg value="clojure.contrib.test-is"/> <arg value="clojure.contrib.trace"/> <arg value="clojure.contrib.zip-filter"/> </java> </target> <target name="jar" description="Create jar file." depends="compile_clojure"> <jar jarfile="${jarfile}"> <path location="CPL.txt"/> <fileset dir="${src}" includes="**/*.clj"/> <fileset dir="${build}" includes="**/*.class"/> <manifest> <attribute name="Class-Path" value="."/> </manifest> </jar> </target> </project>
smime.p7s
Description: S/MIME cryptographic signature