summaryrefslogtreecommitdiff
path: root/configure
blob: 861b37fe87d3ce2739d018d82fff746705163563 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/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 <http://www.gnu.org/licenses>.

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