1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
|
<!--
General purpose build script.
This build script assumes that the source code of your web application
is organized into the following subdirectories underneath the source
code directory from which you execute the build script:
docs Static documentation files to be copied to
the "docs" subdirectory of your distribution.
src Java source code (and associated resource files)
to be compiled to the "WEB-INF/classes"
subdirectory of your web applicaiton.
build Compiled class files
-->
<!-- A "project" describes a set of targets that may be requested
when Ant is executed. The "default" attribute defines the
target which is executed if no specific target is requested,
and the "basedir" attribute defines the current working directory
from which Ant executes the requested task. This is normally
set to the current working directory.
-->
<project name="CHARVA" default="compile" basedir=".">
<!-- ===================== Property Definitions =========================== -->
<!--
Each of the following properties are used in the build script.
Values for these properties are set by the first place they are
defined, from the following list:
* Definitions on the "ant" command line (ant -Dfoo=bar compile).
* Definitions from a "build.properties" file in the top level
source directory of this application.
* Definitions from a "build.properties" file in the developer's
home directory.
* Default definitions in this build.xml file.
You will note below that property values can be composed based on the
contents of previously defined properties. This is a powerful technique
that helps you minimize the number of changes required when your development
environment is modified. Note that property composition is allowed within
"build.properties" files as well as in the "build.xml" script.
-->
<!-- <property file="build.properties"/>-->
<property file="${user.home}/build.properties"/>
<!-- ==================== File and Directory Names ======================== -->
<!--
These properties generally define file and directory names (or paths) that
affect where the build process stores its outputs.
app.name Base name of this application, used to
construct filenames and directories.
Defaults to "myapp".
app.path Context path to which this application should be
deployed (defaults to "/" plus the value of the
"app.name" property).
build.home The directory into which the "compile" target will generate its output.
Defaults to "build".
dist.home The name of the base directory in which
distribution files are created.
Defaults to "dist".
-->
<property name="app.name" value="charva"/>
<property name="app.path" value="/${app.name}"/>
<property name="build.home" value="${basedir}/java/classes"/>
<property name="dist.home" value="${basedir}/java/dist"/>
<property name="docs.home" value="${basedir}/java/docs"/>
<property name="src.home" value="${basedir}/java/src"/>
<property name="test.home" value="${basedir}/test"/>
<property name="c.home" value="${basedir}/c"/>
<!-- ==================== Compilation Control Options ==================== -->
<!--
These properties control option settings on the Javac compiler when it
is invoked using the <javac> task.
compile.debug Should compilation include the debug option?
compile.deprecation Should compilation include the deprecation option?
compile.optimize Should compilation include the optimize option?
-->
<property name="compile.debug" value="true"/>
<property name="compile.deprecation" value="false"/>
<property name="compile.optimize" value="true"/>
<!-- ==================== All Target ====================================== -->
<!--
The "all" target is a shortcut for running the "clean" target followed
by the "compile" target, to force a complete recompile.
-->
<target name="all" depends="clean,makeDLL,javadoc,dist,compile-test"
description="Clean build and dist directories, then compile classes
and generate the distribution files"/>
<!-- ==================== Clean Target ==================================== -->
<!--
The "clean" target deletes any previous "build" and "dist" directory,
so that you can be assured the application can be built from scratch.
-->
<target name="clean"
description="Delete old build and dist directories">
<delete dir="${build.home}"/>
<delete dir="${dist.home}"/>
<delete dir="${basedir}/docs/api"/>
<delete dir="${test.home}/classes"/>
<delete>
<fileset dir="${c.home}/lib" includes="*"/>
</delete>
<delete>
<fileset dir="${c.home}/include" includes="*"/>
</delete>
</target>
<!-- ==================== Compile Target ================================== -->
<!--
The "compile" target transforms source files (from your "src" directory)
into object files in the appropriate location in the build directory.
-->
<target name="compile"
description="Compile Java sources">
<!-- Compile Java classes as necessary -->
<mkdir dir="${build.home}"/>
<javac srcdir="${src.home}"
excludes="test/**"
destdir="${build.home}"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}">
<classpath>
<fileset dir="java/lib" includes="commons-logging.jar"/>
</classpath>
</javac>
</target>
<target name="javah" depends="compile"
description="Generate C header file">
<mkdir dir="${c.home}/include"/>
<javah destdir="${c.home}/include"
class="charva.awt.Toolkit"
classpath="${build.home}"/>
</target>
<target name="makeDLL" depends="javah"
description="Compile the JNI shared library">
<mkdir dir="${c.home}/lib"/>
<input
message="Enter the operating system type: "
validargs="aix,beos,freebsd,gcj,hpux,linux,mac_osx,solaris,win32"
addproperty="os.type"
/>
<echo>Compiling the shared library using "Makefile.${os.type}.txt"</echo>
<exec executable="make"
dir="${c.home}/src"
output="${c.home}/lib/make.out.txt"
failonerror="true">
<arg line="-f Makefile.${os.type}.txt"/>
</exec>
</target>
<!-- ==================== Javadoc Target ================================== -->
<!--
The "javadoc" target creates Javadoc API documentation for the Java
classes included in your application. Normally, this is only required
when preparing a distribution release, but is available as a separate
target in case the developer wants to create Javadocs independently.
-->
<target name="javadoc" depends="compile"
description="Create Javadoc API documentation">
<mkdir dir="${basedir}/docs/api"/>
<javadoc sourcepath="${src.home}"
overview="${src.home}/overview.html"
destdir="${basedir}/docs/api"
packagenames="*"
excludepackagenames="org.apache.commons.logging"
breakiterator="true">
<classpath>
<fileset dir="java/lib" includes="commons-logging.jar"/>
</classpath>
</javadoc>
</target>
<!-- ==================== Dist Target ================================== -->
<!--
The "dist" target is required when preparing a distribution release.
-->
<target name="dist" depends="compile"
description="Create distribution JAR">
<mkdir dir="${dist.home}/lib"/>
<jar destfile="${dist.home}/lib/${app.name}.jar"
basedir="${build.home}"
excludes="tutorial/**"/>
</target>
<!-- Compile the tutorial program.
-->
<target name="compile-test" depends="compile"
description="Compile the tutorial program">
<mkdir dir="${test.home}/classes"/>
<javac srcdir="${test.home}/src"
destdir="${test.home}/classes"
debug="${compile.debug}"
deprecation="${compile.deprecation}"
optimize="${compile.optimize}">
<classpath>
<pathelement location="${build.home}"/>
<fileset dir="java/lib" includes="commons-logging.jar"/>
</classpath>
</javac>
</target>
<!-- The "sftp" target uses the SSH protocol to copy the entire project
to a remote computer. This can be useful if you are for example compiling
on one computer and testing on another.
To use this target, you have to:
1. download the "sshtools" library (see http://sourceforge.net/projects/sshtools),
2. build the j2ssh libraries
3. copy the following JAR files from $J2SSH_HOME/dist/lib to the
$ANT_HOME/dist/lib directory:
j2ssh-ant.jar
j2ssh-common.jar
j2ssh-core.jar
Alternatively, if you don't want to use this target, just remove it or
comment it out.
-->
<!--
<path id="j2ssh.classpath">
<fileset dir="${J2SSH_HOME}">
<include name="dist/lib/*.jar"/>
</fileset>
</path>
<taskdef name="ssh" classname="com.sshtools.ant.Ssh"
classpathref="j2ssh.classpath"/>
<target name="sftp"
description="Copy the whole project to a remote computer"
depends="clean">
<ssh host="${REMOTE_HOST}"
username="${REMOTE_HOST_USERNAME}"
password="${REMOTE_HOST_PASSWORD}"
verifyhost="false">
<sftp
remotedir="${REMOTE_DIR}"
action="put"
depends="no"
verbose="no">
<fileset dir="${basedir}"/>
</sftp>
</ssh>
</target> -->
<!--
<target name="run-test" description="Run the Charva test">
<java classname="tutorial.charva.Tutorial"
dir="${basedir}"
classpath="${build.home}"
output="charva.log"
fork="true">
<jvmarg value="-Djava.library.path=${c.home}/src"/>
</java>
</target>
-->
<!-- Zip up everything into a file for upload to the SourceForge repository.
Note that both the Windows "Terminal.dll" and Linux "libTerminal.so" files should
be present, which implies running "ant makeDLL" first. -->
<target name="zip-all" depends="dist,javadoc,javah,compile-test"
description="Create a ZIP file for upload to Sourceforge">
<zip basedir="${basedir}/.."
destfile="/tmp/${app.name}.zip">
<exclude name="CVS"/>
</zip>
</target>
</project>
|