#! /bin/bash PROJECT=curl # Available sub-projects. AVAILABLE_PROJECTS=( curl ) # Enabled sub-projects. PROJECTS=( curl ) # Additional options (see functions sources below). # Options followed by a ':' require an argument, by '::' allow an optional argument. SHORT_OPTIONS= # Long options are not available with BSD getopt. LONG_OPTIONS= # Help for additional options usage() { # option h "help" "display this help and exit" return } # Find the directory containing this script. source="${BASH_SOURCE[0]}" while [ -h "${source}" ] ; do SCRIPTS="$(cd -P "$(dirname "${source}")" && pwd)" source="$(readlink "${source}")" [[ ${source} != /* ]] && source="$DIR/${source}" done SCRIPTS="$(cd -P "$(dirname "${source}")" && pwd)" # Get support functions and definitions. source ${SCRIPTS}/support local=${LOCAL}/${PROJECT}/${TARGETTUPLE} # Projects. curl="${SRCTOP} https://curl.haxx.se/download/curl-${REVISION}.tar.bz2 curl tar" # Check for needed libraries. check_libraries() { return 0 } configure() { # Configure checked out projects. run check_checkout run check_libraries run mkdir -p ${BUILDDIR} run cd ${BUILDDIR} # RICH: Darn autotools doesn't recognize arm6m. if [ "${TARGETARCH}" = "armv6m" ] ; then TARGETARCH=armv6 elif [ "${TARGETARCH}" = "arm64v8" ] ; then TARGETARCH=aarch64 fi run CC="${CC}" CFLAGS="${CFLAGS}" CXX="${CXX}" CXXFLAGS="${CXXFLAGS}"\ AR="${AR}" RANLIB=${RANLIB} LD="${LD}" \ ${PROJECTDIR}/configure \ --with-mbedtls --with-libssh2 --enable-ares \ --with-libmetalink=yes --with-nghttp2=yes --enable-ipv6 \ --target=${HOSTTUPLE} --host=${TARGETARCH}-${TARGETOS} \ --prefix=${local} } tests() { # Run regression tests. run cd ${BUILDDIR} run ${MAKE} -j ${MAXJOBS} -C ${BUILDDIR} check } install() { run check_checkout run check_configure run check_libraries run cd ${BUILDDIR} run ${MAKE} install run mkdir -p ${LOCALLIBECC}/lib/${TARGETTUPLE} run cp -r ${local}/lib/* ${LOCALLIB} run mkdir -p ${LOCALLIBECC}/include run cp -pr ${local}/include/* ${LOCALLIBECC}/include if [ "${LOCALBIN}" != "${local}/bin" ] ; then run mkdir -p ${LOCALBIN} run cp -pr ${local}/bin/* ${LOCALBIN} fi } if [ "${CHECKOUT}" == "y" ] ; then checkout || exit 1 fi if [ "${CONFIGURE}" == "y" ] ; then configure || exit 1 fi if [ "${UPDATE}" == "y" ] ; then update || exit 1 fi if [ "${PATCH}" == "y" ] ; then patch || exit 1 fi if [ "${CREATE_PATCH}" == "y" ] ; then create_patch || exit 1 fi if [ "${BUILD}" == "y" ] ; then build || exit 1 fi if [ "${TESTS}" == "y" ] ; then tests || exit 1 fi if [ "${INSTALL}" == "y" ] ; then install || exit 1 fi