]> wagnertech.de Git - projects.git/blobdiff - tools/make/configure
gitarre
[projects.git] / tools / make / configure
index f83750ec83014cea050fc32cbb76a99c5d7aa106..2eb9f91e87c1177d6268ccc16f694bd9253a8ec1 100755 (executable)
@@ -3,22 +3,28 @@ set -e
 
 function echo_usage {
        echo "usage: configure [options] <package>"
-       echo "  -a <arch>"
-       echo "  -b : extern build in ../build directory"
-       echo "  -c <compile_dir>"
-       echo "  -C <cross environment>"
-       echo "  -i : install dir. default: /"
-       echo "  -I : print this info"
-       echo "  -t <compile type: NONE, CPP, CMAKE, PDF> default: NONE"
-       echo "  -v : set version"
-       echo "  -V : version set by project"
+       echo "--- general options ---"
+       echo "  -h : print this info"
+       echo "--- compile options ---"
+       echo "  -a <arch>"
+       echo "  -c <compile type: NONE|CPP|CMAKE|PDF|ANY> default: NONE"
+       echo "  -C <cross environment>"
+       echo "  -d <compile_dir>"
+       echo "  -e <compile_target>"
+       echo "--- build target options ---"
+       echo "  -i : install dir. default: /, nec. for make install"
+       echo "  -n <target_name>: default: <package>"
+       echo "  -t <target_type: FILE|DEB|ZIP>, 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 "make $compile_target" > debian/$paket.build
+                       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."
@@ -68,6 +74,14 @@ function check_unversioned {
                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##*/}
@@ -75,7 +89,7 @@ function check_unversioned {
                mCM $project -b -an > /dev/null
                wc=$(wc $project.batch)
                rm $project.batch
-               if [ "${wc:0:5}" != "0 0 0" ]
+               if [ "${wc:0:1}" != "1" ]
                then
                        echo "M"
                fi
@@ -138,6 +152,23 @@ function check_version {
        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
 ##############################################################################
@@ -148,23 +179,29 @@ extern_build=0
 
 while [ $OPTIND -le "$#" ]
 do
-       if getopts "a:bB:C:i:It:v:V" opt
+       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_dir=$OPTARG
+                       c) compile_type=$OPTARG
                                ;;
                        C) cross=$OPTARG
                                ;;
+                       d) compile_dir=$OPTARG
+                               ;;
+                       d) compile_target=$OPTARG
+                               ;;
                        i)      install_dir=$OPTARG
                                ;;
-                       I)      echo_usage
-                               exit 0
+                       n)      target_name=$OPTARG
                                ;;
-                       t) compile_type=$OPTARG
+                       t) target_type=$OPTARG
                                ;;
                        v)      optversion=$OPTARG
                                ;;
@@ -192,10 +229,10 @@ then
 fi
 
 # read build configuration, if existing
-if [ -f debian/$paket.conf ]
-then
-       . debian/$paket.conf
-fi
+#if [ -f debian/$paket.conf ]
+#then
+#      . debian/$paket.conf
+#fi
 
 if [ -n "$ARCH" -a -n "$cross" ]
 then
@@ -328,7 +365,7 @@ else
        fi
 
        # .build
-       if [ "$compile_type" != "CMAKE" -a "$compile_type" != "OLD" ]
+       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
@@ -344,7 +381,15 @@ else
                        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