Author: stkn Date: Sat Oct 21 20:33:57 2006 New Revision: 3146 Added: freeswitch/branches/stkn/buildsys/trunk/libs/packages/ freeswitch/branches/stkn/buildsys/trunk/libs/packages/apr-util.pkg freeswitch/branches/stkn/buildsys/trunk/libs/packages/apr.pkg freeswitch/branches/stkn/buildsys/trunk/libs/packages/sofia-sip.pkg freeswitch/branches/stkn/buildsys/trunk/libs/packages/srtp.pkg (contents, props changed) freeswitch/branches/stkn/buildsys/trunk/site.conf.in Modified: freeswitch/branches/stkn/buildsys/trunk/build/newbuild.sh Log: updates Modified: freeswitch/branches/stkn/buildsys/trunk/build/newbuild.sh ============================================================================== --- freeswitch/branches/stkn/buildsys/trunk/build/newbuild.sh (original) +++ freeswitch/branches/stkn/buildsys/trunk/build/newbuild.sh Sat Oct 21 20:33:57 2006 @@ -7,13 +7,43 @@ # # clean environment -unset WORKDIR DISTDIR D S A P PN PV +unset S A PKG_NAME PKG_VER BASEDIR CFLAGS LDFLAGS WORKDIR +_PHASES="fetch unpack compile install merge clean" + die() { echo "!!! $@" exit 1 } +get_basedir() { + cd "$(dirname $0)/.." + echo "${PWD}" + cd "${OLDPWD}" +} + +append_cflags() { + [ $# -lt 1 ] && { + echo "usage: append-cflags <flag>" >&2 + return 1 + } + + CFLAGS="${CFLAGS} $@" + + return 0 +} + +append_ldflags() { + [ $# -lt 1 ] && { + echo "usage: append-ldflags <flag>" >&2 + return 1 + } + + LDFLAGS="${LDFLAGS} $@" + + return 0 +} + unpack() { for x in $@; do case ${x} in @@ -34,25 +64,25 @@ has() { local tmp="${1}" - [[ $# -lt 2 ]] && { + [ $# -lt 2 ] && { echo "usage: has <flag> <list>" >&2 return 1 } shift for x in $@; do - [[ "${tmp}" = "${x}" ]] && return 0 + [ "${tmp}" = "${x}" ] && return 0 done return 1 } -use_enable() { - [[ $# -lt 1 ]] && { - echo "usage: use_enable <flag>" >&2 +option_enable() { + [ $# -lt 1 ] && { + echo "usage: option_enable <flag>" >&2 return 1 } - if [[ -n "${USE}" ]] && has ${1} ${USE}; then + if has ${1} ${OPTIONS} 2>/dev/null; then echo "--enable-${1}" else echo "--disable-${1}" @@ -60,49 +90,44 @@ return 0 } -if [[ $# -lt 2 ]]; then +do_config() { + [ ! -x configure ] && die "No configure script found" + + ./configure \ + --prefix="${PREFIX}" ${@} +} + +do_install() { + make DESTDIR="${D}" INSTALL_PREFIX="${D}" install +} + + +if [ $# -lt 2 ]; then die "Usage: $0 <action> <package> [options]" fi # +# get base directory (aka $(top_srcdir)) +# +BASEDIR="$(get_basedir)" +PKGDIR="${BASEDIR}/libs/packages" + +# # override settings with site-specific values # -if [[ -e "site.conf" ]]; then +if [ -e "${BASEDIR}/site.conf" ]; then # override settings - source "site.conf" + source "${BASEDIR}/site.conf" fi +ACTION="${1}" PKG="${2}" -# -# check if package exists as specified -# try to find newest version if only the package name has been given -# -if [[ ! -e "${PKG}.pkg" ]]; then - tmp="$(ls -1 "${PKG}-"[0-9.]*.pkg 2>/dev/null | sort | tail -n1)" - if [[ -n "${tmp}" ]]; then - PKG="$(echo "${tmp}" | sed -e "s:\.pkg\$::")" - fi -fi +WORKDIR="${WORKDIR:-${BASEDIR}/libs}" +DISTDIR="${DISTDIR:-${BASEDIR}/libs}" -# -# setup some constants -# -P="${PKG}" -PN="${P%-*}" -PV="${P##*-}" +declare -r WORKDIR DISTDIR BASEDIR PKG ACTION -WORKDIR="${WORKDIR:-${PWD}}" -DISTDIR="${DISTDIR:-${PWD}}" -S="${WORKDIR}/${P}" - -D="${D:}" -A="" - -unset PKG - -SAVE_CWD="${PWD}" - # # default functions # @@ -111,15 +136,18 @@ } src_unpack() { - echo "foobar unpack" + unpack "${A}" + cd "${S}" } src_compile() { - echo "foobar compile" + do_config || die "configure failed" + + make || die "building failed" } src_install() { - echo "foobar install" + do_install || die "installation failed" } # @@ -128,135 +156,160 @@ # # check for package description file # -if [[ -e "${P}.pkg" ]]; then - source "${P}.pkg" -else - die "package ${P} does not exist" +if [ ! -e "${PKGDIR}/${PKG}" ]; then + die "package ${PKG} does not exist" fi -# -# check package parameters -# +source "${PKGDIR}/${PKG}" || die "failed to source ${PKG}" -if [[ -z "${SRC_URI}" ]]; then - die "No download location(s) specified" +[ -z "${PKG_NAME}" ] && die "Package name not specified in ${PKG}" +[ -z "${PKG_VER}" ] && die "Package version not specified in ${PKG}" +[ -z "${OPTIONS}" ] && OPTIONS="" + +if [ -z "${S}" ]; then + S="${WORKDIR}/${PKG_NAME}-${PKG_VER}" fi # # fill A # -for x in ${SRC_URI}; do +for x in ${PKG_URI}; do A="${A} $(basename "${x}")" done A="$(echo "${A}" | sed -e "s:^[ \t]\+::")" -# -# handle actions -# +[ "${ACTION}" != "merge" ] && D="${BASEDIR}/built" -case $1 in - install|compile|fetch|unpack|clean) - action="${1}" - ;; - *) - die "Possible actions: fetch unpack compile install clean" - ;; -esac +declare -r D A S PKG_NAME PKG_VER PKG_SRC echo "*************************************************" -echo "P = ${P}" -echo "PV = ${PV}" -echo "PN = ${PN}" +echo "PKG_NAME = ${PKG_NAME}" +echo "PKG_VER = ${PKG_VER}" echo "S = ${S}" echo "D = ${D}" echo "" +echo "BASEDIR = ${BASEDIR}" echo "WORKDIR = ${WORKDIR}" echo "DISTDIR = ${DISTDIR}" -echo "SRC_URI = ${SRC_URI}" +echo "PKG_URI = ${PKG_URI}" echo "A = ${A}" -echo "************************************************" +echo "*************************************************" -#exit 0 +handle_clean() { + # + # clean + # + cd "${WORKDIR}" -# -# clean -# -if [[ "${action}" = "clean" ]]; then - rm "${WORKDIR}"/{.fetched,.compiled,.unpacked,.installed} 2>/dev/null - # safety check - if [[ -n "${WORKDIR}" ]] && \ - [[ -n "${S}" ]] && \ - [[ -d "${S}" ]] && \ - [[ -n "$(echo "${S}" | grep "${WORKDIR}")" ]] + if [ -n "${S}" ] && \ + [ -d "${S}" ] then rm -r "${S}" fi +} -# if [[ -n "${S}" ]] && [[ -d "${S}" ]] && [[ "${S}" != "/" ]]; then -# rm -r "${S}" -# fi -fi -cd "${SAVE_CWD}" -[[ "${action}" = "clean" ]] && exit 0 +handle_fetch() { + local F + # + # fetch + # + cd "${WORKDIR}" -# -# fetch -# -if [[ ! -e "${WORKDIR}/.fetched" ]] || \ - [[ "${action}" = "fetch" ]] -then - for x in ${SRC_URI}; do + for x in ${PKG_URI}; do F="$(basename "${x}")" # distfile does not exist, fetch it - if [[ ! -e "${DISTDIR}/${F}" ]]; then + if [ ! -e "${DISTDIR}/${F}" ]; then wget -c "${x}" -O "${DISTDIR}/${F}" || die "Failed to fetch ${x}" fi done - touch "${WORKDIR}/.fetched" -fi -cd "${SAVE_CWD}" -[[ "${action}" = "fetch" ]] && exit 0 +} -# -# unpack -# -if [[ ! -e "${WORKDIR}/.unpacked" ]] || \ - [[ "${action}" = "unpack" ]] -then +handle_unpack() { + # + # unpack + # cd "${WORKDIR}" - src_unpack - touch "${WORKDIR}/.unpacked" -fi -cd "${SAVE_CWD}" -[[ "${action}" = "unpack" ]] && exit 0 + if [ ! -e "${S}/.unpacked" ] + then + echo ">>> Unpacking package..." + src_unpack + else + echo "* Already unpacked, skipping" + fi -# -# compile -# -if [[ ! -e "${WORKDIR}/.compiled" ]] || \ - [[ "${action}" = "compile" ]] -then - cd "${S}" - src_compile - touch "${WORKDIR}/.compiled" -fi -cd "${SAVE_CWD}" -[[ "${action}" = "compile" ]] && exit 0 + touch "${S}/.unpacked" +} +handle_compile() { + # + # compile + # + [ -d "${S}" ] && cd "${S}" + + if [ ! -e "${S}/.compiled" ] + then + echo ">>> Compiling package..." + src_compile + else + echo "* Already compiled, skipping" + fi + touch "${S}/.compiled" +} + +handle_install() { + local D + + # + # install + # + [ -d "${S}" ] && cd "${S}" + + if [ ! -e "${S}/.installed" ] + then + echo ">>> Installing package..." + src_install + else + echo "* Already installed, skipping" + fi + + cd "${WORKDIR}" + + touch "${S}/.installed" +} + +handle_merge() { + # + # Merge package + # + [ -d "${S}" ] && cd "${S}" + + src_install +} + # -# install # -if [[ ! -e "${WORKDIR}/.installed" ]] || \ - [[ "${action}" = "install" ]] +# +has "${ACTION}" "${_PHASES}" || die "Invalid action \"${ACTION}\", valid actions: ${_PHASES}" + +if [ "${ACTION}" = "clean" ] then - cd "${S}" - src_install - touch "${WORKDIR}/.installed" -fi -cd "${SAVE_CWD}" + handle_clean +else + for x in ${_PHASES}; do + case ${x} in + fetch|unpack|compile|install) + handle_${x} || die "${x} failed" + ;; + merge) + [ "`id -u`" != "root" ] && die "Need to be root to merge package!" + handle_${x} + ;; + esac -exit 0 + [ "${x}" = "${ACTION}" ] && break 1 + done +fi Added: freeswitch/branches/stkn/buildsys/trunk/libs/packages/apr-util.pkg ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/libs/packages/apr-util.pkg Sat Oct 21 20:33:57 2006 @@ -0,0 +1,24 @@ +# +# +# +PKG_NAME="apr-util" +PKG_VER="1.2.7" + +PKG_URI="http://www.freeswitch.org/downloads/${PKG_NAME}-${PKG_VER}.tar.gz" + +src_unpack() { + unpack "${A}" + cd "${S}" +} + +src_compile() { + ./configure \ + --prefix="${PREFIX}" \ + $(option_enable debug) || die "configure failed" + + make all || die "make all failed" +} + +src_install() { + make DESTDIR="${D}" install || die "make install failed" +} Added: freeswitch/branches/stkn/buildsys/trunk/libs/packages/apr.pkg ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/libs/packages/apr.pkg Sat Oct 21 20:33:57 2006 @@ -0,0 +1,25 @@ +# +# +# + +PKG_NAME="apr" +PKG_VER="1.2.7" + +PKG_URI="http://www.freeswitch.org/downloads/${PKG_NAME}-${PKG_VER}.tar.gz" + +src_unpack() { + unpack "${A}" + cd "${S}" +} + +src_compile() { + ./configure \ + --prefix="${PREFIX}" \ + $(option_enable debug) || die "configure failed" + + make all || die "make all failed" +} + +src_install() { + make DESTDIR="${D}" install || die "make install failed" +} Added: freeswitch/branches/stkn/buildsys/trunk/libs/packages/sofia-sip.pkg ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/libs/packages/sofia-sip.pkg Sat Oct 21 20:33:57 2006 @@ -0,0 +1,25 @@ +# +# +# + +PKG_NAME="sofia-sip" +PKG_VER="1.12.1" + +PKG_URI="http://mesh.dl.sourceforge.net/sourceforge/${PKG_NAME}/${PKG_NAME}-${PKG_VER}.tar.gz" + +src_unpack() { + unpack "${A}" + cd "${S}" +} + +src_compile() { + ./configure \ + --prefix="${PREFIX}" \ + $(use_enable debug) || die "configure failed" + + make all || die "make all failed" +} + +src_install() { + make DESTDIR="${D}" install || die "make install failed" +} Added: freeswitch/branches/stkn/buildsys/trunk/libs/packages/srtp.pkg ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/libs/packages/srtp.pkg Sat Oct 21 20:33:57 2006 @@ -0,0 +1,23 @@ + +PKG_NAME="srtp" +PKG_VER="" + +PKG_SRC="" + +ARCH="`uname -m`" + +src_compile() { + [ "$ARCH" = "x86_64" ] && \ + OPTS="--enable-pic" + + ./configure \ + --prefix="$(PREFIX)" \ + ${OPTS} || exit 1 + + make all || exit 1 +} + + + + + Added: freeswitch/branches/stkn/buildsys/trunk/site.conf.in ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/site.conf.in Sat Oct 21 20:33:57 2006 @@ -0,0 +1,2 @@ +PREFIX="@prefix@" +CFLAGS="@CFLAGS@"