#!/bin/bash log() { echo $@ } err() { echo $@ >&2 } fatal() { err "Fatal: $@" exit 1 } try_assign_sec() { local file="$1" local sec="$2" local val=`_jwbuild_cat_section "$file" "$sec"` [ -n "$val" ] && eval $3=\"$val\" } cleanup_requires() { # echo $@ | sed -e ' # s/\([a-zA-Z0-9.-]\+\) *\([a-zA-Z0-9.-]\+\) */\1, \2 /g # #s/\([a-zA-Z-]\+\) *\([<>=]*\) *\([a-zA-Z0-9\.-]*\)/\1 \2 \3,/g # #s/,,/,/g # #s/,$// # ' echo $@ | sed -e ' s/^ //g s/\([ ]\|$\)\+/, /g s/, $// s/, $// s/ *,* *\([<>=]\+\) *,* */ \1 /g ' } usage() { cat <<- EOT | sed 's/^ *|//' | | $myname [options] | | options are | | -h: display this help message and exit sucessfully | -F filename read project description file | -d "description" use description | EOT goodbye $1 } project_descr_file="$1" myname=`basename $0` set -e eval set -- `getopt -- hF:d:n:s:p:v:c:l:V:r:R: "$@"` while [ "$1" != -- ]; do case $1 in -h) usage 0;; -F) project_descr_file="$2" shift ;; -d) description="$2" shift ;; -n) name="$2" shift ;; -s) summary="$2" shift ;; -p) prefix="$2" shift ;; -v) version="$2" shift ;; -c) cflags="$2" shift ;; -l) libflags="$2" shift ;; -r) requires_run="$2" shift ;; -R) requires_build="$2" shift ;; -V) variables="$variables$2\n" shift ;; *) usage 1;; esac shift done shift set +e [ -r "$project_descr_file" ] && { build_functions_sh=jw-build-functions.sh for d in `dirname $0`; do [ -f "$d/$build_functions_sh" ] && { build_functions_sh_path=$d/$build_functions_sh break } done [ "$build_functions_sh_path" ] || fatal "$build_functions_sh not found" . $build_functions_sh_path try_assign_sec $project_descr_file description descr try_assign_sec $project_descr_file summary summary try_assign_sec $project_descr_file requires_run requires_run try_assign_sec $project_descr_file requires_build requires_build } [ "$variables" ] && echo -e "$variables" cat <<-EOT prefix=$prefix exec_prefix=\${prefix} includedir=\${prefix}/include libdir=\${exec_prefix}/lib Name: $name Description: $summary Version: $version EOT [ "$cflags" ] && echo "Cflags: $cflags" [ "$libflags" ] && echo "Libs: $libflags" [ "$requires_run" ] && echo "Requires: `cleanup_requires $requires_run`" [ "$requires_build" ] && echo "Requires.private: `cleanup_requires $requires_build`" # [ "$requires_devel" ] && ?? # not sure what to do with this exit 0