| <project name="Apache Axis C Packaging" default="package" basedir="."> |
| <description> |
| This ANT script packages the Apache AxisC runtime binaries, WSDL2Ws tooling and |
| documentation. You will need to use build.xml to produce all binaries, etc. |
| |
| This script is intended for use with Java 1.4+ and Apache ANT 1.6+. |
| Ant is available from: http://ant.apache.org/ |
| |
| You will require the ant-contrib extensions to ANT, within: |
| [ant install dir]/lib |
| These are available from: http://ant-contrib.sourceforge.net/ |
| {Note: You will require both the cpptasks (v1.0beta3) and ant-contrib (v0.6) downloads } |
| |
| It is intended that the default target be used, produces the complete source and |
| binary deliverables. |
| |
| Within the build/ directory are a number of supporting scripts and property files. |
| |
| Associated with this build script are property files for each platform, the script |
| will automatically determine the correct one to be used; |
| - build.Win32.properties |
| - build.Linux.properties |
| - build.AIX.properties |
| - build.SunOS.properties |
| - build.OS400.properties |
| - build.HP-UX.properties |
| Please use these to configure directories to suit the needs of your system. |
| </description> |
| <import file="${basedir}/build/buildInitialize.xml"/> |
| <import file="${basedir}/build/buildClientC.xml"/> |
| |
| <target name="copySource"> |
| <mkdir dir="${dir.release}"/> |
| <copy todir="${dir.release}"> |
| <fileset dir="${basedir}" includes="**" excludes="include/apache*/**"/> |
| </copy> |
| </target> |
| |
| <target name="copyLicense"> |
| <!-- Copy license into release package --> |
| <mkdir dir="${dir.release}"/> |
| <copy todir="${dir.release}"> |
| <fileset dir="${basedir}"> |
| <include name="LICENSE"/> |
| <include name="NOTICE"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="copyDeploy"> |
| <!-- Copy deploy directory into release package --> |
| <mkdir dir="${dir.release}/deploy"/> |
| <copy todir="${dir.release}/deploy"> |
| <fileset dir="${basedir}/deploy" includes="**"/> |
| </copy> |
| </target> |
| |
| <target name="copyDocumentation"> |
| <!-- Copy documentation into release package --> |
| <mkdir dir="${dir.release}/docs"/> |
| <copy todir="${dir.release}/docs"> |
| <fileset dir="${basedir}/docs"> |
| <include name="**/*.pdf"/> |
| <include name="**/*.html"/> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="copyInclude"> |
| <!-- Copy include files into release package --> |
| <mkdir dir="${dir.release}/include"/> |
| <copy todir="${dir.release}/include"> |
| <fileset dir="${basedir}/include" includes="axis/**"/> |
| </copy> |
| </target> |
| |
| <target name="copyLibs"> |
| <!-- Copy across libs into release package --> |
| <mkdir dir="${dir.release}/lib"/> |
| <copy todir="${dir.release}/lib"> |
| <fileset dir="${basedir}/lib" includes="**"/> |
| </copy> |
| </target> |
| |
| <target name="copyAxisJars"> |
| <!-- Copy across Axis Java JARs --> |
| <mkdir dir="${dir.release}/lib/axisjava"/> |
| <copy todir="${dir.release}/lib/axisjava"> |
| <fileset dir="${dir.axisJARs}" includes="*.jar"/> |
| </copy> |
| </target> |
| |
| <target name="copyWSDL2Ws"> |
| <!-- Create JAR file for WSDL2Ws --> |
| <mkdir dir="${dir.release}/lib/axis"/> |
| <copy todir="${dir.release}/lib/axis" file="${dir.classes}/wsdl2ws.jar"/> |
| </target> |
| |
| <target name="copySamples"> |
| <!-- Copy across samples into release package --> |
| <mkdir dir="${dir.release}/samples"/> |
| <copy todir="${dir.release}/samples"> |
| <fileset dir="${basedir}/samples" includes="**"/> |
| </copy> |
| </target> |
| |
| <target name="copyTests"> |
| <!-- Copy across tests into release package --> |
| <mkdir dir="${dir.release}/tests"/> |
| <copy todir="${dir.release}/tests"> |
| <fileset dir="${basedir}/tests" includes="**"/> |
| </copy> |
| </target> |
| |
| <target name="copyWindowsLibraries" if="windows"> |
| <!-- Copy across DLLs into release package --> |
| <mkdir dir="${dir.release}/bin"/> |
| <copy todir="${dir.release}/bin"> |
| <fileset dir="${dir.bin}"> |
| <include name="*.dll"/> |
| <include name="*.exe"/> |
| </fileset> |
| </copy> |
| |
| <!-- Copy across LIB file into release package --> |
| <mkdir dir="${dir.release}/lib/axis"/> |
| <copy todir="${dir.release}/lib/axis"> |
| <fileset dir="${dir.bin}"> |
| <include name="${clientLibraryName}.lib"/> |
| <include name="${cClientLibraryName}.lib"/> |
| <include name="${serverEngineLibraryName}.lib"/> |
| </fileset> |
| </copy> |
| |
| <!-- Copy across MS Visual C++ Project files for samples into release package --> |
| <mkdir dir="${dir.release}/vc"/> |
| <copy todir="${dir.release}/vc"> |
| <fileset dir="${basedir}/vc" includes="samples/**"/> |
| </copy> |
| </target> |
| |
| <target name="copyAndLinkLinuxLibraries" if="linux"> |
| <basename property="libraryName" file="${fullLibraryName}" suffix=".so"/> |
| <mkdir dir="${dir.release}/lib/axis"/> |
| <copy file="${dir.bin}/${libraryName}.so" tofile="${dir.release}/lib/axis/${libraryName}.so.${version}"/> |
| |
| <symlink link="${dir.release}/lib/axis/${libraryName}.so.${majorVersion}" |
| resource="${libraryName}.so.${version}" overwrite="true"/> |
| <symlink link="${dir.release}/lib/axis/${libraryName}.so" |
| resource="${libraryName}.so.${majorVersion}" overwrite="true"/> |
| </target> |
| |
| <target name="copyAndLinkSolarisLibraries" if="solaris"> |
| <basename property="libraryName" file="${fullLibraryName}" suffix=".so"/> |
| <mkdir dir="${dir.release}/lib/axis"/> |
| <copy file="${dir.bin}/${libraryName}.so" tofile="${dir.release}/lib/axis/${libraryName}.so.${version}"/> |
| |
| <symlink link="${dir.release}/lib/axis/${libraryName}.so.${majorVersion}" |
| resource="${libraryName}.so.${version}" overwrite="true"/> |
| <symlink link="${dir.release}/lib/axis/${libraryName}.so" |
| resource="${libraryName}.so.${majorVersion}" overwrite="true"/> |
| </target> |
| |
| <target name="copyAndLinkAIXLibraries" if="aix"> |
| <basename property="libraryName" file="${fullLibraryName}" suffix="${librarySuffix}"/> |
| <mkdir dir="${dir.release}/lib/axis"/> |
| <copy file="${dir.bin}/${libraryName}${librarySuffix}" tofile="${dir.release}/lib/axis/${libraryName}${version}.so"/> |
| |
| <symlink link="${dir.release}/lib/axis/${libraryName}${majorVersion}.so" |
| resource="${libraryName}${version}.so" overwrite="true"/> |
| <symlink link="${dir.release}/lib/axis/${libraryName}.so" |
| resource="${libraryName}${majorVersion}.so" overwrite="true"/> |
| <symlink link="${dir.release}/lib/axis/${libraryName}.a" |
| resource="${libraryName}.so" overwrite="true"/> |
| </target> |
| |
| <target name="copyAndLinkUnixLibraries" depends="copyAndLinkLinuxLibraries, copyAndLinkSolarisLibraries, copyAndLinkAIXLibraries"/> |
| |
| <target name="copyUnixLibraries" unless="windows"> |
| <path id="libraries"> |
| <fileset dir="${dir.bin}" includes="${libraryPrefix}*"/> |
| </path> |
| |
| <foreach target="copyAndLinkUnixLibraries" param="fullLibraryName" inheritall="true"> |
| <path refid="libraries"/> |
| </foreach> |
| |
| <if> |
| <equals arg1="${server.simpleAxisServer}" arg2="true"/> |
| <then> |
| <mkdir dir="${dir.release}/bin"/> |
| <copy todir="${dir.release}/bin"> |
| <fileset dir="${dir.bin}" includes="${simpleAxisServerExecutableName}"/> |
| </copy> |
| <chmod perm="ugo+x" file="${dir.release}/bin/${simpleAxisServerExecutableName}"/> |
| </then> |
| </if> |
| <if> |
| <available file="${dir.bin}/${adminClientExecutableName}${executableSuffix}"/> |
| <then> |
| <mkdir dir="${dir.release}/bin"/> |
| <copy todir="${dir.release}/bin"> |
| <fileset dir="${dir.bin}" includes="${adminClientExecutableName}${executableSuffix}"/> |
| </copy> |
| <chmod perm="ugo+x" file="${dir.release}/bin/${adminClientExecutableName}${executableSuffix}"/> |
| </then> |
| </if> |
| <if> |
| <available file="${dir.bin}/${axisConfigurationExecutableName}${executableSuffix}"/> |
| <then> |
| <mkdir dir="${dir.release}/bin"/> |
| <copy todir="${dir.release}/bin"> |
| <fileset dir="${dir.bin}" includes="${axisConfigurationExecutableName}${executableSuffix}"/> |
| </copy> |
| <chmod perm="ugo+x" file="${dir.release}/bin/${axisConfigurationExecutableName}${executableSuffix}"/> |
| </then> |
| </if> |
| </target> |
| |
| <target name="copyLibraries" depends="copyWindowsLibraries, copyUnixLibraries"/> |
| |
| <target name="packageWindowsDeliverable" if="windows"> |
| <mkdir dir="${dir.zips}"/> |
| <zip destfile="${dir.zips}/${release}.zip" basedir="${dir.release}/.." includes="${release}/**" /> |
| </target> |
| |
| <target name="packageUnixDeliverable" unless="windows"> |
| <mkdir dir="${dir.zips}"/> |
| <exec executable="tar" dir="${dir.release}/.."> |
| <arg line="-cvf ${dir.zips}/${release}.tar ${release}"/> |
| </exec> |
| <exec executable="gzip" dir="${dir.zips}"> |
| <arg line="${release}.tar"/> |
| </exec> |
| </target> |
| |
| <target name="packageDeliverable" depends="packageWindowsDeliverable, packageUnixDeliverable"/> |
| |
| <target name="packageBinaryRelease"> |
| <antcall target="copyLicense" inheritall="true"/> |
| <antcall target="copyDeploy" inheritall="true"/> |
| <antcall target="copyDocumentation" inheritall="true"/> |
| <antcall target="copyInclude" inheritall="true"/> |
| <antcall target="copyLibs" inheritall="true"/> |
| <antcall target="copyAxisJars" inheritall="true"/> |
| <antcall target="copySamples" inheritall="true"/> |
| <antcall target="copyTests" inheritall="true"/> |
| <antcall target="copyWSDL2Ws" inheritall="true"/> |
| <antcall target="copyLibraries" inheritall="true"/> |
| <antcall target="packageDeliverable" inheritall="true"/> |
| </target> |
| |
| <target name="copyTraceInstrumentedSource" if="trace"> |
| <!-- Use trace instrumented source --> |
| <delete dir="${dir.release}/src"/> |
| <mkdir dir="${dir.release}/src"/> |
| <copy todir="${dir.release}/src"> |
| <fileset dir="${dir.src.instrumented}" includes="**"/> |
| </copy> |
| </target> |
| |
| <target name="packageSourceRelease"> |
| <antcall target="copySource" inheritall="true"/> |
| <antcall target="copyWSDL2Ws" inheritall="true"/> |
| <antcall target="packageDeliverable" inheritall="true"/> |
| </target> |
| |
| <target name="package" depends="initialize"> |
| <if> |
| <available file="${dir.src.instrumented}" type="dir"/> |
| <then> |
| <antcall target="packageBinaryRelease" inheritall="true"> |
| <param name="trace" value="true"/> |
| <param name="release" value="${release}-trace-bin"/> |
| <param name="dir.release" value="${dir.release}-trace-bin"/> |
| </antcall> |
| </then> |
| <else> |
| <antcall target="packageBinaryRelease" inheritall="true"> |
| <param name="release" value="${release}-bin"/> |
| <param name="dir.release" value="${dir.release}-bin"/> |
| </antcall> |
| </else> |
| </if> |
| <antcall target="packageSourceRelease" inheritall="true"> |
| <param name="release" value="${release}-src"/> |
| <param name="dir.release" value="${dir.release}-src"/> |
| </antcall> |
| </target> |
| |
| <target name="clean" depends="initialize" description="Remove built packages"> |
| <delete dir="${dir.release}-bin"/> |
| <delete dir="${dir.release}-src"/> |
| <delete dir="${dir.release}-bin-trace"/> |
| <delete dir="${dir.release}-src-trace"/> |
| <delete> |
| <fileset dir="${dir.zips}" includes="${release}**"/> |
| </delete> |
| </target> |
| |
| <!-- ApacheRelease is used to add md5 files to all zip/tar files created by the packaging scripts. |
| +==> (D) initialize |
| +==> md5Checksums |
| +==> (D) packageWindowsDeliverableName |
| +==> (D) packageUnixDeliverableName |
| +==> md5Checksum |
| --> |
| |
| <target name="ApacheRelease" depends="initialize, md5Checksums, ascFiles" description="Once the Apache Client has been packaged, two additional files need to be created for both the source and binary zip/tar files. These are the 'md5' and 'asc' files."> |
| </target> |
| |
| <target name="md5Checksums" depends="packageWindowsDeliverableName, packageUnixDeliverableName"> |
| <antcall target="md5Checksum"> |
| <param name="zipName" value="${zipNameBin}"/> |
| </antcall> |
| <antcall target="md5Checksum"> |
| <param name="zipName" value="${zipNameSrc}"/> |
| </antcall> |
| <antcall target="md5Checksum"> |
| <param name="zipName" value="${zipNameTraceBin}"/> |
| </antcall> |
| <antcall target="md5Checksum"> |
| <param name="zipName" value="${zipNameTraceSrc}"/> |
| </antcall> |
| </target> |
| |
| <target name="md5Checksum"> |
| <if> |
| <available file="${zipName}"/> |
| <then> |
| <checksum forceOverwrite="yes" fileext=".md5" file="${zipName}"/> |
| </then> |
| <else> |
| <echo message="Skipping ${zipName}, as it does not exist."/> |
| </else> |
| </if> |
| </target> |
| |
| <target name="packageWindowsDeliverableName" if="windows"> |
| <property name="zipNameBin" value="${dir.zips}/${release}-bin.zip"/> |
| <property name="zipNameSrc" value="${dir.zips}/${release}-src.zip"/> |
| <property name="zipNameTraceBin" value="${dir.zips}/${release}-trace-bin.zip"/> |
| <property name="zipNameTraceSrc" value="${dir.zips}/${release}-trace-src.zip"/> |
| </target> |
| |
| <target name="packageUnixDeliverableName" unless="windows"> |
| <property name="zipNameBin" value="${dir.zips}/${release}-bin.tar.gz"/> |
| <property name="zipNameSrc" value="${dir.zips}/${release}-src.tar.gz"/> |
| <property name="zipNameTraceBin" value="${dir.zips}/${release}-trace-bin.tar.gz"/> |
| <property name="zipNameTraceSrc" value="${dir.zips}/${release}-trace-src.tar.gz"/> |
| </target> |
| |
| <target name="ascFiles" depends="initialize, packageWindowsDeliverableName, packageUnixDeliverableName, buildCBindings"> |
| <if> |
| <available file="${basedir}/../../SecurityKeys/Apache_1_6/gpg/KEYS"/> |
| <then> |
| <copy file="${basedir}/../../SecurityKeys/Apache_1_6/gpg/KEYS" tofile="${basedir}/KEYS"/> |
| <copy file="${basedir}/../../SecurityKeys/Apache_1_6/gpg/password_gpg" tofile="${basedir}/password_gpg"/> |
| <mkdir dir="${gpgdir}"/> |
| <copy todir="${gpgdir}"> |
| <fileset dir="${basedir}/../../SecurityKeys/Apache_1_6/gpg"> |
| <exclude name="KEYS"/> |
| <exclude name="password_gpg"/> |
| </fileset> |
| </copy> |
| <java classname="org.apache.axis.tools.asc4Ant.asc4Ant" fork="true" failonerror="true"> |
| <classpath refid="tracecp"/> |
| <arg value="${zipNameTraceBin}"/> |
| <arg value="${basedir}/password_gpg"/> |
| </java> |
| <java classname="org.apache.axis.tools.asc4Ant.asc4Ant" fork="true" failonerror="true"> |
| <classpath refid="tracecp"/> |
| <arg value="${zipNameTraceSrc}"/> |
| <arg value="${basedir}/password_gpg"/> |
| </java> |
| <java classname="org.apache.axis.tools.asc4Ant.asc4Ant" fork="true" failonerror="true"> |
| <classpath refid="tracecp"/> |
| <arg value="${zipNameBin}"/> |
| <arg value="${basedir}/password_gpg"/> |
| </java> |
| <java classname="org.apache.axis.tools.asc4Ant.asc4Ant" fork="true" failonerror="true"> |
| <classpath refid="tracecp"/> |
| <arg value="${zipNameSrc}"/> |
| <arg value="${basedir}/password_gpg"/> |
| </java> |
| </then> |
| </if> |
| </target> |
| |
| </project> |