You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yacy_search_server/build.xml

1082 lines
39 KiB

<project name="YaCy" default="all" basedir=".">
<description>
YaCy - a Peer to Peer Web Search Engine
</description>
<!--
# THIS IS THE YACY BUILD SCRIPT
# YOU CAN USE IT TO COMPILE YOUR OWN RELEASE
# THE TARGET OF THE COMPILATION CAN BE FOUND
# IN THE 'RELEASE' DIRECTORY AFTERWARDS
# YOU NEED APACHE ANT TO USE THIS SCRIPT
# ==========================================
# This Software is Copyrighted
# (C) by Michael Peter Christen; mc@yacy.net
# first published on http://yacy.net
# Frankfurt, Germany, 2005-2007
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-->
<!-- defining the timestamp format -->
<tstamp>
<format property="REPL_DATE_FORMAT" pattern="yyyymmdd" />
</tstamp>
<!-- defining all needed directory names -->
<property name="yacyroot" location="."/>
<property name="addon" location="addon"/>
<property name="src" location="source"/>
<property name="data" location="DATA"/>
<property name="lib" location="lib"/>
<property name="libx" location="libx"/>
<property name="libt" location="libt"/>
<property name="build" location="classes"/>
<property name="htroot" location="htroot"/>
<property name="locales" location="locales"/>
<property name="skins" location="skins"/>
<property name="ranking" location="ranking"/>
<property name="release" location="RELEASE"/>
<property name="htdocsWWW" location="${data}/HTDOCS/www"/>
<property name="release_main" location="${release}/MAIN"/>
<property name="release_ext" location="${release}/EXT"/>
<property name="release_windows" location="${release}/WINDOWS"/>
<property name="svnEntriesFile" location=".svn/entries"/>
<property name="defaults" location="defaults"/>
<property name="DESTDIR" value="DESTDIR"/>
<!-- determining if the sourcecode of the yacybar is available -->
<condition property="yacyBarDirExists">
<available file="./yacybar" />
</condition>
<condition property="singleExtFile">
<equals arg1="${extensionTarget}" arg2="copy"/>
</condition>
<!-- determining if the .svn directory exists -->
<condition property="svnEntriesFileExists">
<available file="${svnEntriesFile}" />
</condition>
<!--
if the .svn directory exists we try to determine the real
svn revision number of the working base now
-->
<target name="buildSvnRevNr">
<delete file="${lib}/svnRevNr.jar" failonerror="false" />
<javac srcdir="${lib}/svnRevNr" />
<jar destfile="${lib}/svnRevNr.jar" basedir="${lib}/svnRevNr">
<manifest>
<attribute name="Main-Class" value="svnRevNrParser"/>
</manifest>
</jar>
</target>
<target name="determineRevisionNr" if="svnEntriesFileExists" depends="buildSvnRevNr">
<!-- define a custom ant task to read the revision number from file -->
<taskdef resource="svnRevNrParser.properties" classpath="${lib}/svnRevNr.jar"/>
<!-- determine the revision number -->
<echo message="Trying to read Revision number from file ${svnEntriesFile}"/>
<svnrevnr file="${svnEntriesFile}" property="baseRevisionNr"/>
<!-- replacing the old with the new revision number -->
<copy file="build.properties" tofile="build.properties.new">
<filterchain>
<tokenfilter>
<replaceregex pattern="^releaseNr=(.*)"
replace="releaseNr=$Revision: ${baseRevisionNr} $" />
</tokenfilter>
</filterchain>
</copy>
<delete file="build.properties"/>
<move file="build.properties.new" tofile="build.properties"/>
</target>
<!-- reading the build properties from file -->
<target name="readBuildProperties" depends="determineRevisionNr">
<!-- loading some property values from file -->
<loadproperties srcFile="build.properties">
<filterchain>
<tokenfilter>
<replaceregex pattern="^releaseNr=\$Revision:\s(.*)\s\$"
replace="releaseNr=\1"/>
</tokenfilter>
</filterchain>
</loadproperties>
</target>
<!-- determining the extension target -->
<target name="determineExtensionTarget" depends="readBuildProperties">
<condition property="extensionTarget" value="copy">
<equals arg1="${extensionMode}" arg2="singleZip"/>
</condition>
<condition property="extensionTarget" value="copy">
<equals arg1="${extensionMode}" arg2="copyToMain"/>
</condition>
<condition property="extensionTarget" value="zip">
<equals arg1="${extensionMode}" arg2="multiZip"/>
</condition>
<condition property="singleExtFile">
<equals arg1="${extensionMode}" arg2="singleZip"/>
</condition>
</target>
<!-- initializing all needed variables -->
<target name="init" depends="determineExtensionTarget">
<mkdir dir="${build}/de/anomic/crawler"/>
<mkdir dir="${build}/de/anomic/data"/>
<mkdir dir="${build}/de/anomic/htmlFilter"/>
<mkdir dir="${build}/de/anomic/http"/>
<mkdir dir="${build}/de/anomic/kelondro"/>
<mkdir dir="${build}/de/anomic/net"/>
<mkdir dir="${build}/de/anomic/index"/>
<mkdir dir="${build}/de/anomic/plasma"/>
<mkdir dir="${build}/de/anomic/plasma/parser"/>
<mkdir dir="${build}/de/anomic/server"/>
<mkdir dir="${build}/de/anomic/tools"/>
<mkdir dir="${build}/de/anomic/ymage"/>
<mkdir dir="${build}/de/anomic/yacy"/>
<mkdir dir="${build}/de/anomic/yacy/seedUpload"/>
<mkdir dir="${data}"/>
<mkdir dir="${release}"/>
<!-- YaCy Release Date -->
<filter token="REPL_DATE" value="${DSTAMP}"/>
<filter token="REPL_RELEASE" value="${stdReleaseFile}"/>
<!-- YaCy Release Version number -->
<echo message="YaCy Version number: ${releaseVersion}" />
<filter token="REPL_VERSION" value="${releaseVersion}" />
<!-- YaCy SVN Revision number -->
<echo message="YaCy Revision number: ${releaseNr}" />
<filter token="REPL_REVISION_NR" value="${releaseNr}"/>
<!-- YaCy root directory -->
<filter token="REPL_YACY_ROOT_DIR" value="${yacyroot}"/>
<!-- deleting old file -->
<delete file="${build}/yacy.java" failonerror="false"/>
<copy file="${src}/yacy.java" tofile="${build}/yacy.java" overwrite="true" filtering="true" />
</target>
<target name="compileMain" depends="init" description="Compiling the yacy sources ...">
<!-- defining the classpath that should be used for compiling -->
<path id="project.class.path">
<pathelement location="${build}" />
<pathelement location="${htroot}" />
<!-- libs needed for the yacy thread/object-pools -->
<pathelement location="${lib}/tar.jar" />
<pathelement location="${libx}/saaj.jar" />
<pathelement location="${libx}/axis.jar" />
<pathelement location="${lib}/commons-fileupload-1.2.1.jar" />
<pathelement location="${lib}/commons-httpclient-3.1.jar" />
<pathelement location="${lib}/commons-logging-1.1.1.jar" />
<pathelement location="${lib}/commons-io-1.4.jar" />
<pathelement location="${lib}/servlet-api.jar" />
</path>
<!-- compiling yacy.java -->
<javac srcdir="${build}" destdir="${build}" sourcepath="${src}"
includes="yacy.java"
classpathref="project.class.path"
debug="true" debuglevel="lines,vars,source"
source="${javacSource}" target="${javacTarget}" />
<!-- compiling the main sources -->
<javac srcdir="${src}/" destdir="${build}"
excludes="de/anomic/plasma/parser/*/*,de/anomic/yacy/seedUpload/**,yacy.java,de/anomic/data/rssReader.java"
debug="true" debuglevel="lines,vars,source"
source="${javacSource}" target="${javacTarget}">
<classpath refid="project.class.path" />
</javac>
<!-- compiling the two standard seed uploader methods -->
<javac srcdir="${src}" destdir="${build}"
classpathref="project.class.path"
debug="true" debuglevel="lines,vars,source"
source="${javacSource}" target="${javacTarget}">
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFile.java" />
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFtp.java"/>
</javac>
<!-- compiling htroot, htroot/yacy and htroot/htdocsdefault -->
<javac srcdir="${htroot}/"
excludes="processing/**"
classpathref="project.class.path"
debug="true" debuglevel="lines,vars,source"
source="${javacSource}" target="${javacTarget}"/>
</target>
<target name="compileHtdocsWWW" depends="compileMain" description="Compiling and zipping userspecific servlets">
<!-- defining the classpath that should be used for compiling -->
<path id="htdocsWWW.class.path">
<pathelement location="${build}"/>
<pathelement location="${htroot}"/>
<!-- libs needed for the yacy thread/object-pools -->
<pathelement location="${lib}/tar.jar" />
<!-- userspecific libs -->
<pathelement location="${htdocsWWW}/lib/*.jar" />
<pathelement location="${htdocsWWW}/" />
</path>
<!-- compiling htroot, htroot/yacy and htroot/htdocsdefault -->
<javac srcdir="${htdocsWWW}/"
classpathref="htdocsWWW.class.path"
debug="true" debuglevel="lines,vars,source"
source="${javacSource}" target="${javacTarget}" />
</target>
<!-- compiling optional content parsers and building install packages -->
<target name="compileParsers" depends="compileMain" description="Compiling and zipping all additional parsers">
<subant target="${extensionTarget}">
<property name="src" location="${src}"/>
<property name="build" location="${build}"/>
<property name="lib" location="${lib}"/>
<property name="libx" location="${libx}"/>
<property name="release" location="${release_ext}"/>
<property name="javacSource" value="${javacSource}"/>
<property name="javacTarget" value="${javacTarget}"/>
<!-- each optional parser must have its own build file -->
<fileset dir="${src}/" includes="de/anomic/plasma/parser/*/build.xml"/>
</subant>
</target>
<!-- compiling optional seed uploaders and building install packages -->
<target name="compileSeedUploaders" depends="compileMain" description="Compiling and zipping additional seed uploaders">
<subant target="${extensionTarget}">
<property name="src" location="${src}"/>
<property name="build" location="${build}"/>
<property name="libx" location="${libx}"/>
<property name="htroot" value="${htroot}"/>
<property name="release" location="${release_ext}"/>
<property name="javacSource" value="${javacSource}"/>
<property name="javacTarget" value="${javacTarget}"/>
<!-- each optionl uploader module must have its own build file -->
<fileset dir="${src}/" includes="de/anomic/yacy/seedUpload/yacySeedUpload*.xml"/>
</subant>
</target>
<!-- compile optional classs that were not compiled elsewhere -->
<target name="compileExtensions" depends="compileMain,compileParsers,compileSeedUploaders">
<!-- compile rss Reader -->
<javac srcdir="${src}" destdir="${build}"
debug="true" debuglevel="lines,vars,source"
source="${javacSource}" target="${javacTarget}">
<classpath>
<path refid="project.class.path"/>
</classpath>
<include name="de/anomic/data/rssReader.java" />
</javac>
</target>
<target name="all" depends="compileMain,compileExtensions">
<delete file="${build}/yacy.java" />
</target>
<!-- compiling the yacybar -->
<target name="buildYacyBar" if="yacyBarDirExists" depends="init" description="Building the yacyBar XPI file">
<!-- building yacybar xpi -->
<subant target="" buildpath="./yacybar" />
<!-- move xpi file into addon folder -->
<move file="./yacybar/yacybar.xpi" tofile="${addon}/yacybar.xpi"/>
</target>
<!-- =======================================================================================================
putting all extensions together into a single zip file
======================================================================================================= -->
<target name="distExt" if="singleExtFile" depends="copyExt4Dist">
<tar destfile="${release}/${extensionFile}" compression="gzip" defaultexcludes="yes" longfile="gnu">
<tarfileset dir="${release_ext}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsFile}">
<include name="**/*.*"/>
</tarfileset>
</tar>
<delete dir="${release_ext}"/>
</target>
<!-- copy extension files that are not copied elsewhere -->
<target name="copyExt4Dist" depends="compileExtensions">
<!-- copy extension classes -->
<copy todir="${release_ext}/classes" failonerror="false">
<fileset dir="${build}">
<include name="de/anomic/data/rssReader.class"/>
</fileset>
</copy>
<!-- copy extension source files -->
<copy todir="${release_ext}/source">
<fileset dir="${src}">
<include name="de/anomic/data/rssReader.java"/>
</fileset>
</copy>
</target>
<target name="copyMain4Dist" depends="compileMain,buildYacyBar">
<!-- copy main class files -->
<copy todir="${release_main}/classes" failonerror="false">
<fileset dir="${build}">
<include name="**/*.*"/>
<!-- excluding all additional content parsers -->
<exclude name="de/anomic/plasma/parser/*/*"/>
<!-- excluding all additional seed uploaders -->
<exclude name="de/anomic/yacy/seedUpload/**"/>
<!-- ecluding rss Reader class -->
<exclude name="de/anomic/data/rssReader.*"/>
</fileset>
<!-- copy standard seed uploaders -->
<fileset dir="${build}">
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFile.class"/>
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFtp.class"/>
</fileset>
</copy>
<!-- copy yacy.jar (if available) -->
<copy todir="${release_main}" file="yacy.jar" failonerror="false"/>
<!-- copy libs -->
<copy todir="${release_main}/lib">
<fileset dir="${lib}"
includes="**/*"/>
</copy>
<!-- copy configuration files -->
<copy todir="${release_main}">
<fileset dir=".">
<include name="yacy.logging"/>
<include name="yacy.yellow"/>
<include name="yacy.badwords.example"/>
<include name="yacy.stopwords"/>
<include name="yacy.parser"/>
<include name="httpd.mime"/>
</fileset>
</copy>
<!-- copy defaults -->
<copy todir="${release_main}/defaults">
<fileset dir="${defaults}"
includes="**/*"/>
</copy>
<!-- copy Unix wrappers -->
<copy todir="${release_main}">
<fileset dir=".">
<include name="startYACY.sh"/>
<include name="stopYACY.sh"/>
<include name="killYACY.sh"/>
<include name="restart.sh"/>
<include name="startYACY.command"/>
<include name="stopYACY.command"/>
</fileset>
</copy>
<!-- copy other wrappers -->
<copy todir="${release_main}">
<fileset dir=".">
<include name="startYACY.bat"/>
<include name="startYACY_debug.bat"/>
<include name="stopYACY.bat"/>
<!--
<include name="startYACY_Win9x.bat"/>
<include name="startYACY_noconsole_Win9x.bat"/>
<include name="stopYACY_Win9x.bat"/>
-->
</fileset>
</copy>
<copy todir="${release_main}" file="yacy.exe" failonerror="false"/>
<!-- copy locales -->
<copy todir="${release_main}/locales">
<fileset dir="${locales}">
<include name="*"/>
</fileset>
</copy>
<!-- copy skins -->
<copy todir="${release_main}/skins">
<fileset dir="${skins}">
<include name="*"/>
</fileset>
</copy>
<!-- copy documentation -->
<copy todir="${release_main}">
<fileset dir=".">
<include name="readme.txt"/>
<include name="gpl.txt"/>
<include name="ChangeLog"/>
<include name="AUTHORS"/>
<include name="COPYRIGHT"/>
<include name="NOTICE"/>
</fileset>
</copy>
<!-- copy source code -->
<copy todir="${release_main}/source">
<fileset dir="${src}">
<include name="**/*.*"/>
<!-- excluding sources for additional content parsers -->
<exclude name="de/anomic/plasma/parser/*/*"/>
<!-- excluding sources for additional seed uploaders -->
<exclude name="de/anomic/yacy/seedUpload/yacySeedUpload**"/>
<!-- ecluding rss Reader class -->
<exclude name="de/anomic/data/rssReader.*"/>
</fileset>
<fileset dir="${src}">
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFile.java"/>
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFtp.java"/>
</fileset>
</copy>
<!-- copy server pages -->
<copy todir="${release_main}/htroot">
<fileset dir="${htroot}">
<include name="**/*"/>
<exclude name="yacy/seedUpload/**"/>
</fileset>
<fileset dir="${htroot}">
<include name="yacy/seedUpload/yacySeedUploadFile.html"/>
<include name="yacy/seedUpload/yacySeedUploadFtp.html"/>
</fileset>
</copy>
<!-- copy add-on's -->
<copy todir="${release_main}/addon">
<fileset dir="${addon}">
<include name="**/*"/>
</fileset>
</copy>
<!-- copy ranking files -->
<copy todir="${release_main}/ranking">
<fileset dir="${ranking}">
<include name="**/*"/>
</fileset>
</copy>
<!-- copy development tools -->
<copy todir="${release_main}">
<fileset dir=".">
<include name="build.xml"/>
<include name="build.properties"/>
</fileset>
</copy>
<!-- copy searchtest -->
<copy todir="${release_main}/bin">
<fileset dir="bin">
<include name="searchtest.*"/>
<include name="localsearch.sh"/>
</fileset>
</copy>
</target>
<target name="copyMain4SourceDist" depends="init,clean">
<!-- copy main class files -->
<copy todir="${release_source}/classes" failonerror="false">
<fileset dir="${build}">
<include name="**/*.*"/>
<!-- excluding all additional content parsers -->
<exclude name="de/anomic/plasma/parser/*/*"/>
<!-- excluding all additional seed uploaders -->
<exclude name="de/anomic/yacy/seedUpload/**"/>
<!-- ecluding rss Reader class -->
<exclude name="de/anomic/data/rssReader.*"/>
</fileset>
<!-- copy standard seed uploaders -->
<fileset dir="${build}">
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFile.class"/>
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFtp.class"/>
</fileset>
</copy>
<!-- copy libs -->
<copy todir="${release_source}/lib">
<fileset dir="${lib}"
includes="**/*"/>
</copy>
<copy todir="${release_source}/libx">
<fileset dir="${libx}"
includes="**/*"/>
</copy>
<copy todir="${release_source}/libt">
<fileset dir="${libt}"
includes="**/*"/>
</copy>
<copy todir="${release_source}/libbuild">
<fileset dir="${libbuild}"
includes="**/*"/>
</copy>
<!-- copy configuration files -->
<copy todir="${release_source}">
<fileset dir=".">
<include name="yacy.logging"/>
<include name="yacy.yellow"/>
<include name="yacy.badwords.example"/>
<include name="yacy.stopwords"/>
<include name="yacy.parser"/>
<include name="httpd.mime"/>
<include name="superseed.txt"/>
</fileset>
</copy>
<!-- copy defaults -->
<copy todir="${release_source}/defaults">
<fileset dir="${defaults}"
includes="**/*"/>
</copy>
<!-- copy Unix wrappers -->
<copy todir="${release_source}">
<fileset dir=".">
<include name="startYACY.sh"/>
<include name="stopYACY.sh"/>
<include name="killYACY.sh"/>
<include name="restart.sh"/>
<include name="startYACY.command"/>
<include name="stopYACY.command"/>
</fileset>
</copy>
<!-- copy other wrappers -->
<copy todir="${release_source}">
<fileset dir=".">
<include name="startYACY.bat"/>
<include name="startYACY_noconsole.bat"/>
<include name="stopYACY.bat"/>
<!--
<include name="startYACY_Win9x.bat"/>
<include name="startYACY_noconsole_Win9x.bat"/>
<include name="stopYACY_Win9x.bat"/>
-->
</fileset>
</copy>
<copy todir="${release_source}" file="yacy.exe" failonerror="false"/>
<!-- copy locales -->
<copy todir="${release_source}/locales">
<fileset dir="${locales}">
<include name="*"/>
</fileset>
</copy>
<!-- copy skins -->
<copy todir="${release_source}/skins">
<fileset dir="${skins}">
<include name="*"/>
</fileset>
</copy>
<!-- copy documentation -->
<copy todir="${release_source}">
<fileset dir=".">
<include name="readme.txt"/>
<include name="gpl.txt"/>
<include name="ChangeLog"/>
<include name="AUTHORS"/>
<include name="COPYRIGHT"/>
<include name="NOTICE"/>
</fileset>
</copy>
<!-- copy source code -->
<copy todir="${release_source}/source">
<fileset dir="${src}">
<include name="**/*.*"/>
<!-- excluding sources for additional content parsers -->
<exclude name="de/anomic/plasma/parser/*/*"/>
<!-- excluding sources for additional seed uploaders -->
<exclude name="de/anomic/yacy/seedUpload/yacySeedUpload**"/>
<!-- ecluding rss Reader class -->
<exclude name="de/anomic/data/rssReader.*"/>
</fileset>
<fileset dir="${src}">
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFile.java"/>
<include name="de/anomic/yacy/seedUpload/yacySeedUploadFtp.java"/>
</fileset>
</copy>
<!-- copy server pages -->
<copy todir="${release_source}/htroot">
<fileset dir="${htroot}">
<include name="**/*"/>
<exclude name="yacy/seedUpload/**"/>
</fileset>
<fileset dir="${htroot}">
<include name="yacy/seedUpload/yacySeedUploadFile.html"/>
<include name="yacy/seedUpload/yacySeedUploadFtp.html"/>
</fileset>
</copy>
<!-- copy add-on's -->
<copy todir="${release_source}/addon">
<fileset dir="${addon}">
<include name="**/*"/>
</fileset>
</copy>
<!-- copy ranking files -->
<copy todir="${release_source}/ranking">
<fileset dir="${ranking}">
<include name="**/*"/>
</fileset>
</copy>
<!-- copy development tools -->
<copy todir="${release_source}">
<fileset dir=".">
<include name="build.xml"/>
<include name="build.properties"/>
</fileset>
</copy>
<!-- copy searchtest -->
<copy todir="${release_main}/bin">
<fileset dir="bin">
<include name="searchtest.*"/>
<include name="localsearch.sh"/>
</fileset>
</copy>
</target>
<!-- =======================================================================================================
making a release file for yacy
======================================================================================================= -->
<target name="distEmb" depends="copyMain4Dist" description="make for embedded YaCy (no extra parsers)">
<tar destfile="${release}/${embReleaseFile}" compression="gzip" defaultexcludes="yes" longfile="fail">
<!-- packing all files into a gzipped tar -->
<tarfileset dir="${release_main}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsExecutable}">
<include name="**/*.sh"/>
<include name="**/*.command"/>
</tarfileset>
<tarfileset dir="${release_main}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsFile}" >
<include name="**/*"/>
<exclude name="**/*.sh"/>
<exclude name="**/*.command"/>
</tarfileset>
</tar>
<!-- deleting unneeded files -->
<delete dir="${release_main}"/>
</target>
<target name="dist" depends="compileExtensions,copyMain4Dist,copyExt4Dist" description="make for standard YaCy">
<tar destfile="${release}/${stdReleaseFile}" compression="gzip" defaultexcludes="yes" longfile="fail">
<!-- packing all files into a gzipped tar -->
<tarfileset dir="${release_main}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsExecutable}">
<include name="**/*.sh"/>
<include name="**/*.command"/>
</tarfileset>
<tarfileset dir="${release_main}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsFile}" >
<include name="**/*"/>
<exclude name="**/*.sh"/>
<exclude name="**/*.command"/>
</tarfileset>
<tarfileset dir="${release_ext}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsFile}" >
<include name="**/*.*"/>
</tarfileset>
</tar>
<delete dir="${release_main}"/>
<delete dir="${release_ext}"/>
<delete dir="${release_windows}" failonerror="false" />
<delete dir="${release}/SPECS" failonerror="false" />
</target>
<target name="sdist" depends="copyMain4SourceDist" description="make for standard source YaCy">
<tar destfile="${release}/${sourceReleaseFile}" compression="gzip" defaultexcludes="yes" longfile="fail">
<!-- packing all files into a gzipped tar -->
<tarfileset dir="${release_source}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsExecutable}">
<include name="**/*.sh"/>
<include name="**/*.command"/>
</tarfileset>
<tarfileset dir="${release_source}" prefix="${releaseFileParentDir}/" dirmode="${accessRightsDir}" mode="${accessRightsFile}" >
<include name="**/*"/>
<exclude name="**/*.sh"/>
<exclude name="**/*.command"/>
</tarfileset>
</tar>
<delete dir="${release_source}"/>
</target>
<!-- make clean -->
<target name="clean" description="make clean">
<delete dir="${release_main}" failonerror="false"/>
<delete dir="${release_ext}" failonerror="false"/>
<delete file="${build}/yacy.java" failonerror="false"/>
<delete file="yacy.jar" failonerror="false"/>
<delete file="yacy.exe" failonerror="false"/>
<delete file="lib/svnRevNr.jar" failonerror="false"/>
<delete failonerror="false">
<fileset dir="${src}" includes="**/*.class" />
<fileset dir="${build}" includes="**/*.class" />
<fileset dir="${htroot}" includes="**/*.class" />
</delete>
</target>
<target name="installonlinux">
<!-- check for jar-file -->
<available file="yacy.jar" property="built"/>
<fail message="Please build yacy with 'ant clean all'" unless="built"/>
<!-- copy main class files -->
<copy todir="${DESTDIR}/usr/share/java/">
<fileset dir=".">
<include name="yacy.jar"/>
</fileset>
</copy>
<!-- copy configuration files -->
<copy todir="${DESTDIR}/usr/share/yacy">
<fileset dir=".">
<include name="yacy.logging"/>
<include name="yacy.yellow"/>
<include name="yacy.badwords.example"/>
<include name="yacy.stopwords"/>
<include name="yacy.parser"/>
<include name="httpd.mime"/>
<include name="build.properties"/>
</fileset>
</copy>
<!-- copy defaults -->
<copy todir="${DESTDIR}/usr/share/yacy/defaults">
<fileset dir="${defaults}"
includes="**/*"/>
</copy>
<!-- copy Unix wrappers -->
<copy todir="${DESTDIR}/usr/share/yacy">
<fileset dir=".">
<include name="startYACY.sh"/>
<include name="stopYACY.sh"/>
<include name="killYACY.sh"/>
<include name="restart.sh"/>
</fileset>
</copy>
<chmod file="${DESTDIR}/usr/share/yacy/startYACY.sh" perm="ugo+rx"/>
<chmod file="${DESTDIR}/usr/share/yacy/stopYACY.sh" perm="ugo+rx"/>
<chmod file="${DESTDIR}/usr/share/yacy/killYACY.sh" perm="ugo+rx"/>
<chmod file="${DESTDIR}/usr/share/yacy/restart.sh" perm="ugo+rx"/>
<!-- copy locales -->
<copy todir="${DESTDIR}/usr/share/yacy/locales">
<fileset dir="${locales}">
<include name="*"/>
</fileset>
</copy>
<!-- copy skins -->
<copy todir="${DESTDIR}/usr/share/yacy/skins">
<fileset dir="${skins}">
<include name="*"/>
</fileset>
</copy>
<!-- copy documentation -->
<copy todir="${DESTDIR}/usr/share/doc/yacy">
<fileset dir=".">
<include name="readme.txt"/>
<include name="gpl.txt"/>
<include name="ChangeLog"/>
<include name="AUTHORS"/>
<include name="COPYRIGHT"/>
<include name="NOTICE"/>
</fileset>
</copy>
<!-- copy server pages -->
<copy todir="${DESTDIR}/usr/share/yacy/htroot">
<fileset dir="${htroot}">
<include name="**/*"/>
<exclude name="yacy/seedUpload/**"/>
</fileset>
<fileset dir="${htroot}">
<include name="yacy/seedUpload/yacySeedUploadFile.html"/>
<include name="yacy/seedUpload/yacySeedUploadFtp.html"/>
</fileset>
</copy>
<!-- copy ranking files -->
<copy todir="${DESTDIR}/usr/share/yacy/ranking">
<fileset dir="${ranking}">
<include name="**/*"/>
</fileset>
</copy>
<!-- work around a feature/bug :( -->
<mkdir dir="${DESTDIR}/usr/share/yacy/xlib" />
<!-- prepare /var/lib/yacy -->
<mkdir dir="${DESTDIR}/var/lib/yacy" />
<mkdir dir="${DESTDIR}/var/lib/yacy/LOG" />
<mkdir dir="${DESTDIR}/var/lib/yacy/SETTINGS" />
<mkdir dir="${DESTDIR}/etc" />
<mkdir dir="${DESTDIR}/var/log" />
<symlink link="${DESTDIR}/usr/share/yacy/DATA"
resource="../../../var/lib/yacy"/>
<symlink link="${DESTDIR}/etc/yacy"
resource="../var/lib/yacy/SETTINGS"/>
<symlink link="${DESTDIR}/var/log/yacy"
resource="../lib/yacy/LOG"/>
</target>
<!-- run YaCy (needed for NetBeans4) -->
<target name="run" description="Run YaCy">
<!-- debug options:
java -Xrunhprof:help
Hprof usage: -Xrunhprof[:help]|[:<option>=<value>, ...]
Option Name and Value Description Default
_____________________ ___________ _______
heap=dump|sites|all heap profiling all
cpu=samples|times|old CPU usage off
monitor=y|n monitor contention n
format=a|b ascii or binary output a
file=<file> write data to file java.hprof(.txt for ascii)
net=<host>:<port> send data over a socket write to file
depth=<size> stack trace depth 4
cutoff=<value> output cutoff point 0.0001
lineno=y|n line number in traces? y
thread=y|n thread in traces? n
doe=y|n dump on exit? y
gc_okay=y|n GC okay during sampling y
Example: java -Xrunhprof:cpu=samples,file=log.txt,depth=3 FooClass
Note: format=b cannot be used with cpu=old|times
-->
<java classname="yacy" fork="yes">
<classpath>
<pathelement location="${build}"/>
<pathelement location="${htroot}"/>
<pathelement location="${lib}/tar.jar" />
<pathelement location="${lib}/commons-fileupload-1.2.1.jar" />
<pathelement location="${lib}/commons-httpclient-3.1.jar" />
<pathelement location="${lib}/commons-logging-1.1.1.jar" />
<pathelement location="${lib}/commons-io-1.4.jar" />
<pathelement location="${lib}/servlet-api.jar" />
<pathelement location="${libx}" />
<fileset dir="${libx}" includes="**/*.jar" />
</classpath>
<!--<arg value="-Xrunhprof"/>-->
<arg line="-start"/>
<!-- <arg line="-migratewords"/>-->
<!-- <arg line="-start ${user.dir}"/>-->
</java>
</target>
<!-- run a single file (selected in NetBeans4) -->
<target name="run-single" depends="compileMain" description="Run Single File">
<fail unless="classname">Must set property 'classname'</fail>
<java classname="yacy" fork="yes">
<classpath refid="run.classpath"/>
<classpath>
<pathelement location="${build}"/>
<pathelement location="${htroot}"/>
<pathelement location="${lib}/tar.jar" />
<pathelement location="${libx}" />
<fileset dir="${libx}" includes="**/*.jar" />
</classpath>
<arg line=""/>
</java>
</target>
<!-- run YaCy with remote debugging enabled on port 8000 -->
<target name="debug" description="Debug YaCy">
<java classname="yacy" fork="yes">
<classpath>
<pathelement location="${build}"/>
<pathelement location="${htroot}"/>
<pathelement location="${lib}/tar.jar" />
<pathelement location="${libx}" />
<fileset dir="${libx}" includes="**/*.jar" />
</classpath>
<arg line="-start"/>
<jvmarg line="-Xdebug"/>
<jvmarg line="-Xnoagent"/>
<jvmarg line="-Djava.compiler=none"/>
<jvmarg line="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"/>
</java>
</target>
<!-- stop YaCy again -->
<target name="stop" description="Stop YaCy">
<java classname="yacy" fork="yes">
<classpath>
<pathelement location="${build}"/>
<pathelement location="${htroot}"/>
<pathelement location="${lib}/tar.jar" />
<pathelement location="${libx}" />
<fileset dir="${lib}" includes="**/*.jar" />
<fileset dir="${libx}" includes="**/*.jar" />
</classpath>
<arg line="-stop"/>
</java>
</target>
<!-- create the html-documentation from javadoc -->
<target name="create-doc" description="Create the javadoc-HTML-Pages">
<javadoc destdir="doc/api"
author="true"
version="true"
use="false"
encoding="iso-8859-1"
windowtitle="YaCy API Documentation">
<classpath>
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${libx}">
<include name="**/*.jar"/>
</fileset>
<pathelement location="${build}"/>
</classpath>
<fileset dir="source" defaultexcludes="yes">
<include name="**/*.java" />
</fileset>
</javadoc>
</target>
<!-- creates an image of this build.xml with ant2svg, see http://www.spiritedsw.com/ant2svg/ for details -->
<target name="ant2svg" description="Creates an image of the build.xml with ant2svg">
<taskdef name="ant2svg"
classname="org.apache.tools.ant.taskdefs.optional.ant2svg.Ant2SvgTask"/>
<ant2svg/>
<ant2svg srcfile="build.xml"/>
<ant2svg destfile="doc/build_dependencies.svg"/>
</target>
<target name="build-jar" depends="compileMain,compileExtensions">
<jar destfile="yacy.jar" basedir="${build}/">
<manifest>
<attribute name="Main-Class" value="yacy"/>
</manifest>
</jar>
</target>
<target name="makeWinStartExe" depends="build-jar">
<!-- Creates a Windows Executable using JSmooth (http://jsmooth.sf.net) -->
<taskdef name="jsmoothgen"
classname="net.charabia.jsmoothgen.ant.JSmoothGen"
classpath="addon/jsmooth/lib/jsmoothgen-ant.jar" />
<jsmoothgen project="addon/jsmooth/yacy.jsmooth" skeletonroot="addon/jsmooth/skeletons" />
<delete>
<fileset dir="${build}" includes="**/*.class" />
</delete>
</target>
<!--
Explanation of the confusing Exe Targets:
-makeWinStartExe creates a windows-program, which starts yacy instead
of the startYACY.bat file.
-distWithWinStartExe creates a tarball with the program included
This needs jsmoothgen
-distWininstaller and
winInstallerExe build a installer-programm for windows, instead of a tar.gz.
This needs nsis-ant-1.2.jar in the yacyfolder.
-->
<target name="distWithWinStartExe" depends="makeWinStartExe,dist">
</target>
<target name="rpm" depends="all" description="Creates the main rpm-package and another for libx">
<mkdir dir="${release}/RPMS/noarch" />
<mkdir dir="${release}/BUILD" />
<copy file="yacy-svn-4.spec" tofile="${release}/SPECS/yacy-svn.spec" overwrite="true" filtering="true" />
<rpm specFile="yacy-svn.spec" topDir="${release}" />
<move file="${release}/RPMS/noarch/yacy-${releaseVersion}_${releaseNr}-3.noarch.rpm"
tofile="${release}/yacy-${releaseVersion}_${releaseNr}-3.noarch.rpm" />
<move file="${release}/RPMS/noarch/yacy-libx-${releaseVersion}_${releaseNr}-3.noarch.rpm"
tofile="${release}/yacy-libx-${releaseVersion}_${releaseNr}-3.noarch.rpm" />
<delete dir="${release}/SPECS" failonerror="false" />
<delete dir="${release}/RPMS" failonerror="false" />
<delete dir="${release_windows}" failonerror="false" />
<delete dir="${release_ext}" failonerror="false" />
</target>
<!-- Alias -->
<target name="distWinInstaller" depends="winInstallerExe">
</target>
<target name="winInstallerExe" depends="compileExtensions,copyMain4Dist,copyExt4Dist" description="Creates the windows installer.exe">
<!-- http://nsisant.sourceforge.net/ -->
<mkdir dir="${release_windows}" />
<copy file="build.nsi" tofile="${release_windows}/build.nsi" overwrite="true" filtering="true" />
<taskdef name="nsis" classname="net.sf.nsisant.Task">
<classpath location="libbuild/nsisant-1.2.jar"/>
</taskdef>
<nsis script="${release_windows}/build.nsi" nocd="yes" />
<move file="${release_windows}/yacy_v${releaseVersion}_${DSTAMP}_${releaseNr}.exe"
tofile="${release}/yacy_v${releaseVersion}_${DSTAMP}_${releaseNr}.exe" />
<delete dir="${release_main}"/>
<delete dir="${release_ext}"/>
<delete dir="${release_windows}" failonerror="false" />
</target>
<target name="deb" depends="init" description="Creates a debian package">
<!-- replacing the old with the new revision number -->
<replaceregexp file="debian/changelog"
match="yacy \(.*\) unstable; urgency=low"
replace="yacy (${releaseVersion}svn${baseRevisionNr}) unstable; urgency=low" />
<!-- build debian package -->
<exec executable="dpkg-buildpackage">
<arg value="-b"/>
<arg value="-rfakeroot"/>
<arg value="-uc"/>
</exec>
<replaceregexp file="debian/changelog"
match="yacy \(.*\) unstable; urgency=low"
replace="yacy (*auto-svn-version*) unstable; urgency=low" />
</target>
</project>