From a493164fedb7e5e18fc852b14a03ff149bab8709 Mon Sep 17 00:00:00 2001 From: Michael Wagner Date: Thu, 12 Jul 2018 12:19:47 +0200 Subject: [PATCH] posaune --- doc/mbuild.8 | 39 ++++++++++ tools/make/mconfigure | 176 +++++++++++++++++++----------------------- 2 files changed, 118 insertions(+), 97 deletions(-) create mode 100644 doc/mbuild.8 diff --git a/doc/mbuild.8 b/doc/mbuild.8 new file mode 100644 index 0000000..0f7b4f1 --- /dev/null +++ b/doc/mbuild.8 @@ -0,0 +1,39 @@ +.\" Manpage for mbuild. +.\" Contact mail@wagnertech.de to correct errors or typos. +.TH man 8 "12 Jul 2018" "0.1" "mbuild man page" +.SH NAME +mbuild \- build system of WagnerTech UG +.SH SYNOPSIS +.B mbuild +.SH DESCRIPTION +.PP +mbuild provides a simple build system based on make, git, subversion. The build process +consists of 3 phases: configuration - compile - pack +.TP +configuration +is done by the +.B mconfigure +script. It determins the verion number from the git/subversion status. Per +default this script also performs compile and pack step. +.TP +compile +To perform the compile step a +.B PAKET.build +script is needed in the debian directory. +.TP +pack +To perform the pack step a +.B PAKET.cp +script is needed in the debian directory. + +.SH FILES +PAKET.build + +PAKET.cp +.SH SEE ALSO +make(1), mconfigure(8) +.SH BUGS +No known bugs. +.SH AUTHOR +Michael Wagner (michael@wagnertech.de) + diff --git a/tools/make/mconfigure b/tools/make/mconfigure index 8ce366e..7bd494e 100755 --- a/tools/make/mconfigure +++ b/tools/make/mconfigure @@ -4,7 +4,9 @@ set -e function echo_usage { echo "usage: mconfigure [options]" echo " -a " - echo " -p : prepare build, but not do it" + echo " -c : configure only, no compile, pack" + echo " -d : compile only" + echo " -p : pack only" } function set_build { @@ -57,35 +59,27 @@ fi if [ ! -d debian ] then - echo "run mconfigure in the project base directory!" + echo "run mconfigure in the project base directory with a debian directory in it!" exit 2 fi paket=$1 -echo "export paket=$1" > debian/setenv.sh -shift -ARCH="" -cpp_build=0 -set_build -check_version -echo "export version=$version" >> debian/setenv.sh -echo "export build=$build" >> debian/setenv.sh - -# get repository name -tmp=$(pwd) -pwd=${tmp##*/} -pwd=${pwd,,*} -echo "export pwd=$pwd" >> debian/setenv.sh - -echo "building $paket with build $version-$build" - -prepare=0 +configure=1 +compile=1 +pack=1 while getopts ":ap" opt; do case $opt in a) ARCH=$OPTARG ;; - p) prepare=1 + c) compile=0 + pack=0 + ;; + d) configure=0 + pack=0 + ;; + p) configure=0 + compile=0 ;; \?) echo "Invalid option: -$OPTARG" echo_usage @@ -97,58 +91,67 @@ while getopts ":ap" opt; do ;; esac done -# -## clean dirs and check out -#if [ -d build -a $delete_src -eq 1 ] -#then -# rm -rf build -#fi -# -pushd debian >/dev/null +if [ $configure -eq 1 ] +then + echo "export paket=$1" > debian/setenv.sh + shift + ARCH="" + cpp_build=0 + + set_build + check_version + echo "export version=$version" >> debian/setenv.sh + echo "export build=$build" >> debian/setenv.sh -ln -sf /usr/share/mbuild/rules . + # get repository name + tmp=$(pwd) + pwd=${tmp##*/} + pwd=${pwd,,*} + echo "export pwd=$pwd" >> debian/setenv.sh -#if [ -e tmp ] -#then -# rm -rf tmp -#fi -#rm *.stamp 2>/dev/null || true -#rm make.pre 2>/dev/null || true + echo "building $paket with build $version-$build" -mkdir -p tmp/DEBIAN + pushd debian >/dev/null -# load util functions for C/C++ - build -if [ -f $paket.cpp.sh ] -then - cpp_build=1 - . projects/tools/make/c_configure.sh - . $paket.cpp.sh -fi + ln -sf /usr/share/mbuild/rules . -popd >/dev/null + #if [ -e tmp ] + #then + # rm -rf tmp + #fi + #rm *.stamp 2>/dev/null || true + #rm make.pre 2>/dev/null || true -# copy package control -if [ ! -f debian/control ] -then - control=$(find etc -name $paket.control) - if [ -z "$control" ] + mkdir -p tmp/DEBIAN + + # load util functions for C/C++ - build + if [ -f $paket.cpp.sh ] then - echo "warning: control file not found" - echo " this file is necessary for any package production." - else - echo "Source: $pwd -Section: main -Priority: optional -Maintainer: WagnerTech UG -" > debian/control - grep -v "Version:" $control |grep -v "Maintainer:" >> debian/control + cpp_build=1 + . projects/tools/make/c_configure.sh + . $paket.cpp.sh fi -fi -if [ $prepare = 1 ] -then - exit 0 + popd >/dev/null + + # copy package control + if [ ! -f debian/control ] + then + control=$(find etc -name $paket.control) + if [ -z "$control" ] + then + echo "warning: control file not found" + echo " this file is necessary for any package production." + else + echo "Source: $pwd + Section: main + Priority: optional + Maintainer: WagnerTech UG + " > debian/control + grep -v "Version:" $control |grep -v "Maintainer:" >> debian/control + fi + fi fi # check for copy file @@ -166,38 +169,17 @@ fi # fi #fi -# build package -. debian/setenv.sh -debian/rules binary - -# -## check for installation scripts -#files=$(find .. -name $paket.preinst) -#files="$files $(find .. -name $paket.postinst)" -#files="$files $(find .. -name $paket.prerm)" -#files="$files $(find .. -name $paket.postrm)" -#for file in $files -#do -# ln -sf $file . -#done - -# create generic make.pre, if not existing -#if [ ! -f make.pre ] -#then -# cat >>make.pre <>make.pre -# echo "_arch = _${ARCH}" >>make.pre -# fi -# echo "make.pre written." -#fi -# -## append version to make.pre -#echo "version = $version" >> make.pre -#echo "build = $build" >> make.pre +if [ $compile -eq 1 ] +then + # build artefacts + . debian/setenv.sh + debian/rules build +fi + +if [ $pack -eq 1 ] +then + # build package + . debian/setenv.sh + debian/rules binary +fi -- 2.20.1