summaryrefslogtreecommitdiff
path: root/devel/mkcmd/files/makeme
blob: 12b290a13b817786812825d447065a5dfe124ab3 (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
#!/bin/sh
# $Id: makeme,v 1.1.1.1 2004/11/10 00:46:04 epg Exp $
# This hack won't work for every trick you can play with /usr/msrc.
# If the Distfile sends different files to the various platforms, or
# builds a file on the meta source machine with a special tool or
# database you are toast.  {N.B. mk's lib, rdist, mkcmd have issues.}

# if we have a local.defs read it for umask, PATH, and such.
[ -f /usr/local/lib/distrib/local.defs ] && . /usr/local/lib/distrib/local.defs

# It does work for the tools that build the meta source system itself,
# of course (mkcmd, distrib, rcsvg, and the like).  You can use it to
# process the Make.host file through m4 for localhost.
#
# Check for the mandatory Make.host file...
if [ ! -f Make.host ] ; then
	echo 1>&2 "$0: not in a meta source directory, no Make.host"
	exit 126
fi

# distrib: default column headers: %HOST SHORTHOST HOSTTYPE HOSTOS HASSRC
if [ -z "$HOST" ] ; then
	HOST=`uname -n || hostname`
fi
if [ -z "$SHORTHOST" ] ; then
	SHORTHOST=`expr $HOST : '\([^.]*\)\..*' \| $HOST`
fi
if [ -z "$HOSTTYPE" ] ; then
	case `uname -sr || uname -a` in
	HP-UX*7.*)
		HOSTTYPE="HPUX9" ;;
	HP-UX*8.*)
		HOSTTYPE="HPUX9" ;;
	HP-UX*9.*)
		HOSTTYPE="HPUX9" ;;
	HP-UX*10.*)
		HOSTTYPE="HPUX10" ;;
	*NEXT*)
		HOSTTYPE="NEXT2" ;;
	*Solaris*|*[Ss]un[Oo][Ss]*)
		HOSTTYPE="SUN5" ;;
	*BSD*)
		HOSTTYPE="FREEBSD" ;;
	BSDI*)
		HOSTTYPE="BSDI" ;;
	Linux*|LINUX*)
		HOSTTYPE="LINUX" ;;
	*)
		echo 1>&2 "$0: set HOSTTYPE and export it by hand."
		exit 2 ;;
	esac
fi
if [ -z "$HOSTOS" ] ; then
	HOSTOS=`uname -r | sed -e 's/^[A-Za-z .]*//' -e 's/-[A-Za-z]*//' -e 's/\.\([0-9][0-9]\)/\1/g' -e 'y/./0/' -e 's/^0*//'`
fi

# Now fake the Distrib @file@ expansion and hope the rest works out.
# Some make's mistakenly think you must call fork() to get a SIG-child...
# so they barf out errors for this -- they should learn UNIX.
m4 - Make.host <<! |make -f - ${1:+"$@"}
define(\`HOST',\`$HOST')dnl
define(\`SHORTHOST',\`$SHORTHOST')dnl
define(\`HOSTTYPE',\`$HOSTTYPE')dnl
define(\`MYTYPE',\`$HOSTTYPE')dnl
define(\`HOSTOS',\`$HOSTOS')dnl
define(\`MYOS',\`$HOSTOS')dnl
define(\`HASSRC',\`yes')dnl
define(\`MSRC_BOOT',\`${MSRC_BOOT-yes}')dnl
!