#!/bin/bash set -e function echo_usage { echo "usage: configure [options]" echo " -b " echo " -a " echo " -g " echo " -n : do not delete src dir" } # to build a package you need ... # .co: checkout commands # .cp (optional): copy step for package production # .cpp.sh (optional): commands to setup the C++ compile environment if [ $# -lt 2 ] then echo_usage exit 1 fi paket=$1 build=$2 shift 2 ARCH="" cpp_build=0 alt_repos="" delete_src=1 while getopts ":a:b:g:n" opt; do case $opt in a) ARCH=$OPTARG ;; b) branch=$OPTARG ;; g) alt_repos="-g $OPTARG" ;; n) delete_src=0 ;; \?) echo "Invalid option: -$OPTARG" echo_usage exit 1 ;; :) echo "Option -$OPTARG requires an argument." echo_usage exit 1 ;; esac done ln -sf projects/tools/make/makefile . # check standard files if [ ! -x $paket.co ] then echo "file $paket.co missing or not executable." exit 1 fi # clean dirs and check out if [ -d src -a $delete_src -eq 1 ] then rm -rf src fi if [ -e $paket ] then rm -rf $paket fi rm *.stamp || true rm make.pre || true mkdir -p src cwd=$(pwd) # checkout pushd src >/dev/null ../$paket.co $alt_repos $build popd >/dev/null # load util functions for C/C++ - build if [ -f $paket.cpp.sh ] then cpp_build=1 . projects/tools/make/c_configure.sh . $paket.cpp.sh fi # copy package control control=$(find -L src -name $paket.control) build_number=${build#*_} if [ -z "$control" ] then echo "warning: control file not found" echo " this file is necessary for any package production." else sed "s/%BUILD%/$build_number/" $control |sed "s/%ARCH%/$ARCH/" >$paket.control echo "$paket.control written." # extract version version=$(grep Version $paket.control |sed "s/Version: //") fi # check for copy file copy=$(find -L src -name $paket.cp) if [ -n "$copy" ] then ln -sf $copy . else echo "warning: file $paket.cp missing or not executable:" echo " this file is necessary for any package production." fi # check for postinst postinst=$(find -L src -name $paket.postinst) if [ -n "$postinst" ] then ln -sf $postinst . fi # create generic make.pre, if not existing if [ ! -f make.pre ] then cat >>make.pre <> make.pre echo "build = $build" >> make.pre