#! /bin/bash PROJECT=curses # Available sub-projects. AVAILABLE_PROJECTS=( curses ) # Enabled sub-projects. PROJECTS=( curses ) # 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. curses="${SRCTOP} https://github.com/sabotage-linux/netbsd-curses.git curses git" # Check for needed libraries. check_libraries() { if [ "${TOOLS}" = "ecc" ] ; then check_library libc.a "Run ${SCRIPTS}/build-musl." || exit 1 fi } configure() { # Configure checked out projects. return 0 } build() { run check_checkout run check_libraries run mkdir -p ${BUILDDIR} run cp -rp ${PROJECTDIR}/* ${BUILDDIR} run ${MAKE} PREFIX=${local} \ CC="${CC}" CFLAGS="${CFLAGS}" HOSTCC=${HOST_CC} \ LDFLAGS=-L${LOCALLIB} \ AR="${AR}" RANLIB=${RANLIB} \ -j ${MAXJOBS} -C ${BUILDDIR} -f ${PROJECTDIR}/GNUmakefile } tests() { # Run regression tests. run cd ${BUILDDIR} run ${MAKE} -j ${MAXJOBS} -C ${BUILDDIR} check } install() { run check_checkout run check_configure run ${MAKE} PREFIX=${local} \ CC="${CC}" CFLAGS="${CFLAGS}" HOSTCC=${HOST_CC} \ AR="${AR}" RANLIB=${RANLIB} \ -j ${MAXJOBS} -C ${BUILDDIR} -f ${PROJECTDIR}/GNUmakefile 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