X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=tools%2Fmake%2Fconfigure;h=47a1304b902ef7efddb8a050964f8f889e81a62d;hb=1b1a4b951283d256d63b61c3a1e2018d6cf5d46f;hp=ab65ab1dbe77dd64c7833577d32febb383d86566;hpb=6bfe735d12cd6a72483c7999a09dc8c11044c562;p=projects.git diff --git a/tools/make/configure b/tools/make/configure index ab65ab1..47a1304 100755 --- a/tools/make/configure +++ b/tools/make/configure @@ -5,12 +5,14 @@ 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: copy step -# .cpp (optional): commands to setup the C++ compile environment +# .cp (optional): copy step for package production +# .cpp.sh (optional): commands to setup the C++ compile environment if [ $# -lt 2 ] then @@ -20,13 +22,33 @@ 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 -# checkout build utilities -if [ ! -d projects ]; then - git clone https://github.com/wagner-tech/projects/ -fi ln -sf projects/tools/make/makefile . # check standard files @@ -35,57 +57,70 @@ then echo "file $paket.co missing or not executable." exit 1 fi -if [ ! -x $paket.cp ] -then - echo "file $paket.cp missing or not executable." - exit 1 -fi - -# load util functions for C/C++ - build -if [ -f $paket.cpp ] -then - cpp_build=1 - . Make/c_configure.sh -fi -# clean src tree and check out -if [ -e src ] +# 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 -../$paket.co $build -popd +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 src -name $paket.control) +control=$(find -L src -name $paket.control) +build_number=${build#*_} if [ -z "$control" ] then - echo "control file not found" - exit 1 + 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 -sed "s/%BUILD%/$build/" $control >$paket.control -echo "$paket.control written." -# check for postinst -postinst=$(find src -name $paket.postinst) -if [ -n "$postinst" ] +# check for copy file +copy=$(find -L src -name $paket.cp) +if [ -n "$copy" ] then - ln -sf $postinst . + ln -sf $copy . +else + echo "warning: file $paket.cp missing or not executable:" + echo " this file is necessary for any package production." fi -# extract version -version=$(grep Version $paket.control |sed "s/Version: //") +# check for installation scripts +files=$(find src -name $paket.preinst) +files="$files $(find -L src -name $paket.postinst)" +files="$files $(find -L src -name $paket.prerm)" +files="$files $(find -L src -name $paket.postrm)" +for file in $files +do + ln -sf $file . +done # create generic make.pre, if not existing if [ ! -f make.pre ] @@ -93,9 +128,12 @@ then cat >>make.pre <> make.pre +echo "build = $build" >> make.pre +