Subversion Repositories tendra.SVN

Rev

Rev 38 | Rev 105 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 38 Rev 89
Line 32... Line 32...
32
 
32
 
33
# This script is inspired by Postfix' makedefs script.
33
# This script is inspired by Postfix' makedefs script.
34
# The purpose of this script is to determine the host on which we are
34
# The purpose of this script is to determine the host on which we are
35
# compiling TenDRA and provide sane compilation defaults.
35
# compiling TenDRA and provide sane compilation defaults.
36
 
36
 
37
HOSTARCH=`/usr/bin/env uname -m`
37
HOSTARCH=`uname -m`
38
SYSTEM=`/usr/bin/env uname -s`
38
SYSTEM=`uname -s`
39
VERSION=`/usr/bin/env uname -r`
39
VERSION=`uname -r`
40
 
40
 
41
. ./makedefs.funcs
41
. ./makedefs.funcs
42
 
42
 
43
if [ "${1}" = "-h" ]; then
43
if [ "${1}" = "-h" ]; then
44
	usage
44
	usage
45
	exit
45
	exit
46
fi
46
fi
47
 
47
 
48
if [ -f Makefile.defs ]; then
48
if [ -f defs.mk ]; then
49
	echo "NOTICE: old Makefile.defs file found, overwriting..."
49
	echo "NOTICE: defs.mk file found, backing up to defs.mk.bak, overwriting..."
50
	echo
50
	echo
-
 
51
	cp defs.mk defs.mk.bak
51
fi
52
fi
52
 
53
 
53
echo "${SYSTEM}.${VERSION} detected..."
54
echo "${SYSTEM}.${VERSION} ${HOSTARCH} detected..."
54
echo
55
echo
55
 
56
 
56
# See the URL in the warning below for why this is bad.
57
# See the URL in the warning below for why this is bad.
57
if [ ! -z ${LD_LIBRARY_PATH} ]; then
58
if [ ! -z ${LD_LIBRARY_PATH} ]; then
58
	echo "WARNING: LD_LIBRARY_PATH set, please don't do that (see:"
59
	echo "WARNING: LD_LIBRARY_PATH set, please don't do that (see:"
59
	echo "http://www.visi.com/~barr/ldpath.html)"
60
	echo "http://www.visi.com/~barr/ldpath.html)"
60
	echo "Setting to empty environment variable..."
61
	echo "Setting to empty environment variable..."
61
	echo
62
	echo
62
	LD_LIBRARY_PATH=""
63
	LD_LIBRARY_PATH=""
63
fi
64
fi
-
 
65
 
64
 
66
 
65
# Set up defaults
67
# Set up defaults
66
EXECFORMAT=elf		# ELF is the de facto executable file format nowadays.
68
EXECFORMAT=elf		# ELF is the de facto executable file format nowadays.
67
 
69
 
68
case "${SYSTEM}.${VERSION}" in
70
case "${SYSTEM}.${VERSION}" in
Line 95... Line 97...
95
			CFLAGS=${CFLAGS}
97
			CFLAGS=${CFLAGS}
96
			LDOPTS=
98
			LDOPTS=
97
			LDCRT="/usr/lib/crt1.o"
99
			LDCRT="/usr/lib/crt1.o"
98
			LIBS="-L/usr/lib -lc"
100
			LIBS="-L/usr/lib -lc"
99
			OSFAM="freebsd"
101
			OSFAM="freebsd"
100
			OSVER="FREEBSD5"
102
			OSVER="FREEBSD5"
101
			;;
103
			;;
102
	FreeBSD.6*)	# Use the system supplied GCC for CC.
104
	FreeBSD.6*)	# Use the system supplied GCC for CC.
103
			# System definition is __FreeBSD__
105
			# System definition is __FreeBSD__
104
			check_cc
106
			check_cc
105
			LD="ld"
107
			LD="ld"
106
			CFLAGS=${CFLAGS}
108
			CFLAGS=${CFLAGS}
107
			LDOPTS=
109
			LDOPTS=
108
			LDCRT="/usr/lib/crt1.o"
110
			LDCRT="/usr/lib/crt1.o"
109
			LIBS="-L/usr/lib -lc"
111
			LIBS="-L/usr/lib -lc"
110
			OSFAM="freebsd"
112
			OSFAM="freebsd"
111
			OSVER="FREEBSD6"
113
			OSVER="FREEBSD6"
112
			;;
114
			;;
113
	FreeBSD.7*)	# Use the system supplied GCC for CC.
115
	FreeBSD.7*)	# Use the system supplied GCC for CC.
114
			# System definition is __FreeBSD__
116
			# System definition is __FreeBSD__
115
			check_cc
117
			check_cc
116
			LD="ld"
118
			LD="ld"
-
 
119
			CFLAGS=${CFLAGS}
-
 
120
			LDOPTS=
-
 
121
			LDCRT="/usr/lib/crt1.o"
-
 
122
			LIBS="-L/usr/lib -lc"
-
 
123
			OSFAM="freebsd"
-
 
124
			OSVER="FREEBSD7"
-
 
125
			;;
-
 
126
	FreeBSD.*)	# Use the system supplied GCC for CC.
-
 
127
			# System definition is __FreeBSD__
-
 
128
			check_cc
-
 
129
			LD="ld"
117
			CFLAGS=${CFLAGS}
130
			CFLAGS=${CFLAGS}
-
 
131
			LDOPTS=
-
 
132
			LDCRT="/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o"
-
 
133
			#LDCRT="/usr/lib/crt1.o"
-
 
134
			LIBS="-L/usr/lib -lc"
-
 
135
			OSFAM="freebsd"
-
 
136
			OSVER="12"
-
 
137
			MKDIRCMD="/bin/mkdir"
-
 
138
			RMCMD="/bin/rm -rf"
-
 
139
			;;
-
 
140
	Plan9.*)	#Plan 9
-
 
141
			LD="ld"
-
 
142
			CC="cc"
-
 
143
			CFLAGS="-DFS_TEMPNAM=0 -D_BSD_EXTENSION ${CFLAGS}"
118
			LDOPTS=
144
			LDOPTS=
119
			LDCRT="/usr/lib/crt1.o"
145
			LDCRT="/usr/lib/crt1.o"
120
			LIBS="-L/usr/lib -lc"
146
			LIBS="-L/usr/lib -lc"
121
			OSFAM="freebsd"
147
			OSFAM="plan9"
122
			OSVER="FREEBSD7"
148
			OSVER="4"
-
 
149
			EXECFORMAT="aout"
123
			;;
150
			;;		
124
	Linux.2.4*)	# Use the system supplied GCC for CC.
151
	Linux.2.4*)	# Use the system supplied GCC for CC.
125
			# System definition is __linux
152
			# System definition is __linux
126
			check_cc
153
			check_cc
127
			LD="ld"
154
			LD="ld"
128
			CFLAGS=${CFLAGS}
155
			CFLAGS=${CFLAGS}
129
			LDOPTS="--dynamic-linker /lib/ld-linux.so.2"
156
			LDOPTS="--dynamic-linker /lib/ld-linux.so.2"
130
			LDCRT="/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o"
157
			LDCRT="/usr/lib/crt1.o /usr/lib/crti.o /usr/lib/crtn.o"
Line 164... Line 191...
164
			LIBS="-L/usr/lib -lc"
191
			LIBS="-L/usr/lib -lc"
165
			OSFAM="netbsd"
192
			OSFAM="netbsd"
166
			OSVER="NETBSD1"
193
			OSVER="NETBSD1"
167
			;;
194
			;;
168
	NetBSD.2*)	#
195
	NetBSD.2*)	#
169
			check_cc
196
			check_cc
170
			LD="ld"
197
			LD="ld"
171
			CFLAGS=${CFLAGS}
198
			CFLAGS=${CFLAGS}
172
			LDOPTS="--dynamic-linker /libexec/ld.elf_so"
199
			LDOPTS="--dynamic-linker /libexec/ld.elf_so"
173
			LDCRT="/usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtn.o"
200
			LDCRT="/usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtn.o"
174
			LIBS="-L/usr/lib -lc"
201
			LIBS="-L/usr/lib -lc"
175
			OSFAM="netbsd"
202
			OSFAM="netbsd"
176
			OSVER="NETBSD2"
203
			OSVER="NETBSD2"
177
			;;
204
			;;
178
	NetBSD.3*)	#
205
	NetBSD.3*)	#
179
			check_cc
206
			check_cc
180
			LD="ld"
207
			LD="ld"
181
			CFLAGS=${CFLAGS}
208
			CFLAGS=${CFLAGS}
182
			LDOPTS=
209
			LDOPTS=
183
			LDCRT=
210
			LDCRT=
-
 
211
			LIBS="-lc"
-
 
212
			OSFAM="netbsd"
-
 
213
			OSVER="NETBSD3"
-
 
214
			;;
-
 
215
 
-
 
216
	
-
 
217
	
-
 
218
	NetBSD.7*)	#
-
 
219
			check_cc
-
 
220
			LD="ld"
-
 
221
			CFLAGS=${CFLAGS}
-
 
222
			LDOPTS=
184
			LIBS="-lc"
223
			LIBS="-lc"
185
			OSFAM="netbsd"
224
			OSFAM="netbsd"
186
			OSVER="NETBSD3"
225
			OSVER="7.x"
-
 
226
			ASCMD="/usr/bin/as"
-
 
227
			AS1CMD="/usr/bin/as"
-
 
228
			LDCMD="/usr/bin/ld"
-
 
229
 
-
 
230
			if [ -z "${PREFIX}" ]; then
-
 
231
				PREFIX=/usr/local;
-
 
232
			fi
-
 
233
			LDCRT="/usr/lib/crt0.o /usr/lib/crti.o /usr/lib/crtn.o"
-
 
234
 
-
 
235
			
187
			;;
236
			;;
-
 
237
	
-
 
238
	
188
	NetBSD.8*)	#
239
		NetBSD.8*)	#
189
			check_cc
240
			check_cc
190
			LD="ld"
241
			LD="ld"
191
			CFLAGS=${CFLAGS}
242
			CFLAGS=${CFLAGS}
192
			LDOPTS=
243
			LDOPTS=
193
			LIBS="-lc"
244
			LIBS="-lc"
Line 258... Line 309...
258
 
309
 
259
check_hostarch
310
check_hostarch
260
 
311
 
261
BASE_DIR=`pwd`
312
BASE_DIR=`pwd`
262
INSTALL_DIR="/usr/local/lib/TenDRA-5.0.0"
313
INSTALL_DIR="/usr/local/lib/TenDRA-5.0.0"
-
 
314
CFLAGS="${CFLAGS} -I${BASE_DIR}/src/include"
263
 
315
 
264
echo "Setting Makefile.defs environment to the following:"
316
echo "Setting defs.mk environment to the following:"
265
echo
317
echo
266
echo "PREFIX:		${PREFIX}"
318
echo "PREFIX:		${PREFIX}"
267
echo "CC:		${CC}"
319
echo "CC:		${CC}"
268
echo "CCVER_MAJOR:	${CCVER_MAJOR}"
320
echo "CCVER_MAJOR:	${CCVER_MAJOR}"
269
echo "CCVER_MINOR:	${CCVER_MINOR}"
321
echo "CCVER_MINOR:	${CCVER_MINOR}"
270
echo "CCVER_TINY:	${CCVER_TINY}"
322
echo "CCVER_TINY:	${CCVER_TINY}"
271
echo "LD:		${LD}"
323
echo "LD:		${LD}"
-
 
324
echo "MKDIR		${MKDIRCMD}"
-
 
325
echo "RM		${RMCMD}"
272
echo "CFLAGS:		${CFLAGS}"
326
echo "CFLAGS:		${CFLAGS}"
273
echo "LDOPTS:		${LDOPTS}"
327
echo "LDOPTS:		${LDOPTS}"
274
echo "LDCRT:		${LDCRT}"
328
echo "LDCRT:		${LDCRT}"
275
echo "LIBS:		${LIBS}"
329
echo "LIBS:		${LIBS}"
276
echo "OSFAM:		${OSFAM}"
330
echo "OSFAM:		${OSFAM}"
Line 279... Line 333...
279
echo "BLDARCHBITS:	${BLDARCHBITS} bit"
333
echo "BLDARCHBITS:	${BLDARCHBITS} bit"
280
echo "EXECFORMAT:	${EXECFORMAT}"
334
echo "EXECFORMAT:	${EXECFORMAT}"
281
echo "BASE_DIR:	${BASE_DIR}"
335
echo "BASE_DIR:	${BASE_DIR}"
282
echo "INSTALL_DIR:	${INSTALL_DIR}"
336
echo "INSTALL_DIR:	${INSTALL_DIR}"
283
 
337
 
284
cat > Makefile.defs <<EOF
338
cat > defs.mk <<EOF
285
PREFIX=${PREFIX}
339
PREFIX=${PREFIX}
286
CC?=${CC}
340
CC?=${CC}
287
CCVER_MAJOR=${CCVER_MAJOR}
341
CCVER_MAJOR=${CCVER_MAJOR}
288
CCVER_MINOR=${CCVER_MINOR}
342
CCVER_MINOR=${CCVER_MINOR}
289
CCVER_TINY=${CCVER_TINY}
343
CCVER_TINY=${CCVER_TINY}
290
LD?=${LD}
344
LD?=${LD}
291
CFLAGS=${CFLAGS}
345
CFLAGS=${CFLAGS}
292
LDOPTS=${LDOPTS}
346
LDOPTS=${LDOPTS}
293
LDCRT?=${LDCRT}
347
LDCRT=${LDCRT}
294
LIBS=${LIBS}
348
LIBS=${LIBS}
295
OSFAM=${OSFAM}
349
OSFAM=${OSFAM}
296
OSVER=${OSVER}
350
OSVER=${OSVER}
297
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
351
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
298
BLDARCH=${BLDARCH}
352
BLDARCH=${BLDARCH}
Line 303... Line 357...
303
 
357
 
304
CRT0=${CRT0}
358
CRT0=${CRT0}
305
CRT1=${CRT1}
359
CRT1=${CRT1}
306
CRTN=${CRTN}
360
CRTN=${CRTN}
307
 
361
 
308
CFLAGS=-I\$(BASE_DIR)/src/include
-
 
309
 
362
 
310
BUILD_ERRORS=\$(BASE_DIR)/src/build/BUILD_ERRORS
363
BUILD_ERRORS=\$(BASE_DIR)/src/build/BUILD_ERRORS
311
 
364
 
312
# Binary paths
365
# Binary paths
313
 
366
 
314
SHELL=		/bin/sh
367
SHELL=		/bin/sh
315
ENVCMD?=	/usr/bin/env
368
ENVCMD=	
316
ASCMD?=		${ASCMD}
369
ASCMD=		${ASCMD}
317
LDCMD?=		${LDCMD}
370
LDCMD=		${LDCMD}
-
 
371
MKDIRCMD=	${MKDIRCMD}
-
 
372
RMCMD=		${RMCMD}
318
 
373
 
319
# Keep in alphabetical order
374
# Keep in alphabetical order
320
 
375
 
321
AS?=		\${ASCMD} 
376
AS=		\${ASCMD} 
322
AR?=		\${ENVCMD} ar
377
AR=		\${ENVCMD} ar
323
COPY?=		\${ENVCMD} cp
378
COPY=		\${ENVCMD} cp
324
ECHO?=		\${ENVCMD} echo
379
ECHO=		\${ENVCMD} echo
325
ECHODIR?=	\${ENVCMD} echo
380
ECHODIR=	\${ENVCMD} echo
326
EXIT?=		exit
381
EXIT=		exit
327
INSTALL?=	${ENVCMD} install
382
INSTALL=	${ENVCMD} install
328
LN?=		\${ENVCMD} ln
383
LN=		\${ENVCMD} ln
329
MKDIR?=		\${ENVCMD} mkdir
384
MKDIR=		\${ENVCMD} mkdir
330
MOVE?=		\${ENVCMD} mv
385
MOVE=		\${ENVCMD} mv
331
RANLIB?=	\${ENVCMD} ranlib
386
RANLIB=	\${ENVCMD} ranlib
332
REMOVE?=	\${ENVCMD} rm -f
387
REMOVE=	\${ENVCMD} rm -f
333
SORT?=		\${ENVCMD} sort
388
SORT=		\${ENVCMD} sort
334
TEST?=		\${ENVCMD} test
389
TEST=		\${ENVCMD} test
335
 
390
 
336
 
391
 
337
TOKENS_COMMON=	src/lib/machines/common/tokens
392
TOKENS_COMMON=	src/lib/machines/common/tokens
338
TOKENS_MACH=	src/lib/machines/\$(OSFAM)/\$(BLDARCH)/tokens
393
TOKENS_MACH=	src/lib/machines/\$(OSFAM)/\$(BLDARCH)/tokens
339
 
394
 
340
INSTALL_DIR=\$(BASE_DIR)/install
395
INSTALL_DIR=\$(BASE_DIR)/install
341
 
396
 
342
 
397
 
343
INSTALL_MACHDIR?=	\$(INSTALL_DIR)/machines/\$(OSFAM)/\$(BLDARCH)
398
INSTALL_MACHDIR=	\$(INSTALL_DIR)/machines/\$(OSFAM)/\$(BLDARCH)
344
 
399
 
345
# Directory where to install binarie tools like tcc and tld 
400
# Directory where to install binarie tools like tcc and tld 
346
INSTALL_BINDIR?=	\$(INSTALL_MACHDIR)/bin
401
INSTALL_BINDIR=		\$(INSTALL_MACHDIR)/bin
347
 
402
 
348
# Directory where to install environments for tcc
403
# Directory where to install environments for tcc
349
INSTALL_ENVDIR?=	\$(INSTALL_MACHDIR)/env
404
INSTALL_ENVDIR=		\$(INSTALL_MACHDIR)/env
350
 
405
 
351
INSTALL_STARTUPDIR=	\$(INSTALL_MACHDIR)/startup
406
INSTALL_STARTUPDIR=	\$(INSTALL_MACHDIR)/startup
352
 
407
 
353
INSTALL_LIBDIR=		\$(INSTALL_DIR)/lib
408
INSTALL_LIBDIR=		\$(INSTALL_DIR)/lib
354
 
409
 
355
TLD=		\$(INSTALL_BINDIR)/tld
410
TLD=		\$(INSTALL_BINDIR)/tld
356
TCC=		\$(INSTALL_BINDIR)/tcc
411
TCC=		\$(INSTALL_BINDIR)/tcc
357
TPL=		\$(INSTALL_BINDIR)/tpl
412
TPL=		\$(INSTALL_BINDIR)/tpl
358
SID=		\$(INSTALL_BINDIR)/sid
413
SID=		\$(INSTALL_BINDIR)/sid
359
TSPEC?=		\$(INSTALL_BINDIR)/tspec
414
TSPEC=		\$(INSTALL_BINDIR)/tspec
360
TNC?=		\$(INSTALL_BINDIR)/tnc 
415
TNC=		\$(INSTALL_BINDIR)/tnc 
361
 
416
 
362
 
417
 
363
#directories
418
#directories
364
COMMON_DIR=${INSTALL_DIR}/lib
419
COMMON_DIR=${INSTALL_DIR}/lib
365
 
420