[commit] r2622 - in freeswitch/branches/stkn/buildsys/trunk: build libs
Author: stkn Date: Sun Sep 10 09:14:46 2006 New Revision: 2622 Added: freeswitch/branches/stkn/buildsys/trunk/build/newbuild.sh (contents, props changed) freeswitch/branches/stkn/buildsys/trunk/libs/apr-1.2.7.pkg freeswitch/branches/stkn/buildsys/trunk/libs/site.conf Log: Add current version of a replacement for build.sh, sort of a mini-portage for freeswitch dependencies. Added: freeswitch/branches/stkn/buildsys/trunk/build/newbuild.sh ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/build/newbuild.sh Sun Sep 10 09:14:46 2006 @@ -0,0 +1,262 @@ +#!/bin/sh + +# +# Buildlib.sh reimplementation +# +# (C) 2006 Stefan Knoblich <stkn@netdomination.org> +# + +# clean environment +unset WORKDIR DISTDIR D S A P PN PV + +die() { + echo "!!! $@" + exit 1 +} + +unpack() { + for x in $@; do + case ${x} in + *.tar.gz|*.tgz) + tar -xzvf "${x}" || die "unpacking ${x} failed" + ;; + *.tar.bz2|*.tbz2) + tar -xjvf "${x}" || die "unpacking ${x} failed" + ;; + *) + echo "no idea how to unpack this ${x}, ignoring" + ;; + esac + done + return 0 +} + +has() { + local tmp="${1}" + + [[ $# -lt 2 ]] && { + echo "usage: has <flag> <list>" >&2 + return 1 + } + shift + + for x in $@; do + [[ "${tmp}" = "${x}" ]] && return 0 + done + return 1 +} + +use_enable() { + [[ $# -lt 1 ]] && { + echo "usage: use_enable <flag>" >&2 + return 1 + } + + if [[ -n "${USE}" ]] && has ${1} ${USE}; then + echo "--enable-${1}" + else + echo "--disable-${1}" + fi + return 0 +} + +if [[ $# -lt 2 ]]; then + die "Usage: $0 <action> <package> [options]" +fi + +# +# override settings with site-specific values +# +if [[ -e "site.conf" ]]; then + # override settings + source "site.conf" +fi + +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 + +# +# setup some constants +# +P="${PKG}" +PN="${P%-*}" +PV="${P##*-}" + +WORKDIR="${WORKDIR:-${PWD}}" +DISTDIR="${DISTDIR:-${PWD}}" +S="${WORKDIR}/${P}" + +D="${D:}" +A="" + +unset PKG + +SAVE_CWD="${PWD}" + +# +# default functions +# +src_fetch() { + echo "Fetching sources: ${SRC_URI}" +} + +src_unpack() { + echo "foobar unpack" +} + +src_compile() { + echo "foobar compile" +} + +src_install() { + echo "foobar install" +} + +# +# source package +# +# +# check for package description file +# +if [[ -e "${P}.pkg" ]]; then + source "${P}.pkg" +else + die "package ${P} does not exist" +fi + +# +# check package parameters +# + +if [[ -z "${SRC_URI}" ]]; then + die "No download location(s) specified" +fi + +# +# fill A +# +for x in ${SRC_URI}; do + A="${A} $(basename "${x}")" +done +A="$(echo "${A}" | sed -e "s:^[ \t]\+::")" + +# +# handle actions +# + +case $1 in + install|compile|fetch|unpack|clean) + action="${1}" + ;; + *) + die "Possible actions: fetch unpack compile install clean" + ;; +esac + +echo "*************************************************" +echo "P = ${P}" +echo "PV = ${PV}" +echo "PN = ${PN}" +echo "S = ${S}" +echo "D = ${D}" +echo "" +echo "WORKDIR = ${WORKDIR}" +echo "DISTDIR = ${DISTDIR}" +echo "SRC_URI = ${SRC_URI}" +echo "A = ${A}" +echo "************************************************" + +#exit 0 + +# +# 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}")" ]] + then + rm -r "${S}" + fi + +# if [[ -n "${S}" ]] && [[ -d "${S}" ]] && [[ "${S}" != "/" ]]; then +# rm -r "${S}" +# fi +fi +cd "${SAVE_CWD}" +[[ "${action}" = "clean" ]] && exit 0 + +# +# fetch +# +if [[ ! -e "${WORKDIR}/.fetched" ]] || \ + [[ "${action}" = "fetch" ]] +then + for x in ${SRC_URI}; do + F="$(basename "${x}")" + + # distfile does not exist, fetch it + 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 + cd "${WORKDIR}" + src_unpack + touch "${WORKDIR}/.unpacked" +fi +cd "${SAVE_CWD}" +[[ "${action}" = "unpack" ]] && exit 0 + + +# +# compile +# +if [[ ! -e "${WORKDIR}/.compiled" ]] || \ + [[ "${action}" = "compile" ]] +then + cd "${S}" + src_compile + touch "${WORKDIR}/.compiled" +fi +cd "${SAVE_CWD}" +[[ "${action}" = "compile" ]] && exit 0 + +# +# install +# +if [[ ! -e "${WORKDIR}/.installed" ]] || \ + [[ "${action}" = "install" ]] +then + cd "${S}" + src_install + touch "${WORKDIR}/.installed" +fi +cd "${SAVE_CWD}" + +exit 0 Added: freeswitch/branches/stkn/buildsys/trunk/libs/apr-1.2.7.pkg ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/libs/apr-1.2.7.pkg Sun Sep 10 09:14:46 2006 @@ -0,0 +1,22 @@ +# +# +# + +SRC_URI="http://www.freeswitch.org/downloads/${P}.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/site.conf ============================================================================== --- (empty file) +++ freeswitch/branches/stkn/buildsys/trunk/libs/site.conf Sun Sep 10 09:14:46 2006 @@ -0,0 +1 @@ +D="/tmp/"
participants (1)
-
Freeswitch SVN