Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – tendra.SVN – Blame – /branches/algol60/makedefs – Rev 7

Subversion Repositories tendra.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6 7u83 1
#!/bin/sh
2
 
3
# $Id$
4
# 
5
# Copyright (c) 2002-2005 The TenDRA Project <http://www.tendra.org/>
6
# All rights reserved.
7
# 
8
# Redistribution and use in source and binary forms, with or without
9
# modification, are permitted provided that the following conditions
10
# are met:
11
# 
12
# 1. Redistributions of source code must retain the above copyright
13
#    notice, this list of conditions and the following disclaimer.
14
# 2. Redistributions in binary form must reproduce the above copyright
15
#    notice, this list of conditions and the following disclaimer in the
16
#    documentation and/or other materials provided with the distribution.
17
# 3. Neither the name of The TenDRA Project nor the names of its contributors
18
#    may be used to endorse or promote products derived from this software
19
#    without specific, prior written permission.
20
# 
21
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
22
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24
# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
25
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31
# SUCH DAMAGE.
32
 
33
# This script is inspired by Postfix' makedefs script.
34
# The purpose of this script is to determine the host on which we are
35
# compiling TenDRA and provide sane compilation defaults.
36
 
37
HOSTARCH=`/usr/bin/env uname -m`
38
SYSTEM=`/usr/bin/env uname -s`
39
VERSION=`/usr/bin/env uname -r`
40
 
41
. ./makedefs.funcs
42
 
43
if [ "${1}" = "-h" ]; then
44
	usage
45
	exit
46
fi
47
 
48
if [ -f Makefile.defs ]; then
49
	echo "NOTICE: old Makefile.defs file found, overwriting..."
50
	echo
51
fi
52
 
53
echo "${SYSTEM}.${VERSION} detected..."
54
echo
55
 
56
# See the URL in the warning below for why this is bad.
57
if [ ! -z ${LD_LIBRARY_PATH} ]; then
58
	echo "WARNING: LD_LIBRARY_PATH set, please don't do that (see:"
59
	echo "http://www.visi.com/~barr/ldpath.html)"
60
	echo "Setting to empty environment variable..."
61
	echo
62
	LD_LIBRARY_PATH=""
63
fi
64
 
65
# Set up defaults
66
EXECFORMAT=elf		# ELF is the de facto executable file format nowadays.
67
 
68
case "${SYSTEM}.${VERSION}" in
69
	DragonFly.1*)	# Use the system supplied GCC for CC.
70
			# System definition is __DragonFly__
71
			check_cc
72
			LD="ld"
73
			CFLAGS=${CFLAGS}
74
			LDOPTS=
75
			LDCRT="/usr/lib/crt1.o"
76
			LIBS="-L/usr/lib -lc"
77
			OSFAM="dragonfly"
78
			OSVER="DRAGONFLY1"
79
			;;
80
	FreeBSD.4*)	# Use the system supplied GCC for CC.
81
			# System definition is __FreeBSD__
82
			check_cc
83
			LD="ld"
84
			CFLAGS=${CFLAGS}
85
			LDOPTS=
86
			LDCRT="/usr/lib/crt1.o"
87
			LIBS="-L/usr/lib -lc"
88
			OSFAM="freebsd"
89
			OSVER="FREEBSD4"
90
			;;
91
	FreeBSD.5*)	# Use the system supplied GCC for CC.
92
			# System definition is __FreeBSD__
93
			check_cc
94
			LD="ld"
95
			CFLAGS=${CFLAGS}
96
			LDOPTS=
97
			LDCRT="/usr/lib/crt1.o"
98
			LIBS="-L/usr/lib -lc"
99
			OSFAM="freebsd"
100
			OSVER="FREEBSD5"
101
			;;
102
	FreeBSD.6*)	# Use the system supplied GCC for CC.
103
			# System definition is __FreeBSD__
104
			check_cc
105
			LD="ld"
106
			CFLAGS=${CFLAGS}
107
			LDOPTS=
108
			LDCRT="/usr/lib/crt1.o"
109
			LIBS="-L/usr/lib -lc"
110
			OSFAM="freebsd"
111
			OSVER="FREEBSD6"
112
			;;
113
	FreeBSD.7*)	# Use the system supplied GCC for CC.
114
			# System definition is __FreeBSD__
115
			check_cc
116
			LD="ld"
117
			CFLAGS=${CFLAGS}
118
			LDOPTS=
119
			LDCRT="/usr/lib/crt1.o"
120
			LIBS="-L/usr/lib -lc"
121
			OSFAM="freebsd"
122
			OSVER="FREEBSD7"
123
			;;
124
	Linux.2.4*)	# Use the system supplied GCC for CC.
125
			# System definition is __linux
126
			check_cc
127
			LD="ld"
128
			CFLAGS=${CFLAGS}
129
			LDOPTS="--dynamic-linker /lib/ld-linux.so.2"
130
			LDCRT="/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o"
131
			LIBS="-L/usr/lib -lc"
132
			OSFAM="linux"
133
			OSVER="LINUX24"
134
			;;
135
	Linux.2.6*)	# Use the system supplied GCC for CC.
136
			# System definition is __linux
137
			check_cc
138
			LD="ld"
139
			CFLAGS=${CFLAGS}
140
			LDOPTS=""
141
			LDCRT="/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o"
142
			LIBS="-L/usr/lib -lc"
143
			OSFAM="linux"
144
			OSVER="LINUX26"
145
			;;
146
	Minix.2*)	# Use the system supplied cc for CC.
147
			# It aims to be C90 conforming.
148
			check_cc
149
			LD=""
150
			CFLAGS=${CFLAGS}
151
			LDOPTS=
152
			LDCRT=""
153
			# Minix only runs on x86 for now.
154
			LIBS="-L/usr/lib/i386 -lc"
155
			OSFAM="minix"
156
			OSVER="MINIX2"
157
			;;
158
	NetBSD.1*)	#
159
			check_cc
160
			LD="ld"
161
			CFLAGS=${CFLAGS}
162
			LDOPTS=
163
			LDCRT="/usr/lib/crt0.o"
164
			LIBS="-L/usr/lib -lc"
165
			OSFAM="netbsd"
166
			OSVER="NETBSD1"
167
			;;
168
	NetBSD.2*)	#
169
			check_cc
170
			LD="ld"
171
			CFLAGS=${CFLAGS}
172
			LDOPTS="--dynamic-linker /libexec/ld.elf_so"
173
			LDCRT="/usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtn.o"
174
			LIBS="-L/usr/lib -lc"
175
			OSFAM="netbsd"
176
			OSVER="NETBSD2"
177
			;;
178
	NetBSD.3*)	#
179
			check_cc
180
			LD="ld"
181
			CFLAGS=${CFLAGS}
182
			LDOPTS=
183
			LDCRT=
184
			LIBS="-lc"
185
			OSFAM="netbsd"
186
			OSVER="NETBSD3"
187
			;;
188
	OpenBSD.3*)	#
189
			check_cc
190
			LD="ld"
191
			CFLAGS=${CFLAGS}
192
			LDOPTS=
193
			LDCRT="/usr/lib/crt0.o"
194
			LIBS="-L/usr/lib -lc"
195
			OSFAM="openbsd"
196
			OSVER="OPENBSD3"
197
			;;
198
	OpenBSD.4*)	#
199
			check_cc
200
			LD="ld"
201
			CFLAGS=${CFLAGS}
202
			LDOPTS=
203
			LDCRT="/usr/lib/crt0.o"
204
			LIBS="-L/usr/lib -lc"
205
			OSFAM="openbsd"
206
			OSVER="OPENBSD4"
207
			;;
208
	SunOS.5*)	# Do not use the cc in /usr/ucb since it is an optional
209
			# software package.
210
			if [ "x${CC}" = "x" ]; then
211
			    CC=`/usr/bin/env cc`
212
			    case "${CC}" in
213
				*ucb*cc*)
214
				    echo "Please set your PATH or CC environment variable to a working compiler and not"
215
				    echo "the ucb/cc one"
216
				    exit 1
217
				    ;;
218
			    esac;
219
			fi
220
			CC=${CC}
221
			LD="ld"
222
			CFLAGS=${CFLAGS}
223
			LDOPTS=
224
			LDCRT=
225
			LIBS="-L/usr/lib -lc"
226
			OSFAM="sunos"
227
			OSVER="SUNOS5"
228
			;;
229
	*)		# Make sure we specify what we want to hear from the
230
			# people submitting feedback.
231
			echo "Unknown \"${SYSTEM}\" and \"${VERSION}\" combination"
232
			echo "Please report the following to the developers:"
233
			echo
234
			echo "uname -r:	${VERSION}"
235
			echo "uname -s:	${SYSTEM}"
236
			echo
237
			;;
238
esac
239
 
240
check_hostarch
241
 
242
if [ -z "${PREFIX}" ]; then
243
	PREFIX=/usr/local;
244
fi
245
 
246
echo "Setting Makefile.defs environment to the following:"
247
echo
248
echo "PREFIX:		${PREFIX}"
249
echo "CC:		${CC}"
250
echo "CCVER_MAJOR:	${CCVER_MAJOR}"
251
echo "CCVER_MINOR:	${CCVER_MINOR}"
252
echo "CCVER_TINY:	${CCVER_TINY}"
253
echo "LD:		${LD}"
254
echo "CFLAGS:		${CFLAGS}"
255
echo "LDOPTS:		${LDOPTS}"
256
echo "LDCRT:		${LDCRT}"
257
echo "LIBS:		${LIBS}"
258
echo "OSFAM:		${OSFAM}"
259
echo "OSVER:		${OSVER}"
260
echo "BLDARCH:	${BLDARCH} (${HOSTARCH})"
261
echo "BLDARCHBITS:	${BLDARCHBITS} bit"
262
echo "EXECFORMAT:	${EXECFORMAT}"
263
 
264
cat > Makefile.defs <<EOF
265
PREFIX=${PREFIX}
266
CC?=${CC}
267
CCVER_MAJOR=${CCVER_MAJOR}
268
CCVER_MINOR=${CCVER_MINOR}
269
CCVER_TINY=${CCVER_TINY}
270
LD?=${LD}
271
CFLAGS=${CFLAGS}
272
LDOPTS=${LDOPTS}
273
LDCRT=${LDCRT}
274
LIBS=${LIBS}
275
OSFAM=${OSFAM}
276
OSVER=${OSVER}
277
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
278
BLDARCH=${BLDARCH}
279
BLDARCHBITS=${BLDARCHBITS}
280
EXECFORMAT=${EXECFORMAT}
281
EOF