X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/projects.git/blobdiff_plain/dd8688bf36113a852103a5a38277da43dbc3fff3..f78d86f6be7859d3c726d510ce6c6b3053b1732d:/tools/make/configure diff --git a/tools/make/configure b/tools/make/configure deleted file mode 100755 index 21cf3f8..0000000 --- a/tools/make/configure +++ /dev/null @@ -1,406 +0,0 @@ -#!/bin/bash -set -e - -function echo_usage { - echo "usage: configure [options] " - echo "--- general options ---" - echo " -h : print this info" - echo "--- compile options ---" - echo " -a " - echo " -c default: NONE" - echo " -C " - echo " -d " - echo " -e " - echo "--- build target options ---" - echo " -i : install dir. default: /, nec. for make install" - echo " -n : default: " - echo " -t , nec. for make pack" - echo " -v : set version" - echo " -V : version set by project" -} - -function create_build { - pushd $BUILD_DIR >/dev/null - if [ "$compile_type" == "PDF" ] - then - echo "cd $compile_dir" > debian/$paket.build - echo "make $compile_target" >> debian/$paket.build - chmod 755 debian/$paket.build - else - echo "build for compile_type not implemented." - exit 10 - fi - popd >/dev/null -} -function cmake_check { - pushd ../build >/dev/null - # do checks - if [ -e debian/$paket.build ] - then - echo "cmake is not compatible with other builds. Remove $paket.build" - exit 1 - fi - if [ -e debian/$paket.prebuild ] - then - echo "cmake is not compatible with other builds. Remove $paket.prebuild" - exit 2 - fi - - if [ -n "$cross" ] - then - # inject cross toolset - echo "set (CMAKE_MODULE_PATH $cross)" > CMakeLists.txt - echo "include(toolset)" >> CMakeLists.txt - cat debian/$paket.cmake >> CMakeLists.txt - else - cp debian/$paket.cmake CMakeLists.txt - fi - - echo "make" > debian/$paket.build - chmod 755 debian/$paket.build - cmake . - popd >/dev/null -} -function check_unversioned { - # has to be called in the projects base directory - # result: "M" in stdout or nothing - set -e - - # check if build is running in a sandbox - if ! [ -f .cm.ignore ] - then - # we create one - echo ".cm.ignore" > .cm.ignore - echo "debian.*" >> .cm.ignore - echo "up.*" >> .cm.ignore - fi - - # add auto created files to .cm.ignore - if ! grep Makefile .cm.ignore >/dev/null ; then echo "Makefile" >>.cm.ignore; fi - if ! grep configure .cm.ignore >/dev/null ; then echo "configure" >>.cm.ignore; fi - if ! grep debian/rules .cm.ignore >/dev/null ; then echo "debian/rules" >>.cm.ignore; fi - if ! grep debian/rules.pre .cm.ignore >/dev/null ; then echo "debian/rules.pre" >>.cm.ignore; fi - if ! grep debian/setenv.sh .cm.ignore >/dev/null ; then echo "debian/setenv.sh" >>.cm.ignore; fi - if ! grep debian/tmp .cm.ignore >/dev/null ; then echo "debian/tmp" >>.cm.ignore; fi - - project=$(pwd) - project=${project##*/} - pushd .. >/dev/null - mCM $project -b -an > /dev/null - wc=$(wc $project.batch) - rm $project.batch - if [ "${wc:0:1}" != "1" ] - then - echo "M" - fi - popd >/dev/null -} - -function set_build { - set -e - if [ -e .svn ] - then - version="0.0" - build=$(svnversion) - build=${build/:/-} - build="$build$(check_unversioned)" - elif [ -e .git ] - then - tag=$(git describe --tags --match "${paket}_*" 2>/dev/null) || true - if test -z "$tag" - then - # try generic "v_" tag - tag=$(git describe --tags --match "v_*" 2>/dev/null) || true - fi - if test -z "$tag" - then - tag="0.0-0TOP" - fi - changes=$(check_unversioned) - tag="$tag$changes" - version=${tag##*_} - version=${version%%-*} - build=${tag##*-} - else - echo "No configuration system found. Cannot determine version." - exit 3 - fi -} - -function check_version { - set -e - - vline=$(head -1 debian/$paket.changelog) - vline=${vline%-*} - clversion=${vline#*(} - if [ $version = "0.0" ] - then - version=$clversion - return - fi - - # do no check on a modified git repos - if [ "${build: -1}" == "M" ] - then - return - fi - - if [ "$clversion" != $version ] - then - echo "version mismatch: git: $version, changelog: $clversion" - exit 4 - fi -} - -function add_sources { - echo "Anz: $#" - for suf in $* - do - find . -name "*.$suf" -exec echo " "{}" \\" >> make.pre \; - done - if [ $# -eq 2 ] - then - rm make.tmp || true - find . -name "*.$2" -exec echo {} >> make.tmp \; - while read line - do - echo " ${line/\.$2/\.$1} \\" >> make.pre - done < make.tmp - fi -} - -############################################################################## -# Main program -############################################################################## - -install_dir="/" -compile_type=NONE -extern_build=0 - -while [ $OPTIND -le "$#" ] -do - if getopts "ha:bc:C:d:e:i:n:t:v:V" opt - then - case $opt in - h) echo_usage - exit 0 - ;; - a) ARCH=$OPTARG - ;; - b) extern_build=1 - ;; - c) compile_type=$OPTARG - ;; - C) cross=$OPTARG - ;; - d) compile_dir=$OPTARG - ;; - e) compile_target=$OPTARG - ;; - i) install_dir=$OPTARG - ;; - n) target_name=$OPTARG - ;; - t) target_type=$OPTARG - ;; - v) optversion=$OPTARG - ;; - V) optversion="0.0" - ;; - \?) echo "Invalid option: -$OPTARG" - echo_usage - exit 5 - ;; - :) echo "Option -$OPTARG requires an argument." - echo_usage - exit 6 - ;; - esac - else - paket="${!OPTIND}" - eval OPTIND=OPTIND+1 - fi -done - -if [ -z "$paket" ] -then - echo_usage - exit 7 -fi - -if [ -n "$ARCH" -a -n "$cross" ] -then - echo "invalid options: supply -a for multiarch or -C for explicit cross compile environment" - exit 8 -fi - -if [ ! -e Makefile ] -then - ln -s /usr/share/mbuild/rules Makefile -fi - -# delete changelog and control -rm debian/changelog debian/control debian/README.debian debian/copyright 2>/dev/null || true - -# mconfigure builds 2 environment files: setenv.sh + rules.pre -echo "paket=$paket" > debian/rules.pre -echo "INSTALL_DIR=$install_dir" >> debian/rules.pre -if [ -e debian/setenv.sh ]; then rm debian/setenv.sh; fi - -if [ -n "$cross" ] -then - if [ ${cross:0:1} != "/" ] - then - cross="/opt/cross/$cross" - #export $cross - fi - if [ -f "$cross/setenv.sh" ] - then - . "$cross/setenv.sh" - cp $cross/setenv.sh debian/setenv.sh - fi - if [ -z "$ARCH" ] - then - # determine architecture - GNU_ARCH=${cross%-*} # assumed format: DEB_HOST_GNU_TYPE-g++version, e.g. arm-linux-gnueabihf-4.9 - GNU_ARCH=${GNU_ARCH##*/} - arch_opt="-t $GNU_ARCH" - fi -fi - -if [ -n "$ARCH" ] -then - arch_opt="-a $ARCH" -fi -dpkg-architecture $arch_opt >> debian/setenv.sh - -echo "paket=$paket" >> debian/setenv.sh - -set_build -if [ -z "$optversion" ] -then - check_version -else - version=$optversion -fi -echo "version=$version" >> debian/rules.pre -echo "version=$version" >> debian/setenv.sh -echo "build=$build" >> debian/rules.pre -echo "build=$build" >> debian/setenv.sh - -# get repository name -# tmp=$(pwd) -# pwd=${tmp##*/} -# pwd=${pwd,,*} -# echo "pwd=$pwd" >> debian/rules.pre - -echo "building $paket with version/build=$version-$build" - -pushd debian >/dev/null -# ./debian ------------------------------------- - -ln -sf /usr/share/mbuild/rules . - -if [ -e tmp ] -then - rm -rf tmp -fi - -# check for pre/post installation scripts -if [ -f $paket.preinst ] -then - echo "add_inst_tgt += debian/tmp/DEBIAN/preinst" >> rules.pre -fi -if [ -f $paket.postinst ] -then - echo "add_inst_tgt += debian/tmp/DEBIAN/postinst" >> rules.pre -fi -if [ -f $paket.prerm ] -then - echo "add_inst_tgt += debian/tmp/DEBIAN/prerm" >> rules.pre -fi -if [ -f $paket.postrm ] -then - echo "add_inst_tgt += debian/tmp/DEBIAN/postrm" >> rules.pre -fi - -# check for README.debian -if [ -f $paket.README.debian ] -then - cp $paket.README.debian README.debian -fi - -mkdir -p tmp/DEBIAN - -# add export to setenv.sh -sed -i "s/^/export /" setenv.sh - -popd >/dev/null -# ./. --------------------------------------------- - -# build prepare -if [ -x debian/$paket.prepare ] -then - . debian/setenv.sh - debian/$paket.prepare -fi - -if [ "$compile_type" == "NONE" ] -then - echo "BUILD=nobuild" >> debian/rules.pre -else - echo "BUILD=build" >> debian/rules.pre - - if [ $extern_build -eq 1 ] - then - BUILD_DIR=~/build - echo "BUILD_DIR=~/build" >> debian/rules.pre - debian/rules sync - fi - - # .build - if [ "$compile_type" != "CMAKE" -a "$compile_type" != "ANY" ] - then - cp debian/rules.pre $BUILD_DIR/$compile_dir/make.pre - pushd $BUILD_DIR/$compile_dir >/dev/null - ln -sf /usr/share/mbuild/makefile . - if [ -n "$sources_suffix" ] - then - echo "SOURCES = \\" >> make.pre - for suf in $sources_suffix - do - find . -name "*.$suf" -exec echo " "{}" \\" >> make.pre \; - done - echo >> make.pre - fi - popd >/dev/null - fi - - if [ "$compile_type" == "PDF" ] - then - pushd $BUILD_DIR/$compile_dir >/dev/null - echo "SOURCES = \\" >> make.pre - add_sources tex xml - echo >> make.pre - popd >/dev/null - fi - if [ -x debian/$paket.prebuild ] - then - pushd $BUILD_DIR >/dev/null - . debian/setenv.sh - debian/$paket.prebuild - popd >/dev/null - fi - if ! [ -x debian/$paket.build -o -f debian/$paket.cmake ] - then - create_build - fi - - # .cmake - if [ -e debian/$paket.cmake ] - then - cmake_check - fi -fi - -