]> wagnertech.de Git - projects.git/blobdiff - tools/make/configure
posaune
[projects.git] / tools / make / configure
index c981fd5fcdec2096dc73ea6cb840c8a6da060fd0..cb61a7585cb21a41847c3c4c32e96bf36121d3da 100755 (executable)
@@ -9,8 +9,8 @@ function echo_usage {
 
 # to build a package you need ...
 # <package>.co: checkout commands
-# <package>.cp: copy step
-# <package>.cpp (optional): commands to setup the C++ compile environment
+# <package>.cp (optional): copy step for package production
+# <package>.cpp.sh (optional): commands to setup the C++ compile environment
 
 if [ $# -lt 2 ]
 then
@@ -18,3 +18,100 @@ then
        exit 1
 fi
 
+paket=$1
+build=$2
+ARCH=""
+cpp_build=0
+
+# checkout build utilities
+if [ ! -d projects ]; then
+       git clone https://github.com/wagner-tech/projects/
+fi
+ln -sf projects/tools/make/makefile .
+
+# check standard files
+if [ ! -x $paket.co ]
+then
+       echo "file $paket.co missing or not executable."
+       exit 1
+fi
+
+# clean dirs and check out
+if [ -d src ]
+then
+       echo "Shall I delete src dir? [y]/n"
+       read key
+       if [ "$key" != "n" ]
+       then
+               rm -rf src
+       fi
+fi
+
+if [ -e $paket ]
+then
+       rm -rf $paket
+fi
+rm *.stamp || true
+rm make.pre || true
+
+mkdir -p src
+cwd=$(pwd)
+
+# checkout
+pushd src >/dev/null
+       ../$paket.co $build
+popd >/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
+
+# copy package control
+control=$(find src -name $paket.control)
+if [ -z "$control" ]
+then
+       echo "warning: control file not found"
+       echo "  this file is necessary for any package production."
+else   
+       sed "s/%BUILD%/$build/" $control |sed "s/%ARCH%/$ARCH/" >$paket.control
+       echo "$paket.control written."
+
+       # extract version
+       version=$(grep Version $paket.control |sed "s/Version: //")
+fi
+
+# check for copy file
+copy=$(find src -name $paket.cp)
+if [ -n "$copy" ]
+then
+       ln -sf $copy .
+else
+       echo "warning: file $paket.cp missing or not executable:"
+       echo "  this file is necessary for any package production."
+fi
+
+# check for postinst
+postinst=$(find src -name $paket.postinst)
+if [ -n "$postinst" ]
+then
+       ln -sf $postinst .
+fi
+
+# create generic make.pre, if not existing
+if [ ! -f make.pre ]
+then
+       cat  >>make.pre <<MAKE_PRE
+# mBuild make.pre script (auto generated)
+project = $paket
+COPY = ./$paket.cp
+MAKE_PRE
+       echo "make.pre written."
+fi
+
+# append version to make.pre
+echo "version = $version" >> make.pre
+