diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-11-14 19:34:57 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-11-14 19:34:57 +0000 |
commit | fc96a62035ea7ceeeeaf7efd28b5ea54d0025a5c (patch) | |
tree | 4228bae5584c6116fea760d45bd5d1dad6b740db | |
parent | 6bb26646634156eedd24a2eb241df8497c0dad81 (diff) |
added precompilation of base library .cljs into clojure.jar, patch from Stuart Sierra
-rw-r--r-- | build.xml | 20 | ||||
-rw-r--r-- | src/clj/precompile.clj | 11 |
2 files changed, 26 insertions, 5 deletions
@@ -11,6 +11,7 @@ <property name="build" location="classes"/> <property name="clojure_jar" location="clojure.jar"/> <property name="bootclj" location="${cljsrc}/clojure/core.clj"/> + <property name="precompile" location="${cljsrc}/precompile.clj"/> <target name="init"> <tstamp/> @@ -18,14 +19,23 @@ </target> <target name="compile" depends="init" - description="Compile Java sources."> + description="Compile Java sources."> <javac srcdir="${jsrc}" destdir="${build}" includeJavaRuntime="yes" debug="true" target="1.5"/> </target> - <target name="jar" depends="compile" - description="Create jar file."> + <target name="core" depends="compile" + description="Precompile Clojure core sources."> + <java classname="clojure.lang.Script" + classpath="${build}:${cljsrc}"> + <sysproperty key="clojure.compile.path" value="${build}"/> + <arg value="${precompile}"/> + </java> + </target> + + <target name="jar" depends="core" + description="Create jar file."> <jar jarfile="${clojure_jar}" basedir="${build}"> - <fileset dir="${cljsrc}" includes="**/*.clj"/> + <!-- <fileset dir="${cljsrc}" includes="**/*.clj"/> --> <manifest> <attribute name="Main-Class" value="clojure.lang.Repl"/> <attribute name="Class-Path" value="."/> @@ -34,7 +44,7 @@ </target> <target name="clean" - description="Remove autogenerated files and directories."> + description="Remove autogenerated files and directories."> <delete dir="${build}"/> </target> diff --git a/src/clj/precompile.clj b/src/clj/precompile.clj new file mode 100644 index 00000000..0f17a58d --- /dev/null +++ b/src/clj/precompile.clj @@ -0,0 +1,11 @@ +;; This script is run by the Ant build task to precompile the core +;; Clojure source files. + +(println "Compiling Clojure core sources...") + +(binding [*compile-path* (System/getProperty "clojure.compile.path")] + (compile 'clojure.core) + (compile 'clojure.set) + (compile 'clojure.xml) + (compile 'clojure.zip) + (compile 'clojure.inspector)) |