| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| --> |
| <!DOCTYPE project [ |
| <!ENTITY common SYSTEM 'common.xml'> |
| <!ENTITY find-apr SYSTEM 'find-apr.xml'> |
| <!ENTITY license ' |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| '> |
| ]> |
| |
| <!-- |
| This file builds APR using Apache Ant (http://ant.apache.org) |
| and the C++ compilation tasks from http://ant-contrib.sourceforge.net. |
| --> |
| <project name="aprutil" default="check" basedir="."> |
| |
| &common; |
| &find-apr; |
| |
| <property name="src.dir" |
| location="${basedir}" |
| /> |
| <property name="include.dir" |
| location="${src.dir}/include" |
| /> |
| <property name="target.dir" |
| location="${basedir}/target" |
| /> |
| |
| <target name="usage" |
| description="Displays usage notes"> |
| <echo></echo> |
| </target> |
| |
| <target name="init" |
| depends="common-init"> |
| <condition property="arch" |
| value="win32"> |
| <isset property="is-windows" /> |
| </condition> |
| <property name="arch" |
| value="unix" |
| /> |
| </target> |
| |
| <target name="clean" |
| description="Deletes build products"> |
| <delete dir="${target.dir}" /> |
| </target> |
| |
| <target name="configure-check" |
| depends="init"> |
| <condition property="aprutil-config-available" |
| value="true"> |
| <and> |
| <available file="${include.dir}/apu.h" /> |
| <available file="${include.dir}/apu_want.h" /> |
| <available file="${include.dir}/private/apu_config.h" /> |
| <available file="${include.dir}/private/apu_select_dbm.h" /> |
| <available file="${src.dir}/xml/expat/lib/expat.h" /> |
| <available file="${src.dir}/xml/expat/config.h" /> |
| </and> |
| </condition> |
| </target> |
| |
| <target name="win-configure" |
| depends="configure-check" |
| if="is-windows" |
| unless="aprutil-config-available"> |
| <copy tofile="${include.dir}/apu.h" |
| file="${include.dir}/apu.hw" |
| /> |
| <replaceregexp file="${include.dir}/apu.h" |
| match="#define *APU_HAVE_APR_ICONV.*" |
| replace="#define APU_HAVE_APR_ICONV 0" |
| /> |
| <copy tofile="${include.dir}/apu_want.h" |
| file="${include.dir}/apu_want.hw" |
| /> |
| <copy tofile="${include.dir}/apr_ldap.h" |
| file="${include.dir}/apr_ldap.hw" |
| /> |
| <replaceregexp file="${include.dir}/apr_ldap.h" |
| match="#define APR_HAS_LDAP.*" |
| replace="#define APR_HAS_LDAP 0" |
| /> |
| <copy tofile="${include.dir}/private/apu_config.h" |
| file="${include.dir}/private/apu_config.hw" |
| /> |
| <copy tofile="${include.dir}/private/apu_select_dbm.h" |
| file="${include.dir}/private/apu_select_dbm.hw" |
| /> |
| <copy tofile="${src.dir}/xml/expat/lib/config.h" |
| file="${src.dir}/xml/expat/lib/winconfig.h" |
| /> |
| |
| <!-- |
| apr_dbd_odbc.c needs stdint.h, but at least on BCC it doesn't seem to be included |
| automatically. It's easier to change that using a file we already create than changing core |
| code files. |
| --> |
| <condition property="bcc-needs-stdint" |
| value="1" |
| else="0"> |
| <and> |
| <equals arg1="${compiler}" arg2="bcc" /> |
| <not> |
| <isfileselected file="${include.dir}/private/apu_config.h"> |
| <contains text="#include <stdint.h>" |
| ignorewhitespace="true" |
| /> |
| </isfileselected> |
| </not> |
| </and> |
| </condition> |
| <if> |
| <equals arg1="${bcc-needs-stdint}" |
| arg2="1" |
| /> |
| <then> |
| <replace file="${include.dir}/private/apu_config.h" |
| token="#define APU_CONFIG_H"> |
| <replacevalue>#define APU_CONFIG_H |
| |
| #include <stdint.h> |
| </replacevalue> |
| </replace> |
| </then> |
| </if> |
| </target> |
| |
| <target name="unix-configure" |
| depends="configure-check, find-apr" |
| if="is-unix" |
| unless="aprutil-config-available"> |
| <exec executable="sh" dir="${src.dir}"> |
| <arg value="./configure" /> |
| <arg value="--with-apr=${apr.dir}" /> |
| </exec> |
| <exec executable="sh" dir="${src.dir}/xml/expat"> |
| <arg value="./configure" /> |
| </exec> |
| </target> |
| |
| <target name="configure" |
| depends="unix-configure, win-configure"> |
| <condition property="has-iconv" |
| value="1"> |
| <isfileselected file="${include.dir}/apu.h"> |
| <contains text="#define APR_HAVE_ICONV 1" |
| ignorewhitespace="true" |
| /> |
| </isfileselected> |
| </condition> |
| <condition property="has-iconv" |
| value="1"> |
| <isfileselected file="${include.dir}/apu.h"> |
| <contains text="#define APU_HAVE_ICONV 1" |
| ignorewhitespace="true" |
| /> |
| </isfileselected> |
| </condition> |
| <condition property="has-sqlite3" |
| value="1"> |
| <isfileselected file="${include.dir}/apu.h"> |
| <contains text="#define APU_HAVE_SQLITE3 1" |
| ignorewhitespace="true" |
| /> |
| </isfileselected> |
| </condition> |
| </target> |
| |
| <target name="build-xml" |
| depends="configure" |
| description="Builds Expat"> |
| <mkdir dir="${executable.dir}/apr-util-ofiles" /> |
| <property name="project.compiler" |
| value="${compiler}" |
| /> |
| <property name="project.type" |
| value="msvc6" |
| /> |
| |
| <!-- |
| This only generate a project file necessary to mimic this visual studio project provided |
| with APR. |
| --> |
| <cc name="${project.compiler}" |
| outfile="${executable.dir}/expat" |
| subsystem="console" |
| multithreaded="true" |
| runtime="${runtime}" |
| outtype="static" |
| objdir="${executable.dir}/apr-util-ofiles" |
| warnings="none" |
| debug="${debug}" |
| projectsOnly="true"> |
| <fileset dir="${src.dir}/xml/expat/lib" |
| includes="xmlparse.c xmlrole.c xmltok.c" |
| /> |
| <fileset dir="${src.dir}/xml/expat/lib" |
| includes="*.h" |
| /> |
| <fileset dir="${src.dir}/xml/expat" |
| includes="*.h" |
| /> |
| |
| <includepath path="${src.dir}/xml/expat/lib" /> |
| <includepath path="${src.dir}/xml/expat" /> |
| |
| <defineset> |
| <define name="XMLPARSEAPI" value=" " /> |
| </defineset> |
| <defineset define="WIN32 COMPILED_FROM_DSP" |
| if="is-windows" |
| /> |
| <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE" |
| if="is-gcc" |
| /> |
| <compilerarg value="${pic-option}" |
| if="pic-option" |
| /> |
| |
| <libset libs="cw32mt" if="is-bcc" /> |
| <project type="${project.type}" |
| outfile="${projects.dir}/projects/xml" |
| if="project.if"> |
| <comment>&license;</comment> |
| </project> |
| </cc> |
| </target> |
| |
| <target name="build" |
| depends="build-xml, find-apr" |
| description="Build library"> |
| <property name="apr.lib.prefix" |
| value="" |
| /> |
| <property name="apr.lib.name" |
| value="apr-1" |
| /> |
| <property name="apr.lib.suffix" |
| value="" |
| /> |
| |
| <cc name="${project.compiler}" |
| outfile="${executable.dir}/aprutil-1${lib-suffix}" |
| subsystem="console" |
| multithreaded="true" |
| runtime="${runtime}" |
| outtype="${lib.type}" |
| objdir="${executable.dir}/apr-util-ofiles" |
| warnings="none" |
| debug="${debug}" |
| projectsOnly="${projectsOnly}"> |
| <fileset dir="${src.dir}" includes="**/*.c" |
| excludes="test/*.c *.c ldap/*.c xml/expat/lib/*" |
| /> |
| <fileset dir="${src.dir}/xml/expat/lib" |
| includes="xmlparse.c xmlrole.c xmltok.c" |
| /> |
| <fileset dir="${src.dir}/xml/expat/lib" |
| includes="*.h" |
| /> |
| <fileset dir="${src.dir}/xml/expat" |
| includes="*.h" |
| /> |
| <fileset dir="${include.dir}" |
| includes="*.h" |
| /> |
| <fileset dir="${include.dir}/private" |
| includes="*.h" |
| /> |
| |
| <includepath path="${apr.include.dir}" /> |
| <includepath path="${include.dir}" /> |
| <includepath path="${include.dir}/private" /> |
| <includepath path="${src.dir}/xml/expat/lib" /> |
| <includepath path="${src.dir}/xml/expat" /> |
| |
| <defineset define="APU_DECLARE_EXPORT" |
| if="is-shared" |
| /> |
| <defineset define="APU_DECLARE_STATIC" |
| unless="is-shared" |
| /> |
| <defineset define="APR_DECLARE_STATIC" |
| unless="is-apr-shared" |
| /> |
| <defineset define="XML_STATIC" |
| unless="is-shared" |
| /> |
| <defineset> |
| <define name="XMLPARSEAPI" value=" " /> |
| </defineset> |
| <defineset define="WIN32 COMPILED_FROM_DSP HAVE_SQL_H" |
| if="is-windows" |
| /> |
| <defineset if="is-bcc"> |
| <define name="EILSEQ" |
| value="50" |
| /> |
| </defineset> |
| <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE" |
| if="is-gcc" |
| /> |
| <compilerarg value="${pic-option}" |
| if="pic-option" |
| /> |
| |
| <libset dir="${executable.dir}" |
| libs="xml ${apr.lib.prefix}${apr.lib.name}${apr.lib.suffix}" |
| /> |
| <libset libs="cw32mt" |
| if="is-bcc" |
| /> |
| <libset libs="pthread dl" |
| if="is-unix" |
| /> |
| <libset libs="iconv" |
| if="has-iconv" |
| /> |
| <libset libs="sqlite3" |
| if="has-sqlite3" |
| /> |
| |
| <project type="${project.type}" |
| outfile="${projects.dir}/projects/aprutil" |
| if="project.if"> |
| <comment>&license;</comment> |
| <dependency file="${projects.dir}/apr" /> |
| </project> |
| </cc> |
| |
| <property name="apr.lib.dir" |
| location="${executable.dir}" |
| /> |
| </target> |
| |
| <target name="build-test"> |
| <mkdir dir="${executable.dir}/apr-util-test-ofiles" /> |
| <property name="project.compiler" |
| value="${compiler}" |
| /> |
| <property name="project.type" |
| value="msvc6" |
| /> |
| |
| <cc name="${project.compiler}" |
| outfile="${executable.dir}/${test}" |
| subsystem="console" |
| multithreaded="true" |
| runtime="${runtime}" |
| outtype="executable" |
| objdir="${executable.dir}/apr-util-test-ofiles" |
| debug="${debug}" |
| projectsOnly="${projectsOnly}"> |
| <fileset dir="${src.dir}/test" |
| includes="${include.files}" |
| excludes="${exclude.files}" |
| /> |
| |
| <includepath path="${include.dir}" /> |
| <includepath path="${apr.include.dir}" /> |
| |
| <defineset define="APU_DECLARE_STATIC" |
| unless="is-shared" |
| /> |
| <defineset define="APR_DECLARE_STATIC" |
| unless="is-apr-shared" |
| /> |
| <defineset if="is-windows"> |
| <define name="WIN32" value="1" /> |
| </defineset> |
| <defineset define="_HAVE_CONFIG_H _REENTRANT _GNU_SOURCE" |
| if="is-gcc" |
| /> |
| <compilerarg value="${pic-option}" |
| if="pic-option" |
| /> |
| |
| <libset dir="${apr.lib.dir}" |
| libs="apr-1${lib-suffix}" |
| if="apr.lib.dir" |
| /> |
| <libset libs="apr-1${lib-suffix}" |
| unless="apr.lib.dir" |
| /> |
| <libset dir="${executable.dir}" |
| libs="aprutil-1${lib-suffix}" |
| /> |
| <libset libs="cw32mt" |
| if="is-bcc" |
| /> |
| <libset libs="pthread dl" |
| if="is-unix" |
| /> |
| <libset libs="iconv" |
| if="has-iconv" |
| /> |
| <libset libs="sqlite3" |
| if="has-sqlite3" |
| /> |
| |
| <project type="${project.type}" |
| outfile="${projects.dir}/projects/${test}" |
| if="project.if"> |
| <comment>&license;</comment> |
| <dependency file="${projects.dir}/apr" /> |
| <dependency file="${projects.dir}/aprutil" depends="apr" /> |
| </project> |
| </cc> |
| </target> |
| |
| <target name="copy-apr" |
| if="is-windows"> |
| <copy todir="${executable.dir}" |
| overwrite="true"> |
| <fileset dir="${apr.lib.dir}" |
| includes="apr-1${lib-suffix}.dll" |
| /> |
| </copy> |
| </target> |
| |
| <target name="run-test" |
| depends="copy-apr"> |
| <exec executable="${executable.dir}/${test}" |
| dir="${executable.dir}" |
| failonerror="true"> |
| <env key="DYLD_LIBRARY_PATH" |
| value="${apr.lib.dir}:${aprutil.lib.dir}:${env.DYLD_LIBRARY_PATH}" |
| /> |
| <env key="LD_LIBRARY_PATH" |
| value="${apr.lib.dir}:${aprutil.lib.dir}:${env.LD_LIBRARY_PATH}" |
| /> |
| <env key="Path" |
| value="${apr.lib.dir}:${aprutil.lib.dir}:${env.Path}" |
| /> |
| </exec> |
| </target> |
| |
| <target name="build-testall" |
| depends="build"> |
| <antcall target="build-test"> |
| <param name="test" |
| value="testall" |
| /> |
| <param name="include.files" |
| value="**/*.c" |
| /> |
| <param name="exclude.files" |
| value="dbd.c testssl.c echod.c sockperf.c nw*.c" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="run-testall" |
| depends="build-testall"> |
| <antcall target="run-test"> |
| <param name="test" |
| value="testall" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-dbd" |
| depends="build"> |
| <antcall target="build-test"> |
| <param name="test" |
| value="dbd" |
| /> |
| <param name="include.files" |
| value="dbd.c" |
| /> |
| <param name="exclude.files" |
| value="*.y" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="run-dbd" |
| depends="build-dbd"> |
| <antcall target="run-test"> |
| <param name="test" |
| value="dbd" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-testssl" |
| depends="build"> |
| <antcall target="build-test"> |
| <param name="test" |
| value="testssl" |
| /> |
| <param name="include.files" |
| value="testssl.c" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="run-testssl" |
| depends="build-testssl"> |
| <antcall target="run-test"> |
| <param name="test" |
| value="testssl" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-echod" depends="build"> |
| <antcall target="build-test"> |
| <param name="test" |
| value="echod" |
| /> |
| <param name="include.files" |
| value="echod.c" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-sockperf" |
| depends="build"> |
| <antcall target="build-test"> |
| <param name="test" |
| value="sockperf" |
| /> |
| <param name="include.files" |
| value="sockperf.c" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-check" |
| depends="build-testall, build-dbd, build-testssl, build-echod" |
| description="Builds all tests" |
| /> |
| |
| <target name="check" |
| depends="build-check" |
| description="Runs all tests" |
| /> |
| |
| <target name="build-projects"> |
| <mkdir dir="${projects.dir}" /> |
| <antcall target="build"> |
| <param name="project.if" |
| value="true" |
| /> |
| <param name="project.type" |
| value="${project.type}" |
| /> |
| <param name="project.compiler" |
| value="${project.compiler}" |
| /> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="debug" |
| value="${debug}" |
| /> |
| <param name="projectsOnly" |
| value="true" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-projects-vc6" |
| depends="init" |
| description="Builds project files for Microsoft Visual C++ 6"> |
| <antcall target="build-projects"> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="project.type" |
| value="msvc6" |
| /> |
| <param name="project.compiler" |
| value="msvc" |
| /> |
| <param name="os.family" |
| value="windows" |
| /> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="debug" |
| value="${debug}" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-projects-vc7" |
| depends="init" |
| description="Builds project files for Microsoft Visual Studio .NET"> |
| <antcall target="build-projects"> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="project.type" |
| value="msvc7" |
| /> |
| <param name="project.compiler" |
| value="msvc" |
| /> |
| <param name="os.family" |
| value="windows" |
| /> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="debug" |
| value="${debug}" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-projects-vc8" |
| depends="init" |
| description="Builds project files for Microsoft Visual C++ 2005"> |
| <antcall target="build-projects"> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="project.type" |
| value="msvc8" |
| /> |
| <param name="project.compiler" |
| value="msvc" |
| /> |
| <param name="os.family" |
| value="windows" |
| /> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="debug" |
| value="${debug}" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-projects-vc9" |
| depends="init" |
| description="Builds project files for Microsoft Visual C++ 2008"> |
| <antcall target="build-projects"> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="project.type" |
| value="msvc9" |
| /> |
| <param name="project.compiler" |
| value="msvc" |
| /> |
| <param name="os.family" |
| value="windows" |
| /> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="debug" |
| value="${debug}" |
| /> |
| </antcall> |
| </target> |
| |
| <target name="build-projects-xcode" |
| depends="init" |
| description="Builds project files for Apple Xcode"> |
| <antcall target="build-projects"> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="project.type" |
| value="xcode" |
| /> |
| <param name="project.compiler" |
| value="${compiler}" |
| /> |
| <param name="os.family" |
| value="mac" |
| /> |
| <param name="projects.dir" |
| value="${projects.dir}" |
| /> |
| <param name="debug" |
| value="${debug}" |
| /> |
| </antcall> |
| </target> |
| |
| </project> |