X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/projects.git/blobdiff_plain/5e8e2b2380cd6697b8634a765cdfd0b9e07c502c..86a732a68de475c303c2e80dd4da44357f8e55ed:/tools/make/mconfigure diff --git a/tools/make/mconfigure b/tools/make/mconfigure index b102ad7..e091ca6 100755 --- a/tools/make/mconfigure +++ b/tools/make/mconfigure @@ -3,12 +3,34 @@ set -e function echo_usage { echo "usage: mconfigure [options] " - echo " -c : copy configure/Makefile" - echo " -d : compile" - echo " -p : pack default: do all" ./configure -I } +function create_conf { + if [ -f "debian/$paket.cmake" ] + then + echo "compile_type=CMAKE" > debian/$paket.conf + elif [ -f "debian/$paket.build" ] + then + if [ -f "debian/$paket.cpp" ] + then + echo "compile_type=CPP" > debian/$paket.conf + else + echo "compile_type=ANY" > debian/$paket.conf + fi + else + echo "compile_type=NONE" > debian/$paket.conf + fi + + if [ -f "$paket.control" -a -f "$paket.cp" ] + then + echo "target_type=DEB" >> debian/$paket.conf + else + echo "target_type=FILE" >> debian/$paket.conf + fi + echo "$paket.conf created." +} + ############################################################################## # Main program ############################################################################## @@ -20,20 +42,12 @@ then fi configure=0 -compile=0 -pack=0 -confirure_args="-b ../build" +configure_args="-i debian/tmp" while [ $OPTIND -le "$#" ] do - if getopts "cdp" opt + if getopts "c" opt then case $opt in - c) configure=1 - ;; - d) compile=1 - ;; - p) pack=1 - ;; \?) $confirure_args="$configure_ars -$OPTARG" if [ $OPTARG="a" -o $OPTARG="C" -o $OPTARG="i" -o $OPTARG="v" ] then @@ -43,7 +57,7 @@ do ;; :) echo "Option -$OPTARG requires an argument." echo_usage - exit 1 + exit 3 ;; esac else @@ -55,67 +69,138 @@ done if [ -z "$paket" ] then echo_usage - exit 1 + exit 4 fi -if [ $configure -eq 1 ] +if [ ! -f debian/$paket.conf ] then - # installation of configure file - cp /usr/share/mbuild/configure . -else - if [ ! -e configure ] + # check if any files for $paket are present + if ! ls debian/$paket.* 2>/dev/null then - ln -s /usr/share/mbuild/configure . + echo "$paket is no build target in this repository." + exit 5 fi + + # build conf file + echo "$paket.conf missing. We create it ..." + create_conf fi -configure_args="$configure_args $paket" -if [ -x debian/$paket.preconfigure ] +if [ ! -e configure ] then - # if necessary $configure_args can be added to setenv.sh - debian/$paket.preconfigure + ln -s /usr/share/mbuild/configure . fi -#-> configure -# .build or .cmake -if [ -x debian/$paket.build -o -e debian/$paket.cmake ] +# clean build directory +if [ "$compile_type" != "NONE" ] then - echo "BUILD_DIR=../build" >> debian/setenv.sh - if [ -e ../build ] + if [ -e ~/build ] then - rm -rf ../build - mkdir ../build + rm -rf ~/build + mkdir ~/build fi + configure_args="$configure_args -d ~/build" +fi + +# perform configure +. debian/$paket.conf +if [ "$compile_type" != "NONE" ] +then + configure_args="$configure_args -b" + if [ -n "$compile_dir" ] + then + configure_args="$configure_args -d $compile_dir" + fi + if [ -z "$compile_type" ] + then + echo "compile_type required in $paket.conf" + exit 51 + fi +fi +if [ "$target_type" == "FILE" ] +then + # no version needed + configure_args="$configure_args -V" +fi +configure_args="$configure_args $paket" +echo "Executing ./configure $configure_args ..." +./configure $configure_args + +if [ "$compile_type" != "NONE" ] +then if grep -- "-prepare" debian/$paket.build >/dev/null then echo "prepare in .build no longer supported. Use .prebuild" - exit 2 + exit 6 fi # sync build dir . debian/setenv.sh debian/rules sync + make fi -# perform configure -. debian/setenv.sh -./configure $configure_args - -# if nothing is selected, select all -if [ $compile -eq 0 -a $pack -eq 0 ] +# pack prepare +if [ "$target_type" == "DEB" ] then - compile=1 - pack=1 -fi - -if [ $compile -eq 1 ] + if [ ! -f debian/$paket.cp ] + then + echo "debian/$paket.cp missing for target type DEB" + exit 9 + fi + if [ ! -f debian/$paket.control ] + then + echo "debian/$paket.control missing for target type DEB" + exit 10 + fi + + echo "PACK=binary" >> debian/rules.pre + 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 + else + echo 'arch = ${DEB_HOST_ARCH}' >> debian/rules.pre + echo "BINARY_ARCH = copy ../${paket}_$version-${build}_"'$(arch).deb' >> debian/rules.pre + fi + if ! [ -f debian/$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 [ "$target_type" == "ZIP" ] then - # build - make -fi - -if [ $pack -eq 1 ] + echo "PACK=zip" >> debian/rules.pre + if [ ! -f debian/$paket.cp ] + then + echo "debian/$paket.cp missing for target type ZIP" + exit 11 + fi +elif [ "$target_type" == "FILE" ] then - # build package - debian/rules pack + echo "PACK=version" >> debian/rules.pre + if [ "$compile_type" != "ANY" ] + then + if [ -z "$compile_target" ] + then + echo "compile_target is needed for target_type FILE" + exit 12 + fi + echo "COMPILE_TARGET = $compile_target" >> debian/rules.pre + if [ -n "$target_name" ] + then + echo "TARGET = $target_name" >> debian/rules.pre + else + echo "TARGET = $paket" >> debian/rules.pre + fi + fi +else + echo "Unknown target type: $target_type" + exit 13 fi +# build package +debian/rules pack +