#!/bin/bash set -e function echo_usage { echo "usage: mconfigure [options]" echo " -a " } function set_build { if [ -e .svn ] then build=$(svnversion) elif [ -e .git ] then build=$(git describe --tags 2>/dev/null) || true if test -z "$build" then build="0.0-TOP" fi changes=$(git status -s |grep "^ *M") || true if test -z "$changes" then build="${build}M" fi fi } # to build a package you need ... # .cp (optional): copy step for package production # .cpp.sh (optional): commands to setup the C++ compile environment if [ $# -lt 1 ] then echo_usage exit 1 fi if [ ! -d debian ] then echo "run mconfigure in the project base directory!" exit 2 fi export paket=$1 shift ARCH="" cpp_build=0 set_build export build # get repository name tmp=$(pwd) export pwd=${tmp##*/} echo "building $paket with build $build" #while getopts ":a" opt; do # case $opt in # a) ARCH=$OPTARG # ;; # \?) echo "Invalid option: -$OPTARG" # echo_usage # exit 1 # ;; # :) echo "Option -$OPTARG requires an argument." # echo_usage # exit 1 # ;; # esac #done # ## clean dirs and check out #if [ -d build -a $delete_src -eq 1 ] #then # rm -rf build #fi # pushd debian >/dev/null ln -sf /usr/share/mbuild/rules . #if [ -e tmp ] #then # rm -rf tmp #fi #rm *.stamp 2>/dev/null || true #rm make.pre 2>/dev/null || true mkdir -p tmp/DEBIAN # 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 .. -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 popd >/dev/null # build package debian/rules binary ## check for copy file #if [ ! -f $paket.cp ] #then # # search for copy file # copy=$(find .. -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 #fi # ## check for installation scripts #files=$(find .. -name $paket.preinst) #files="$files $(find .. -name $paket.postinst)" #files="$files $(find .. -name $paket.prerm)" #files="$files $(find .. -name $paket.postrm)" #for file in $files #do # ln -sf $file . #done # create generic make.pre, if not existing #if [ ! -f make.pre ] #then # cat >>make.pre <>make.pre # echo "_arch = _${ARCH}" >>make.pre # fi # echo "make.pre written." #fi # ## append version to make.pre #echo "version = $version" >> make.pre #echo "build = $build" >> make.pre