Subversion Repositories tendra.SVN

Rev

Rev 10 | Rev 25 | Go to most recent revision | Details | Compare with Previous | 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
			;;
10 7u83 188
	NetBSD.8*)	#
189
			check_cc
190
			LD="ld"
191
			CFLAGS=${CFLAGS}
192
			LDOPTS=
193
			LDCRT=
194
			LIBS="-lc"
195
			OSFAM="netbsd"
196
			OSVER="NETBSD3"
197
			;;
6 7u83 198
	OpenBSD.3*)	#
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="OPENBSD3"
207
			;;
208
	OpenBSD.4*)	#
209
			check_cc
210
			LD="ld"
211
			CFLAGS=${CFLAGS}
212
			LDOPTS=
213
			LDCRT="/usr/lib/crt0.o"
214
			LIBS="-L/usr/lib -lc"
215
			OSFAM="openbsd"
216
			OSVER="OPENBSD4"
217
			;;
218
	SunOS.5*)	# Do not use the cc in /usr/ucb since it is an optional
219
			# software package.
220
			if [ "x${CC}" = "x" ]; then
221
			    CC=`/usr/bin/env cc`
222
			    case "${CC}" in
223
				*ucb*cc*)
224
				    echo "Please set your PATH or CC environment variable to a working compiler and not"
225
				    echo "the ucb/cc one"
226
				    exit 1
227
				    ;;
228
			    esac;
229
			fi
230
			CC=${CC}
231
			LD="ld"
232
			CFLAGS=${CFLAGS}
233
			LDOPTS=
234
			LDCRT=
235
			LIBS="-L/usr/lib -lc"
236
			OSFAM="sunos"
237
			OSVER="SUNOS5"
238
			;;
239
	*)		# Make sure we specify what we want to hear from the
240
			# people submitting feedback.
241
			echo "Unknown \"${SYSTEM}\" and \"${VERSION}\" combination"
242
			echo "Please report the following to the developers:"
243
			echo
244
			echo "uname -r:	${VERSION}"
245
			echo "uname -s:	${SYSTEM}"
246
			echo
247
			;;
248
esac
249
 
250
check_hostarch
251
 
252
if [ -z "${PREFIX}" ]; then
253
	PREFIX=/usr/local;
254
fi
255
 
15 7u83 256
BASE_DIR=`pwd`
257
INSTALL_DIR="/usr/local/lib/TenDRA-5.0.0"
258
 
6 7u83 259
echo "Setting Makefile.defs environment to the following:"
260
echo
261
echo "PREFIX:		${PREFIX}"
262
echo "CC:		${CC}"
263
echo "CCVER_MAJOR:	${CCVER_MAJOR}"
264
echo "CCVER_MINOR:	${CCVER_MINOR}"
265
echo "CCVER_TINY:	${CCVER_TINY}"
266
echo "LD:		${LD}"
267
echo "CFLAGS:		${CFLAGS}"
268
echo "LDOPTS:		${LDOPTS}"
269
echo "LDCRT:		${LDCRT}"
270
echo "LIBS:		${LIBS}"
271
echo "OSFAM:		${OSFAM}"
272
echo "OSVER:		${OSVER}"
273
echo "BLDARCH:	${BLDARCH} (${HOSTARCH})"
274
echo "BLDARCHBITS:	${BLDARCHBITS} bit"
275
echo "EXECFORMAT:	${EXECFORMAT}"
15 7u83 276
echo "BASE_DIR:	${BASE_DIR}"
277
echo "INSTALL_DIR:	${INSTALL_DIR}"
6 7u83 278
 
279
cat > Makefile.defs <<EOF
280
PREFIX=${PREFIX}
281
CC?=${CC}
282
CCVER_MAJOR=${CCVER_MAJOR}
283
CCVER_MINOR=${CCVER_MINOR}
284
CCVER_TINY=${CCVER_TINY}
285
LD?=${LD}
286
CFLAGS=${CFLAGS}
287
LDOPTS=${LDOPTS}
288
LDCRT=${LDCRT}
289
LIBS=${LIBS}
290
OSFAM=${OSFAM}
291
OSVER=${OSVER}
292
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
293
BLDARCH=${BLDARCH}
294
BLDARCHBITS=${BLDARCHBITS}
295
EXECFORMAT=${EXECFORMAT}
15 7u83 296
BASE_DIR=${BASE_DIR}
297
INSTALL_DIR=${INSTALL_DIR}
6 7u83 298
EOF