#! /bin/sh set -e set -u scriptsdir=`dirname "$0"` get_optarg() { expr "x$1" : "x[^=]*=\\(.*\\)" } usage() { printf "usage: %s --prefix=/... --srcdir=/...\\n" "$0" 1>&2 exit 1 } while test $# -gt 0; do case "$1" in --prefix=*) prefix=`get_optarg "$1"` shift ;; --srcdir=*) srcdir=`get_optarg "$1"` shift ;; *) usage ;; esac done case "${prefix+set},${prefix-}" in "set,/"*) ;; *) usage ;; esac case "${srcdir+set},${srcdir-}" in "set,/"*) ;; *) usage ;; esac pre_configure() { phase="pre_configure" test ! -f "${phase}_done" || return 0 echo "done" > "${phase}_done" } do_configure() { phase="do_configure" test ! -f "${phase}_done" || return 0 echo "done" > "${phase}_done" } post_configure() { phase="post_configure" test ! -f "${phase}_done" || return 0 cat > "system-dependent-hacks.h" < header defines the macro barrier() with zero * parameters, which conflicts with a function definition of the same * name in the header. Therefore, the header must be included * first. This only works because apparently the libfp does not use this * function. If it does nevertheless, the barrier macro must be undefined * before. */ #ifdef __linux # include #endif EOF find "${srcdir}/src" -type f -name '*.c++' \ -exec perl "${scriptsdir}/sys-hacks.pl" '{}' ';' echo "done" > "${phase}_done" } pre_build() { phase="pre_build" test ! -f "${phase}_done" || return 0 echo "done" > "${phase}_done" } do_build() { phase="do_build" test ! -f "${phase}_done" || return 0 make echo "done" > "${phase}_done" } post_build() { phase="post_build" test ! -f "${phase}_done" || return 0 echo "done" > "${phase}_done" } pre_install() { phase="pre_install" test ! -f "${phase}_done" || return 0 echo "done" > "${phase}_done" } do_install() { phase="do_install" test ! -f "${phase}_done" || return 0 make targets echo "done" > "${phase}_done" } post_install() { phase="post_install" test ! -f "${phase}_done" || return 0 echo "done" > "${phase}_done" } pre_configure do_configure post_configure pre_build do_build post_build pre_install do_install post_install