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
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##*/}
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
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
##############################################################################
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
;;
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
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
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