[Freeswitch-svn] [commit] r2622 - in freeswitch/branches/stkn/buildsys/trunk: build libs

Freeswitch SVN stkn at freeswitch.org
Sun Sep 10 09:14:47 EDT 2006


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 at 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/"



More information about the Freeswitch-svn mailing list