]> wagnertech.de Git - projects.git/blobdiff - tools/make/mconfigure
posaune
[projects.git] / tools / make / mconfigure
index ec5d2a6f61343c263bff8d2d8326bdde79ea18ee..a8c7f6e9f54ff097cb92de4e79b60e5445865d2c 100755 (executable)
@@ -8,6 +8,7 @@ function echo_usage {
        echo "  -C <cross environment>"
        echo "  -d : compile"
        echo "  -p : pack default: do all"
+       echo "  -v : set version"
        echo "  -o : support old Debian 7 format"
 }
 
@@ -25,7 +26,16 @@ function cmake_check {
                        exit 2
                fi
                
-               cp debian/$paket.cmake CMakeLists.txt
+               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 .
@@ -118,7 +128,7 @@ fi
 configure=0
 compile=0
 pack=0
-while getopts "a:cC:dpo" opt; do
+while getopts "a:cC:dpov:" opt; do
        case $opt in
                a) ARCH=$OPTARG
                        ;;
@@ -132,6 +142,8 @@ while getopts "a:cC:dpo" opt; do
                        ;;
                o)      oldpack="-Zgzip"
                        ;;
+               v)      optversion=$OPTARG
+                       ;;
                \?) echo "Invalid option: -$OPTARG"
                        echo_usage
                        exit 1
@@ -175,18 +187,30 @@ then
        echo "" > debian/rules.pre
        if [ -e debian/setenv.sh ]; then rm debian/setenv.sh; fi
        
-       if [ -n "$ARCH" ]
-       then
-               arch_opt="-a $ARCH"
-       fi
        if [ -n "$cross" ]
        then
                if [ ${cross:0:1} != "/" ]
                then
                        cross="/opt/cross/$cross"
+                       #export $cross
                fi
-               . "$cross/setenv.sh"
-               cp $cross/setenv.sh debian/setenv.sh
+               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
        
@@ -194,7 +218,12 @@ then
        echo "oldpack=\"$oldpack\"" >> debian/setenv.sh
 
        set_build
-       check_version
+       if [ -z "$optversion" ]
+       then
+               check_version
+       else
+               version=$optversion
+       fi
        echo "version=$version" >> debian/setenv.sh
        echo "build=$build" >> debian/setenv.sh
 
@@ -217,6 +246,7 @@ then
        fi
 
        # check for pre/post installation scripts
+       echo "TODO: check for conffiles"
        if [ -f $paket.preinst ]
        then
                echo "add_inst_tgt += debian/tmp/DEBIAN/preinst" >> rules.pre
@@ -305,11 +335,19 @@ then
                if grep "^Architecture: *all" debian/$paket.control >/dev/null
                then
                        echo "arch = all" >> debian/rules.pre
-                       echo "BINARY_INDEP = copy ../${paket}_$version-${build}_all.deb" >> debian/rules.pre
+                       echo 'BINARY_INDEP = copy ../$(paket)_$(version)-$(build)_all.deb' >> debian/rules.pre
                else
                        echo 'arch = ${DEB_HOST_ARCH}' >> debian/rules.pre
                        echo "BINARY_ARCH = copy ../${paket}_$version-${build}_"'$(arch).deb' >> debian/rules.pre
                fi
+               if ! [ -f $paket.changelog ]
+               then
+                       echo "changelog_source = debian/default.changelog" >> debian/rules.pre
+                       if [ -f debian/default.changelog ]
+                       then
+                               rm debian/default.changelog
+                       fi
+               fi
        elif [ -f debian/$paket.cp ]
        then
                echo "PACK=zip" >> debian/rules.pre