<?xml version="1.0"?> <!-- /* * $RCSfile$ * * Copyright (c) 2004 Sun Microsystems, Inc. All rights reserved. * * Use is subject to license terms. * * $Revision$ * $Date$ * $State$ */ --> <project name="Java 3D" default="jar-opt" basedir="."> <!-- ********************************************************************* * * The following properties may be set on the command line to * specify the compiler used or the renderer to be built. They are * specified using "ant -Dprop.name=value", where the actual * property and and value are substituted for "prop.name" and * "value" * * build.comp=gcc Use GCC compilers (default, all platforms) * build.comp=forte Use Forte compilers (Solaris only) * build.comp=vc Use Visual C++ compilers (Windows only) * * build.rend=ogl build OpenGL native library (default) * build.rend=d3d build DirectX (D3D) native library * * For example: * * ant -Dbuild.comp=vc -Dbuild.rend=d3d ... * ********************************************************************* --> <!-- *************************************** --> <!-- *** Begin build-specific properties *** --> <!-- *************************************** --> <!-- * The following property specifies the build number of the current * Java 3D version being built. This build number is a monotonically * increasing number that is incremented for each new stable, beta, * fcs, or patch build. Each non-daily build will have a unique * build number that is greater than the previous build's build * number. --> <property name="version_buildnum" value="10"/> <!-- * The following property specifies the beta revision of the current * Java 3D version being built. It is ignored for non-beta builds. --> <property name="version_betastr" value="beta1"/> <!-- * The following property specifies the patch revision of the current * Java 3D version being built. It is ignored for non-beta builds. --> <property name="version_patchstr" value="01"/> <!-- * The following properties specify the current version of Java 3D. * The "version_base" property specifies the dot-dot base version * number of Java 3D; it must contain exactly three integer numbers * separated by "periods ("."). The version_base_file property must * be the same version number as version_base with "_" replacing ".". --> <property name="version_base" value="1.3.2"/> <property name="version_base_file" value="1_3_2"/> <!-- ************************************* --> <!-- *** End build-specific properties *** --> <!-- ************************************* --> <!-- ********************************************************************* * * A build of Java 3D is one of the following five types: daily * build, stable build, beta build (or release candidate), fcs build, * patch build. Daily builds are identified with a "-preN-YYMMDDHHMM" * suffix; stable builds are identified with a "-buildN" suffix; beta * builds are identified with a "-betaN" or "-rcN" suffix; fcs builds * have no suffix; and patch builds are identified with an "_N" * suffix. * * The default is to do a daily build. This may be overriden by setting * the build.type property on the command line to do a different kind * of build: * * build.type=daily Do a daily build (default) * build.type=stable Do a stable build : -buildN * build.type=beta Do a beta or RC production build : -betaN or -rcN * build.type=fcs Do an FCS production build : [no suffix] * build.type=patch Do an FCS+patch production build : _PP * * For example: * * ant -Dbuild.type=stable ... * ********************************************************************* --> <!-- Set global properties for this build --> <property name="vecmath_home" location="../vecmath"/> <property name="core_utils_home" location="../j3d-core-utils"/> <property name="src" location="src"/> <property name="vecmath_src" location="${vecmath_home}/src"/> <property name="core_utils_src" location="${core_utils_home}/src"/> <property name="build-tools" location="build-tools"/> <property name="build" location="build"/> <property name="dist" location="dist"/> <property name="build.comp" value="gcc"/> <property name="build.rend" value="ogl"/> <target name="echo" depends="setupPlatform"> <echo message="platform = ${platform}"/> <echo message="ostype = ${ostype}"/> <echo message="os.arch = ${os.arch}"/> <echo message="os.name = ${os.name}"/> <echo message="ant.home = ${ant.home}"/> <echo message="java.home = ${java.home}"/> <echo message="core_utils_home = ${core_utils_home}"/> <echo message="vecmath_home = ${vecmath_home}"/> <echo message="user.name = ${user.name}"/> <echo message="user.home = ${user.home}"/> <echo message=""/> <echo message="build.type = ${build.type}"/> <echo message="build.rend = ${build.rend}"/> <echo message="build.comp = ${build.comp}"/> <echo message="is_dev_phase = ${is_dev_phase}"/> <echo message="is_production = ${is_production}"/> <echo message="use_verbose_buildtime = ${use_verbose_buildtime}"/> <echo message="version_build = ${version_build}"/> <echo message="version_suffix = ${version_suffix}"/> <echo message="version = ${version}"/> <echo message="version_file = ${version_file}"/> <echo message="version_rpm = ${version_rpm}"/> </target> <target name="setupSolaris" if="isSolarisOnSparc"> <property name="ostype" value="solaris"/> <property name="platform" value="solaris-sparc-${build.comp}"/> </target> <target name="setupLinux" if="isLinuxOnX86"> <property name="ostype" value="linux"/> <property name="platform" value="linux-i586"/> </target> <target name="setupLinuxAmd64" if="isLinuxOnAmd64"> <property name="ostype" value="linux"/> <property name="platform" value="linux-amd64"/> </target> <!-- win32 should be rename as windows --> <target name="setupWindows" if="isWindowsOnX86"> <property name="ostype" value="win32"/> <property name="platform" value="windows-i586-${build.comp}"/> </target> <target name="setupPlatform" depends="init, setupBuildType, setupSolaris, setupLinux, setupLinuxAmd64, setupWindows"> <property name="build-debug-gen" location="${build}/${platform}/debug/gen"/> <property name="build-opt-gen" location="${build}/${platform}/opt/gen"/> <property name="docname" value="java3d-${version_file}-doc"/> </target> <target name="setupBuildType" depends="initBuildType, setupBuildPatch, setupBuildFcs, setupBuildBeta, setupBuildStable, setupBuildDaily, checkBuildType"> <echo message="build.type = ${build.type}"/> </target> <target name="initBuildType"> <!-- Default value is "daily", overridden on command line --> <property name="build.type" value="daily"/> <property name="buildType_${build.type}" value="true"/> </target> <!-- Set properties for PATCH build --> <target name="setupBuildPatch" if="buildType_patch"> <property name="buildTypeSet" value="true"/> <property name="is_dev_phase" value="false"/> <property name="is_production" value="true"/> <property name="use_verbose_buildtime" value="false"/> <property name="version_build" value="build${version_buildnum}"/> <property name="version_suffix" value="${version_patchstr}"/> <property name="version" value="${version_base}_${version_suffix}"/> <property name="version_file" value="${version_base_file}_${version_suffix}"/> <property name="version_rpm" value="${version_base}_${version_suffix}"/> </target> <!-- Set properties for FCS build --> <target name="setupBuildFcs" if="buildType_fcs"> <property name="buildTypeSet" value="true"/> <property name="is_dev_phase" value="false"/> <property name="is_production" value="true"/> <property name="use_verbose_buildtime" value="false"/> <property name="version_build" value="build${version_buildnum}"/> <property name="version_suffix" value=""/> <property name="version" value="${version_base}"/> <property name="version_file" value="${version_base_file}"/> <property name="version_rpm" value="${version_base}"/> </target> <!-- Set properties for BETA build --> <target name="setupBuildBeta" if="buildType_beta"> <property name="buildTypeSet" value="true"/> <property name="is_dev_phase" value="false"/> <property name="is_production" value="true"/> <property name="use_verbose_buildtime" value="true"/> <property name="version_build" value="build${version_buildnum}"/> <property name="version_suffix" value="${version_betastr}"/> <property name="version" value="${version_base}-${version_suffix}"/> <property name="version_file" value="${version_base_file}-${version_suffix}"/> <property name="version_rpm" value="${version_base}_${version_suffix}"/> </target> <!-- Set properties for STABLE build --> <target name="setupBuildStable" if="buildType_stable"> <property name="buildTypeSet" value="true"/> <property name="is_dev_phase" value="true"/> <property name="is_production" value="false"/> <property name="use_verbose_buildtime" value="true"/> <property name="version_build" value="build${version_buildnum}"/> <property name="version_suffix" value="${version_build}"/> <property name="version" value="${version_base}-${version_suffix}"/> <property name="version_file" value="${version_base_file}-${version_suffix}"/> <property name="version_rpm" value="${version_base}_${version_suffix}"/> </target> <!-- Set properties for DAILY build --> <target name="setupBuildDaily" if="buildType_daily"> <property name="buildTypeSet" value="true"/> <property name="is_dev_phase" value="true"/> <property name="is_production" value="false"/> <property name="use_verbose_buildtime" value="true"/> <property name="version_build" value="pre${version_buildnum}"/> <property name="version_suffix" value="${version_build}"/> <property name="version" value="${version_base}-${version_suffix}-${buildtime}"/> <property name="version_file" value="${version_base_file}-${version_suffix}-${buildtime}"/> <property name="version_rpm" value="${version_base}_${version_suffix}_${buildtime}"/> </target> <!-- Check buildType --> <target name="checkBuildType" unless="buildTypeSet"> <fail message="Unknown build.type = ${build.type}"/> </target> <target name="init"> <!-- Create the time stamp --> <tstamp> <format property="buildtime_verbose" pattern="dd MMM yyyy HH:mm:ss z"/> <format property="buildtime" pattern="yyMMddHHmm"/> </tstamp> <echo message="buildtime = ${buildtime_verbose}"/> <!-- Create the base build directory --> <mkdir dir="${build}"/> <!-- ========== determine platform ========== --> <condition property="isWindowsOnX86"> <os family="windows" arch="x86"/> </condition> <condition property="isLinuxOnX86"> <os name="linux" arch="i386"/> </condition> <condition property="isLinuxOnAmd64"> <os name="linux" arch="amd64"/> </condition> <condition property="isSolarisOnSparc"> <os name="SunOS" arch="sparc"/> </condition> </target> <target name="compile-debug" depends="setupPlatform"> <ant dir="src/classes" target="compile-debug"/> <ant dir="src/native" target="compile-debug"/> </target> <target name="compile-opt" depends="setupPlatform"> <ant dir="src/classes" target="compile-opt"/> <ant dir="src/native" target="compile-opt"/> </target> <target name="compile" depends="compile-debug,compile-opt" /> <target name="jar-debug" depends="compile-debug"> <ant dir="src/classes" target="jar-debug"/> </target> <target name="jar-opt" depends="compile-opt"> <ant dir="src/classes" target="jar-opt"/> </target> <target name="jar" depends="jar-debug,jar-opt" /> <target name="docs-jcp" depends="setupPlatform"> <ant dir="src/classes" target="docs-jcp"/> </target> <target name="docs-public" depends="setupPlatform" unless="nojavadoc"> <ant dir="src/classes" target="docs-public"/> </target> <target name="docs-private" depends="setupPlatform"> <ant dir="src/classes" target="docs-private"/> </target> <target name="docs" depends="setupPlatform"> <ant dir="src/classes" target="docs"/> </target> <target name="dist" depends="jar-opt,docs-public"> <ant dir="src/classes" target="dist"/> <ant dir="src/native" target="dist"/> </target> <target name="all" depends="jar-debug,dist,docs-jcp,docs-private"/> <target name="rpm" description="Build rpm package" depends="dist"> <mkdir dir="${build}/${platform}/rpm"/> <mkdir dir="${build}/${platform}/rpm/SPECS"/> <mkdir dir="${build}/${platform}/rpm/SOURCES"/> <mkdir dir="${build}/${platform}/rpm/BUILD"/> <mkdir dir="${build}/${platform}/rpm/RPMS"/> <copy file="build-tools/java3d-rpm.spec" todir="${build}/${platform}/rpm/SPECS" overwrite="true"> <filterset> <filter token="VERSION" value="${version}"/> <filter token="VERSION_FILE" value="${version_file}"/> <filter token="VERSION_RPM" value="${version_rpm}"/> </filterset> </copy> <tar destfile="${build}/${platform}/rpm/SOURCES/java3d-${version_file}.tar.gz" compression="gzip"> <tarfileset dir="${dist}/${platform}" includes="lib/**" /> <tarfileset dir="release-info" includes="BINARY-CODE-LICENSE.txt" /> <tarfileset dir="." includes="COPYRIGHT.txt README-FIRST.txt" /> </tar> <rpm specFile="java3d-rpm.spec" topDir="${build}/${platform}/rpm"/> <copy file="${build}/${platform}/rpm/RPMS/i586/java3d-${version_rpm}-1.i586.rpm" tofile="dist/${platform}/java3d-${version_file}-1-i586.rpm"/> </target> <target name="clean-dist"> <!-- Delete the ${dist} directory tree --> <delete dir="${dist}"/> </target> <target name="clean"> <!-- Delete the ${build}, and ${dist} directory trees --> <delete dir="${build}"/> <delete dir="${dist}"/> </target> <description> The following ant targets are available ("jar-opt" is the default): all - execute targets jar-debug and dist. clean - removes WS/build/ and WS/dist/ clean-dist - removes WS/dist. compile - execute targets compile-debug and compile-opt. compile-debug - builds all classes and native layer in WS/src into class files under WS/build/${platform}/debug/classes/ and native files under WS/build/${platform}/debug/native/ compile-opt - builds all classes and native layer in WS/src into class files under WS/build/${platform}/opt/classes/ and native files under WS/build/${platform}/opt/native/ dist - creates the distribution jar, native library and javadoc under WS/dist/${platform}. docs - builds all classes in WS/src into javadoc under WS/build/javadocs. docs-jcp - builds JCP docs of all classes in WS/src into javadoc under WS/build/javadocs/docs-jcp. docs-private - builds private docs of all classes in WS/src into javadoc under WS/build/javadocs/docs-private. docs-public - builds public docs of all classes in WS/src into javadoc under WS/build/javadocs/docs-public. echo - echo some useful information, such as user.home, ant.home, java.home and platform. jar - execute targets jar-debug and jar-opt. jar-debug - creates WS/build/${platform}/debug/lib for all jar files and libraries from class and native code files under WS/build/${platform}/debug/classes and WS/build/${platform}/debug/native. jar-opt - creates WS/build/${platform}/opt/lib for all jar files and libraries from class and native code files under WS/build/${platform}/opt/classes and WS/build/${platform}/opt/native. rpm - creates a i586 rpm for installation in /usr/java/jdk1.5.0 the rpm is placed in dist/rpm </description> </project>