#! /bin/sh # -*- Mode: Shell-script -*- die() { echo "mk-libposix-module.sh error: $*" >&2 trap '' EXIT test ${#clean_list} -gt 1 && \ echo '*NOT*: rm -rf' ${clean_list} kill -TERM $progpid exit 1 } clean_list='' cleanup() { trap '' EXIT test ${#clean_list} -gt 1 && \ rm -rf ${clean_list} return 0 } init() { progpid=$$ progdir=`dirname $0` prognam=`basename $0` glibdir=`cd ${progdir} >/dev/null && cd .. && pwd` cd ${progdir} PATH=$glibdir:$PATH trap die EXIT case "X$1" in X--all ) set -- --clean --distro ;; esac case "X$1" in X--clean* ) git clean -f -d -x . shift test $# -eq 0 && exit 0 ;; esac case "X$1" in X--dist* ) do_distro=true ;; * ) do_distro=false ;; esac } mk_module() { mkdir tmp clean_list=tmp mkdir tmp/modules ( echo alloca posix-modules ) | sort -u > tmp/posix-list cmd='1,/^Depends-on:/d /^[a-zA-Z][a-zA-Z._-]*:$/ { s/.*// q }' posix_list=$(grep -v '^$' tmp/posix-list) cat > tmp/modules/libposix <<- _EOF_ Description: Wrap up all the posix modules into an installable libposix.la. Files: Depends-on: ${posix_list} configure.ac: Makefile.am: lib_LTLIBRARIES = libposix.la Include: License: LGPL Maintainer: Bruce Korb Gary V. Vaughan _EOF_ } run_glt() { opts=' --local-dir=tmp --import --lib=libposix --makefile-name=gnulib.mk --macro-prefix=LIBPOSIX --libtool --no-changelog --symlink --with-tests --with-c++-tests --with-longrunning-tests' gnulib-tool ${opts} git-version-gen libposix || \ die "gnulib-tool failed" ./git-version-gen ./.tarball-version | \ sed 's/-dirty/-modified/' > ./.tarball-version sed -i 's/-dirty$/-modified/' .tarball-version # No need to maintain a Makefile.am just to include gnulib.mk. mv tests/gnulib.mk tests/Makefile.am } run_reconf() { # Run autotools. autoreconf --force --install --verbose --symlink || \ die "autoreconf failed" } mk_distro() { mkdir _build _install dd=$PWD/_install cd _build ../configure --prefix=/usr/local || die configure failed make || die make make dist || die make dist make install DESTDIR=${dd} || make install DESTDIR=${dd} make check || die make check } PS4='>${FUNCNAME:-bs}> ' ; set -x init ${1+"$@"} mk_module run_glt run_reconf ${do_distro} && mk_distro cleanup