X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=tools%2Fmake%2Fconfigure;h=a92ecbd7e017e19861e06092c2e24bf29f9ae528;hb=c98bffa28b232b7e57ada05268ce7fe5316f15e9;hp=f4541ba64201b91988572132690795f8785a06e0;hpb=c8af998eae0c5d2dab14d5e36cccb9d9b6f60d0c;p=projects.git diff --git a/tools/make/configure b/tools/make/configure index f4541ba..a92ecbd 100755 --- a/tools/make/configure +++ b/tools/make/configure @@ -5,6 +5,8 @@ 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 ... @@ -20,26 +22,33 @@ fi paket=$1 build=$2 +shift 2 ARCH="" cpp_build=0 +alt_repos="" +delete_src=1 -shift 2 -while getopts "b:a:" opt -do +while getopts ":a:b:g:n" opt; do case $opt in - a) ARCH=$OPTARG - ;; - b) echo "branching not implemented" - ;; - *) exit 1 - ;; + 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 @@ -50,14 +59,9 @@ then fi # clean dirs and check out -if [ -d src ] +if [ -d src -a $delete_src -eq 1 ] then - echo "Shall I delete src dir? [y]/n" - read key - if [ "$key" != "n" ] - then - rm -rf src - fi + rm -rf src fi if [ -e $paket ] @@ -72,7 +76,7 @@ cwd=$(pwd) # checkout pushd src >/dev/null - ../$paket.co $build + ../$paket.co $alt_repos $build popd >/dev/null # load util functions for C/C++ - build @@ -84,13 +88,14 @@ then 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 "warning: control file not found" echo " this file is necessary for any package production." else - sed "s/%BUILD%/$build/" $control |sed "s/%ARCH%/$ARCH/" >$paket.control + sed "s/%BUILD%/$build_number/" $control |sed "s/%ARCH%/$ARCH/" >$paket.control echo "$paket.control written." # extract version @@ -98,7 +103,7 @@ else fi # check for copy file -copy=$(find src -name $paket.cp) +copy=$(find -L src -name $paket.cp) if [ -n "$copy" ] then ln -sf $copy . @@ -107,12 +112,15 @@ else echo " this file is necessary for any package production." fi -# check for postinst -postinst=$(find src -name $paket.postinst) -if [ -n "$postinst" ] -then - ln -sf $postinst . -fi +# check for installation scripts +files=$(find -L 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 ] @@ -122,9 +130,15 @@ then project = $paket COPY = ./$paket.cp MAKE_PRE + if [ -n "$ARCH" ] + then + echo "arch = $ARCH" >>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