]> wagnertech.de Git - projects.git/blobdiff - tools/make/configure
gitarre
[projects.git] / tools / make / configure
index 2382c1d583e95f93451b4fd661febb88c3cc7071..2eb9f91e87c1177d6268ccc16f694bd9253a8ec1 100755 (executable)
@@ -3,17 +3,35 @@ 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 "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
@@ -56,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##*/}
@@ -63,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
@@ -126,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
 ##############################################################################
@@ -136,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
                                ;;
@@ -180,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
@@ -316,7 +365,7 @@ else
        fi
 
        # .build
-       if [ "$compile_type" != "CMAKE" ]
+       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
@@ -332,16 +381,25 @@ else
                        fi
                popd >/dev/null
        fi
-               
-       if [ -x debian/$paket.build ]
+
+       if [ "$compile_type" == "PDF" ]
        then
-               if [ -x debian/$paket.prebuild ]
-               then
-                       pushd $BUILD_DIR >/dev/null
-                               . debian/setenv.sh
-                               debian/$paket.prebuild
-                       popd >/dev/null
-               fi
+               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