missing
install-sh
acinclude.m4
+config
-## Process this file with Automake to generate `Makefile.in'
-## -*-Makefile-*-
-##
-## Building the distribution
-##
-## (c) 1997 Mark Wooding
-##
-
-##----- Licensing notice ----------------------------------------------------
-##
-## This file is part of the Common Files Distribution (`common')
-##
-## `Common' is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## `Common' is distributed in the hope that it will be useful,
-## but WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-## GNU General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with `common'; if not, write to the Free Software Foundation,
-## Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-## --- What needs building ---
-
-bin_SCRIPTS = mklinks findlinks mdw-setup
-
-## --- Files to install in the repository ---
-
-pkgdata_DATA = \
- COPYING COPYING.LIB INSTALL \
- gpl.tex lgpl.tex gpl.texi lgpl.texi texinice.tex \
- mdwopt.c mdwopt.h \
- getdate.y getdate.h
-
-EXTRA_DIST = \
- aclocal.glob \
- $(pkgdata_DATA) $(pkgdata_SCRIPTS) mdw-setup \
- debian/control debian/copyright debian/rules debian/changelog
-
-pkgdata_SCRIPTS = \
- install-ac maninst
-
-dist-hook:
- echo $(VERSION) >$(distdir)/RELEASE
+### -*-makefile-*-
+###
+### Building the distribution
+###
+### (c) 1997 Mark Wooding
+###
+
+###----- Licensing notice ---------------------------------------------------
+###
+### This file is part of the Common Files Distribution (`common')
+###
+### `Common' is free software; you can redistribute it and/or modify
+### it under the terms of the GNU General Public License as published by
+### the Free Software Foundation; either version 2 of the License, or
+### (at your option) any later version.
+###
+### `Common' is distributed in the hope that it will be useful,
+### but WITHOUT ANY WARRANTY; without even the implied warranty of
+### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+### GNU General Public License for more details.
+###
+### You should have received a copy of the GNU General Public License
+### along with `common'; if not, write to the Free Software Foundation,
+### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+bin_SCRIPTS =
+pkgdata_SCRIPTS =
+pkgdata_DATA =
+
+EXTRA_DIST =
+CLEANFILES =
+
+###--------------------------------------------------------------------------
+### Handy variables.
+
+confsubst = $(srcdir)/confsubst
+mkdir_p = $(srcdir)/config/install-sh -d
+
+###--------------------------------------------------------------------------
+### Main scripts.
+
+## mklinks
+bin_SCRIPTS += mklinks
+CLEANFILES += mklinks
+EXTRA_DIST += mklinks.in
+
+mklinks: mklinks.in Makefile
+ $(confsubst) $(srcdir)/mklinks.in >$@.new \
+ pkgdatadir=$(pkgdatadir) VERSION=$(VERSION)
+ chmod +x $@.new
+ mv $@.new $@
+
+## findlinks
+bin_SCRIPTS += findlinks
+CLEANFILES += findlinks
+EXTRA_DIST += findlinks.in
+
+findlinks: findlinks.in Makefile
+ $(confsubst) $(srcdir)/findlinks.in >$@.new \
+ pkgdatadir=$(pkgdatadir) VERSION=$(VERSION)
+ chmod +x $@.new
+ mv $@.new $@
+
+## mdw-setup
+bin_SCRIPTS += mdw-setup
+EXTRA_DIST += mdw-setup
+
+###--------------------------------------------------------------------------
+### Files to install.
-install-data-hook:
- $(mkinstalldirs) $(DESTDIR)$(aclocaldir)
+## Licences.
+pkgdata_DATA += COPYING COPYING.LIB
+pkgdata_DATA += gpl.tex lgpl.tex gpl.texi lgpl.texi
+
+## Documentation.
+pkgdata_DATA += INSTALL
+pkgdata_DATA += texinice.tex
+
+## Useful code.
+pkgdata_DATA += mdwopt.c mdwopt.h
+pkgdata_DATA += getdate.y getdate.h
+
+## Scripts.
+pkgdata_SCRIPTS += install-ac
+pkgdata_SCRIPTS += maninst
+pkgdata_SCRIPTS += confsubst
+
+EXTRA_DIST += $(pkgdata_DATA)
+EXTRA_DIST += $(pkgdata_SCRIPTS)
+
+## Autoconf snippets.
+EXTRA_DIST += aclocal.glob
+
+install-data-hook::
+ $(mkdir_p) $(DESTDIR)$(aclocaldir)
$(srcdir)/install-ac install \
$(srcdir)/aclocal.glob $(DESTDIR)$(aclocaldir)
-uninstall-hook:
+
+uninstall-hook::
$(srcdir)/install-ac rm \
$(srcdir)/aclocal.glob $(DESTDIR)$(aclocaldir)
-## --- Documentation ---
+###--------------------------------------------------------------------------
+### Documentation.
info_TEXINFOS = common.texi
-## --- Cleaning up ---
+###--------------------------------------------------------------------------
+### Other special tweaks.
+
+## Make `make distcheck' work.
+DISTCHECK_CONFIGURE_FLAGS = \
+ --with-aclocaldir='$${prefix}/share/aclocal'
+
+## Distribute the release number.
+dist-hook::
+ echo $(VERSION) >$(distdir)/RELEASE
+
+###--------------------------------------------------------------------------
+### Debian.
+
+EXTRA_DIST += debian/control
+EXTRA_DIST += debian/copyright
+EXTRA_DIST += debian/rules
+EXTRA_DIST += debian/changelog
-CLEANFILES = $(bin_SCRIPTS)
+###----- That's all, folks --------------------------------------------------
#! /bin/sh
+### Build setup script
set -e
-ln -sf aclocal.glob acinclude.m4
+case "$1" in
+ start)
+ ln -sf aclocal.glob acinclude.m4
+ ;;
+esac
dnl along with `common'; if not, write to the Free Software Foundation,
dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+dnl--------------------------------------------------------------------------
+dnl Initialization.
+
mdw_AUTO_VERSION
AC_INIT([Common Files Distribution], AUTO_VERSION,
- [mdw@distorted.org.uk], [cfd])
-AM_INIT_AUTOMAKE([foreign])
+ [mdw@distorted.org.uk], [cfd])
AC_CONFIG_SRCDIR([mdw-setup])
+AC_CONFIG_AUX_DIR([config])
+AM_INIT_AUTOMAKE([foreign])
-AC_CACHE_CHECK([where to stash Autoconf macros], [aclocaldir], [
- aclocaldir=`aclocal --print-ac-dir`
- if test $? -ne 0; then AC_MSG_ERROR([aclocal not installed]); fi
-])
+dnl--------------------------------------------------------------------------
+dnl Finding installation directories.
+
+AC_ARG_WITH(
+ [aclocaldir],
+ AS_HELP_STRING([--with-aclocaldir=DIR],
+ [store autoconf snippets in DIR]),
+ [aclocaldir=$withval],
+ [AC_CACHE_CHECK([where to stash Autoconf macros], [mdw_cv_aclocaldir], [
+ mdw_cv_aclocaldir=$(aclocal --print-ac-dir)
+ if test $? -ne 0; then AC_MSG_ERROR([aclocal not installed]); fi
+ ])
+ aclocaldir=$mdw_cv_aclocaldir])
AC_SUBST([aclocaldir])
-AC_CONFIG_FILES([Makefile mklinks findlinks])
+dnl--------------------------------------------------------------------------
+dnl Output.
+
+AC_CONFIG_FILES([Makefile])
AC_OUTPUT
+
+dnl----- That's all, folks --------------------------------------------------
--- /dev/null
+#! /bin/sh
+### -*-sh-*-
+###
+### Make autoconf-like substitutions in files
+###
+### (c) 2008 Mark Wooding
+###
+
+###----- Licensing notice ---------------------------------------------------
+###
+### This file is part of the Common Files Distribution (`common').
+###
+### `Common' is free software; you can redistribute it and/or modify
+### it under the terms of the GNU General Public License as published by
+### the Free Software Foundation; either version 2 of the License, or
+### (at your option) any later version.
+###
+### `Common' is distributed in the hope that it will be useful,
+### but WITHOUT ANY WARRANTY; without even the implied warranty of
+### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+### GNU General Public License for more details.
+###
+### You should have received a copy of the GNU General Public License
+### along with `common'; if not, write to the Free Software Foundation,
+### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+set -e
+
+VERSION="@VERSION@"
+
+###--------------------------------------------------------------------------
+### Parse command line arguments.
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -h | --h | --he | --hel | --help)
+ cat <<EOF
+Usage: confsubst FILE TAG=VALUE...
+
+Replaces occurrences of @TAG@ in FILE with VALUE, and writes the result to
+standard output.
+EOF
+ exit 0
+ ;;
+ -v | --v | --ve | --ver | --vers | --versi | --versio | --version)
+ echo "confsubst: Common Files Distribution version $VERSION"
+ exit 0
+ ;;
+ --)
+ shift
+ break
+ ;;
+ -)
+ break
+ ;;
+ -*)
+ echo "confsubst: unknown option \`$1'" >&2
+ exit 1
+ ;;
+ *)
+ break
+ ;;
+ esac
+ shift
+done
+
+if [ $# -lt 1 ]; then
+ echo >&2 "Usage: confsubst FILE TAG=VALUE..."
+ exit 1
+fi
+file=$1; shift
+
+###--------------------------------------------------------------------------
+### Main code.
+
+subst=""
+for fixup; do
+ case "$fixup" in
+ *?=*?) ;;
+ *) echo >&2 "$0: bad substitution: $fixup"; exit 1 ;;
+ esac
+ tag=$(echo "$fixup" | sed 's/=.*$//') && \
+ value=$(echo "$fixup" | sed 's/^[^=]*=//') && \
+ subst="$subst s\a@$tag@\a$value\ag;"
+done
+
+sed "$subst" $file || exit $?
+
+###----- That's all, folks --------------------------------------------------
#! /bin/sh
### -*-sh-*-
###
-### Create links to the repository
+### Set up a new project
###
### (c) 1997 Mark Wooding
###
###--------------------------------------------------------------------------
### Do any initial local stuff.
-[ -x build-setup ] && ./build-setup start
+if [ -x build-setup ]; then ./build-setup start; fi
###--------------------------------------------------------------------------
### Grind through the Autoconf machinery.
[ -f $i ] && configure=$i
done
if [ "$configure" ]; then
- grep >/dev/null AM_PROG_LIBTOOL $configure && libtoolize
+ grep >/dev/null AM_PROG_LIBTOOL $configure && libtoolize -f
find . -name Makefile.m4 -print | while read m4; do
dir=$(echo $m4 | sed 's:/[^/]*$::')
(cd $dir &&
###--------------------------------------------------------------------------
### Do any final local stuff.
-[ -x build-setup ] && ./build-setup end
+if [ -x build-setup ]; then ./build-setup end; fi
###------ That's all, folks -------------------------------------------------
[ $# = 0 ] && set .links
cat "$@" | while read name; do
- base="$(echo $name | sed 's;^.*/;;')"
- dir="$(echo $name | sed 's;/[^/]*$;;')"
- mkdir -p "$dir"
- [ -r "$pkgdatadir/$base" ] && ln -sf "$pkgdatadir/$base" "$name"
+ base="$(echo $name | sed 's:^.*/::')"
+ dir="$(echo $name | sed 's:^[^/]:./&:; s:/[^/]*$::')"
+ if [ -r "$pkgdatadir/$base" ]; then
+ mkdir -p "$dir"
+ rm -f "$name"
+ ln -sf "$pkgdatadir/$base" "$name"
+ fi
done
###----- That's all, folks --------------------------------------------------