#!/usr/bin/env bash name='configure' # Luke's configureation script #version='1.0' # Copyright (C) 2009 Luke Shumaker # # This program 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. # # This program 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 this program; see the file COPYING. # If not, see . srcdir=$(readlink -f `dirname "$0"`) _DESTDIR='' _prefix='/usr/local' _exec_prefix='$(prefix)' _bindir='$(exec_prefix)/bin' _sbindir='$(exec_prefix)/sbin' _libexecdir='$(exec_prefix)/libexec' _CONFIG="$@" vars='DESTDIR prefix exec_prefix bindir sbindir libexecdir CONFIG' if [ -f "$srcdir/config" ]; then . "$srcdir/config"; fi error() { echo "$name: $1" >> /dev/stderr exit 1 } varargs=`echo "$vars " | sed -e 's/ */:,/g' -e 's/,$//'` args=`getopt -n "$name" -o "${sopt}" -l "${lopt}${varargs}" -- "$@"` if [ $? == 0 ]; then set -- $args while [ $# -gt 0 ]; do case "$1" in --) break;; --srcdir) srcdir="$2"; shift;; --*) var0="${1/--/}" match='false' for var1 in $vars; do if [ "$var0" == "$var1" ]; then match='true' break; fi done if [ "$match" == 'true' ]; then shift val="$1" eval _$var0=$val else error "unrecognized option \`$1'"; fi :;; *) error "unrecognized option \`$1'"; esac shift done else error 'unable to parse command line arguments' fi echo '#!/bin/sed -f' > var.sed for var in $vars; do var1="_$var" val=${!var1} # GNU bash optimized version var=${var//:/\\:} val=${val//:/\\:} # POSIX version #var=`echo "$var" | sed 's@:@\\:@g'` #val=`echo "$val" | sed 's@:@\\:@g'` echo "s:@$var@:$val:g" >> var.sed done Makefiles="`find "$srcdir/" -type f -name 'Makefile.in'`" Makefiles="`find "$srcdir/" -type f -name '*.mk.in'` $Makefiles" for orig in $Makefiles; do new=${orig/%.in/} #bashism new=${new/#$srcdir\//} #bashism path=`dirname "$orig"` mkdir -p `dirname "$new"` sed -f var.sed "${orig}" | sed \ -e "s:@srcdir@:${path//:/\\:}/:g" \ -e '19 a# DO NOT edit this file, it has been generated by configure, and will' \ -e "19 a# be overwritten. Instead, edit the file \``basename ${orig}`'" \ -e "19 a " > "${new}" done rm var.sed