#! /bin/bash PROJECT=patchelf # Available sub-projects. AVAILABLE_PROJECTS=( patchelf ) # Enabled sub-projects. PROJECTS=( patchelf ) # 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. patchelf="${SRCTOP} https://github.com/NixOS/patchelf.git patchelf git" # Check for needed libraries. check_libraries() { return 0 } configure() { # Configure checked out projects. run check_checkout run check_libraries run cd ${PROJECTDIR} run ./bootstrap.sh run mkdir -p ${BUILDDIR} run cd ${BUILDDIR} # RICH: Darn autotools doesn't recognize arm6m. if [ "${TARGETARCH}" = "armv6m" ] ; then TARGETARCH=armv6 fi run ${PROJECTDIR}/configure \ --prefix=${local} --host=${TARGETARCH}-${TARGETOS} \ CC="${CC}" CFLAGS="-static ${CFLAGS}" CXX=$"${CXX}" CXXFLAGS="-static ${CXXFLAGS}" \ AR=${AR} RANLIB=${RANLIB} } 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 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